Skip to content

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

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 the two assertions in tests/emulation.rs become one, and it is now impossible to pass a truncated record that happens to start with the expected entry:

-        assert_eq!(unsupported(&screen), EXPECTED_UNSUPPORTED, "…");
-        assert_eq!(screen.unsupported_overflow(), 0, "…");
+        assert_eq!(screen.unsupported(), EXPECTED_UNSUPPORTED, "…");

The fn unsupported(screen) -> Vec<String> helper existed only to make that comparison typecheck and is gone.

Everything else is mechanical: the requirement, the lockfile (termlens 0.10.1 → 0.11.0, nothing else moved) and the vendored skill copy, which check-skill-version.sh holds equal to the dependency.

Verified locally: cargo clippy --workspace --all-targets --all-features -D warnings clean, cargo test --workspace --all-features 240 passed, 0 failed — the emulation invariant included, in all three rendering modes (text cells, kitty, sixel). check-skill-version.sh green at 0.11.0.

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 pinned list and "the
record is not truncated" become one assertion, and the `Vec<String>`
helper that existed to make the comparison possible is gone.

The vendored skill moves to the 0.11 copy (check-skill-version.sh).

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 966f84c into main Sep 11, 2026
13 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