Revive on-demand object scanning with guarded queue workers
apimode.go+31 −5cmd/console/main.go+15 −0docs/site/nav.json+5 −0docs/site/scan-callbacks.md+245 −0docs/superpowers/plans/2026-09-02-scan-on-demand.md+227 −49docs/superpowers/specs/2026-09-02-scan-on-demand-design.md+143 −16internal/console/apiscan.go+369 −0internal/console/apiscan_keys_test.go+244 −0internal/console/apiscan_revival_test.go+61 −0internal/console/apiscan_rotation_race_test.go+185 −0internal/console/apiscan_test.go+19 −2internal/console/apiscanqueue_test.go+433 −0internal/console/apiscanstatus.go+286 −0internal/console/apiscanstatus_revival_test.go+202 −0internal/console/apiscanstatus_test.go+556 −0internal/console/apistore_test.go+1 −0internal/console/apisystem.go+97 −2internal/console/apisystem_test.go+14 −0internal/console/authcli.go+14 −0internal/console/claim_invariant_fixtures_test.go+82 −31internal/console/claim_invariant_probes_read_test.go+4 −0internal/console/claim_invariant_world_test.go+22 −20internal/console/claim_scan_revival_test.go+592 −0internal/console/claim_workers.go+1 −0internal/console/scan_group_permission_revival_test.go+73 −0internal/console/scandeliver.go+307 −0internal/console/scandeliver_test.go+427 −0internal/console/scandrain.go+386 −0internal/console/scandrain_recovery_test.go+137 −0internal/console/scandrain_test.go+737 −0internal/console/scanhook.go+180 −0internal/console/scanhook_test.go+145 −0internal/console/scankeysync.go+98 −0internal/console/scankeysync_test.go+120 −0internal/console/scanresult_collection_revival_test.go+84 −0internal/console/scansign.go+170 −0internal/console/scansign_test.go+228 −0internal/console/server.go+28 −0internal/console/svcroutes_test.go+3 −2internal/console/testdata/claim-routes.txt+5 −0internal/docsite/fences_test.go+6 −0internal/hostops/storage_classifier.go+19 −0internal/hostops/storage_classifier_test.go+40 −2internal/objstore/memscanner.go+24 −0internal/objstore/objstore.go+6 −3internal/objstore/queue.go+438 −66internal/objstore/queue_test.go+472 −13internal/objstore/scanresult.go+61 −19internal/usage/scan.go+77 −0internal/usage/scan_test.go+72 −0internal/usage/usage.go+5 −0scan.go+8 −1system.go+20 −2
CI cancelled — superseded by a newer push — run details
CI log
=== gate === cd launchctx && go vet ./... && go test ./... -count=1 ok amadan.net/carlos/platform.git/launchctx 0.011s ? amadan.net/carlos/platform.git/launchctx/controlname [no test files] ? amadan.net/carlos/platform.git/launchctx/wireid [no test files] go vet ./... gofmt -l .: clean go test ./... -count=1 -timeout 30m amadan: job cancelled — a newer push superseded it
apimode.goLoading diff…
cmd/console/main.goLoading diff…
docs/site/nav.jsonLoading diff…
docs/site/scan-callbacks.mdLoading diff…
docs/superpowers/plans/2026-09-02-scan-on-demand.mdLoading diff…
docs/superpowers/specs/2026-09-02-scan-on-demand-design.mdLoading diff…
internal/console/apiscan.goLoading diff…
internal/console/apiscan_keys_test.goLoading diff…
internal/console/apiscan_revival_test.goLoading diff…
internal/console/apiscan_rotation_race_test.goLoading diff…
internal/console/apiscan_test.goLoading diff…
internal/console/apiscanqueue_test.goLoading diff…
internal/console/apiscanstatus.goLoading diff…
internal/console/apiscanstatus_revival_test.goLoading diff…
internal/console/apiscanstatus_test.goLoading diff…
internal/console/apistore_test.goLoading diff…
internal/console/apisystem.goLoading diff…
internal/console/apisystem_test.goLoading diff…
internal/console/authcli.goLoading diff…
internal/console/claim_invariant_fixtures_test.goLoading diff…
internal/console/claim_invariant_probes_read_test.goLoading diff…
internal/console/claim_invariant_world_test.goLoading diff…
internal/console/claim_scan_revival_test.goLoading diff…
internal/console/claim_workers.goLoading diff…
internal/console/scan_group_permission_revival_test.goLoading diff…
internal/console/scandeliver.goLoading diff…
internal/console/scandeliver_test.goLoading diff…
internal/console/scandrain.goLoading diff…
internal/console/scandrain_recovery_test.goLoading diff…
internal/console/scandrain_test.goLoading diff…
internal/console/scanhook.goLoading diff…
internal/console/scanhook_test.goLoading diff…
internal/console/scankeysync.goLoading diff…
internal/console/scankeysync_test.goLoading diff…
internal/console/scanresult_collection_revival_test.goLoading diff…
internal/console/scansign.goLoading diff…
internal/console/scansign_test.goLoading diff…
internal/console/server.goLoading diff…
internal/console/svcroutes_test.goLoading diff…
internal/console/testdata/claim-routes.txtLoading diff…
internal/docsite/fences_test.goLoading diff…
internal/hostops/storage_classifier.goLoading diff…
internal/hostops/storage_classifier_test.goLoading diff…
internal/objstore/memscanner.goLoading diff…
internal/objstore/objstore.goLoading diff…
internal/objstore/queue.goLoading diff…
internal/objstore/queue_test.goLoading diff…
internal/objstore/scanresult.goLoading diff…
internal/usage/scan.goLoading diff…
internal/usage/scan_test.goLoading diff…
internal/usage/usage.goLoading diff…
scan.goLoading diff…
system.goLoading diff…