pi-integration asserts the template's default memory checkouts, not the composed machine's own #108
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/archetypes#108
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
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:checks/pi-integration.nixlines 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 defaultmemoryCheckouts([ "allod/memory" "agent-memory" ]), not what the composed machine declares. The fork's inventory setsprofile.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 leavememoryCheckoutsat 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 valuemodules/ai-agents.nixrenders 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-defaultmemoryCheckoutsso the witness pins it. Lines 166-169 make the same two-path assertion against the in-repo pi fixture whosememoryCheckoutsis[ "allod/memory" ](line 125); whichever way that currently passes, it is worth reading with the same question.Until this lands, the fork keeps
pi-integrationalone 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