docs: list the modifiable-but-unimplemented DEC modes as tolerated #439

Merged
natsukium merged 3 commits from docs/consumed-dec-modes into main 2026-09-25 12:30:20 +09:00
Owner

The support-matrix legend says an input the parser consumes and drops is ⚠️ even where its capability is a non-goal, yet DECSCLM (?4) was 🚫 although it is consumed, soft-tracked and answered as modifiable by DECRQM. The compliance reference also called "Consumed without effect" the complete set while those modes were missing.

Per the decision on the issue (keep the legend's rule):

  • vt-compliance.md "Consumed without effect" gains a row for the ten KNOWN_MODIFIABLE_DEC_MODES entries that have no DECSET arm in apply_dec_private_mode (?4, ?18, ?19, ?34, ?35, ?36, ?42, ?57, ?66, ?67), each verified against felis-grid (sink.rs, editing.rs functional_dec_mode_state, modes.rs). DECCOLM (?3) stays out: its arm has an effect and the matrix already carries it as partial.
  • support-matrix.md marks DECSCLM ⚠️ and adds a ⚠️ row for the other nine, naming the "Compatibility theater" non-goal. The charset table's NRCS row is labelled as the charset mapping, so its 🚫 does not read as covering the tolerated ?42 / SCS inputs.

Closes #391

The support-matrix legend says an input the parser consumes and drops is ⚠️ even where its capability is a non-goal, yet DECSCLM (`?4`) was 🚫 although it is consumed, soft-tracked and answered as modifiable by DECRQM. The compliance reference also called "Consumed without effect" the complete set while those modes were missing. Per the decision on the issue (keep the legend's rule): - `vt-compliance.md` "Consumed without effect" gains a row for the ten `KNOWN_MODIFIABLE_DEC_MODES` entries that have no DECSET arm in `apply_dec_private_mode` (`?4`, `?18`, `?19`, `?34`, `?35`, `?36`, `?42`, `?57`, `?66`, `?67`), each verified against `felis-grid` (`sink.rs`, `editing.rs` `functional_dec_mode_state`, `modes.rs`). DECCOLM (`?3`) stays out: its arm has an effect and the matrix already carries it as partial. - `support-matrix.md` marks DECSCLM ⚠️ and adds a ⚠️ row for the other nine, naming the "Compatibility theater" non-goal. The charset table's NRCS row is labelled as the charset mapping, so its 🚫 does not read as covering the tolerated `?42` / SCS inputs. Closes #391
The support-matrix legend says an input the parser consumes and drops
is ⚠️ even where its capability is a non-goal, yet DECSCLM (`?4`) was
🚫 although felis consumes it, soft-tracks it and answers DECRQM for
it as modifiable: the same residue as the ⚠️ `?12` row. The compliance
reference called its "Consumed without effect" table the complete set
while `?4` and the nine other modes in KNOWN_MODIFIABLE_DEC_MODES that
have no DECSET arm (`?18`, `?19`, `?34`, `?35`, `?36`, `?42`, `?57`,
`?66`, `?67`) were missing from it.

The legend's rule is kept and the tables follow it: the table gains a
row for those ten modes, pinned by the soft-mode DECRQM proptest, and
the matrix marks DECSCLM and the rest ⚠️ under the historical-terminal
non-goal. DECCOLM (`?3`) stays out of the row: its DECSET arm has an
effect, and the matrix already carries it as a partial.

Assisted-by: Claude Code
The charset table marks NRCS 🚫 while the SCS designations and the
DECNRCM mode that select it are tolerated inputs marked ⚠️. Naming the
row for the mapping keeps the 🚫 on the capability felis lacks and the
input statuses on the rows that carry them.

Assisted-by: Claude Code
docs: say the soft DEC mode row's test pins its replies only
Some checks failed
darwin / detect relevant changes (pull_request) Successful in 13s
darwin / build felis (aarch64-darwin) (pull_request) Has been skipped
darwin / publish felis (aarch64-darwin) (pull_request) Has been skipped
darwin / darwin docs-only no-op (pull_request) Successful in 0s
windows / detect relevant changes (pull_request) Successful in 24s
windows / cargo nextest (Windows) (pull_request) Has been skipped
windows / frontend smoke (Windows) (pull_request) Has been skipped
windows / package felis (x86_64-pc-windows-msvc) (pull_request) Has been skipped
windows / windows docs-only no-op (pull_request) Successful in 2s
pr / nix flake check (pull_request) Has been cancelled
pr / cargo build / clippy / test / deny (pull_request) Has been cancelled
pr / wire schema is compatible with the base (pull_request) Has been cancelled
pr / frontend smoke (x86_64-linux) (pull_request) Has been cancelled
pr / publish felis (x86_64-linux) (pull_request) Has been cancelled
windows / cargo clippy (Windows cross) (pull_request) Has been cancelled
0fcb8c09de
The proptest cited for the modifiable-but-unimplemented DEC modes
checks their DECRQM answers; it would still pass if one of them gained
a side effect. Naming what it holds keeps the "Pinned by" column from
claiming more than the test does, as the SGR blink row already does.

Assisted-by: Claude Code
natsukium deleted branch docs/consumed-dec-modes 2026-09-25 12:30:20 +09:00
Commenting is not possible because the repository is archived.
No description provided.