ai-agents: warn loudly when a memory checkout is absent at activation #128

Merged
vnprc merged 3 commits from agent/memory-link-warn into master 2026-10-01 21:00:42 +01:00
Member

A dev machine whose memory checkout is missing at activation now says so: ai-agents prints a loud warning naming the path for every memory-flagged checkout that is absent or has no memory.md, instead of silently building a link to nowhere that fails every harness's memory read at session start. Nothing else changes for a running machine: the symlink is still created exactly as before (a fresh machine has no checkout at its first activation by design, and a host-provided one is absent until the hypervisor injects it), the activation never aborts, and a machine with every checkout present prints nothing new. What proves it: the pi-integration check now executes the generated activation script against a fixture home and asserts the warning text with a checkout removed, no warning with all present, and an unchanged link target either way. If it is wrong, revert; the change adds output only.

Closes allod/archetypes#127
Refs allod/strategy#62

Risk

R2: generated activation behavior, but additive and non-aborting through home-manager's warnEcho, with the link line untouched. The worst credible failure after validation is a spurious warning line at activation. Rollback is a straight revert.

Validation

  • nix build .#checks.x86_64-linux.pi-integration: green; the check runs the real llmMemoryLinks script three times (all present, one directory absent, one memory.md absent).
  • allod check: all 35 steps passed (22 checks built).
  • Sabotage: with the absent-directory warning replaced by a no-op in a scratch clone, the check failed with expected an absent-checkout warning, got:; the branch itself is unchanged.
  • One cold cross-family review (codex gpt-5.6-sol): no defects; its two comment items were trimmed to one line each in the second commit.
A dev machine whose memory checkout is missing at activation now says so: `ai-agents` prints a loud warning naming the path for every memory-flagged checkout that is absent or has no `memory.md`, instead of silently building a link to nowhere that fails every harness's memory read at session start. Nothing else changes for a running machine: the symlink is still created exactly as before (a fresh machine has no checkout at its first activation by design, and a host-provided one is absent until the hypervisor injects it), the activation never aborts, and a machine with every checkout present prints nothing new. What proves it: the `pi-integration` check now executes the generated activation script against a fixture home and asserts the warning text with a checkout removed, no warning with all present, and an unchanged link target either way. If it is wrong, revert; the change adds output only. Closes allod/archetypes#127 Refs allod/strategy#62 ## Risk R2: generated activation behavior, but additive and non-aborting through home-manager's `warnEcho`, with the link line untouched. The worst credible failure after validation is a spurious warning line at activation. Rollback is a straight revert. ## Validation - `nix build .#checks.x86_64-linux.pi-integration`: green; the check runs the real `llmMemoryLinks` script three times (all present, one directory absent, one `memory.md` absent). - `allod check`: all 35 steps passed (22 checks built). - Sabotage: with the absent-directory warning replaced by a no-op in a scratch clone, the check failed with `expected an absent-checkout warning, got:`; the branch itself is unchanged. - One cold cross-family review (codex gpt-5.6-sol): no defects; its two comment items were trimmed to one line each in the second commit.
A missing memory checkout (always true on a fresh machine's first
activation, and on any host whose checkout the hypervisor injects
later) left the Claude symlink dangling and failed every harness's
session-start memory read silently. llmMemoryLinks now checks every
memoryCheckouts entry, not only the symlink target, and warns via
warnEcho instead of refusing, since refusing would break the designed
provisioning order.

Refs allod/archetypes#127
vnprc approved these changes 2026-10-01 21:00:37 +01:00
vnprc merged commit fb364a76cf into master 2026-10-01 21:00:42 +01:00
vnprc deleted branch agent/memory-link-warn 2026-10-01 21:00:42 +01:00
Sign in to join this conversation.
No description provided.