Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
458 commits
Select commit Hold shift + click to select a range
5c0faee
feat(26-11): add the driver's reduced-scale (--smoke) path
tlancaster6 Aug 18, 2026
cc3c28d
test(26-11): cover the reduced-scale path and freeze the full-scale one
tlancaster6 Aug 18, 2026
46d4ae1
docs(26-11): complete the driver reduced-scale path plan
tlancaster6 Aug 18, 2026
602e3df
merge(worktree-agent-ac95f028bf5f62b34): gap closure 26-11 of phase 26
tlancaster6 Aug 18, 2026
2f76efb
fix(26-12): schedule e3 after the stage that writes the record it reads
tlancaster6 Aug 19, 2026
a033726
fix(26-12): record an absent E2 record instead of crashing on it
tlancaster6 Aug 19, 2026
56e1ae5
fix(26-13): stamp a seed on E1's and E7's benchmark records
tlancaster6 Aug 19, 2026
00b8d41
docs(26): add gap-closure plans 26-12 and 26-13 with their summaries
tlancaster6 Aug 19, 2026
88512b7
test(26-14): re-aim the baseline rails at the tree the frozen run writes
tlancaster6 Aug 19, 2026
80a2a34
docs(26): close phase 26 -- driver proven at reduced scale, three gap…
tlancaster6 Aug 19, 2026
78b4599
docs(27): capture phase context
tlancaster6 Aug 19, 2026
9889e37
docs(state): record phase 27 context session
tlancaster6 Aug 19, 2026
c25bcef
docs(state): repair frontmatter and advance position to phase 27
tlancaster6 Aug 19, 2026
d37001f
docs(27): fix context inconsistencies and de-scope three overengineer…
tlancaster6 Aug 19, 2026
fc083d9
docs(27): record the post-discussion review in the discussion log
tlancaster6 Aug 19, 2026
80c8e19
docs(27): plan the frozen single-sha handoff package -- 13 plans in 6…
tlancaster6 Aug 19, 2026
3d781c4
docs(27): correct the dry-run seam name inherited from phase 26
tlancaster6 Aug 19, 2026
c618e7f
docs(27): record planning completion and close phase 26 bookkeeping
tlancaster6 Aug 19, 2026
4f6e1f5
docs(27): record target access and three findings that bind wave 5
tlancaster6 Aug 19, 2026
2c25829
test(27-05): add failing tests for the environment lockfile emitter (…
tlancaster6 Aug 19, 2026
f4ea3ff
test(27-04): add failing tests for --out-relative real_rig_metrics re…
tlancaster6 Aug 19, 2026
7f04941
docs(27-01): measure the Linux run machine before the freeze
tlancaster6 Aug 19, 2026
090244e
fix(27-03): retag the three smoke-unwritable artifacts as full-only (…
tlancaster6 Aug 19, 2026
61d9a86
test(27-02): add failing pre-flight tests for a directory frameset (D…
tlancaster6 Aug 19, 2026
6dc29b9
docs(27-01): complete target-measurement plan
tlancaster6 Aug 19, 2026
bc2cc25
feat(27-05): emit the environment lockfile as a run artifact (D-13)
tlancaster6 Aug 19, 2026
6dddbaa
fix(27-02): make the frameset pre-flight path-kind agnostic (D-10)
tlancaster6 Aug 19, 2026
38c0560
test(27-05): add failing tests for the two-regime thread record (D-14)
tlancaster6 Aug 19, 2026
131f16a
fix(27-04): resolve real_rig_metrics.json from --out, not a hardcode …
tlancaster6 Aug 19, 2026
2582ec7
test(27-03): add failing tests for profile-aware E4/E5/E6 checkers (D…
tlancaster6 Aug 19, 2026
2182fbf
docs(27-04): complete the --out-relative real_rig_metrics resolution …
tlancaster6 Aug 19, 2026
cd958c9
feat(27-05): record both BLAS thread regimes in the run manifest (D-14)
tlancaster6 Aug 19, 2026
acf7e13
docs(27-05): complete the environment-provenance plan
tlancaster6 Aug 19, 2026
c1f3af2
docs(27-06): walk all 27 ledger artifacts to their emitters
tlancaster6 Aug 19, 2026
cd7c658
fix(27-03): thread profile into the E4/E5/E6 checkers (D-20 classes 2…
tlancaster6 Aug 19, 2026
9270ea8
docs(27-06): record the emitter-coverage walk and its checkpoint
tlancaster6 Aug 19, 2026
c5646da
docs(27-07): classify every ledger row this run will not regenerate
tlancaster6 Aug 19, 2026
03ee55b
test(27-02): add a failing resume test for a stage that completed non…
tlancaster6 Aug 19, 2026
d680bae
docs(27-03): record the smoke-profile truthfulness plan and D-24 finding
tlancaster6 Aug 19, 2026
464e0c9
docs(27-07): complete the frozen-ledger-rows classification plan
tlancaster6 Aug 19, 2026
1b8afa3
fix(27-02): make is_stage_complete read the exit-code column (D-22)
tlancaster6 Aug 19, 2026
20db9ac
docs(27-06): apply the author's three rulings and 27-07's sha finding
tlancaster6 Aug 19, 2026
6024c9e
docs(27-06): record the gate as approved and close the plan
tlancaster6 Aug 19, 2026
4c9a37f
docs(27-07): add RL-guard-frac to the by-construction group (author r…
tlancaster6 Aug 19, 2026
b00da51
docs(27-02): summarise the D-10 and D-22 driver fixes
tlancaster6 Aug 19, 2026
c92cafc
docs(27-07): record the RL-guard-frac addition and the 22 -> 23 total
tlancaster6 Aug 19, 2026
f5dd2b0
chore: merge executor worktree (worktree-agent-a2fcd30ec63324a5f)
tlancaster6 Aug 19, 2026
a75079b
chore: merge executor worktree (worktree-agent-a3c3522272e5cd8d7)
tlancaster6 Aug 19, 2026
f227b53
chore: merge executor worktree (worktree-agent-ad23efa8ad66595bf)
tlancaster6 Aug 19, 2026
c8bdbd4
chore: merge executor worktree (worktree-agent-af3d09300faedf946)
tlancaster6 Aug 19, 2026
44c7b50
chore: merge executor worktree (worktree-agent-a2f3cef66c96666f5)
tlancaster6 Aug 19, 2026
60e104b
chore: merge executor worktree (worktree-agent-afc0ea3c6fa4b0177)
tlancaster6 Aug 19, 2026
d9014b7
chore: merge executor worktree (worktree-agent-a1dcb9fdb0010994a)
tlancaster6 Aug 19, 2026
fdd0f3c
docs(27): supersede D-12's GATE_PYTHON rung and require an interprete…
tlancaster6 Aug 19, 2026
900d835
docs(27-09): write the handoff note's environment requirements (crite…
tlancaster6 Aug 19, 2026
801eb81
docs(27-09): write the run procedure and the declared gaps (D-21)
tlancaster6 Aug 19, 2026
5e752fe
docs(27-09): complete the frozen handoff note plan
tlancaster6 Aug 19, 2026
ce9154a
feat(27-08): commit E2's exact release inputs inside the frozen sha (…
tlancaster6 Aug 19, 2026
bb5a4ae
fix(27-08): neither Windows literal is reachable as a default (D-12, …
tlancaster6 Aug 19, 2026
d2b026b
feat(27-08): two-regime BLAS pin, the lockfile call site, and the re-…
tlancaster6 Aug 19, 2026
fdd1ce4
feat(27-08): record both interpreters in the run manifest (D-30)
tlancaster6 Aug 19, 2026
81194b8
chore: merge executor worktree (worktree-agent-abbb716c8279ece11)
tlancaster6 Aug 19, 2026
9c1fc23
chore: merge executor worktree (worktree-agent-a56aab3071203a9b7)
tlancaster6 Aug 19, 2026
d0dd8c6
docs(27-08): complete the driver-portability plan
tlancaster6 Aug 19, 2026
9ac6a6d
docs(27): record waves 1-2 merged and the post-merge gate result
tlancaster6 Aug 19, 2026
6d47d4f
docs(27-10): record the smoke acceptance pass and the pre-push audit
tlancaster6 Aug 19, 2026
e2b2377
docs(27-09): document the dry run and the thread cap in the handoff note
tlancaster6 Aug 19, 2026
3ab9c13
docs(27-09): correct three stale or misleading points in the handoff …
tlancaster6 Aug 19, 2026
4b5e8ce
docs(27-11): cut the freeze at 3ab9c13, tagged rerun-freeze-01
tlancaster6 Aug 19, 2026
a77e3c7
docs(27-12): correct the baseline-archive size before it fails a clon…
tlancaster6 Aug 19, 2026
d49a837
docs(27): close Phase 27 -- freeze verified on target, production run…
tlancaster6 Aug 20, 2026
a33e21c
docs(29): return handoff -- preserve, verify, and commit the freeze-0…
tlancaster6 Aug 20, 2026
cc56eea
chore: drop the pytest pre-push hook, keep the ruff ones
tlancaster6 Aug 20, 2026
672be71
chore(28): extend DATA-01b ignores to the three ungoverned E2 trees
tlancaster6 Aug 20, 2026
83da9b3
results(28): full production suite at rerun-freeze-01
tlancaster6 Aug 20, 2026
97135a2
docs(28): run verdict, gate output, and environment capture
tlancaster6 Aug 20, 2026
8236583
Merge remote-tracking branch 'origin/experiments/full-suite-rerun' in…
tlancaster6 Aug 20, 2026
8c9243c
docs(28): file the four defects the production run surfaced
tlancaster6 Aug 20, 2026
f399615
chore(28): commit the production queue's 18 per-stage logs
tlancaster6 Aug 20, 2026
2350bc0
Merge remote-tracking branch 'origin/experiments/full-suite-rerun' in…
tlancaster6 Aug 20, 2026
6209f70
docs(29.1): insert Post-Run Fixes & Re-Freeze between Phases 29 and 30
tlancaster6 Aug 20, 2026
84b6550
docs(29.1): record that the 198 are settled -- above-water board corners
tlancaster6 Aug 20, 2026
cfba57f
docs(29.1): capture phase context
tlancaster6 Aug 20, 2026
6f515e5
docs(state): record phase 29.1 context session
tlancaster6 Aug 20, 2026
153eb48
docs(29.1): create phase plans -- 8 plans, 6 waves, tracer-first
tlancaster6 Aug 20, 2026
e399056
docs(29.1): correct the SC-3 mechanism and record the 198 evidence table
tlancaster6 Aug 20, 2026
b077ef0
docs(29.1): fold the conditional-artifact mis-scoring in as criterion 7
tlancaster6 Aug 20, 2026
c629a65
docs(29.1): fold SC-7 in as plan 09, cite the 198 evidence table, cor…
tlancaster6 Aug 20, 2026
89c2092
docs(state): record phase 29.1 planning completion
tlancaster6 Aug 20, 2026
4543a29
docs(phase-29.1): begin phase execution tracking
tlancaster6 Aug 24, 2026
a6e7841
chore(29.1): disable worktree isolation for this branch
tlancaster6 Aug 24, 2026
290ed75
fix(29.1-01): publish E2's guard count on E4's real-rig row and exemp…
tlancaster6 Aug 24, 2026
85ec38c
docs(29.1-01): replace the stale D-26 rationale and make the pipeline…
tlancaster6 Aug 24, 2026
5fa6bd2
test(29.1-01): pin both halves of the real-rig guard-count fix
tlancaster6 Aug 24, 2026
3ab2a65
docs(29.1-01): close the real-rig guard-count todo with its resolution
tlancaster6 Aug 24, 2026
4e5cf4e
docs(29.1-01): log 8 pre-existing provenance-test failures as a defer…
tlancaster6 Aug 24, 2026
54f3699
docs(29.1-01): complete E4 real-rig guard count plan
tlancaster6 Aug 24, 2026
85f7bcf
docs(29.1-01): complete E4 real-rig guard count plan
tlancaster6 Aug 24, 2026
fb1e9f7
fix(29.1-02): unclaim e1_seed_band_degeneracy_breakdown.json from all…
tlancaster6 Aug 24, 2026
b14bd9d
test(29.1-02): add failing tests for the band's benchmark write policy
tlancaster6 Aug 24, 2026
c80490e
fix(29.1-02): enforce the band's no-overwrite policy at the call and …
tlancaster6 Aug 24, 2026
424c1e4
fix(29.1-02): derive the band's scope field from the run, and close t…
tlancaster6 Aug 24, 2026
8698ab2
fix(29.1-02): restore the two axis literals and the Phase 28 fact in …
tlancaster6 Aug 24, 2026
65252f7
docs(29.1-02): complete E1 band defects plan
tlancaster6 Aug 24, 2026
ad1a99f
docs(29.1-02): append self-check result to the plan summary
tlancaster6 Aug 24, 2026
3157bcb
docs(29.1-02): record plan 02 completion in project state
tlancaster6 Aug 24, 2026
4633009
docs(29.1-04): correct HANDOFF §1.2 install command and rule on every…
tlancaster6 Aug 24, 2026
5debda6
docs(29.1-04): prove the corrected install by building an environment…
tlancaster6 Aug 24, 2026
bbdb3bc
docs(29.1-04): complete the install-instruction correction plan
tlancaster6 Aug 24, 2026
51b3d08
docs(29.1-04): record plan 04 completion in project state
tlancaster6 Aug 24, 2026
65294c5
docs(29.1-05): settle the 198 unprojectable observations as above-wat…
tlancaster6 Aug 24, 2026
dd92fbd
docs(29.1-05): confirm the E4 aggregator path defect is fixed, then c…
tlancaster6 Aug 24, 2026
bafc005
docs(29.1-05): complete the folded-todo discharge plan
tlancaster6 Aug 24, 2026
ffbe1a4
docs(29.1-05): record plan 05 completion in project state
tlancaster6 Aug 24, 2026
f983d21
docs(29.1-03): enumerate and classify the bounded stale-string sweep
tlancaster6 Aug 24, 2026
df8b3c8
fix(29.1-03): correct 11 unattributed annotations and pin them with a…
tlancaster6 Aug 24, 2026
82bb0bc
docs(29.1-03): annotate three todos with what the bounded pass covered
tlancaster6 Aug 24, 2026
0612725
docs(29.1-03): record the bounded stale-string sweep summary
tlancaster6 Aug 24, 2026
4480138
docs(29.1-03): record the summary self-check result
tlancaster6 Aug 24, 2026
bd4019c
docs(29.1-03): complete bounded stale-string sweep plan
tlancaster6 Aug 24, 2026
4e5a37c
fix(29.1-09): point the two conditional artifacts at the directory th…
tlancaster6 Aug 24, 2026
dc7e6a2
test(29.1-09): failing tests for the conditional predicate and the mi…
tlancaster6 Aug 24, 2026
f22e853
feat(29.1-09): evaluate the condition instead of excusing the absence
tlancaster6 Aug 24, 2026
911cb94
docs(29.1-09): surface the predicate in the sheet and record the mech…
tlancaster6 Aug 24, 2026
3d0c598
docs(29.1-09): record the conditional-artifact gate summary
tlancaster6 Aug 24, 2026
37a8b14
docs(29.1-09): record the summary self-check result
tlancaster6 Aug 24, 2026
7f1d91f
docs(29.1-09): record plan 09 completion in project state
tlancaster6 Aug 24, 2026
b1adb3f
docs(29.1-06): record the gate before/after while the tree is still a…
tlancaster6 Aug 24, 2026
24bf414
feat(29.1-06): archive the 2026-08-20 run output aside so the new tag…
tlancaster6 Aug 24, 2026
63d3cb5
docs(29.1-06): reconcile every reference to the moved output tree
tlancaster6 Aug 24, 2026
646cf08
docs(29.1-06): record the archive-aside plan's completion
tlancaster6 Aug 24, 2026
ad5ba1c
docs(29.1-06): record the summary self-check result
tlancaster6 Aug 24, 2026
a833a15
docs(29.1-06): complete the archive-aside plan
tlancaster6 Aug 24, 2026
98c942b
docs(29.1-07): record attempt 1's verification bar re-run, including …
tlancaster6 Aug 24, 2026
4cc85b0
docs(29.1-07): record the verification-bar plan's completion
tlancaster6 Aug 24, 2026
3719d30
docs(29.1-07): record the summary self-check result
tlancaster6 Aug 24, 2026
7005a27
docs(29.1-07): record verification-bar completion in project state
tlancaster6 Aug 24, 2026
54542c6
docs(29.1-08): record the pre-push exposure audit and the D4 ruling
tlancaster6 Aug 24, 2026
ea11a81
docs(29.1-08): record the rerun-freeze-02 freeze
tlancaster6 Aug 24, 2026
e7448a9
docs(29.1-08): append attempt 2 to the numbered freeze attempt log
tlancaster6 Aug 24, 2026
3fd92bf
docs(29.1-08): close out D4, D5 and D6 in the deferred-items ledger
tlancaster6 Aug 24, 2026
03333d7
docs(29.1-08): register the three D4 anchor failures in the windows l…
tlancaster6 Aug 24, 2026
01ee83d
docs(29.1-08): summarise the rerun-freeze-02 freeze plan
tlancaster6 Aug 24, 2026
59fa146
docs(29.1-08): record the summary self-check result
tlancaster6 Aug 24, 2026
ffbd647
docs(29.1-08): complete the rerun-freeze-02 freeze plan up to the pus…
tlancaster6 Aug 24, 2026
fff7f2e
docs(29.1-08): record the approved push and the post-push assertions
tlancaster6 Aug 24, 2026
92901ac
docs(29.1-08): close the plan -- rerun-freeze-02 pushed, phase 29.1 done
tlancaster6 Aug 24, 2026
0898c53
docs(29.1-08): correct a stale PENDING reference in the summary
tlancaster6 Aug 24, 2026
7edda2e
docs(phase-29.1): complete phase execution
tlancaster6 Aug 24, 2026
8d1576e
fix(29.1): stop the E7 overwrite hazard auto-closing as resolved
tlancaster6 Aug 24, 2026
687f969
docs(28): add phase context and repoint state at the rerun
tlancaster6 Aug 24, 2026
b0fcef1
docs(28): research phase domain
tlancaster6 Aug 24, 2026
4672f4a
docs(phase-28): add validation strategy
tlancaster6 Aug 24, 2026
c3596f2
docs(28): create phase plan — 5 plans, 5 waves, tracer-led production…
tlancaster6 Aug 24, 2026
f1ecae9
docs(28): add read_first to the launch authorisation gate; deduplicat…
tlancaster6 Aug 24, 2026
b001904
docs(28): mark RESEARCH.md's open questions resolved
tlancaster6 Aug 24, 2026
a7efb3b
docs(28): close phase-28 planning -- gates, wave annotations, state
tlancaster6 Aug 24, 2026
baa0523
chore(28-01): build production clone, env and dry-run venue
tlancaster6 Aug 24, 2026
79106d8
chore(28-01): assert environment provenance before the burn (T-28-01)
tlancaster6 Aug 24, 2026
701b257
chore(28-01): confirm the D4 three-failure state before launch (T-28-04)
tlancaster6 Aug 24, 2026
055225c
docs(28-01): summarise the production venue build
tlancaster6 Aug 24, 2026
be34637
docs(28-01): record self-check result
tlancaster6 Aug 24, 2026
99c2c4c
docs(28-01): complete production-venue plan
tlancaster6 Aug 24, 2026
623fca4
chore(28-02): run the pre-launch assertion checklist and write the re…
tlancaster6 Aug 24, 2026
1eabd29
docs(28-02): complete pre-flight and launch authorisation plan
tlancaster6 Aug 25, 2026
1140dd5
docs(28): freeze02 run evidence and run record
tlancaster6 Aug 25, 2026
8d26b5b
docs(28): close phase 28 in project state
tlancaster6 Aug 25, 2026
1e2550c
docs(state): rename the work branch to results/rerun-freeze-02
tlancaster6 Aug 25, 2026
60ea40d
docs(29): re-scope RUN-05 from a date to the submission event
tlancaster6 Aug 25, 2026
149d89b
docs(29): move the Zenodo upload work to the Linux box
tlancaster6 Aug 25, 2026
c19ecec
docs(29): capture phase context from discussion
tlancaster6 Aug 25, 2026
99db4cd
docs(29): research the gate, the commit set, and the Zenodo API
tlancaster6 Aug 26, 2026
34e268b
docs(phase-29): add validation strategy
tlancaster6 Aug 26, 2026
da0f02f
docs(29): create phase plan
tlancaster6 Aug 26, 2026
7dc2bcd
docs(29): add the missing action block to the sandbox-confirmation ch…
tlancaster6 Aug 26, 2026
9c0ed09
docs(29): create phase plan
tlancaster6 Aug 26, 2026
a96da07
docs(29-01): rule the Record A / Record B payload split
tlancaster6 Aug 26, 2026
224c229
docs(29-02): grade the returned run with the frozen gate
tlancaster6 Aug 26, 2026
7632402
docs(29-02): inventory the 227 files the ignore rules admit
tlancaster6 Aug 26, 2026
e290f63
docs(29-02): complete land-and-grade-the-returned-run plan
tlancaster6 Aug 26, 2026
8e34c6b
feat(29-03): E2 same-seed control script and evidence
tlancaster6 Aug 26, 2026
9b94f51
feat(29-03): E7 before/after sign test script and evidence
tlancaster6 Aug 26, 2026
1b540d5
docs(29-03): complete e2-control-and-e7-before-after plan
tlancaster6 Aug 26, 2026
fa9ed24
docs(29-03): complete e2-control-and-e7-before-after plan
tlancaster6 Aug 26, 2026
70e783f
results(29): full production suite at rerun-freeze-02
tlancaster6 Aug 26, 2026
da86892
docs(29-05): record the post-commit gate re-run and byte anchors
tlancaster6 Aug 26, 2026
088b876
docs(29-05): complete commit-the-returned-run plan
tlancaster6 Aug 26, 2026
75a33cb
docs(29-01): record the Zenodo credential gate as satisfied
tlancaster6 Aug 26, 2026
240ed00
feat(29-01): Zenodo upload tooling, rehearsed end to end on sandbox
tlancaster6 Aug 26, 2026
0b56022
docs(29-01): record the author's sandbox approval and three findings
tlancaster6 Aug 26, 2026
9559ea8
docs(29-01): complete zenodo-tooling-and-sandbox-rehearsal plan
tlancaster6 Aug 26, 2026
51ebbcc
docs(29-01): update state and roadmap for the zenodo tooling plan
tlancaster6 Aug 26, 2026
9fdd884
docs(29): set Record B's version to 2.1.0 per author ruling
tlancaster6 Aug 26, 2026
4256e82
docs(29-06): measure the D1 provenance rails against the committed tree
tlancaster6 Aug 26, 2026
5799b14
fix(29): repair eight provenance-rail assertions the returned tree ex…
tlancaster6 Aug 26, 2026
dc2de72
docs(29-06): complete repair-the-provenance-rails plan
tlancaster6 Aug 26, 2026
f15f1ba
docs(29-04): build Record A's input-only archive and record its digest
tlancaster6 Aug 26, 2026
b71ffe5
docs(29-04): create Record A's production draft and record its handles
tlancaster6 Aug 26, 2026
fd78d77
docs(roadmap): insert Phase 29.2 — Merge, Release, and Publish
tlancaster6 Aug 26, 2026
b6bec8d
feat(29-04): stream Record A into its production bucket, byte-verified
tlancaster6 Aug 26, 2026
886bbda
docs(29-04): complete record-a-build-and-production-draft plan
tlancaster6 Aug 26, 2026
b95762f
docs(29-04): complete record-a-build-and-production-draft plan
tlancaster6 Aug 26, 2026
67d0b9b
docs(29-07): record the A<->B linkage options and Record A's live dra…
tlancaster6 Aug 26, 2026
cd83a99
docs(29): add ORCID and remove a placeholder from Record A's description
tlancaster6 Aug 26, 2026
cc08fa5
docs(29-07): record the sequential linkage ruling and Record A's mint…
tlancaster6 Aug 26, 2026
00db4ac
feat(29-07): build Record B's payload from this run's own fresh outputs
tlancaster6 Aug 26, 2026
edd9f1b
feat(29-07): finalise Record B's metadata with the ruled linkage
tlancaster6 Aug 26, 2026
ca3f044
docs(29-07): record Record B's draft handles before any payload byte …
tlancaster6 Aug 26, 2026
37717eb
feat(29-07): stream Record B into the draft and prove the round trip
tlancaster6 Aug 26, 2026
c227048
docs(29-07): summarise Record B's build and production draft
tlancaster6 Aug 26, 2026
b75a066
docs(29-07): append the summary self-check result
tlancaster6 Aug 26, 2026
ec06b7e
docs(29-07): complete record-b-build-and-production-draft plan
tlancaster6 Aug 26, 2026
0a5d095
chore(roadmap): track Phase 29.2's phase directory
tlancaster6 Aug 26, 2026
0bcf13d
docs(29-08): write the phase record — six criteria, measured values, …
tlancaster6 Aug 26, 2026
9ea932e
docs(29-08): file the forward-carried items with their blast radius a…
tlancaster6 Aug 26, 2026
da8312c
docs(29-08): record the author's `defer` ruling and make the handoff …
tlancaster6 Aug 26, 2026
cbf56a3
docs(29-08): summarise the phase-close plan
tlancaster6 Aug 26, 2026
862eb99
docs(29-08): append the self-check result
tlancaster6 Aug 26, 2026
66c70fb
docs(29-08): complete the phase-close plan
tlancaster6 Aug 26, 2026
899095a
docs(29): correct two stale requirements-completed claims in SUMMARY …
tlancaster6 Aug 26, 2026
2205eeb
fix(29): revert a false RUN-05 completion written by `phase complete`
tlancaster6 Aug 26, 2026
45efc98
docs(29.2): capture phase context
tlancaster6 Aug 26, 2026
1baa971
docs(state): record phase 29.2 context session
tlancaster6 Aug 26, 2026
beeaf92
docs(29.2): research phase domain
tlancaster6 Aug 26, 2026
8d9f819
docs(phase-29.2): add validation strategy
tlancaster6 Aug 26, 2026
bb4083a
docs(29.2): correct CONTEXT decisions research invalidated
tlancaster6 Aug 26, 2026
7b6f1f2
docs(29.2): create phase plan
tlancaster6 Aug 26, 2026
a7a3d41
docs(todo): file the decision-coverage gate's dotted-phase blindness
tlancaster6 Aug 26, 2026
c61500b
docs(state): record phase 29.2 planning session
tlancaster6 Aug 26, 2026
7ab969e
ci(29.2-01): pin the release toolchain to a verified-working PSR/GitP…
tlancaster6 Aug 26, 2026
efcc7bc
docs(29.2-01): rehearse the whole v2.1.0 release end to end in a thro…
tlancaster6 Aug 26, 2026
55f3bcc
docs(29.2-01): assert the 2.1.0 sdist's member list, record the size …
tlancaster6 Aug 26, 2026
fe9c433
docs(29.2-01): complete the release-rehearsal tracer plan
tlancaster6 Aug 26, 2026
e671074
fix(29.2-02): scope both formatting hooks off the byte-sensitive arti…
tlancaster6 Aug 26, 2026
d9e8f49
fix(29.2-02): add a .planning/ arm to detect-secrets, and write its c…
tlancaster6 Aug 26, 2026
80ae46e
docs(29.2-02): complete the pre-commit hook repair plan
tlancaster6 Aug 26, 2026
3026813
fix(29.2-03): bound the two drifting D4 assertions in representable s…
tlancaster6 Aug 26, 2026
3c831b1
docs(29.2-03): record both suite counts and all seven smoke invocations
tlancaster6 Aug 27, 2026
ae90117
docs(29.2-03): amend the D4 todo to the two members it still owns
tlancaster6 Aug 27, 2026
dc3d1f7
docs(29.2-03): complete the D4 step-bound and CI pre-measurement plan
tlancaster6 Aug 27, 2026
12291c6
docs(29.2-03): file this plan's two deviations in the windows ledger
tlancaster6 Aug 27, 2026
ff9d5d1
docs(29.2-04): prove CI's whole-tree hook sweep moves not a byte
tlancaster6 Aug 27, 2026
cf14d0e
docs(29.2-04): record the credential-scope gate blocking the pull req…
tlancaster6 Aug 27, 2026
f5b9e10
docs(29.2-04): open PR #3 into main and record it, unmerged
tlancaster6 Aug 27, 2026
3ffebe3
docs(29.2-04): fix the four docutils faults that fail CI's build-docs…
tlancaster6 Aug 27, 2026
f300c55
docs(29.2-04): record the seventh board row, the build-docs failure, …
tlancaster6 Aug 27, 2026
64f83aa
docs(29.2-04): rule the check board NOT GREEN, with all seven rows be…
tlancaster6 Aug 27, 2026
6046665
docs(29.2-04): summarise the hook proof, PR #3, and the not-green board
tlancaster6 Aug 27, 2026
d561021
docs(29.2-04): complete the hook-proof, pull-request and check-board …
tlancaster6 Aug 27, 2026
edfaa5a
ci(29.2): give CI's test job the tags and psutil its manifest tests a…
tlancaster6 Aug 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
38 changes: 37 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,43 @@ jobs:
python-version: '3.12'

- name: Install python-semantic-release and build
run: pip install python-semantic-release build
# This line governs the entire release toolchain: the versions of
# python-semantic-release (PSR) and its GitPython dependency that will
# compute the bump, write pyproject.toml and CITATION.cff, commit, tag
# and push. It is pinned exactly, and it is the only pinned install in
# this repository.
#
# The cause is measured, not defensive. GitPython 3.1.60 (released
# 2026-08-25) removed the `Actor.name_email_regex` class attribute as
# ReDoS hardening (GitPython PR #2215). PSR reads that attribute
# unconditionally while loading its config, at
# semantic_release/cli/config.py:745, so EVERY `semantic-release`
# subcommand dies before it touches anything:
# ::ERROR:: type object 'Actor' has no attribute 'name_email_regex'
# Measured 2026-08-26 in a scratch venv: gitpython 3.1.59 works;
# gitpython 3.1.60 raises that AttributeError immediately.
#
# Bounding only one of the two packages does not close this. PSR
# declares `gitpython~=3.0`, so an unpinned install resolves to the
# broken version; and PSR's own latest release (10.6.1, 2026-07-06)
# predates the removal, while its fix is still open and unmerged. There
# is therefore NO released python-semantic-release that works with the
# current GitPython -- the pin has to name both.
#
# Exact `==` rather than a floor or a ceiling: this workflow only runs
# on one-way-door days, and this phase exists because a floating
# dependency moved on one. Reproducibility beats freshness here. `build`
# stays unpinned because it is a build front-end with no part in the
# failure and the same bare idiom appears in publish.yml.
#
# DO NOT read this as house style. No other workflow in this repository
# pins anything -- all five use a bare `pip install`. This step
# deliberately diverges, and the divergence is the point.
#
# RETIREMENT: drop both pins once a released PSR version ships the fix
# (upstream issues 1475 and 1476, PR 1477); then this reverts to
# `pip install python-semantic-release build`.
run: pip install python-semantic-release==10.6.1 gitpython==3.1.59 build

- name: Semantic release
env:
Expand Down
12 changes: 11 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ jobs:
python-version: ["3.11", "3.12"]

steps:
# fetch-depth: 0 because tests/unit/test_run_manifest.py asserts on
# `git describe --match 'v[0-9]*'`, which needs the tag AND the commit
# graph back to it. The default shallow checkout (depth 1, no tags)
# leaves git_describe None and fails four of those assertions.
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
Expand All @@ -25,10 +31,14 @@ jobs:
cache: 'pip'
cache-dependency-path: 'pyproject.toml'

# The `bench` extra carries psutil, which src/aquacal/io/benchmark.py
# needs to populate cpu_count_logical and ram_total_bytes. Without it
# both degrade to None (by design, benchmark.py:151-159) and the
# manifest field assertions fail.
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[dev]"
pip install -e ".[dev,bench]"

- name: Run tests
run: pytest tests/ -m "not slow" --cov=aquacal --cov-report=xml --cov-report=term
Expand Down
291 changes: 291 additions & 0 deletions .gitignore

Large diffs are not rendered by default.

7 changes: 0 additions & 7 deletions .hooks/pre-push-tests.sh

This file was deleted.

170 changes: 107 additions & 63 deletions .planning/HANDOFF.json

Large diffs are not rendered by default.

745 changes: 736 additions & 9 deletions .planning/MANUSCRIPT-FINDINGS.md

Large diffs are not rendered by default.

48 changes: 47 additions & 1 deletion .planning/MILESTONES.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,52 @@ here so phase numbering and the release history stay reconcilable. The last GSD

**Documentation debt this created:** every v1.7–v1.8 feature is discoverable only from
`troubleshooting.md`, and the intrinsics seeding is undocumented entirely. Addressed by
v1.9 Task Group E.
v2.0 Task Group E.

---

## v2.0 Publication Prep (Closed: 2026-08-15)

**Phases completed:** 10 of 12 (16, 17, 18, 19, 19.1, 19.2, 19.3, 19.4, 19.5, 21), 106 plans
**Deferred, carried forward:** Phase 20 (Refractive Index Helper), Phase 22 (Release Cut)
**Timeline:** 22 days (2026-07-23 → 2026-08-13)
**Changes:** 709 files, +145,357 / −3,657 lines across 673 commits
**Git range:** `cd5dd00` (feat(16-01)) → `f55dd51`
**Releases:** v2.0.0 and v2.0.1 tagged on GitHub 2026-08-11 — the first push in 674 commits.
Zenodo dataset record **21889922**, version DOI `10.5281/zenodo.21889922`, concept DOI
`10.5281/zenodo.18645384` preserved.

> **Planned as "v1.9", shipped as v2.0.** Phase 19.3 made `board` a required parameter of
> `generate_board_trajectory` and `generate_real_rig_trajectory`, both public exports, forcing
> a major bump. Archived under what shipped.

**Delivered:** All code-side tooling the SoftwareX reviewer responses depend on — observability
hooks, benchmark instrumentation, a per-camera interface ablation mode — and then, through five
inserted decimal phases, the experiment suite itself: consolidated, executed, provenance-complete,
geometrically corrected twice, and uncertainty-banded. The Zenodo archive was regenerated from
the full frameset and republished so §3 reproduces from bytes a reader can download.

**Key accomplishments:**
1. Experiment observability and benchmark instrumentation: per-stage calibration dumps,
per-iteration optimizer traces, conditioning diagnostics via blocked tall-skinny QR, standalone
held-out evaluation, and a machine-readable `benchmark.json` on every run
2. Per-camera interface ablation mode (`shared_interface=False`) with `True` proven bit-unchanged
3. One `experiments/` directory, one implementation per experiment, and a provenance table mapping
every paper artifact to its script, data file, and figure generator
4. Two geometry defects found and corrected — boards protruding through the water surface (19.3),
and ground truth giving each camera its own water surface (19.4, 1.42 px mean modelling error
against a 0.4–0.9 px residual)
5. Uncertainty bands (19.5): E5 and E6 gained seed bands, E2 a split band, and R1.2/R1.3 got their
first experimental answers — establishing what may be *claimed*, not just what is correct
6. Dataset refresh and first push in 674 commits: full-frameset Zenodo archive published as a new
version with lineage preserved, `load_example("real-rig")` verified from a cold cache, and a
pre-2.0.0 audit that caught three release-locked defects before they froze

**Known deferred items at close:** 15 (see STATE.md § Deferred Items) — 2 debug sessions,
5 quick-task records, 5 todos, 3 verification gaps. Plus 4 unsatisfied requirements
(INDEX-01..03, DOCS-07), all carried forward rather than dropped.

**No release cut at close** by user decision 2026-08-15. The next milestone cleans up the
experiments, fixes the accumulated defects, and re-runs the full suite at a single code version.

---
166 changes: 166 additions & 0 deletions .planning/MORNING-HANDOFF-2026-08-20.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
# MORNING HANDOFF — 2026-08-20

**Written 2026-08-20T00:20Z, right after the overnight production run launched.**

Your job this morning: work out whether the overnight run succeeded, and if so move Phase 29
forward. Read this before running anything.

---

## Where things stand

- **Phase 27 is COMPLETE (13/13).** The freeze is cut, published, and verified on the Linux run
machine.
- **Phase 28 is EXECUTING** — the full-suite production run started on the Linux box at
**2026-08-20T00:14:10Z**, expected ~15-16 h, so expect it to finish around **15:15-16:15Z**
(11:15-12:15 EDT).
- **Frozen sha:** `3ab9c13723202a58bb50e351b0b6bc0c0ffcd59c`, tag `rerun-freeze-01`.
- **SoftwareX submission is 2026-08-21** — one day out.

The run is on the **Linux machine**, not this Windows box. You cannot inspect it directly; the
user has to paste output. Everything below is written as commands for them to run.

---

## THE ONE THING YOU MUST NOT GET WRONG

**The driver exits NON-ZERO on a completely healthy run. Do not report the run as failed because
of its exit code.**

Acceptance is read at the **end-of-run completeness roll-up**, never `$?`. On a passing run,
~17-19 per-stage `GATE FAIL` findings survive, because gates 1-4 judge the whole output tree at a
moment when it is still filling, and are applied to the auxiliary `e2_band` / `e2_timing` /
`e2_memory` / `e4_repeat` trees they do not own. This was ruled by the author on 2026-08-19 and
is documented in `experiments/HANDOFF.md` §2.8 and `27-PREPUSH-AUDIT.md`.

**What DOES matter, and always matters:**

1. A `STAGE FAILED` line in the failures file — a stage that *ran and failed*. Distinct from
`GATE FAIL`.
2. Any stage carrying a non-zero exit in the state TSV.
3. `gate3_run_manifest_clean_tree` failing — means the tree was dirty at launch.
4. The roll-up not reaching `0 FAIL`.

---

## Ask the user for exactly this

```bash
cd ~/aquacal-frozen-rerun-freeze-01
awk '/END-OF-RUN COMPLETENESS ROLL-UP/,0' ~/suite_run_freeze01.log | grep -E "^\[FAIL\]|TOTAL:"
grep -E "STAGE FAILED" experiments/run_experiment_suite_state.3ab9c13.failures.txt || echo "NO STAGE FAILED LINES"
awk -F'\t' '$3=="complete" && $5!=0 {print "NONZERO:",$1,$5}' experiments/run_experiment_suite_state.3ab9c13.tsv
awk -F'\t' '$3=="complete"' experiments/run_experiment_suite_state.3ab9c13.tsv | wc -l
tail -3 ~/suite_run_freeze01.log
```

**Green looks like:** roll-up `0 FAIL`, no `STAGE FAILED`, no non-zero exits, **20** completed
stages.

**If it is still running**, the last command shows live progress; the state TSV shows which stages
have completed. Do not conclude it is hung from a quiet log — check the process:
`ps -o pid,etime,stat,cmd -p <pid>`, or that `experiments/results/` is still gaining files.

**If it died overnight**, re-launching the identical command **resumes**: a stage is skipped only
if it completed *and* exited 0, so anything that died mid-flight re-runs. The launch command is:

```bash
export PRELAUNCH_GATE_PYTHON="$HOME/anaconda3/envs/aquacal-freeze01/bin/python"
nohup bash experiments/run_experiment_suite.sh > "$HOME/suite_run_freeze01.log" 2>&1 &
disown
```

Note that re-launching **appends** to the same log path only if they use `>>`; the command above
truncates. Have them use a new log name for a resume so the first log survives.

---

## Terminal formatting note

The user's terminal mangles multi-line pasted blocks — a bash heredoc (`python - <<'PY'`) failed
because the closing marker came through indented. **Give single-line commands.** If you need
multi-line Python, write it to a file first.

Also `awk -F'\t' '…'file` (missing space before the filename) has already bitten once. Keep a
space.

---

## If the run is green — Phase 29

Phase 29 is **RUN-03/04/05**: gates pass, the E2 sanity control and E7 before/after clear, results
committed, Zenodo results package published pre-submission. Do not start executing it blind —
`/gsd:plan-phase 29` or read `.planning/ROADMAP.md` § Phase Details first.

Two things Phase 29 specifically owes, per the roadmap:

- **The E2 sanity control.** E2's schema does not change, so it should reproduce to ~1e-8. This is
also what proves DEGEN-02's instrumentation of `_optim_common.py` did not perturb the solve. Note
the working mechanism is `check_e2_band`'s numeric `real_rig_metrics.json` comparison at
`_E2_METRICS_RTOL = 1e-6` (`check_rerun_gates.py:1340`) — E2's own `--check` compares only
`camera_parameters.csv`, because `reprojection_residuals.csv` and `reconstruction_errors.csv` are
DATA-01b-gitignored and ship only in Zenodo. `e2_real_rig.py:538-552` states this honestly; do not
"fix" it by trusting E2's `--check` alone.
- **An explicit E7 before/after comparison** — FIX-02's two extra free parameters could soften a
published 10-of-10 result.

---

## If the run is NOT green

Diagnose before re-running anything. The per-stage logs are at
`experiments/run_experiment_suite_state.3ab9c13.stagelogs/<stage>.log` and are the fastest route
to a root cause — that is how the e3 failure was diagnosed last night in one read.

**Do not add a pre-flight override flag to get past a refusal.** `--skip-e2` in particular
silently makes the run synthetic-only and would waste the whole night. A refusal is information.

**Do not edit anything in the clone.** The run machine's tree must not move — no pull, no
checkout, no commit there (D-27). A stage that ran at a different commit than the rest makes the
whole run unreportable. If a code fix turns out to be needed, it is made *here*, committed, and a
new `rerun-freeze-02` tag is cut; tags are never moved.

---

## Known, already-decided, do not re-litigate

- **The install-command deviation.** The frozen `HANDOFF.md` §1.2 says `pip install -e .`, which
omits `pytest` (`dev`) and `psutil` (`bench`). Without them e3 dies outright and two required
manifest fields go null. The target env was corrected with `pip install -e ".[dev,bench]"`
before the run. Author ruled **record, do not refreeze**. Filed at
`.planning/todos/pending/2026-08-20-POST-SUBMISSION-frozen-package-install-command-omits-required-extras.md`.
- **`e7_focal_standoff` and `e4_repeat` have never been rehearsed at any scale** (D-21) — they
have no `--smoke` form. The production run is the first time their invocation lines execute. If
anything fails, suspect these two first.
- **A fresh clone's *smoke* pass downloads 4.35 GB** from Zenodo record 21889922. The production
run does not, because `e2_production` writes `reconstruction_errors.csv` first. Not a defect.
- **Do not attribute runtime differences to code.** The Linux smoke pass was 3.6x faster than the
Windows one; that tracks the machine. The ~15-16 h estimate came from Windows measurements and
may be well off.

---

## Context files, in the order worth reading

1. `.planning/phases/27-frozen-single-sha-handoff-package/27-ONTARGET-VERIFICATION.md` — what was
verified on the target, the deviation, and what it explicitly does **not** prove.
2. `.planning/phases/27-frozen-single-sha-handoff-package/27-FREEZE-RECORD.md` — the frozen sha,
the tag, the attempt log.
3. `experiments/HANDOFF.md` §2.8 — how to read the exit code. **Read this before judging the run.**
4. `.planning/phases/27-frozen-single-sha-handoff-package/27-PREPUSH-AUDIT.md` — the roll-up
ruling and the exposure audit.
5. `.planning/STATE.md` — current position.

## Repository state

Local `main`-line branch is `experiments/full-suite-rerun`, synced with origin as of the last
push. The tag `rerun-freeze-01` is on origin and **must never be moved**. Pushing from this
Windows box runs a pre-push hook that executes the test suite (~50 min) with bare `python` — put
the env on PATH first or it fails with ~62 collection errors:

```bash
E=/c/Users/tucke/anaconda3/envs/aquacal; PATH="$E:$E/Library/bin:$E/Scripts:$PATH" git push …
```

Launch it detached (`nohup … & disown`) and watch `git ls-remote` for the ref, because the tool
harness kills long background waiters at ~35-50 min while the push itself survives.
Loading
Loading