@@ -4,15 +4,46 @@ The living handoff for whoever owns fabric next (there was none before; keep thi
44current). This records what is DONE, what is IN FLIGHT, and what is NEXT — the
55things the repo history alone does not carry.
66
7- _ Last updated: 2026-09-05 by Silber.fabric-codex. Silber and hetz run
8- ` 0.2.2+a2f8a73 ` , measured by Silber.cos on 2026-09-05. Bluey is away. Nathan
9- last saw Bluey on ` 0.2.1+48208e4 ` at about 22:30 on 2026-09-04. Treat that as
10- last-known, not current. Ask Silber.cos before each release or deployment._
11-
12- For extraction steps 6 and 8, merge on green without asking for a separate
13- Silber.cos approval. Silber.cos holds the step 7 activation gate and every
14- release or deployment gate. Before any deployment, prove matched-pair rollback
15- on hetz. macOS needs a detached update supervisor; the current change adds it.
7+ _ Last updated: 2026-09-05 by Silber.fabric-codex. Main is ` f5a88b7 ` ._
8+
9+ ## Latest handoff — 2026-09-05
10+
11+ PR #185 merged at ` f5a88b7 ` . It removes the machine-wide shell and exec policy
12+ gates. Each peer ` allow ` array is now the complete service policy. Old command
13+ flags remain hidden parse-only compatibility inputs. Generated launchd and
14+ systemd definitions no longer contain those flags.
15+
16+ The legacy migration uses an intersection. A true old key preserves only the
17+ matching grants already present in peer arrays. A false or missing old key
18+ removes the matching grants. Fabric reports each removed grant and whether the
19+ old key was false or absent. An unknown format or failed migration write makes
20+ a reload fail closed.
21+
22+ Format 2 writes generated ` allow_shell ` and ` allow_exec ` rollback mirrors. The
23+ new reader ignores them as policy. A restored 0.2.5 binary reads them and gets
24+ the same effective policy that existed before migration. Remove these mirrors
25+ in 0.2.7 only when the actual rollback binary understands format 2. A release
26+ number alone does not prove that condition because a machine can skip a
27+ release.
28+
29+ Silber and Hetz received the approved format 2 config markers before PR #185
30+ merged. Their peer arrays did not change. Each host passed ` fabric doctor ` .
31+ Real exec worked from Silber to Hetz and from Hetz to Silber. The installed
32+ 0.2.5 binary performed a no-op peer write on each host, and the full file stayed
33+ byte-identical. The marker and rollback warning survived both writes.
34+
35+ All PR #185 merge-result checks passed. The local proof was 533 active library
36+ tests, 31 local-slice tests, 14 shell tests, and 12 provisioning tests. Five
37+ library measurements stayed ignored. ` cargo check --all-targets ` also passed.
38+
39+ No release or deployment followed the merge. A release or deployment requires
40+ a fresh exact gate from Silber.cos. At this handoff, Silber and Hetz both run
41+ ` 0.2.5+4dc0cac ` . Silber.cos re-read them with ` fabric --version ` on Silber and
42+ ` fabric exec hetz -- fabric --version ` for Hetz. Re-run those commands before
43+ using the recorded value because an update makes it stale immediately.
44+
45+ No code job remains live from this work. Do not infer a release task from the
46+ merged change or from this note. Wait for a native request.
1647
1748## Current main — 2026-09-05
1849
0 commit comments