Skip to content

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

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 pinned list and "the record is not truncated" become one assertion in both PTY suites, and a truncated record starting with ^[[59m can no longer pass:

  • crates/oxidelake-tui/tests/emulation.rs — the dashboard, at every instant the suite asserts against. Its Vec<String> helper is gone.
  • crates/oxidelake-runtime/tests/oxide_tui_pty.rs — the shipped oxide tui binary, which links the whole engine.

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 uses neither. Fixed upstream in termlens 0.10.2, so an entry here is a real gap whatever render.rs draws.

The vendored skill copy moves with the dependency (check-skill-version.sh green at 0.11.0), and the report action in ci.yml and stress.yml is re-pinned to b8af0fa457dd023aa708a493b7f485256009f1a5 — the v0.11.0 tag, verified with gh api rather than typed.

Verified locally: clippy clean on both PTY crates (-D warnings), cargo test -p oxidelake-tui and -p oxidelake-runtime --test oxide_tui_pty green, and cargo test --workspace with no failures. 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 both PTY suites rest on —
the dashboard's and the shipped binary's. `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 in each, and 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 moves to the 0.11 copy 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 2b12da6 into main Sep 11, 2026
17 checks passed
@vyncint
vyncint deleted the chore/termlens-0.11 branch September 11, 2026 01:43
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