Skip to content

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

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 — so check() in crates/launchbound-tui/tests/emulation.rs makes one assertion where it made two, and a truncated record that happens to start with ^[[59m can no longer pass. The Vec<String> helper that existed to make the comparison typecheck is gone.

The pin's known-defect caveat is gone too. The doc comment explained that termlens#320 reported blink and strikethrough as unsupported although the attribute shadow implements them, and argued this application is unaffected because it only uses BOLD and BOLD | REVERSED. That was fixed upstream in termlens 0.10.2, so an entry in this list is a real gap whatever modifiers the application uses — which is a stronger pin, and the comment now says so.

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

Verified locally: just ci green end to end — fmt, clippy, tests, docs, deny, schemas, pins, versions, links, skill. That includes check-skill-version.sh reporting both halves: the skill at 0.11.0 and the workflow CLI pins at 0.11.0, against the 0.11 dependency. 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 the goldens 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. The pinned list and "the
record is complete" become one assertion, and the Vec<String> helper that
existed to make the comparison typecheck 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 three `cli-version:` pins move to 0.11.0, and
the report action to the v0.11.0 tag's SHA, verified with `gh api`.
check-skill-version.sh holds all of them equal to the dependency.

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 1256c7c into main Sep 11, 2026
10 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