crucible depot: Increment 1 core (status/push/verify/get/pull + local/cdn/bunny backends) #30

Merged
archvillainette merged 11 commits from depot-core-increment-1 into main 2026-07-04 23:30:55 +00:00
11 Commits
Author SHA1 Message Date
archvillainette 573ff8e114 fix broken smoke
build-binaries / build-binaries (pull_request) Successful in 2m22s
test-image / build-image (pull_request) Successful in 37s
test / test (pull_request) Successful in 1m29s
2026-07-05 01:11:32 +02:00
archvillainetteandClaude Fable 5 446d10925c fix(depot): retry transient probe responses like curl --retry
build-binaries / build-binaries (pull_request) Successful in 2m24s
test-image / build-image (pull_request) Successful in 44s
test / test (pull_request) Failing after 1m33s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 00:40:15 +02:00
archvillainetteandClaude Fable 5 f2847d6bc9 feat(depot): wire depot into dispatch registry and menu
Flip the depot Registry entry to Wired: true with its command list
(status/push/verify/get/pull), so crucible depot/depot status/etc.
route to depot.Run instead of the fail-closed unwired path. Update
dispatch_test.go: the canonical command surface, command-metadata
completeness (depot has no AppCommand since it parses its own
subcommands), the menu-items test (depot now expected in the menu),
and a new test asserting depot's stderr never reaches the dispatcher's
"not wired yet" message. Drop the stale "(SeaweedFS)" summary wording.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 00:03:43 +02:00
archvillainetteandClaude Fable 5 93f3eb8c6f fix(depot): exit 64 on unset DEPOT_DIR, count push transport failures
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:59:43 +02:00
archvillainetteandClaude Fable 5 f57c3d2c32 feat(depot): status/push/verify/get/pull commands with exit-code contract
Adds internal/depot.Run, the stdlib-flag command surface for the five
depot subcommands (0/1/2/64/70 exit contract), plus a dispatch special
case that will route "crucible depot ..." and crucible-depot to it once
Task 6 flips Wired:true (inert for now since Wired stays false).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:53:58 +02:00
archvillainetteandClaude Fable 5 577e5987d8 feat(depot): parallel probe sweep with serial confirm and unconfirmed state
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:46:35 +02:00
archvillainetteandClaude Fable 5 f3e9ec4919 feat(depot): cdn and bunny HTTP backends with fake-Bunny tests
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:41:45 +02:00
archvillainetteandClaude Fable 5 da59e54261 feat(depot): backend interface and local backend
Implement Backend interface with Probe/Get/Put methods, ProbeState constants,
and LocalBackend using filesystem storage with atomic operations and hash
verification.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:37:13 +02:00
archvillainetteandClaude Fable 5 f1ff144740 fix(depot): include asset path in invalid-sha error
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:34:52 +02:00
archvillainetteandClaude Fable 5 b8502700ea feat(depot): config resolution and manifest sha parsing
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:30:32 +02:00
archvillainetteandClaude Fable 5 17a142cf56 docs: depot core increment 1 plan + spec updates
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 23:28:42 +02:00