docs(vterm): record the #135/#137 rebase-and-regate constraint

PR #137 (tab-width-parity) is approved and frozen at 5b23e11. Neither
lane copies from or merges the other; whichever lands second rebases
onto the canonical resulting main and reruns the complete gate suite.

The overlap is pmacs-gpu/src/main.rs, pmacs-protocol/src/lib.rs,
Cargo.lock, and the two ledger docs. The lock and docs are mechanical;
the two source files are not — both PRs edit the GPU renderer's
measurement path and widen the protocol crate's export surface in the
same region, so a conflict-free apply is not evidence of a correct
merge.
This commit is contained in:
Levi Neuwirth 2026-07-22 15:36:51 -04:00
parent 9ff6a62623
commit 3618289633
1 changed files with 32 additions and 0 deletions

View File

@ -115,6 +115,38 @@ git worktree add --track \
githubsucks/vterm-gpu
```
## Cross-PR coordination: #135 and #137 overlap
Two PRs are open against canonical `main` at once and they touch the same
files. **Neither lane copies from or merges the other.** PR #137
(`tab-width-parity`, "feat(render): unify tab-width projection") is
APPROVED and FROZEN at `5b23e11`; this lane must not cherry-pick, merge,
or otherwise absorb it.
**Whichever PR lands SECOND rebases onto the canonical resulting `main`
and reruns the COMPLETE gate suite** — not a subset, and not the
pre-rebase results. The overlap is in the renderer and the protocol
crate's export surface, so a clean textual merge does not imply a
correct one.
Overlapping paths, and why each one collides:
| Path | #135 (vterm stage 3) | #137 (tab width) |
| --- | --- | --- |
| `pmacs-gpu/src/main.rs` | terminal mode: `State` fields, render-batch swaps, input branches, headless probe | tab-width projection in the same renderer |
| `pmacs-protocol/src/lib.rs` | `pub mod terminal` + the terminal re-export block | its own added export |
| `Cargo.lock` | `unicode-width` promoted to a workspace dep for `pmacs-protocol` | a `pmacs-gpu` dependency change |
| `docs/active-work.md`, `docs/agent-handoff.md` | this lane's entries and §1 snapshot | its own entries |
`Cargo.lock` and the docs are mechanical. The two source files are not:
both PRs edit the GPU renderer's measurement/paint path, and both widen
`pmacs-protocol`'s public surface in the same `pub use` region. After the
rebase, re-read the merged region rather than trusting a conflict-free
apply — in particular that terminal cell geometry (`cell_viewport`,
`hit_test_cell`, `terminal_run_rect`) still uses the monospace advance
and is not routed through any new tab-expansion path, since terminal
columns come from the child and never from document projection.
## Vterm Stage 3 framing lane (superseded)
- Portable branch: `githubsucks/vterm-stage3-framing`