carlos / platform Public

Revive on-demand object scanning with guarded queue workers

claude agent, operated by paul@keymail.dev 2c6309a5cdb9b991eb27345b4e540456a22ec1af parent ce8c425
53 files changed, +8224 −233
  • apimode.go +31 −5
  • cmd/console/main.go +15 −0
  • docs/site/nav.json +5 −0
  • docs/site/scan-callbacks.md +245 −0
  • docs/superpowers/plans/2026-09-02-scan-on-demand.md +227 −49
  • docs/superpowers/specs/2026-09-02-scan-on-demand-design.md +143 −16
  • internal/console/apiscan.go +369 −0
  • internal/console/apiscan_keys_test.go +244 −0
  • internal/console/apiscan_revival_test.go +61 −0
  • internal/console/apiscan_rotation_race_test.go +185 −0
  • internal/console/apiscan_test.go +19 −2
  • internal/console/apiscanqueue_test.go +433 −0
  • internal/console/apiscanstatus.go +286 −0
  • internal/console/apiscanstatus_revival_test.go +202 −0
  • internal/console/apiscanstatus_test.go +556 −0
  • internal/console/apistore_test.go +1 −0
  • internal/console/apisystem.go +97 −2
  • internal/console/apisystem_test.go +14 −0
  • internal/console/authcli.go +14 −0
  • internal/console/claim_invariant_fixtures_test.go +82 −31
  • internal/console/claim_invariant_probes_read_test.go +4 −0
  • internal/console/claim_invariant_world_test.go +22 −20
  • internal/console/claim_scan_revival_test.go +592 −0
  • internal/console/claim_workers.go +1 −0
  • internal/console/scan_group_permission_revival_test.go +73 −0
  • internal/console/scandeliver.go +307 −0
  • internal/console/scandeliver_test.go +427 −0
  • internal/console/scandrain.go +386 −0
  • internal/console/scandrain_recovery_test.go +137 −0
  • internal/console/scandrain_test.go +737 −0
  • internal/console/scanhook.go +180 −0
  • internal/console/scanhook_test.go +145 −0
  • internal/console/scankeysync.go +98 −0
  • internal/console/scankeysync_test.go +120 −0
  • internal/console/scanresult_collection_revival_test.go +84 −0
  • internal/console/scansign.go +170 −0
  • internal/console/scansign_test.go +228 −0
  • internal/console/server.go +28 −0
  • internal/console/svcroutes_test.go +3 −2
  • internal/console/testdata/claim-routes.txt +5 −0
  • internal/docsite/fences_test.go +6 −0
  • internal/hostops/storage_classifier.go +19 −0
  • internal/hostops/storage_classifier_test.go +40 −2
  • internal/objstore/memscanner.go +24 −0
  • internal/objstore/objstore.go +6 −3
  • internal/objstore/queue.go +438 −66
  • internal/objstore/queue_test.go +472 −13
  • internal/objstore/scanresult.go +61 −19
  • internal/usage/scan.go +77 −0
  • internal/usage/scan_test.go +72 −0
  • internal/usage/usage.go +5 −0
  • scan.go +8 −1
  • system.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.go

Loading diff…

cmd/console/main.go

Loading diff…

docs/site/nav.json

Loading diff…

docs/site/scan-callbacks.md

Loading diff…

docs/superpowers/plans/2026-09-02-scan-on-demand.md

Loading diff…

docs/superpowers/specs/2026-09-02-scan-on-demand-design.md

Loading diff…

internal/console/apiscan.go

Loading diff…

internal/console/apiscan_keys_test.go

Loading diff…

internal/console/apiscan_revival_test.go

Loading diff…

internal/console/apiscan_rotation_race_test.go

Loading diff…

internal/console/apiscan_test.go

Loading diff…

internal/console/apiscanqueue_test.go

Loading diff…

internal/console/apiscanstatus.go

Loading diff…

internal/console/apiscanstatus_revival_test.go

Loading diff…

internal/console/apiscanstatus_test.go

Loading diff…

internal/console/apistore_test.go

Loading diff…

internal/console/apisystem.go

Loading diff…

internal/console/apisystem_test.go

Loading diff…

internal/console/authcli.go

Loading diff…

internal/console/claim_invariant_fixtures_test.go

Loading diff…

internal/console/claim_invariant_probes_read_test.go

Loading diff…

internal/console/claim_invariant_world_test.go

Loading diff…

internal/console/claim_scan_revival_test.go

Loading diff…

internal/console/claim_workers.go

Loading diff…

internal/console/scan_group_permission_revival_test.go

Loading diff…

internal/console/scandeliver.go

Loading diff…

internal/console/scandeliver_test.go

Loading diff…

internal/console/scandrain.go

Loading diff…

internal/console/scandrain_recovery_test.go

Loading diff…

internal/console/scandrain_test.go

Loading diff…

internal/console/scanhook.go

Loading diff…

internal/console/scanhook_test.go

Loading diff…

internal/console/scankeysync.go

Loading diff…

internal/console/scankeysync_test.go

Loading diff…

internal/console/scanresult_collection_revival_test.go

Loading diff…

internal/console/scansign.go

Loading diff…

internal/console/scansign_test.go

Loading diff…

internal/console/server.go

Loading diff…

internal/console/svcroutes_test.go

Loading diff…

internal/console/testdata/claim-routes.txt

Loading diff…

internal/docsite/fences_test.go

Loading diff…

internal/hostops/storage_classifier.go

Loading diff…

internal/hostops/storage_classifier_test.go

Loading diff…

internal/objstore/memscanner.go

Loading diff…

internal/objstore/objstore.go

Loading diff…

internal/objstore/queue.go

Loading diff…

internal/objstore/queue_test.go

Loading diff…

internal/objstore/scanresult.go

Loading diff…

internal/usage/scan.go

Loading diff…

internal/usage/scan_test.go

Loading diff…

internal/usage/usage.go

Loading diff…

scan.go

Loading diff…

system.go

Loading diff…