A Transparent and Verifiable Way to Sync the AT Protocol's PLC Directory

update

+23 -2
+5 -1
bundle/manager.go
··· 97 97 } 98 98 99 99 // Perform rebuild if needed (using parallel scan) 100 - if needsRebuild { 100 + if needsRebuild && config.AutoRebuild { 101 101 config.Logger.Printf("Rebuilding index from %d bundle files...", len(bundleFiles)) 102 102 103 103 // Create temporary manager for scanning ··· 177 177 if missingHashes > 0 { 178 178 config.Logger.Printf("⚠️ Warning: %d bundles have missing hashes", missingHashes) 179 179 } 180 + } 181 + 182 + if index == nil { 183 + index = NewIndex() 180 184 } 181 185 182 186 // Initialize mempool for next bundle
+18 -1
cmd/plcbundle/main.go
··· 275 275 *workers = runtime.NumCPU() 276 276 } 277 277 278 - mgr, dir, err := getManager("") 278 + // Create manager WITHOUT auto-rebuild (we'll do it manually) 279 + dir, err := os.Getwd() 280 + if err != nil { 281 + fmt.Fprintf(os.Stderr, "Error: %v\n", err) 282 + os.Exit(1) 283 + } 284 + 285 + // Ensure directory exists 286 + if err := os.MkdirAll(dir, 0755); err != nil { 287 + fmt.Fprintf(os.Stderr, "Error: %v\n", err) 288 + os.Exit(1) 289 + } 290 + 291 + config := bundle.DefaultConfig(dir) 292 + config.AutoRebuild = false // ← Disable auto-rebuild 293 + config.RebuildWorkers = *workers 294 + 295 + mgr, err := bundle.NewManager(config, nil) 279 296 if err != nil { 280 297 fmt.Fprintf(os.Stderr, "Error: %v\n", err) 281 298 os.Exit(1)