Skip to content

deps: bump substrate to 961883a8 (imagecache Phase 1, root-cures atelet OOM) - #11

Closed
feifeigood wants to merge 2 commits into
agentfleet/mainfrom
agentfleet/substrate-bump-961883a8
Closed

deps: bump substrate to 961883a8 (imagecache Phase 1, root-cures atelet OOM)#11
feifeigood wants to merge 2 commits into
agentfleet/mainfrom
agentfleet/substrate-bump-961883a8

Conversation

@feifeigood

Copy link
Copy Markdown
Owner

What

Bump github.com/agent-substrate/substrate 3cb7433bd8a8961883a86749 (merge commit of substrate#467, Phase 1 of substrate#463): on-disk content-addressed layer-deduplicated image cache + overlayfs actor rootfs, memorypullcache removed entirely.

Plan & context: feifeigood/agentfleet#369 (this is P0). Root-cures the atelet OOM cycle (substrate#437 / feifeigood/agentfleet#294); upstream measured oci_unpack 15–20s → 2.9–4.8ms, cache survives atelet restarts, restarts no longer strand actors.

Wire-breaking adaptation

The 66-commit drift renames actor addressing from ActorRef/ActorId to name-based ObjectRef/ResourceMetadata, and CreateActor/CreateAtespace now return the resource directly. Exactly three consumers in this repo, all mechanical:

  • internal/k8s/ate/client.go — request/response shapes (Actor/Atespace wrap ResourceMetadata; ObjectRef for resume/suspend; CreateActor returns *ateapipb.Actor)
  • internal/harness/substrate/substrate.goGetActorId()GetMetadata().GetName() in the authoritative-resume identity check
  • internal/harness/harnesstest/harnesstest.go — mock Control server updated to the new RPC signatures

Transitive bumps pulled in by go mod tidy: x/sync v0.21.0, x/sys v0.46.0, x/text v0.39.0.

Verification

Deployment notes (do NOT merge-and-deploy casually)

  • Wire-breaking pair: substrate control plane must be rolled to ≥961883a8 together with this ax build; rollback must also be done as a pair.
  • Order red line: new atelet + old ateom = empty rootfs → ateom deploys before/with atelet.
  • Soak plan, disk-growth caveat (Phase 2 GC not merged) and full checklist live in feifeigood/agentfleet#369 (P1–P5).

🤖 Generated with Claude Code

https://claude.ai/code/session_017TK34TZokEcfPq5JdbUVWo

feifeigood and others added 2 commits July 23, 2026 16:32
…ed actor API

Bump github.com/agent-substrate/substrate from 3cb7433bd8a8 to
961883a86749 (agent-substrate/substrate#467, on-disk layer-deduplicated
image cache + overlayfs rootfs; memorypullcache removed). Root-cures the
atelet OOM cycle (substrate#437 / feifeigood/agentfleet#294) and drops
oci_unpack from 15-20s to single-digit ms on resume.

The bump is wire-breaking: actors and atespaces are now addressed by
name-based ObjectRef/ResourceMetadata instead of ActorRef/ActorId, and
CreateActor/CreateAtespace return the resource directly. Adapt the three
consumers accordingly:

- internal/k8s/ate/client.go: wrap create requests in Actor/Atespace with
  ResourceMetadata; ObjectRef for resume/suspend; CreateActor now returns
  *ateapipb.Actor.
- internal/harness/substrate/substrate.go: GetActorId -> Metadata.Name in
  the authoritative-resume identity check.
- internal/harness/harnesstest/harnesstest.go: mock Control server updated
  to the new RPC signatures.

Plan: feifeigood/agentfleet#369 (P0).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TK34TZokEcfPq5JdbUVWo
Second bump within #369 P1 soak window. Absorbs five fixes on top of
imagecache Phase 1 (961883a8), stopping deliberately before the 07-24
afternoon batch (mTLS google#237, external volumes #405) which has zero soak:

- #498 async worker release uses background ctx (zombie-worker fix)
- #508 workflow_pause crash when pod is gone
- #499 k8sjwt: skip unusable keys in JWKS discovery
- #505 valkey cert reload before expiry
- #510 redis not-found error fix
(also carries #482 Lock API auto-renew rework, in between)

No ax code changes needed: none of these touch the ate client API.
go build / go vet / go test -race ./... all green (13 packages).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017TK34TZokEcfPq5JdbUVWo
@feifeigood

Copy link
Copy Markdown
Owner Author

Superseded by #12: reworked to follow all upstream (07-22 refactor) first via merge, then stack the substrate bump as a single squashed patch commit.

@feifeigood feifeigood closed this Jul 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant