diff --git a/docs/active-work.md b/docs/active-work.md index c2a597c..16922a7 100644 --- a/docs/active-work.md +++ b/docs/active-work.md @@ -58,22 +58,36 @@ If it does not, stop and repair the remote/fetch configuration. - Portable branch: `githubsucks/inline-math-slice`; worktree `../pmacs-math-slice`. **PR #158**, base `main`. -- **Canonical `main` merged into the lane twice on 2026-07-25**, both - times merged rather than rebased, per the #135/#137 precedent: the PR - is awaiting review rounds and a rebase would break every review anchor. +- **Canonical `main` merged into the lane three times on 2026-07-25**, + every time merged rather than rebased, per the #135/#137 precedent: the + PR is awaiting review rounds and a rebase would break every review + anchor. - First at `8c86d34` (28 commits behind). The conflict was **pre-existing**, not introduced by the dired (#164) or Lean 4 ledger commits; it already conflicted against `main` @ `e745068`. - Then at `46a1b8f`, after Lean 4 Stage 2 (#161) landed while this branch's CI was still running. Same single conflict, same shape, same resolution. -- **Both conflicts were this ledger and nothing else** — both sides' - lanes kept verbatim each time. That is the standing cost of a + - Then at `b889873`, after the GPU terminal input fix (#166) landed. + **No conflict at all this time** — and that is exactly why it still + needed a real integration, see below. +- **The first two conflicts were this ledger and nothing else** — both + sides' lanes kept verbatim each time. That is the standing cost of a long-lived PR here: every merge to `main` edits this file, so a branch awaiting review re-conflicts on it and only on it. It is a docs collision, never a code one, and it says nothing about integration risk — do not read a `CONFLICTING` badge on this PR as a code signal without checking which file `git merge-tree` names. +- **The inverse trap matters more, and #166 is the case in point: a + CLEAN `git merge-tree` is not a reason to skip integrating.** #166 + landed 41 lines in `pmacs-gpu/src/main.rs`, the same heavily-rewritten + file as the first integration, and git merged it without a murmur + because the two edits sit in different regions (#166 is entirely in the + headless probe — `PMACS_GPU_PROBE_OBSERVE_MS`, `PROBE_INPUT_CHAR`, + `input_echo_observed` — while this lane rewrites the render path). + Merging the PR on the strength of that clean auto-merge would have + shipped a combination no gate had ever run. **Decide whether to + integrate from the shared-FILE set, not from whether git complained.** - **First integration's surface** (derived from `git diff ..main`, not from another PR's file list): `pmacs-gpu/src/main.rs` gained 72 lines on main from `e547a90` — the @@ -96,8 +110,8 @@ If it does not, stop and repair the remote/fetch configuration. events), cause never identified. So the green run **validates the first integration, including the `pmacs-gpu/src/main.rs` auto-merge, on macOS and Linux both** — the platforms local gating could not - cover. The second integration is not yet CI-covered, but its surface - is the ledger alone. + cover. The second and third integrations get their own CI run on the + push that carries them. - Framing: `docs/inline-math-slice-framing.md` rev 3, approved after two review rounds; parent arc framing merged as #154. - State: parser, font bundle (GUST licence), MATH-table layout with the @@ -124,20 +138,44 @@ If it does not, stop and repair the remote/fetch configuration. 1,992 CRDT library tests; M4 121; full workspace sweep green (isolated `XDG_CONFIG_HOME`). Superseded by the post-integration run below — those numbers describe a tree 28 commits behind. -- Verification **post-integration** (the merge commit; this is the set - that describes what the PR now proposes): `cargo fmt --check` clean; - strict workspace Clippy clean; 1,826 default + 2,003 CRDT library - tests; **202 `pmacs-gpu` tests under `PMACS_REQUIRE_GPU=1`**; M4 121; - **isolated-`XDG_CONFIG_HOME` `--no-fail-fast` workspace sweep 3,208 - across 91 suites, zero failures**; `git diff --check` clean. -- **The GPU count is the integration proof, not just a pass.** It went - 199 → **202**, and `e547a90` added exactly **3** tests to `pmacs-gpu` - — the whole delta on main since the merge base. So both sides' tests - are present and running; neither was dropped by the auto-merge. - Spot-checked structurally too: main's fix survives as - `(count > 0).then(|| MinimapLineShape {` (the deferred closure, **not** - the eager `then_some`) with its regression test, alongside this lane's - 37 math references in the same file. +- Verification after the **first** integration: `cargo fmt --check` + clean; strict workspace Clippy clean; 1,826 default + 2,003 CRDT + library tests; **202 `pmacs-gpu` tests under `PMACS_REQUIRE_GPU=1`**; + M4 121; isolated-`XDG_CONFIG_HOME` `--no-fail-fast` workspace sweep + 3,208 across 91 suites, zero failures; `git diff --check` clean. +- Verification after the **third** integration (this is the set that + describes what the PR now proposes): fmt clean; `git diff --check` + clean; strict workspace Clippy clean; **1,829 default + 2,006 CRDT** + library tests; **202 `pmacs-gpu`** under `PMACS_REQUIRE_GPU=1`; M4 121; + **isolated-`XDG_CONFIG_HOME` `--no-fail-fast` sweep 3,224 across 92 + suites, zero failures**. +- **Test-count reconciliation is the integration proof, not the pass.** + Run it against what the other side actually added, per merge: + - First: GPU 199 → **202**, and `e547a90` added exactly **3** + `pmacs-gpu` tests — the whole delta on main since the merge base. + Structurally spot-checked too: main's fix survives as + `(count > 0).then(|| MinimapLineShape {` (the deferred closure, + **not** the eager `then_some`) with its regression test. + - Third: #166 adds **3** library tests, **2** to + `vterm_stage3_acceptance`, and **0** to `pmacs-gpu`. Predicted lib + 1,826 → 1,829, CRDT 2,003 → 2,006, GPU unchanged at 202 — and that + is exactly what ran. Suite count 91 → **92** is #161's new + `tests/lsp_multi_root_acceptance.rs` binary. All three sides' + markers confirmed live in `pmacs-gpu/src/main.rs`: #166's probe + symbols, this lane's `math_plan_for_line` / `math_gates_match` / + `cached_math_subs_for_slice` / `widen_over_math_chunks` / 21 + `MathBox` references, and the first integration's minimap fix. +- **Ops trap, cost hours: `m4_5_basedpyright_initializes_and_negotiates_ + encoding` does not time out — it hangs forever.** A `--workspace` + sweep parks on `m4_acceptance` with a live + `basedpyright/langserver.index.js` child and never advances (observed + stuck at 38 of 92 suites for 2h26m). The per-suite M4 gate already + carries `-- --skip basedpyright`; **the workspace sweep needs the same + flag** — `cargo test --workspace --no-fail-fast -- --skip + basedpyright` (libtest filters apply to every binary; verify it bit by + checking the run reports exactly 1 filtered out). Do not read a + long-running sweep as "slow": check whether the suite count is + advancing. - Remaining: the user's review pass. Named v0 approximations: the peer-caret half of acceptance 14 is pinned at the mapping level (unit tests), not pixels; a soft-wrapped