···3131 GetLastBundleNumber() int
3232 GetMempoolCount() int
3333 // Returns: bundleNumber, indexUpdateTime, error
3434- FetchAndSaveNextBundle(ctx context.Context, quiet bool) (int, time.Duration, error)
3434+ FetchAndSaveNextBundle(ctx context.Context, verbose bool, quiet bool) (int, *types.BundleProductionStats, error)
3535 SaveMempool() error
3636}
3737···5050 mempoolBefore := mgr.GetMempoolCount()
51515252 // Attempt to fetch and save next bundle
5353- bundleNum, indexTime, err := mgr.FetchAndSaveNextBundle(ctx, !verbose)
5353+ bundleNum, stats, err := mgr.FetchAndSaveNextBundle(ctx, verbose, false)
54545555 // Check if we made any progress
5656 bundleAfter := mgr.GetLastBundleNumber()
···71717272 // Success
7373 fetchedCount++
7474- totalIndexTime += indexTime
7474+ totalIndexTime += stats.IndexTime
75757676 // Callback if provided
7777 if config.OnBundleSynced != nil {
+10
internal/types/types.go
···11package types
2233+import "time"
44+35// Logger is a simple logging interface used throughout plcbundle
46type Logger interface {
57 Printf(format string, v ...interface{})
···1618 // INDEX_VERSION is the current index format version
1719 INDEX_VERSION = "1.0"
1820)
2121+2222+type BundleProductionStats struct {
2323+ TotalFetches int
2424+ TotalDuration time.Duration
2525+ AvgPerFetch float64
2626+ Throughput float64
2727+ IndexTime time.Duration
2828+}
+1-1
types.go
···4040}
41414242// Helper to convert internal bundle to public
4343-func toBundlePublic(b interface{}) *Bundle {
4343+func toBundlePublic(_ interface{}) *Bundle {
4444 // Implement conversion from internal bundle to public Bundle
4545 return &Bundle{} // placeholder
4646}