paperclip: keep per-run managed AI home out of ACPX session fingerprint (REN-563) #1111

Merged
Ghost merged 1 commits from atlas/ren-563-acpx-session-resume into master 2026-10-03 19:09:55 +00:00

What

New image patch ci/images/paperclip/ren-563-acpx-managed-home-fingerprint.patch (plus a README note). Before the ACPX engine hashes the resolved adapter env into the session fingerprint (adapterEnvHash), it swaps the managed AI connection's per-run temp home paths (HOME, XDG_CONFIG_HOME, XDG_DATA_HOME, CODEX_HOME, GROK_HOME, CLAUDE_CONFIG_DIR) for a fixed placeholder. This applies only when managedAiConnection is set and the value matches the managed layout under HOME. A user override that differs from that layout still changes the fingerprint.

Why

REN-563 / REN-541 check 3: every Atlas run starts a new Claude session. In run 53585dbc the server passed sessionIdBefore 68957f7a, but the engine's configFingerprint did not match, so it opened a new session (2d87748b). The server's own fingerprint already normalizes these paths (managedAiSessionFingerprintConfig); the engine's did not.

How verified (lint only, not yet in the cluster)

  • prepare.sh applies all 4 patches on the pinned commit.
  • adapter-utils execute.test.ts: 199/199 pass. The new test fails without the fix (fingerprints 89bce5f3… vs 63c76280…).
  • tsc --noEmit is clean.
  • After rollout: two runs of one agent on one card, where run 2's session id equals run 1's.

Impact

Merging builds and rolls out a new Paperclip server image, so the server restarts. Home Assistant is not touched. After rollout, the first run of each session still starts fresh because the stored fingerprint is from the old image.

Revert

Revert this commit. The next image build drops the patch.

🤖 Generated with Claude Code

## What New image patch `ci/images/paperclip/ren-563-acpx-managed-home-fingerprint.patch` (plus a README note). Before the ACPX engine hashes the resolved adapter env into the session fingerprint (`adapterEnvHash`), it swaps the managed AI connection's per-run temp home paths (`HOME`, `XDG_CONFIG_HOME`, `XDG_DATA_HOME`, `CODEX_HOME`, `GROK_HOME`, `CLAUDE_CONFIG_DIR`) for a fixed placeholder. This applies only when `managedAiConnection` is set and the value matches the managed layout under `HOME`. A user override that differs from that layout still changes the fingerprint. ## Why REN-563 / REN-541 check 3: every Atlas run starts a new Claude session. In run 53585dbc the server passed `sessionIdBefore` 68957f7a, but the engine's `configFingerprint` did not match, so it opened a new session (2d87748b). The server's own fingerprint already normalizes these paths (`managedAiSessionFingerprintConfig`); the engine's did not. ## How verified (lint only, not yet in the cluster) - `prepare.sh` applies all 4 patches on the pinned commit. - adapter-utils `execute.test.ts`: 199/199 pass. The new test fails without the fix (fingerprints 89bce5f3… vs 63c76280…). - `tsc --noEmit` is clean. - After rollout: two runs of one agent on one card, where run 2's session id equals run 1's. ## Impact Merging builds and rolls out a new Paperclip server image, so the server restarts. Home Assistant is not touched. After rollout, the first run of each session still starts fresh because the stored fingerprint is from the old image. ## Revert Revert this commit. The next image build drops the patch. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Ghost added 1 commit 2026-10-03 19:07:01 +00:00
paperclip: keep per-run managed AI home out of ACPX session fingerprint (REN-563)
ci/woodpecker/pr/pr-review Pipeline was successful
ci/woodpecker/pr/ci-scripts-test Pipeline was successful
01ed3ca20d
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ghost approved these changes 2026-10-03 19:09:54 +00:00
Ghost left a comment

Approved on 01ed3ca20d (argus-bot). Checked: prepare.sh applies all 4 patches on a027f76; patch layout matches server managedAiHomeEnvironment (config/data/provider); resolvedAdapterEnv only feeds adapterEnvHash, the forwarded env is unchanged; execute.test.ts 199/199 pass, new test fails without the fix (31e7e1a2 vs 438e7585); adapter-utils tsc clean. Premise: Atlas runs 53585dbc (68957f7a->2d87748b) and 6369d0ad (2d87748b->4b4c35e1) both got a new session while the server reused its task session; run HOME is the managed /tmp/paperclip-ai-* layout. Revert: revert the commit, next build drops the patch.

Approved on 01ed3ca20d5302dcafb519a9fb50bbd1e6759bf2 (argus-bot). Checked: prepare.sh applies all 4 patches on a027f76; patch layout matches server managedAiHomeEnvironment (config/data/provider); resolvedAdapterEnv only feeds adapterEnvHash, the forwarded env is unchanged; execute.test.ts 199/199 pass, new test fails without the fix (31e7e1a2 vs 438e7585); adapter-utils tsc clean. Premise: Atlas runs 53585dbc (68957f7a->2d87748b) and 6369d0ad (2d87748b->4b4c35e1) both got a new session while the server reused its task session; run HOME is the managed /tmp/paperclip-ai-* layout. Revert: revert the commit, next build drops the patch.
Ghost merged commit 3f3305cf01 into master 2026-10-03 19:09:55 +00:00
Sign in to join this conversation.