Skip to content

Plan: file ownership, reproducible re-init, and upgrades - #7

Open
JEHoctor wants to merge 2 commits into
mainfrom
file-ownership-plan
Open

JEHoctor wants to merge 2 commits into
mainfrom
file-ownership-plan

Conversation

@JEHoctor

Copy link
Copy Markdown
Owner

A design document only, plans/2026-09-21-file-ownership-and-upgrades.md. Draft for discussion, not scheduled.

It inventories every file sandcat writes and the contract each is under (regenerate / create-once / managed region), calls out the accidental fourth category — files init regenerates but the tool also invites you to edit (settings.json, compose-all.yml, Dockerfile.app) — and proposes:

  • a manifest of init choices so re-init and upgrade are reproducible (ships alone, additive);
  • owned overlays (compose.user.yml, Dockerfile.user, a managed key in settings.json) so no generated file is ever user-edited;
  • small fixes: destroy keeping settings.local.json, user-settings merge for every agent, generated-file headers.

§6 records the template-engine change (text/template for the generated files) as a related step gated on the port's bash-removal and parity-retirement, since it alters template sources the bash tree shares.

Independent of the port stack; plans/ is also introduced by #3, same directory, different file, so the two merge cleanly in either order.

🤖 Generated with Claude Code

https://claude.ai/code/session_01YKma722KMnAX3LcDLUYDQ5

JEHoctor and others added 2 commits September 21, 2026 19:43
Inventories every file sandcat writes and the contract each is under
today, names the accidental fourth category (regenerated but
user-edited), and proposes a manifest of init choices, owned overlays
for the files users are invited to edit, and an upgrade verb. The
template-engine change is recorded as a related step that waits for
the port's bash-removal and parity-retirement steps, since it changes
template sources the bash tree shares.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YKma722KMnAX3LcDLUYDQ5
Records that nothing today covers software outside nixpkgs — every
candidate hook was checked and none works — and specifies two overlays:
Dockerfile.user for baking into the image (system paths only, BuildKit
secrets, host-network caveat) and app-user-init.d/ for start-time work
that must run inside the sandbox's egress controls. Devcontainer
features are noted as a direction for the multi-project case.

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