docs: record the third integration and the basedpyright sweep hang
Third merge of main into the lane, at b889873 (GPU terminal input #166).
Unlike the first two this one produced NO conflict -- and it is the case
that shows why a clean git merge-tree is not a reason to skip
integrating. #166 lands 41 lines in pmacs-gpu/src/main.rs, the same
heavily-rewritten file as the first integration; the two edits merged
silently only because they sit in different regions of it (#166 is
entirely in the headless probe, this lane rewrites the render path).
Merging the PR on that clean auto-merge would have shipped a combination
no gate had run.
Reconciliation, run against what #166 actually added rather than against
a pass/fail: it 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; that is exactly what ran. Suite count 91 -> 92 is
#161's new lsp_multi_root_acceptance binary. All three sides' markers
verified live in the shared file.
Also records an ops trap that cost hours this session:
m4_5_basedpyright_initializes_and_negotiates_encoding does not time out,
it hangs forever, parking a --workspace sweep at 38 of 92 suites with a
live basedpyright langserver child. The per-suite M4 gate already skips
it; the workspace sweep needs the same flag.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HZjWMjwPXhPbt9upku9mCk
This commit is contained in:
parent
1176f34ebc
commit
6ad9f7e788
|
|
@ -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
|
||||
<merge-base>..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
|
||||
|
|
|
|||
Loading…
Reference in New Issue