docs+prompt: tag-driven flow + /applied RO mount
manager prompt: explain that arbitrary files now travel with the proposal, document the /applied/<n>/.git RO mount and the tag scheme (git show applied/deployed/<id> etc.), call out that applied/main only advances on deployed so a failed build isn't terminal. approvals.md: drop the old per-agent applied.git phrasing in favour of the single /applied RO bind, mention both manager binds together. claude.md scratchpad flips from in-flight to just-landed.
This commit is contained in:
parent
4a8204f035
commit
edb0108ae7
3 changed files with 50 additions and 32 deletions
42
CLAUDE.md
42
CLAUDE.md
|
|
@ -114,25 +114,29 @@ read them à la carte.
|
|||
In-flight or recent context that hasn't earned a section yet.
|
||||
Prune freely.
|
||||
|
||||
- **In flight:** tag-driven config-apply overhaul. Keep the
|
||||
two-repo split (proposed = manager RW, applied = core-only)
|
||||
for safety — agent can rm -rf its own repo but never reaches
|
||||
applied. New flow: at `request_apply_commit` time hive-c0re
|
||||
fetches the manager's commit into applied and tags it
|
||||
`proposal/<id>`; the manager's repo is then dead to core for
|
||||
that approval. Approve/deny/build are encoded as more tags
|
||||
(`approved/`, `building/`, `deployed/`, `failed/`, `denied/`)
|
||||
on the same commit; `applied/main` only fast-forwards on
|
||||
`deployed/`. Failure tags are annotated with the build error;
|
||||
deny tags with the operator note. Manager gets `applied/.git`
|
||||
bind-mounted RO at `/agents/<n>/applied.git` so it can `git
|
||||
show` deployed/failed/denied trees and diff against its own
|
||||
working tree. agent.nix stays the entry point but arbitrary
|
||||
files in the manager's commit are now preserved; `flake.nix`
|
||||
becomes hive-c0re-generated, gitignored, regenerated only on
|
||||
spawn/rebuild. Migration: no in-place. Each existing agent
|
||||
needs `destroy --purge` + re-spawn; tombstones lose their
|
||||
history. See `docs/approvals.md` for the tag state machine.
|
||||
- **Just landed:** tag-driven config-apply overhaul. Two-repo
|
||||
split kept (proposed = manager RW, applied = core-only) for
|
||||
safety. New flow: at `request_apply_commit` time hive-c0re
|
||||
fetches the manager's commit into applied and pins it as
|
||||
`proposal/<id>`; the manager-side repo is then irrelevant
|
||||
for that approval. Approve / deny / build walk through more
|
||||
tags (`approved/`, `building/`, `deployed/`, `failed/`,
|
||||
`denied/`) on the same commit; `applied/main` only
|
||||
fast-forwards on `deployed/`. `failed/` and `denied/` are
|
||||
annotated — body is the build error or the operator's deny
|
||||
note respectively. Manager has `/applied` bind-mounted RO
|
||||
(whole tree) so `git fetch /applied/<n>/.git
|
||||
'refs/tags/*:refs/tags/applied/*'` mirrors every relevant
|
||||
tag into its proposed clone. `agent.nix` stays the entry
|
||||
point; the whole tracked tree is now preserved
|
||||
through apply (arbitrary files supported). The wrapper
|
||||
`flake.nix` is regenerated by hive-c0re every
|
||||
spawn/rebuild but never tracked, so the applied log is
|
||||
exactly the manager's commits in deploy order. Migration:
|
||||
no in-place — pre-overhaul applied dirs are detected via
|
||||
the missing `deployed/0` tag and `setup_applied` bails
|
||||
with `destroy --purge` instructions. See
|
||||
`docs/approvals.md`.
|
||||
- **Recent (since last compaction):** inline +/- diffs on
|
||||
Write/Edit, send full body via collapsed details, operator
|
||||
cancel + ttl on questions, deny-with-reason, dashboard
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue