Skip to content

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

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.

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, and is non-empty when shapes overflowed as well as when any were retained. So in tests/emulation.rs:

  • the dashboard's pinned list and "the record is complete, not truncated" become one assertion, and a truncated record starting with ^[[59m can no longer pass;
  • doctor's "the report is supposed to be plain text" becomes one call rather than an is_empty() plus an overflow check;
  • the fn unsupported(screen) -> Vec<String> helper that existed to make the comparison typecheck is gone.

The pin's known-defect caveat is gone too. The doc comment ruled out termlens#320 — blink and strikethrough reported unsupported although the attribute shadow implements them — by arguing the dashboard sets neither attribute. That was fixed upstream in termlens 0.10.2, so an entry in this list is a real gap whatever the dashboard draws, which is the stronger pin.

Three pins move together, as check-skill-version.sh insists: the dependency, the vendored skill, and the cli-version: the report action installs in ci.yml and stress.yml. The action is re-pinned to b8af0fa457dd023aa708a493b7f485256009f1a5 — the v0.11.0 tag, verified with gh api rather than typed.

Verified locally: cargo clippy --workspace --all-targets -D warnings clean and cargo test --workspace 73 passed, 0 failed — the emulation invariant included, at both geometries and over all three doctor fixtures. check-skill-version.sh green on both halves. Lockfile moved termlens 0.10.1 → 0.11.0 and nothing else.

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

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 this suite rests 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. The dashboard's pinned
list and "the record is complete" become one assertion; doctor's "the
report is plain text" becomes one call, since the view is non-empty when
shapes overflowed too. The Vec<String> helper is gone.

The pin's known-defect caveat goes with it: termlens#320 named blink and
strikethrough as unsupported although the attribute shadow implements
them, and was fixed upstream in 0.10.2.

The vendored skill and the two `cli-version:` pins move to 0.11.0, and the
report action to the v0.11.0 tag's SHA, verified with `gh api`.

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 e1ceae0 into main Sep 11, 2026
14 checks passed
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