Skip to content

chore(deps): termlens 0.11, the stability candidate - #139

Merged
vyncint merged 2 commits into
mainfrom
chore/termlens-0.11
Sep 11, 2026
Merged

vyncint merged 2 commits into
mainfrom
chore/termlens-0.11

Conversation

@vyncint

@vyncint vyncint commented Sep 11, 2026

Copy link
Copy Markdown
Owner

termlens 0.11.0 is on crates.io. It is that project's stability candidate: from 0.11.0 no promised item changes incompatibly before its 1.0, so this requirement should hold for a while rather than needing a bump every few weeks.

Both manifests move together, as check-skill-version.sh insists: termlens is deliberately not in [workspace.dependencies], and a split resolves two emulators to render one set of goldens.

The one breaking change lands here as a simplification. Screen::unsupported() returns an Unsupported view instead of &[Arc<str>], and unsupported_overflow() folds into it. The view compares equal to a slice only when the retained shapes match and nothing overflowed the retention bound — so "the list is exactly this" and "the record is not truncated" are one assertion, and a truncated record that happens to start with ^[[59m can no longer pass:

  • tests/emulation.rs loses its Vec<String> helper and one assertion.
  • learn_flow.rs, witness_flow.rs, triage_flow.rs each lose a separate unsupported_overflow() line.
  • check_render.rs's is_empty() now covers both halves on its own — the view is non-empty when shapes overflowed, not only when any were retained.

One stale comment removed. tests/emulation.rs warned that termlens#320 reported blink and strikethrough as unsupported although the attribute shadow implements them, and told a reader to check a new modifier against that issue before believing a failure. That was fixed upstream in termlens 0.10.2, so an entry in this list is now a real gap in every case, and the comment says that instead.

Verified locally: just ci green end to end — fmt, clippy (-D warnings, workspace and the conformance extractor), the whole workspace suite, rustdoc, cargo-deny, isolation, plurals, schemas, the fixture recorder's --check, check-skill-version.sh (0.11.0 against both manifests) and the surface gate's self-test. Lockfile moved termlens 0.10.1 → 0.11.0 and nothing else.

From crates.io, never a path dependency or [patch.crates-io].

Both PTY suites move together — reconverge-tui and cargo-reconverge —
because check-skill-version.sh refuses two termlens versions in one build,
and a split would render the goldens with two emulators.

From 0.11 no promised termlens item changes incompatibly before its 1.0,
so this requirement should hold for a while.

The one breaking change simplifies the invariant the suites rest on:
`Screen::unsupported()` returns a view and `unsupported_overflow()` folds
into it, and the view compares equal to a slice only when the retained
shapes match *and* nothing overflowed the bound. tests/emulation.rs loses
its Vec<String> helper and one assertion; the three flow tests lose their
separate overflow assertion; check_render.rs's is_empty() now covers both
halves of the record on its own.

The emulation comment warning that termlens#320 named blink and
strikethrough as unsupported when the shadow parser implements them is
gone: fixed upstream in 0.10.2, so an entry in that list is a real gap in
every case now.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
termlens#340 moved it there so that `inspect prog > file` saves a screen
`render` and `diff` read back. These assertions read stdout, so they were
the ones that noticed — and they only run under `--ignored`, which is why
a local `cargo test` and `just ci` were both green while CI was not.

Each now asserts the split rather than working around it: the trailer on
stderr, and stdout carrying no trailer line at all.

Signed-off-by: Vyncint Ng <115854244+vyncint@users.noreply.github.com>
@vyncint
vyncint merged commit b0ca9f2 into main Sep 11, 2026
14 checks passed
@vyncint
vyncint deleted the chore/termlens-0.11 branch September 11, 2026 01:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant