QUEUED FINDINGS -- session 2026-08-07 "dc1-region sequence" (F + Stage-5 dc1 standup B/C + SEC-031 edge rebuild) Method: read the whole session, grep each candidate. FIRST SURFACE = existed only in the transcript. Body: docs/changelog-20260807-dc1-region-sequence.md. Status ONLY in docs/CURRENT-STATE.md. ================================================================================ FIRST SURFACE (existed only in the transcript -- would have been lost on /clear) ================================================================================ F1. scripts/opnsense-console-rebuild.py SHIPPED WITHOUT A HARNESS. Committed in 2b476e4. The change-delivery loop says no script ships without its tests//run-tests.sh. It is a pexpect serial-console driver (hard to test fully offline), but a MINIMAL harness is feasible and owed: parse check, --help exit 0, structure asserts (no hardcoded domain/pubkey; PHP payload carries require_once util.inc + local_user_set + write_config; base64 <=160-char chunking present; PUB read from file). Prove-it-can-fail per the 2026-07-30 mutation lesson. OWED next session. F2. run-logged.sh NOT opened this session -- as-executed log GAP for a heavy-mutation window. This session executed many live mutations (dc1 topology apply, IPAM carve/reserve, the DHCP cutover, power-key install, the full edge REBUILD incl. tofu destroy+recreate) with NO as-executed log. 4th+ consecutive session with this gap (O3 in prior sweeps). The changelog + captures are the record; declare the log gap on a surface (this file). F3. MAAS image-sync TRAP: jammy is NOT selectable until the region's boot-source INDEX is refreshed. On a fresh region, `boot-source-selections create ... release=jammy` returns "OS ubuntu with release jammy has no available images for download" until a first `boot-resources import` fetches the simplestreams index from images.maas.io. Sequence: import (fetches index) -> add jammy selection -> import again (downloads jammy). Measured 2026-08-07 on vr1-dc1-region. Worth a line in the dc1 region-standup NEXT / a runbook. ================================================================================ ALREADY ON SURFACE (recorded where noted) ================================================================================ S1. NetBox tool GAP closed: no importer recorded D-134 utility-HOST IPs (only band ranges + VIPs). Built netbox/dc-util-hosts-import.py + harness 19/19. -> changelog Item 1, CURRENT-STATE. S2. office1-netbox dcim/regions are GEOGRAPHIC (US-West/VR0/VR1), not MAAS regions -- so vr1-dc1-region needs no NetBox object (the .6 IP represents it). -> changelog Item 1, CURRENT-STATE. S3. NetBox findings DEFERRED for operator: (a) the .4 ARTIFACT host (dc0 mirror / dc1 cache, metal-admin-only 10.12.8.4 / 10.12.68.4, per-DC divergent, NO repo name) needs a NAMING ruling before it can be recorded; (b) dc1 .5 juju + .7 tailscale record WHEN LIVE. -> changelog Item 1, CURRENT-STATE. S4. DHCP cutover FALSE ALARM: a bare `pgrep -c dhcpd` self-matched its own command shell and read 1, looking like dual-serve. `ss :67` / `pgrep -af` are authoritative. No dual-serve. -> changelog Item 2. S5. MEASURED-CORRECTS-MEMORY: the dc1 metal-admin DYNAMIC DHCP range is 10.12.68.201-.254, NOT the .100-.200 recalled from G12 prose. -> changelog Item 2. S6. dc-plane-ipam reserve reported skipped=6 on v6 bands though carve-v6 had landed; the read-only check 24/0 confirms the ruled state is fully present. GLANCE owed. -> changelog Item 2. S7. SEC-031 CLOSED: dc1 edge rebuilt (proven dc0 procedure), egress restored, dc-egress-check dc1 8/8. Procedure now runbooks/dc-edge-rebuild.md + scripts/opnsense-console-rebuild.py. -> changelog Item 4, CURRENT-STATE, security-ledger SEC-031. S8. dc-egress-check A2 is STRUCTURALLY BLIND to "edge answers but does not NAT" (pre-existing finding, CURRENT-STATE ~4013). Still open as a gate-improvement candidate (positive "edge TRANSLATES" assertion). NOT actioned. -> CURRENT-STATE. ================================================================================ OPERATOR RULINGS THIS SESSION (OPS-level directives; exact utterances) ================================================================================ - "Sequence and continue"; "Land the Netbox then move on to the rest of the sequence" - NetBox gap: "Build importer, then land" - DHCP: "Full cutover first. It shouldn't have had DHCP from Office1 to begin with." - Image egress: "Fix .6 own egress to match dc0" - Step B: "I approve you running these commands" - Edge: "I drive the SEC-031 edge repair now"; "look back at the steps that were successful with dc0" - Documentation: "make sure the steps and procedures are logged accurately so when we do this again we won't go down this path again when there is a proven method and tools documented" -> actioned: runbooks/dc-edge-rebuild.md + scripts/opnsense-console-rebuild.py + SEC-031 close. (None is a GA-R5 D-number ruling; all are OPS directives -> changelog/runbook, no D-number.) ================================================================================ DELIBERATELY NOT DONE (deferred, with reason) ================================================================================ - D (import SSH keys into vr1-dc1-region), E (rebuild 9 nodes + juju + .7 -- destructive, batches of 3, incl SEC-028 in-region juju mint + SEC-026 residency), G (consolidate dc1 .6 creds SEC-020) -- deferred to next session (session length). - jammy image sync: TRIGGERED + downloading at close; verify .complete=true next session. - The 2 NetBox findings (S3) + the console-driver harness (F1).