Skip to content

Commit 1a113d4

Browse files
committed
docs(ops): record r12 preflight failure
1 parent bfb82ec commit 1a113d4

3 files changed

Lines changed: 167 additions & 14 deletions

File tree

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# CI-soak r12 preflight failure — 2026-08-21
2+
3+
## Goal and authority
4+
5+
Execute one freshly authorized post-fix `--count 2000` rehearsal from exact
6+
source HEAD `bfb82ecb6c66e5490db2d99bbdaf8b9da55f2082`, using new r12
7+
snapshot/project/output identities and unconditional restoration of the four
8+
exact protected co-tenants.
9+
10+
The rehearsal never reached a stop or controller invocation. The exact
11+
classification is `PREFLIGHT_FAIL_BEFORE_STOP`.
12+
13+
## Local and read-only gates
14+
15+
The fresh local architecture gate passed:
16+
17+
```text
18+
ARCHITECTURE_READY=PASS blockers=0 head=bfb82ecb6c66e5490db2d99bbdaf8b9da55f2082
19+
```
20+
21+
The exact `git archive` was `17,981,440` bytes with SHA-256
22+
`1654503d7a1cae3a95baf5f87e43a0411c93fb18db14250dd58a44a35a5252b7`.
23+
Its local and remote hashes matched. The r12 preflight wrapper passed local and
24+
native macOS `bash -n`; its SHA-256 was
25+
`e3835c7a18d0ebba2464a0a08a413bf09d3b6428d85c2295f25201b3c427b946`.
26+
27+
Before any remote path was created, a strict read-only preflight passed. It
28+
proved Docker API range `1.44..1.53`, four CPUs, `7,269,556,224` bytes of
29+
memory, no r12 snapshot/control/output/preflight/owner-lock identity, project
30+
resources `0/0/0`, no r12 probes or controller, and the expected Mac checkout
31+
HEAD/status. All four protected exact IDs were running with restart count zero;
32+
MinIO, Iceberg, both ClickHouse routes, Kind `/livez`, and the one-apiserver
33+
check passed. The retained rollback ClickHouse remained exited cleanly and
34+
disconnected.
35+
36+
The preceding r11 authorization was consumed by read-only orchestration only.
37+
Its first probe exposed an unsupported Docker template and its corrected probe
38+
then stopped on the expected no-match exit from `pgrep` under `pipefail`. No
39+
r11 remote identity, lock, project resource, probe, stop, or controller was
40+
created. The r12 probe carried the bounded `pgrep || true` correction and
41+
passed completely.
42+
43+
## Terminal r12 preflight failure
44+
45+
The preflight wrapper was invoked exactly once. It extracted the exact source,
46+
verified the protected source hashes including `verify_coschedule.py`, captured
47+
the source visibility hash, and then failed before the output visibility
48+
container or Compose validation:
49+
50+
```text
51+
PREFLIGHT_RESULT=FAIL
52+
REASON=output_marker_hash_mismatch
53+
ATTEMPT_ID=ci-soak-bfb82ec-r12-preflight
54+
PROJECT_RESOURCES=0/0/0
55+
OWNER_LOCK_RELEASE=PASS
56+
STOP_COMMAND=NOT_INVOKED
57+
CONTROLLER=NOT_INVOKED
58+
```
59+
60+
The terminal preflight result SHA-256 is
61+
`9a47518e73a724f7f105beaa79e7c7ad794da3d633694d2e2cb69e6fb7c59bb1`.
62+
The wrapper contained output marker text `ci-soak-output-bfb82ec-r12` but
63+
retained the r11 marker hash
64+
`a451640563c229772e9d8fa5287f6a20bace28a11f1b62b8086017b6a35b62a8`.
65+
The correct SHA-256 for the r12 text is
66+
`9853a9344b1378f968eb4f5c808c6541275746d6f5682a507b6d3294d4bfb6f2`.
67+
No correction or rerun used the consumed r12 identities.
68+
69+
## Independent safety postflight
70+
71+
The independent read-only postflight exited `0` and proved:
72+
73+
- the owner lock and r12 controller were absent;
74+
- r12 project resources were `0/0/0` and all four r12 probe counts were zero;
75+
- the four protected exact IDs were still running with restart count zero;
76+
- MinIO/Iceberg, host and workload ClickHouse routes, Kind `/livez`, and the
77+
one-apiserver check passed;
78+
- the rollback ClickHouse and original Mac checkout were unchanged;
79+
- the r12 snapshot, control directory, empty output identity, and preflight
80+
evidence remain retained.
81+
82+
No co-tenant stop, controller, traffic, full soak, rollback exercise,
83+
production action, cleanup of retained evidence, fetch, or push occurred.
84+
Grok was not used.
85+
86+
## Resume boundary
87+
88+
Treat the r11 and r12 local control identities and all r12 remote paths as
89+
consumed evidence. Do not rerun, overwrite, adopt, or clean them. A later
90+
attempt starts at r13 or later with a fresh exact-HEAD gate, new archive,
91+
snapshot/project/output/control/attempt identities, a corrected marker hash,
92+
fresh read-only preflight, and fresh explicit authorization.

‎ci-soak-runtime-harness.md‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1367,3 +1367,38 @@ control identity, attempt name, and authorization as consumed. A later
13671367
external attempt must use fresh r11-or-later identities, a new exact-HEAD gate
13681368
and preflight, and fresh authorization. Full soak, rollback, retained-evidence
13691369
cleanup, production action, fetch, and push remain unauthorized.
1370+
1371+
## r11 read-only stop and r12 preflight failure before stop — 2026-08-21
1372+
1373+
The r11 authorization was consumed without creating a remote identity. Its
1374+
strict read-only probe first exposed an unsupported Docker Go-template field;
1375+
the one corrected probe then stopped when the expected no-match exit from
1376+
`pgrep` propagated through `set -e` / `pipefail`. No lock, probe, project
1377+
resource, co-tenant stop, or controller existed.
1378+
1379+
A separately authorized r12 attempt used exact source/gate HEAD
1380+
`bfb82ecb6c66e5490db2d99bbdaf8b9da55f2082`. The fresh architecture gate
1381+
passed, and the corrected strict read-only probe proved fresh r12 identities,
1382+
Docker API/capacity, protected identities, restart-zero state, checkout state,
1383+
and all health/routes before any remote path creation. The exact archive
1384+
SHA-256 was
1385+
`1654503d7a1cae3a95baf5f87e43a0411c93fb18db14250dd58a44a35a5252b7`.
1386+
1387+
The r12 preflight wrapper ran exactly once and failed closed at
1388+
`output_marker_hash_mismatch`. It contained r12 marker text but the r11 marker
1389+
hash. The correct r12 marker SHA-256 is
1390+
`9853a9344b1378f968eb4f5c808c6541275746d6f5682a507b6d3294d4bfb6f2`.
1391+
The terminal result hash is
1392+
`9a47518e73a724f7f105beaa79e7c7ad794da3d633694d2e2cb69e6fb7c59bb1`.
1393+
It records owner-lock release PASS, project resources `0/0/0`, and both stop
1394+
and controller `NOT_INVOKED`.
1395+
1396+
Independent postflight found no lock, controller, project resource, or probe;
1397+
all four protected exact IDs remained running with restart count zero and all
1398+
readiness/routes passed. The rollback ClickHouse and Mac checkout were
1399+
unchanged. The r12 snapshot/control/output/preflight paths remain retained
1400+
evidence. Canonical detail is
1401+
`ci-soak-r12-preflight-fail-20260821-01.md`. Do not reuse or clean r11/r12.
1402+
A later external attempt starts at r13 or later with fresh authorization,
1403+
identities, gate, archive, and preflight. No rehearsal, traffic, full soak,
1404+
rollback, production action, fetch, or push occurred.

‎docs/operations/ci-soak-next-session-runbook.md‎

Lines changed: 40 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ not authorize an external action.
1515
| --- | --- |
1616
| Closing implementation commit | `726d171322dc8933d8788e7388f1bcd5d0d8e32e` — `fix(ops): reconcile ci soak verifier contract` |
1717
| Required ancestry | The current `HEAD` must contain the closing implementation commit before any post-fix validation |
18-
| Latest local architecture gate | `ARCHITECTURE_READY=PASS blockers=0 head=1fc959efcc1c871fd3057f27a8aef60db44fc878` before the stopped r10 delegation |
18+
| Latest local architecture gate | `ARCHITECTURE_READY=PASS blockers=0 head=bfb82ecb6c66e5490db2d99bbdaf8b9da55f2082` before the r12 preflight |
1919
| Local verification | Focused gate: `129 passed`; Ruff check/format, `py_compile`, `git diff --check`, strict UTF-8/LF/no-BOM/no-NUL, and the clean-HEAD architecture gate passed |
20-
| Post-fix external rehearsal | **Not run**; r10 orchestration stopped before external mutation |
20+
| Post-fix external rehearsal | **Not run**; r12 preflight failed before stop/controller mutation |
2121
| Last external evidence | Retained r9 attempt: **FAIL** against older source `7e8ec87c25bbdc8f8aa58c116ded9914470789cb` |
22-
| Latest orchestration evidence | [r10 stopped before mutation](../../ci-soak-r10-orchestration-stop-20260821-01.md); no rehearsal verdict exists |
22+
| Latest orchestration evidence | [r12 preflight failed before stop](../../ci-soak-r12-preflight-fail-20260821-01.md); no rehearsal verdict exists |
2323
| Push/fetch | Neither was performed for the closing slice; push remains unauthorized |
2424

2525
The local correction is closed. Counts below `1_440_000` use
@@ -30,8 +30,9 @@ and then delegates to the byte-pinned verifier. The same exact verifier ID,
3030
labels, name, restart count, terminal state, exit code, logs, phase-specific
3131
JSON, and cleanup/no-replacement state are checked fail-closed.
3232

33-
This is local contract evidence only. It does not prove current
34-
Docker/Colima, Kind, Flink, ClickHouse, Iceberg, or MinIO behavior.
33+
The r12 read-only gate proved the current protected Docker/Colima identities
34+
and basic readiness only. It did not run the corrected Compose controller or
35+
prove current Flink/exactness behavior.
3536

3637
## Source-of-truth order
3738

@@ -41,9 +42,12 @@ Use this order when sources disagree:
4142
2. The first handoff block in local `AGENT_STATE.md`, when that ignored file is
4243
present.
4344
3. This tracked runbook for the resume sequence and authorization boundary.
44-
4. [`ci-soak-runtime-harness.md`](../../ci-soak-runtime-harness.md) for the
45+
4. The retained
46+
[r12 preflight-failure report](../../ci-soak-r12-preflight-fail-20260821-01.md)
47+
for the latest external facts and consumed identities.
48+
5. [`ci-soak-runtime-harness.md`](../../ci-soak-runtime-harness.md) for the
4549
accumulated harness history and detailed contracts.
46-
5. The immutable
50+
6. The immutable
4751
[r9 rehearsal report](../../ci-soak-r9-rehearsal-20260821-01.md) and
4852
[r1-r7 architecture audit](../../ci-soak-r1-r7-architecture-audit.md) for
4953
historical evidence.
@@ -73,8 +77,9 @@ The ancestry command must exit `0`. Then:
7377
new relevant change, a fresh failure, or a newly authorized exact-HEAD
7478
attempt.
7579
5. The next actionable runtime slice is at most one fresh post-fix
76-
`--count 2000` rehearsal using r11-or-later identities, and only after fresh
77-
explicit authorization. The stopped r10 orchestration must not be resumed.
80+
`--count 2000` rehearsal using r13-or-later identities, and only after fresh
81+
explicit authorization. The consumed r10/r11/r12 orchestration must not be
82+
resumed.
7883

7984
If a new local change legitimately requires the architecture gate, run it from
8085
a clean tracked checkout:
@@ -115,8 +120,28 @@ co-tenants remained healthy under their exact IDs with restart count zero.
115120
Treat the r10 attempt name, prompt, local control directory, and authorization
116121
as consumed evidence. The exact record is the
117122
[r10 orchestration-stop report](../../ci-soak-r10-orchestration-stop-20260821-01.md).
118-
Do not resume r10 or launch a duplicate. A future attempt starts at r11 or
119-
later with fresh identities, gate, preflight, and explicit authorization.
123+
Do not resume r10 or launch a duplicate; the later r11/r12 outcomes below now
124+
supersede that historical continuation boundary.
125+
126+
## Consumed r11 and r12 orchestration — no rehearsal ran
127+
128+
The r11 authorization was consumed by read-only probe diagnostics only. Its
129+
corrected probe stopped because an expected no-match `pgrep` exit propagated
130+
through `pipefail`; no r11 remote identity or mutation was created.
131+
132+
The fresh r12 exact-HEAD architecture gate and strict read-only runtime gate
133+
passed. The r12 preflight wrapper was then invoked exactly once and failed at
134+
`output_marker_hash_mismatch` before output-probe creation, Compose validation,
135+
co-tenant stop, or controller invocation. It released the owner lock and left
136+
project resources `0/0/0`. Independent postflight proved all four protected
137+
exact IDs still running with restart count zero and every readiness route
138+
green. The exact record is the
139+
[r12 preflight-failure report](../../ci-soak-r12-preflight-fail-20260821-01.md).
140+
141+
Treat all r11/r12 local identities and retained r12 remote paths as consumed.
142+
Do not rerun, overwrite, adopt, or clean them. A future attempt starts at r13
143+
or later with a corrected marker hash, fresh identities, gate, preflight, and
144+
explicit authorization.
120145

121146
## Historical runtime safety snapshot
122147

@@ -145,14 +170,14 @@ gate; do not silently substitute a new container.
145170
| Run local checks after a relevant local change | Allowed within that scoped change; avoid evidence-refresh repeats |
146171
| SSH, Docker/Colima inspection, or creation of a fresh Mac snapshot | Requires explicit authorization for the new external slice |
147172
| Stop or restore protected co-tenants; run `--count 2000` traffic | Requires the same fresh, bounded rehearsal authorization and a green preflight |
148-
| Reuse, rerun, overwrite, or clean r9 evidence | Forbidden |
173+
| Reuse, rerun, overwrite, or clean r9/r11/r12 evidence | Forbidden |
149174
| Full soak, rollback exercise, retained-evidence cleanup, production action | Separate future authorization required |
150175
| Fetch or push | Not authorized |
151176

152177
Authorization for one item does not imply authorization for the next row.
153178
Project-scoped fail-closed cleanup and exact protected-co-tenant restoration are
154-
mandatory parts of any newly authorized rehearsal; cleanup of retained r9 or
155-
unrelated resources is outside that scope.
179+
mandatory parts of any newly authorized rehearsal; cleanup of retained
180+
evidence or unrelated resources is outside that scope.
156181

157182
## Requirements for one future post-fix rehearsal
158183

@@ -185,5 +210,6 @@ or push gates.
185210
- [Runtime harness history](../../ci-soak-runtime-harness.md)
186211
- [Immutable r9 failure report](../../ci-soak-r9-rehearsal-20260821-01.md)
187212
- [r10 orchestration-stop report](../../ci-soak-r10-orchestration-stop-20260821-01.md)
213+
- [r12 preflight-failure report](../../ci-soak-r12-preflight-fail-20260821-01.md)
188214
- [Architecture audit and readiness contract](../../ci-soak-r1-r7-architecture-audit.md)
189215
- [Compose foundation context](ci-soak-compose-foundation.md)

0 commit comments

Comments
 (0)