pi-integration asserts the template's default memory checkouts, not the composed machine's own #108

Closed
opened 2026-09-22 17:10:35 +01:00 by vnprc-agent · 0 comments

After allod/archetypes#88 landed, a deployment fork re-enabled every framework check it had excluded and built each one against its own data at archetypes f62a1b3. Eight of the nine rewritten checks are green there, including consumed-file-carve-out, dev-forge-opt-out, runtime-module-selection, pi-provider-lifecycle, host-user-credentials, vm-facts-coherence and agent-vm-status. One is still red:

ERROR: claude pointer missing agent-memory checkout

checks/pi-integration.nix lines 178-187 grep the composed dev machine's generated claude and codex pointer scripts for two fixed adapter paths, …/work/allod/memory/adapters/<harness>/… and …/work/agent-memory/adapters/<harness>/…. Those are the framework's default memoryCheckouts ([ "allod/memory" "agent-memory" ]), not what the composed machine declares. The fork's inventory sets profile.memoryCheckouts = [ "allod/memory" ] on the machine the check happens to read, a setting the builder exposes for exactly this purpose, so the generated pointer correctly names one checkout and the check fails it for not naming two.

This is the by-assumption form of the rule allod/archetypes#88 states: the check does not index a data input by a literal name, but it asserts a literal value the template's data happens to produce. The fork-safety witness did not catch it because checks/fork-fixture's dev machines presumably leave memoryCheckouts at the default; a fixture machine there that overrides it would.

Fix shape: derive the expected adapter paths from the composed machine's own memoryCheckouts (the same value modules/ai-agents.nix renders from), assert that each declared checkout appears and, if the intent is to pin the default, that a machine with no override renders both. Then give one fork-fixture dev machine a non-default memoryCheckouts so the witness pins it. Lines 166-169 make the same two-path assertion against the in-repo pi fixture whose memoryCheckouts is [ "allod/memory" ] (line 125); whichever way that currently passes, it is worth reading with the same question.

Until this lands, the fork keeps pi-integration alone on its excluded list; the property it pins for that deployment is covered by its own agent-vm-status and the pointer files on its running machines.

Refs allod/archetypes#88, allod/archetypes#11

After allod/archetypes#88 landed, a deployment fork re-enabled every framework check it had excluded and built each one against its own data at archetypes f62a1b3. Eight of the nine rewritten checks are green there, including consumed-file-carve-out, dev-forge-opt-out, runtime-module-selection, pi-provider-lifecycle, host-user-credentials, vm-facts-coherence and agent-vm-status. One is still red: ``` ERROR: claude pointer missing agent-memory checkout ``` `checks/pi-integration.nix` lines 178-187 grep the composed dev machine's generated claude and codex pointer scripts for two fixed adapter paths, `…/work/allod/memory/adapters/<harness>/…` and `…/work/agent-memory/adapters/<harness>/…`. Those are the framework's default `memoryCheckouts` (`[ "allod/memory" "agent-memory" ]`), not what the composed machine declares. The fork's inventory sets `profile.memoryCheckouts = [ "allod/memory" ]` on the machine the check happens to read, a setting the builder exposes for exactly this purpose, so the generated pointer correctly names one checkout and the check fails it for not naming two. This is the by-assumption form of the rule allod/archetypes#88 states: the check does not index a data input by a literal name, but it asserts a literal value the template's data happens to produce. The fork-safety witness did not catch it because `checks/fork-fixture`'s dev machines presumably leave `memoryCheckouts` at the default; a fixture machine there that overrides it would. Fix shape: derive the expected adapter paths from the composed machine's own `memoryCheckouts` (the same value `modules/ai-agents.nix` renders from), assert that each declared checkout appears and, if the intent is to pin the default, that a machine with no override renders both. Then give one fork-fixture dev machine a non-default `memoryCheckouts` so the witness pins it. Lines 166-169 make the same two-path assertion against the in-repo pi fixture whose `memoryCheckouts` is `[ "allod/memory" ]` (line 125); whichever way that currently passes, it is worth reading with the same question. Until this lands, the fork keeps `pi-integration` alone on its excluded list; the property it pins for that deployment is covered by its own agent-vm-status and the pointer files on its running machines. Refs allod/archetypes#88, allod/archetypes#11
vnprc closed this issue 2026-09-22 17:49:15 +01:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
allod/archetypes#108
No description provided.