# Session ledger -- in-flight work continuity record

**Purpose.** Long ops sessions on this cloud routinely exceed a single context window
and get COMPACTED (sometimes several times). Anything living only in the chat scrollback
is lost at compaction. This ledger is the durable, committed record of what is IN FLIGHT,
so any session -- after a compaction, or a fresh one -- can resume without losing pending work.

**How to use it (standing practice).**
1. At session start: read this ledger AND run `bash scripts/ledger-scan.sh`. Reconcile.
2. `ledger-scan.sh` is the DRIFT CHECK -- it derives the open-work it reliably can
   (PROPOSED/OPEN decisions, OPEN security rows, next-free numbers) straight from the repo.
   This narrative must not claim CLOSED anything the scan shows OPEN, nor omit what it surfaces.
3. Update this ledger at every deliverable/commit -- it is a standing deliverable like the
   changelog. The changelog says what CHANGED; this ledger says what is still OPEN.
4. The machine-derived block below is seeded from a scan; re-run the scan and re-seed rather
   than editing it by hand.

**SINGLE STREAM (collapsed 2026-07-13).** This ledger previously carried three parallel,
separately-owned stream sections (`main-chat`, `jumphost`, `shared`) plus ~30 append-only
session narratives. Those streams are CLOSED and reconciled into the one list below. There is
now ONE stream. Do not re-introduce per-stream sections.

**Where the history went.** The 2,189-line session-by-session narrative is NOT lost -- it is in
git history (the parent of the collapse commit) and, in durable form, in the 65 `docs/changelog-*.md`
files, `docs/design-decisions.md`, and the incident reports. This ledger deliberately carries only
what is still OPEN, plus the facts that would otherwise be lost because they live nowhere else.

---

<!-- SECTION: machine-derived | OWNER: ledger-scan (regenerate; never hand-edit) -->
## Machine-derived (re-seed from `scripts/ledger-scan.sh`; do not hand-edit)

_RE-SEEDED 2026-08-08 (part 3 close) from `bash scripts/ledger-scan.sh`. The prior seed was
2026-08-05; it had gone STALE on the SEC count (29 -> 28, SEC-031 CLOSED 2026-08-07), the DOCFIX
next-free (210 -> 214) and the BUNDLEFIX next-free (053 -> 059) -- exactly the drift this block
exists to prevent (the per-session summaries carried the current figures while this block did
not). Re-run the scan to refresh._

- **PROPOSED / OPEN decisions (4):** D-068 (Vault substrate hardening, Roosevelt -- sole
  remainder is Q2 path selection at Roosevelt Vault design time), D-131 (node-facing DNS for
  rack-only controllers [ARCH] -- sub-4 open + the pinned DNS architectural review), D-132
  (Roosevelt per-DC MAAS topology [ARCH], operator-pinned to the next deployment), D-142
  (vault-init workflow QoL sweep -- APPROVED-IN-PRINCIPLE / IMPL-DEFERRED, R2 off-host
  transport unresolved). D-136/D-137 dropped off the scan when ADOPTED (correct). Status
  lines in `docs/design-decisions.md` are the only ruling authority.
- **OPEN security rows:** **28** per `bash scripts/ledger-scan.sh` (was 29 at the 2026-08-05
  seed). **SEC-031 CLOSED 2026-08-07** -- the dc1 edge was REBUILT via the proven dc0 procedure
  (`dc-egress-check dc1` 8/8), so the open-router live-exposure is resolved. Still open and
  notable: SEC-033 2026-08-04 (tls-certificates relation databag exposes vault's global-client
  private key to any juju model reader; interface-level, mitigate via juju RBAC) and SEC-020
  (per-DC MAAS/creds consolidation). The SEC register of record is `docs/security-ledger.md`;
  row-level dispositions live THERE only (GA-R4/F3) -- this block carries pointer + count,
  never rows.
- **Next-free numbers:** D = **143**, DOCFIX = **214**, BUNDLEFIX = **059** (scan highest
  assigned: D-142 / DOCFIX-213 / BUNDLEFIX-058). DOCFIX moved 210 -> 214 since the last seed
  (through DOCFIX-213, phase-04 network scripts MAAS_PROFILE-aware, 2026-08-08); BUNDLEFIX moved
  053 -> 059 (BUNDLEFIX-056/057/058, designate/dashboard binding conformance, 2026-08-06). No
  new numbers assigned 2026-08-08 part 3 (the geneve-over-v6 D-number is PROPOSED, not minted).
- **Gates:** G17 OPENED 2026-07-27 by operator ruling (node-side artifact reachability split out
  of Stage 4; the gate table in `docs/CURRENT-STATE.md` is the authority).
- **Standing numbering rule:** never write an identifier-shaped token (D-/DOCFIX-/BUNDLEFIX-NNN)
  ABOVE the real high-water mark anywhere in `docs/` or `runbooks/` prose -- historically a
  decoy token in prose inflated the next-free counter (hardened in DOCFIX-174).
- **`ledger-scan` D-115 false-positive: RESOLVED.** The scan keys on the LAST `**Status:**`
  line per `## D-NNN:` block, not arbitrary body prose. The general hygiene -- trust the
  Status line over body text -- still holds.

<!-- END: machine-derived -->

---

## ROTATED 2026-07-19 (GA-R4 rule 6 -- the one-time rotation; F1 cap now enforceable)

The pre-rotation bodies (~1080 lines: Live state, OPEN WORK VR1/VR0, NetBox
write-path bugs, PINNED rulings, standing lessons, state facts, project-
completion, NetBox import narrative) moved VERBATIM to
`docs/archive/session-ledger-rotated-20260719.md`. Standing lessons + VR0
state facts were ROUTED to durable homes first (platform-traps already
carried most; juju format=line -> appendix-A; guard discipline ->
operating-discipline; VR0 cloud facts -> maas-as-built-reference.md).
Open work is machine-derived above + CURRENT-STATE.md; do not re-grow
bodies here -- sessions append BOUNDED summaries only (15-line cap).

Retained compact blocks (still-live obligations without another home yet):
- **NetBox write-path bugs:** ROUTED 2026-07-23 to
  `docs/netbox-write-path-findings.md` (the durable home; the rotated-body
  section is history). Open residue: dumper blind spot + duplicate-CIDR
  collapse unfixed, hardened fidelity re-run + fix re-verification owed --
  ALL gated on the next NetBox WRITE campaign, none current.
- **Project-completion (after D-011 passes):** consolidate the 10 per-phase
  do-documents into a v1 deploy runbook; flip repo PRIVATE (SEC-004);
  revoke/rotate SEC-005/006/007; v2-deferred: GitBucket SSH, IPv6
  dual-stack, NetBox import bundle.
- **Deployment-close consideration review -- tenant-onboarding items (PINNED
  2026-07-21, operator-directed):** the committee review of Chat's three
  tenant-onboarding inserts refuted each as written but identified corrected
  residue; the operator DEFERRED all of it to an end-of-deployment review
  (posture and end goals are shifting this deployment -- reconsider fit then;
  nothing lands before that review). Items: (1) appendix-A symptom entry for
  sub-floor OR nonexistent flavor -> cluster-create rejection (capi-helm
  thresholds are CONFIG OPTIONS, defaults 2 vCPU / 2048 MB RAM, as-built sets
  neither; the RAM error also fires for mistyped flavors; command shape
  `--public -f json`, never the deprecated `--long` -- archive R9); (2)
  appendix-A entry for tenant-net-cannot-reach-public-keystone -> nodes
  register but stall uninitialized (auth_url in the per-cluster clouds secret
  is hardcoded PUBLIC at capi-helm 1.4.0; as-built carries no interface key),
  pointing at the phase-08 D-011.3 probe, plus a per-DC precondition line in
  dc-dc-phase6 Step 12; (3) tenant contract hardening list: PROPOSED
  `-svc`-only password neutralization (admin-rotate to discarded value;
  keystone `lock_password` blocks password CHANGE, not auth; NEVER lock
  `-cluster` -- it keeps PASSWORD auth permanently per D-066); (4) flavor
  catalog marking = commercial catalog policy, operator prioritization only.
  RE-VERIFY every citation at review time -- the full verdict lives in the
  2026-07-21 disconnected-session transcript, not in a repo surface.


## ROTATED 2026-07-26 (GA-R4 rule 3 / F1 -- oldest-first, cap restored)

The eight oldest closed-session summaries (2026-07-18 through the fifth 2026-07-21
session) moved VERBATIM to `docs/archive/session-ledger-rotated-20260726.md`. The live
ledger was 413 lines against the 300-line cap -- a breach the 2026-07-25 close recorded as
OWED. Each rotated summary still points at its own archived full body; only the summaries
moved. Sessions from 2026-07-22 onward remain live below.

## ROTATED 2026-07-27 (GA-R4 rule 3 / F1 -- oldest-first, cap restored at the Stage 4 close)

The three oldest live summaries (all 2026-07-23: G12 dc1 edge->commission+merge, Stage 4
OPEN+carve+mirrors, queue pass + D-068 rulings) moved VERBATIM to
`docs/archive/session-ledger-rotated-20260727.md`. The live ledger was 317 lines against
the 300-line cap. Sessions from 2026-07-24 onward remain live below.

## ROTATED 2026-07-27 (second pass, GA-R4 rule 3 / F1 -- cap restored at the grounding-audit close)

The oldest remaining live summary (2026-07-24, caveman guardrails + DC1 proxy-build start)
moved VERBATIM to `docs/archive/session-ledger-rotated-20260727.md`. The live ledger was 305
lines against the 300-line cap. Sessions from 2026-07-25 onward remain live below.

## ROTATED 2026-07-27 (third pass, GA-R4 rule 3 / F1 -- cap restored at the grounding-audit close)

The TWO oldest remaining live summaries -- 2026-07-25 handoff-pack execution + recon +
Chat D-136 coupling, and 2026-07-25 MAAS admin-account recovery (SEC-020) -- moved VERBATIM
to `docs/archive/session-ledger-rotated-20260727.md`. The live ledger was 321 lines against
the 300-line cap; one pass left it under. (This paragraph was left MANGLED by an earlier
edit -- a sentence broke off mid-number and ran into a stray fragment of the
2026-07-25 MAAS-admin-recovery summary. Found by a 2026-07-29 sweep and repaired here;
that summary's full body is at
docs/archive/changelogs/changelog-20260725-maas-admin-recovery.md.)

## ROTATED 2026-07-27 (fourth pass, GA-R4 rule 3 / F1 -- cap restored at this close)

The oldest remaining live summary ("POST-CLOSE ADDENDUM 2026-07-26 -- D-137 ADOPTED (GA-R4; 07-18/07-21 addendum precedent)") moved VERBATIM to
`docs/archive/session-ledger-rotated-20260727.md`. The live ledger was 316 lines against the 300-line cap.

## ROTATED 2026-07-29 (GA-R4 rule 3 / F1 -- oldest-first, cap restored at this close)

The TWO oldest live summaries -- 2026-07-26 (D-137 build + committee audit + remediation)
and 2026-07-27 (creds consolidation + the STAGE 4 CLOSE-OUT) -- moved VERBATIM to
`docs/archive/session-ledger-rotated-20260729.md`. The live ledger would otherwise have
been 321 lines against the 300-line cap once this session's bookend was appended.
Sessions from the 2026-07-27 grounding audit onward remain live below.

## ROTATED 2026-07-30 (GA-R4 rule 3 / F1 -- oldest-first, cap restored at this close)

The TWO oldest live summaries -- the 2026-07-27 STAGE-5 GROUNDING AUDIT close and its
14-RULINGS post-close addendum -- moved VERBATIM to
`docs/archive/session-ledger-rotated-20260730.md`. The live ledger stood at exactly 300
lines, so the next append would have breached the cap. Rotated HERE rather than leaving it
owed, because the next session is directed straight at the juju deployment.
Sessions from the 2026-07-27 Phase-0 close onward remain live below.

## ROTATED 2026-08-02 (b) (GA-R4 rule 3 / F1 -- cap restored at this close)

The TWO oldest live summaries (2026-07-30 part 3 -- Stage 5 opened, three bootstraps,
D-138 + D-132 ruled; and part 4 -- dc0 region topology built, cutover blocked on a
permission wall) moved VERBATIM to `docs/archive/session-ledger-rotated-20260802b.md`.
The live ledger stood at 294 lines and this close's summary would have breached the cap.

## ROTATED 2026-08-03 (GA-R4 rule 3 / F1 -- cap restored at this close)

The oldest live summary (2026-07-30 part 5 -- dc0 migrated to its own MAAS region, 10/10
Ready, four named gates green) moved VERBATIM to `docs/archive/session-ledger-rotated-20260803.md`.
The live ledger would have breached the 300-line cap with this close's summary.

## ROTATED 2026-08-04 (GA-R4 rule 3 / F1 -- cap restored at this close)

The oldest closed-session summary (2026-07-31 -- dc0 node carve COMPLETE, controller
bootstrapped) moved VERBATIM to `docs/archive/session-ledger-rotated-20260804.md`. The live
ledger stood at 292 lines and this close's summary would have breached the 300-line cap.

## ROTATED 2026-07-31 (GA-R4 rule 3 / F1 -- cap restored at this close)

The oldest closed-session summary moved VERBATIM to
`docs/archive/session-ledger-rotated-20260731.md`. The live ledger stood at 295 lines and
this close's summary would have breached the 300-line cap.

## ROTATED 2026-08-05 (GA-R4 rule 3 / F1 -- oldest-first, cap restored at this close)

The two oldest closed-session summaries (2026-07-31 prefer-ipv6/deploy-then-teardown, and
2026-08-01 snap-proxy/D-139/IPv6) moved VERBATIM to
`docs/archive/session-ledger-rotated-20260805.md`. The live ledger stood at 315 lines and the
2026-08-05 (part 2) close breached the 300-line cap. (The 2026-08-01 rotation's own pointer ->
`docs/archive/session-ledger-rotated-20260801.md` is subsumed here; that archive is unchanged.)

## ROTATED 2026-08-02 (GA-R4 rule 3 / F1 -- cap restored at this close)

The oldest closed-session summary moved VERBATIM to
`docs/archive/session-ledger-rotated-20260802.md`. The live ledger stood at 283 lines and
this close's summary would have breached the 300-line cap.

## ROTATED 2026-08-07 (GA-R4 rule 3 / F1 -- oldest-first, cap restored at this close)

The oldest closed-session summaries (2026-08-03 -- Stage 5 dc0 bundle DEPLOYED, controller
rebuilt Path C; AND 2026-08-04 -- ovn-central cert root-caused + wired for redeploy) moved
VERBATIM to `docs/archive/session-ledger-rotated-20260807.md`. Rotated oldest-first across the
2026-08-07 closes to keep the live ledger under the 300-line cap (GA-R4 rule 3).

## ROTATED 2026-08-08 (GA-R4 rule 3 -- oldest-first, cap restored at this close)

The two oldest closed-session summaries (2026-08-06 -- Task #2 D-020 vault-metal-only; AND
2026-08-06 part 2 -- F4 + dc-ha-scaleup retired + memcached 1->3) moved VERBATIM to
`docs/archive/session-ledger-rotated-20260808.md`. Rotated at the 2026-08-08 dc0-activation
close to keep the live ledger under the 300-line cap (GA-R4 rule 3).

## ROTATED 2026-08-09 (GA-R4 rule 3 -- oldest-first, cap restored at the 2026-08-08 part-3 close)

The two oldest closed-session summaries (2026-08-06 part 3 -- phase-03 core-verify F-CV1/2/3;
AND 2026-08-06/07 -- Step 3.4 G3 + per-DC tailscale rulings + .7 VMs stood up) moved VERBATIM to
`docs/archive/session-ledger-rotated-20260809.md`. Rotated at the 2026-08-08 (part 3) close
(amphora build FIXED + geneve-over-v6 root-caused) to keep the live ledger under the 300-line cap.

At the **2026-08-09 (open-items review) close**, the two **2026-08-07** blocks (dc0 tailscale +
dc1 region; and dc1 region STANDUP + SEC-031 edge rebuilt) were APPENDED VERBATIM to that same
`session-ledger-rotated-20260809.md` (oldest-first preserved) for the same cap reason.

## SESSION CLOSE 2026-08-08 -- dc0 .7 tailscale FIXED (advertise-only) + MAJOR 10.13 re-IP PIVOT + dc0-full-deployment checkpoint plan (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; 2 commits (02e0b12, faef662) UNPUSHED (operator push decision pending) + this bookend uncommitted (savegame prepares, does not commit). voffice1 at a62e4b9 (=origin; lags this host by 2 -- pull after push). Scan: 4 open decisions, SEC 28, next-free D-143/DOCFIX-213/BUNDLEFIX-059.
- **PIVOT (operator):** 10.12.0.0/16 collides with the still-online IPv4 cloud (surfaced at Headscale). Drive dc0 to FULL deployment as a checkpoint, then TEARDOWN+REDEPLOY on 10.13.0.0/16 (never edit live infra). OWED: a GA-R5 ruling + CURRENT-STATE pivot update. Background agent drafting the 10.13 subnetting (Task #2).
- **dc0 .7 tailscale:** first join with --accept-routes BLACKHOLED its own L3 (locked out) -> recovered via qemu-nbd offline-mask -> purged + REBUILT advertise-only (TSIP 100.64.0.57, Running, route UNAPPROVED -- operator STOPPED the tailscale workstream; do NOT approve 10.12.8.0/22). Tool fixed advertise-only + --authkey=file: + check guards (own-subnet, control-reach); harness 27/0, repo-lint 0-fail.
- **dc1 HELD** (0 machines in vr1-dc1-region; all nodes powered off). **dc0 scope RULED:** "activate + smoke-test" (networks + Octavia 1-LB + Designate 1-zone + wrap gates; Magnum DEFERRED). dc0 measured 66 machines/162 units, all core services active; only octavia/designate/ceph-rbd-mirror blocked; tenant-resource-empty.
- **OWNED:** a wrong "profile wiped" NEGATIVE rode into a changelog (profiles were in the snap db path; RETRACTED + corrected); pkill self-match killed my own ssh; read a 90s timeout as a failed join that had SUCCEEDED at ~7min. Instrument-currency #22. run-logged NOT opened (Nth).
- Pinned tasks #1-#4 (dc0 checkpoint; 10.13 NetBox scope; NetBox on vcloud; Chat repo-consolidation).
- **NEXT:** operator PUSH 02e0b12+faef662 -> voffice1 pull; re-IP GA-R5 ruling + CURRENT-STATE pivot; MAAS-profile fix on the racks (existing+rebuild); rebuild MAAS nest DC0>regional>rack, NO migration; dc0 activation resolving the D-138 co-location gap. Sweep: docs/audit/queued-findings-20260808-dc0-tailscale-incident-reip-pivot.txt (F1-F11). Body: docs/changelog-20260807-dc0-tailscale-install.md. Status ONLY in CURRENT-STATE.md.

## SESSION CLOSE 2026-08-08 (part 2) -- dc0 activation checkpoint: F3 RESOLVED + provider net + G18 RULED + Octavia CORE (amphora build INCIDENT) (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; **4 commits UNPUSHED** (f85daa7 0e8b659 295185d a6340e6) + this bookend (savegame prepares, does not commit). voffice1 == origin `a25ed99` (behind this host by 4; `git pull` AFTER operator push -- Step 1b). Scan: 4 open decisions, SEC 28, next-free D-143 / DOCFIX-214 / BUNDLEFIX-059 (used DOCFIX-213).
- **F3/D-138 co-location gap RESOLVED:** phase-04-network-{create,verify}.sh made MAAS_PROFILE-aware (DOCFIX-213, harnesses + failability proven), rack `vr1-dc0-region` maas profile registered (in-DC regional hot-kid 10.12.8.6; key via stdin, never printed), PROVIDER network created + EXIT GATE PASS.
- **G18 RULED (GA-R5 option b):** Octavia lb-mgmt recorded OUT of apex scope + the D-139 GUA /64 kept `reserved`; annotated D-101/R8 + D-139; NO new D-number; lb-mgmt is v6-ULA, outside the 10.13 re-IP.
- **Octavia CORE activated:** configure-resources (op 67) done, octavia active, lb-mgmt-net + `fc00:5b7a:7bdc:bd86::/64` + o-hm0 up, mgmt router isolated (G18 OWED#1/#2 done). **INCIDENT: amphora image build FAILS** (octavia-diskimage-retrofit exit 1; dib-in-LXD hypothesis, rebuild-relevant) -> the "1 test LB" is BLOCKED (changelog Item 7).
- **Designate RULED real D-106/D-117 Stage-7** (operator; os-public-hostname flip -- depth to confirm). glance-simplestreams-sync DROPPED from scope. Re-IP GA-R5 ruling STILL OWED (3 live-free checks). Re-IP + G18 ruling-prep packages durable in docs/audit/.
- **OWNED:** grep -viE oneline mis-filter (caught, re-queried); my own echo string tripped the DOCFIX-016 maas-list guard (caught); amphora script MODEL defaulted openstack -> needs vr1-dc0 (caught, fast-fail, no partial state); "configure-resources decides G18 by execution" reframed after prep showed R8 already ruled the substance.
- Gates: repo-lint 0 fail / 1 legacy warn; gauntlet ALL GREEN (102); ledger-scan reconciled (DOCFIX 213 used). Ledger rotated (08-06 x2 -> archive/session-ledger-rotated-20260808.md).
- **NEXT:** diagnose retrofit incident (sudo on octavia-diskimage-retrofit/0) -> unblock the LB test; Designate real-Stage-7 (confirm os-public-hostname depth); wrap gates + G18 OWED#3 o-hm0 MTU; re-IP live-free checks -> present the re-IP ruling. Operator PUSH the 4 commits -> voffice1 pull. Sweep: docs/audit/queued-findings-20260808-dc0-activation-checkpoint.txt. Body: docs/changelog-20260808-dc0-activation.md. Status ONLY in CURRENT-STATE.md.

## SESSION CLOSE 2026-08-08 (part 3) -- amphora build FIXED + geneve-over-v6 wrap-gate ROOT-CAUSED (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; pushed this session: prior 4 (f85daa7..a6340e6) + bookend 8e2b18b + geneve records cd1f9cd/f5daadd. voffice1 pulled to f5daadd. Scan: 4 open decisions, SEC 28, next-free D-143/DOCFIX-214/BUNDLEFIX-059 (NO new numbers -- geneve D-number PROPOSED, not minted).
- AMPHORA BUILD FIXED (was part-2 retrofit exit-1 INCIDENT): two-layer root cause MEASURED -- (a) no loop devices in the retrofit LXD container; (b) dib build's apt hit UNREACHABLE public archives (build doesn't inherit model apt-proxy; charm ubuntu-mirror empty). FIX (live, gated): loop-device passthrough into the container (host-local, rebuild item) + juju config octavia-diskimage-retrofit ubuntu-mirror=<dc0 mirror 10.12.8.4>. Image 775ebeba ACTIVE+tagged (two-sourced).
- G18 OWED#3 (o-hm0 MTU) PASS (1442 match); G18 obligations all discharged.
- 1 TEST LB: amphora BOOTS (nova ACTIVE -> image validated) but BLOCKED by geneve-over-v6 wrap-gate FAIL, ROOT-CAUSED: OVN geneve encap SPLIT across families -- containerized control chassis IPv4-only on data-tenant (10.12.16.x, D-134 auto-picked) vs compute METAL IPv6 (2602:f3e2:f02:30::x) -> cross-family tunnels don't pass -> 100% cross-node loss. Fix NOT applied (rebuild-relevant; warrants a D-number at ruling). Record: docs/audit/geneve-over-v6-rootcause-20260808.md.
- OWNED: nearly reported the yoga-agent as the LB cause (refuted by octavia log ConnectTimeout + ping6 100% loss -> geneve overlay); 3 diagnostic-capture false-starts (all my harness); loop-fix necessary-not-sufficient; run-logged NOT opened (Nth). Instrument-currency #23.
- LEFTOVERS (owed next session): TEAR DOWN test LB 24bd326f / net lb-smoke-* / amphora (left LIVE per operator savegame-now); live mutations (loop passthrough + ubuntu-mirror config) carry reverts in the changelog.
- Gates: repo-lint 0-fail (1 legacy warn); gauntlet ALL GREEN (102); ledger-scan reconciled; ledger rotated (08-06 x2 -> archive/session-ledger-rotated-20260809.md).
- NEXT: tear down the test LB; Designate real-Stage-7 4a depth (read-only); wrap gates (cloud-assert BOM, controller backup, verify-live Ceph); re-IP 3 live-free checks -> present re-IP GA-R5 ruling. Rebuild items: wire retrofit ubuntu-mirror per-DC in bundle + give containerized OVN chassis a v6 data-tenant address. Sweep: docs/audit/queued-findings-20260808-amphora-geneve.txt. Body: docs/changelog-20260808-amphora-geneve.md. Status ONLY in CURRENT-STATE.md.

## SESSION CLOSE 2026-08-09 -- geneve-over-v6 ROOT-CAUSED (bracket bug) + LIVE-CONFIRMED; D-139 amendment + executable gate (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; 3 commits this session: ee48f2a (root-cause+gate+phase-04), 96eb98f (D-139 AMENDMENT ruling), 9837332 (rebuild recipe). Scan: 4 open decisions (D-068/131/132/142), SEC 28, next-free D-143/DOCFIX-214/BUNDLEFIX-059 (D-139 AMENDED, no new number).
- Opened by checking the geneve finding vs the Office1 NetBox (fresh read-only apex dump 20260809): DC1 GUA carve INCOMPLETE + gaps -> gua-carve-completion-proposal (DRAFT; operator "ignore DC1", NOT executed).
- GENEVE (operator directed a live confirm on throwaway dc0): TWO defects -- (a) encap family split (D-134 auto-pick), (b) ovn-chassis 24.03 sets the v6 ovn-encap-ip BRACKETED -> OVS rejects (ofport -1). Unbracketed -> real VM->VM 8/8, 0% loss. geneve-over-v6 WORKS (OVS3.3/OVN24.03/kernel5.15); v4-forced OFF the table.
- RULED (GA-R5, operator verbatim "D-139 amendment"): D-139 AMENDMENT 2026-08-09.
- DELIVERED: scripts/geneve-encap-assert.sh (+harness 16/16, manifest 103); phase-04 Step 12.2/Step 6 corrected; consolidated rebuild recipe. Test scaffold + owed lb-smoke LB TORN DOWN (dc0 clean).
- OWNED (#24): a wrong "v6 broken -> v4-forced" NEGATIVE rode into the audit record from a localport-sourced test (never tunnels by design); caught by the FABLE ADVISOR, retracted, corrected.
- Gates: repo-lint 0-fail (1 legacy warn); gauntlet ALL GREEN (103); ledger-scan reconciled.
- NEXT (rebuild-time): confirm fixed ovn-chassis rev or wire the unbracket override; container v6 carve; build the metal-admin-leg-IPv4 gate; DC1 GUA carve + OOB v4 (ride re-IP); present the re-IP GA-R5 ruling. Sweep: docs/audit/queued-findings-20260809-geneve-v6.txt. Body: docs/changelog-20260809-geneve-v6-rootcause-gate.md. Status ONLY in CURRENT-STATE.md.

## SESSION CLOSE 2026-08-09 (part 2) -- open-items review (D/SEC/DOCFIX/BUNDLEFIX) vs the hardened end goal + LIVE re-IP free-checks (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; 1 commit pushed (f4aee80: the review + CURRENT-STATE pointer); this bookend uncommitted (savegame prepares, does not commit). voffice1 synced f4aee80. Scan: 4 open decisions (D-068/131/132/142), SEC 28, next-free D-143/DOCFIX-214/BUNDLEFIX-059 (NO new numbers -- analysis session).
- DELIVERABLE: `docs/audit/open-items-review-20260809.md` -- two-pass (self + advisor) decision package, R1-R16. Conclusion: backlog overwhelmingly correctly-deferred; the re-IP GA-R5 ruling (would be D-143) is the ONLY end-goal blocker; R7 (teardown credential-revocation checklist) + R16 (10.13 naming-collision DOCFIX) are the re-IP-coupled gaps to build.
- LIVE (operator-authorized read-only discovery): re-IP owed check #2 (NetBox apex) PASS 10.13=0 / 10.12=149; check #1 (Headscale/tailnet) PASS no 10.13 overlap, the 10.12 collision reproduced as the positive control; check #3 (VR0 internals) NOT reachable from vcloud -> operator accept-or-run. P5 authoritative on voffice1 = 11 findings (6 accepted + 5 dc1 by-design; matrix grew 101->121 by design). dc0 checkpoint 66/162 active; DC-substrate credential residency measured.
- OWNED: ran the host-dependent P5 gate on the WRONG host (vcloud not voffice1) -> a "12 findings, gate grew" manufactured-decision framing, caught by the advisor (instrument-currency #25); asserted the SEC partition "sums to 28" when it summed to 24; overstated SEC-021(a) as resolved (S2 still RED); a shred-hazard on a likely-live dc1 token -> declare-only. AND: CLOBBERED `session-ledger-rotated-20260809.md` with a Write (overwrote a tracked file I had not read) -- caught in `git status`, restored from HEAD + appended correctly.
- Gates: repo-lint 0-fail (1 legacy warn); gauntlet ALL GREEN (103); ledger-scan reconciled. Ledger rotated (the two 2026-08-07 blocks -> `session-ledger-rotated-20260809.md`). Memory: instrument-currency #25 added.
- NEXT: present the re-IP GA-R5 ruling (would be D-143) with the check#3 accept-or-run choice; then teardown (build R7's revocation checklist) -> redeploy on 10.13. Sweep: `docs/audit/queued-findings-20260809-open-items-review.txt`. Body: `docs/audit/open-items-review-20260809.md`. Status ONLY in CURRENT-STATE.md.

## SESSION CLOSE 2026-08-09 (part 3) -- D-143 re-IP RULED + Roosevelt-held review + advisor-label correction + Fable-5 recheck + container-elim pass SCOPED (bounded, GA-R4)

- Branch dc-dc-stage5-preconditions; 5 commits pushed (e48181b 40d8a46 361769c 00e4c2c e20f8ae); voffice1 synced e20f8ae. Scan: 4 open decisions, SEC 28, next-free D-144/DOCFIX-214/BUNDLEFIX-059 (D-143 ASSIGNED this session). No separate sweep file for part 3 -- all work landed in committed durable docs (nothing transcript-only).
- **D-143 RULED (GA-R5):** VR1 re-IP 10.12->10.13, octet-preserving; AMENDS D-115 premise, TERMINATES D-101 v4-inherit, CONSISTENT D-124/D-134. Two exchanges: "Accept evidence + adopt 10.13" (+ check#3 VR0-internal accepted, tailnet/apex live-confirmed) then C.1="B2 new role" + C.3="(i) defaults stay 10.12". C.2 octet-preserving confirmed (regularization seen-and-rejected).
- **Roosevelt/future-held decisions review** (`docs/audit/roosevelt-held-decisions-review-20260809.md`): ~24 held items reevaluated; ~4 pull-forwards (D-137/D-142/D-136-octet/D-069-custodian) + ~3 analysis-now + 1 access-gated (D-129(iii) ACL); 18 rows genuinely stay. Frame: "next deployment"=Roosevelt, NOT the redeploy.
- **TWO operator-previewed redeploy changes captured (Sec 0.1 + CURRENT-STATE):** eliminate the dc0/dc1 CONTAINER LAYER this rebuild (owed [ARCH], D-123 amend/new D#); a PRE-ROOSEVELT BARE-METAL test follows (specs in days) -> compresses the Group-4 horizon.
- **CONTAINER-ELIM PASS SCOPED, execution DEFERRED to a NEW session:** `docs/audit/container-elim-pass/` (SCOPE-AND-EXECUTION-PLAN + phase-prompts). Phases 0-4, layered module system (IaC+procedure), Phase-0 target-topology operator gate, standard 3-5 sonnet + 1 fable admin/phase, final fable advisor, read-only.
- **OWNED:** carried "fable advisor" as fact from an inherited memory convention -- it was OPUS 5 (operator confirmed), now moved to FABLE 5. Corrected across this session's records + memory #25 + a standing terminology caveat (name a model only when config is confirmed). Fable-5 recheck CONFIRMED all findings (nothing overturned).
- Gates: repo-lint 0-fail (1 legacy warn); gauntlet ALL GREEN (103, unchanged -- docs-only since); ledger-scan reconciled.
- **NEXT:** run the container-elim pass in a fresh session (start-prompt provided); then dc0 checkpoint wrap-gates -> teardown (build R7 revocation) -> 10.13 redeploy. Status ONLY in CURRENT-STATE.md.
