Skip to content

Commit c9607e6

Browse files
committed
Restore CapabilityProfile prohibition to TUI-R2 routing
The debloat (0ea205c) cut the only mentions of the testkit-envelope prohibition: removed lines carried "never a runner row, never a CapabilityProfile variant (testkit/transcript.rs:127-142)" while the surviving routing sentence governed only the runtime surface (width.rs branching, emitted escapes). The named contract is distinct from the "never a per-terminal special case" clause and had no surviving carrier; docs mentions elsewhere are descriptive schema rows. Folded into the section 1 routing sentence as the single carrier. Gate: bun test scripts 915/915 serial (one unrelated PTY-smoke flake observed once, not reproducing in two clean serial runs).
1 parent 0ea205c commit c9607e6

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

docs/TUI-R2-terminal-width-table-divergence.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ External evidence resolved: 2026-08-26 (terminal versions from each project's re
1010

1111
## 1. Decision
1212

13-
The width contract in `crates/pi-tui/src/text/width.rs` stays **terminal-agnostic**: it is the single width oracle for rails, table borders, truncation, and cursor accounting, and it is not branched per terminal. Of the six parity-gate terminals (kitty, iTerm2, WezTerm, Terminal.app, Windows Terminal, alacritty), only kitty matches the contract on all four axes; iTerm2, WezTerm, alacritty, and Windows Terminal diverge on the emoji axis (ledger D-1..D-6), and Terminal.app is provisional on every axis pending the darwin spot-check. Every divergence becomes a **documented parity-gated terminal list entry plus a TUI-P5 limitations-table row** — never a per-terminal special case, and never a runtime escape-sequence patch: pi must not emit `OSC 1337 ; UnicodeVersion=N` (or any other per-terminal mode escape) to coerce a host width table.
13+
The width contract in `crates/pi-tui/src/text/width.rs` stays **terminal-agnostic**: it is the single width oracle for rails, table borders, truncation, and cursor accounting, and it is not branched per terminal. Of the six parity-gate terminals (kitty, iTerm2, WezTerm, Terminal.app, Windows Terminal, alacritty), only kitty matches the contract on all four axes; iTerm2, WezTerm, alacritty, and Windows Terminal diverge on the emoji axis (ledger D-1..D-6), and Terminal.app is provisional on every axis pending the darwin spot-check. Every divergence becomes a **documented parity-gated terminal list entry plus a TUI-P5 limitations-table row** — never a per-terminal special case, and never a runtime escape-sequence patch: pi must not emit `OSC 1337 ; UnicodeVersion=N` (or any other per-terminal mode escape) to coerce a host width table. Divergence handling stays inside the documentation envelope: never a transcript runner row, and never a `CapabilityProfile` variant (`crates/pi-tui/src/testkit/transcript.rs:127-142`).
1414

1515
## 2. The width.rs contract under survey
1616

0 commit comments

Comments
 (0)