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:
müde 2026-05-15 23:03:48 +02:00
parent 4a8204f035
commit edb0108ae7
3 changed files with 50 additions and 32 deletions

View file

@ -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