Skip to content

feat(tui)!: upgrade ink to 7.1.1 - #81

Open
damusix wants to merge 1 commit into
nextfrom
worktree-ink7-cheatsheet
Open

feat(tui)!: upgrade ink to 7.1.1#81
damusix wants to merge 1 commit into
nextfrom
worktree-ink7-cheatsheet

Conversation

@damusix

@damusix damusix commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

Ink 7 fixes two live bugs. ResultTable's filter Backspace never fired: 0x7f set key.delete on 6.8.0 while the guard tested key.backspace. Resize did nothing because stdout.rows mutates without a React update; both screens now use useWindowSize.

ink-testing-library@4.0.0 was built against ink 5 and declares no ink peer, so its Ink 7 compatibility was unverified going in. It works.

Upstream removed <Text wrap="end"> and wrap="middle" in 7.0.0 without documenting it. Both no-op'd on 6.8.0, so deleting the prop preserves rendering while swapping to truncate-* would not. noorm used neither.

The rules files are rewritten against verified behavior — the TUI glob matched no files, so those rules never loaded for tests — and CLAUDE.md's committed merge-conflict markers are resolved, keeping the surfaces table.

The Ink 7 upgrade is what made the rest possible: useWindowSize replaced
the hardcoded row counts, alternateScreen let the shell own the window,
and measureElement gained the coordinates a click needs.

TextInput is ours now because @inkjs/ui does not publish the hooks to
rebuild its handler, and a mouse report reaches every useInput handler —
clicking mid-edit typed the escape sequence into the field.

Cancelling is honest per dialect: postgres and mysql ask the server to
stop, mssql and sqlite can only stop waiting, and the wording differs.
@damusix
damusix force-pushed the worktree-ink7-cheatsheet branch from 3ca2312 to 8512db6 Compare August 18, 2026 13:52
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