Skip to content

feat(prelude): WORKSPACE block tells the agent about local-disk tiering - #12

Merged
ligon merged 2 commits into
mainfrom
feat/local-tier-prelude
Sep 9, 2026
Merged

ligon merged 2 commits into
mainfrom
feat/local-tier-prelude

Conversation

@ligon

@ligon ligon commented Sep 9, 2026

Copy link
Copy Markdown
Owner

Step (3) of docs/local-disk-tiering.org. Stacked on #11 (base is feat/local-tier-unconfined); retarget to main once #11 merges.

When tiering is on, the prelude gains a WORKSPACE (local-disk tiering) block after the target prompt: the clone path (literal for salloc, $SLURM_JOB_ID for confined), the shared mirror as origin with the mailbox rule, what the hook prints / what REJECTED means, snapshot cadence and the one-line git log that shows the last snapshot, cache/$TMPDIR location, the per-mirror warn file, where the handoff goes, and that a dispatched job cannot see the clone.

Docs: persistent-presence.org handoff path moves into the working tree (committed). Correction to #11's body: the poetry/MCP helpers already skip remote targets, so there was no gap.

Tests: 719 passed CI-style; mypy unchanged.

🤖 Generated with Claude Code

https://claude.ai/code/session_01StcQgXQDE4F6eJer1sEXRb

Sue the Coder and others added 2 commits September 9, 2026 12:23
Step (3) of docs/local-disk-tiering.org.  When tiering is on, the prelude
gains a "WORKSPACE (local-disk tiering)" block after the target prompt:
the working clone's path (literal for salloc launches, spelled with
$SLURM_JOB_ID for confined ones, where the id is not yet known), the
shared mirror as origin with the mailbox rule, what the post-commit hook
prints and what a REJECTED publish means, the snapshot cadence and the
one-line `git log` that shows the last snapshot (the prelude is rendered
before launch, so it cannot print the time itself), where caches and
$TMPDIR live, the per-mirror warn file, where the handoff note goes, and
that a job dispatched to another node cannot see the clone.

Docs: persistent-presence.org's handoff path moves into the working tree
(committed) since writing into ~/mirrors/<mirror> would block every
publish; README and the design note record step (3).

Correction to PR #11's body: _maybe_run_poetry_auto_install and
_maybe_suggest_mcp_servers already return early for remote targets, so
there was no shared-mirror gap to close.

Tests: block present with literal paths on an unconfined launch (staged
prelude captured over the executor), absent without tiering, runtime job
id and "deadline warning only" cadence on a confined launch.  719 passed
CI-style; mypy unchanged.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01StcQgXQDE4F6eJer1sEXRb
The confined WORKSPACE block spelled the clone as
<root>/job$SLURM_JOB_ID/mirrors/<token>; an agent pasting that into a
tool gets a literal "$SLURM_JOB_ID" segment.  $SUCODER_LOCAL_ROOT is what
the batch body actually exports before tmux starts, and it is the same
directory, so spell the path with it and say it is exported.

Adds an end-to-end launch_agent test for a confined target with tiering
(executor has no job id yet): the block reaches the staged prelude in
the confined spelling.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01StcQgXQDE4F6eJer1sEXRb
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