Skip to content

chore(deps): bump ink from 5.2.1 to 8.0.0 in /tui - #8

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/tui/ink-8.0.0
Closed

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/npm_and_yarn/tui/ink-8.0.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 28, 2026

Copy link
Copy Markdown
Contributor

Bumps ink from 5.2.1 to 8.0.0.

Release notes

Sourced from ink's releases.

v8.0.0

Breaking

  • Require React 19.3+ 7829102
  • minWidth and maxWidth on <Box> now only accept numbers (#1029) 7cd7fd9
    • Percentage strings were never documented as supported, and Yoga resolved them against the wrong ancestor
  • stdin, stdout, and stderr are now typed as generic Node.js streams (#981) eb82d8f
    • This applies to the render() options and to useStdin(), useStdout(), and useStderr(). TTY-only properties like stdout.columns are no longer part of the types
  • useInput no longer receives unrecognized terminal control sequences (#1014) c76893e
    • Mouse reports, focus in/out events, cursor position reports, and other terminal replies used to arrive in input with the ESC stripped, as if typed. They are now dropped

New

  • Add contentOffsetX and contentOffsetY props to <Box> for building scrollable views (#765) 3ba5828
  • Add clientWidth and clientHeight to useBoxMetrics() and measureElement() (#988) 3ba5828
    • The element size excluding borders, which is the space its content can occupy
  • Accept any Node.js stream for the stdin, stdout, and stderr options of render() (#981) eb82d8f
    • For example, PassThrough or other Readable/Writable streams. Raw mode is used only when stdin is a TTY with setRawMode()
  • Skip unchanged line prefixes in incrementalRendering mode (#1036) 91eb50a
    • Only the changed part of a line is written, which reduces output and flicker
  • Drop the ws dependency in favor of the native WebSocket for React DevTools (#976) 33567ed
  • Recognize application keypad Enter as key.return b73ebf4

Fixes

Rendering

  • Preserve scrollback when clearing the viewport (#994) fe1d123
  • Preserve terminal history after clear() 494ebeb
  • Restore the unchanged frame when rerendering after clear() fc358c2
  • Redraw the frame when the terminal loses rows (#1025) f603aeb
  • Keep content above the frame when rows shrink while the cursor is shown (#1031) c800284
  • Keep the cursor on the last line when output has no trailing newline (#982) cdc18fa
  • Restore the terminal cursor below the frame on exit 06385e9
  • Preserve the cursor position when its component skips rendering 013feb2
  • Fix incremental rendering of single-line updates, new blank rows, and changed rows (#1039) 9a501e4 507c0c9 509ea75
  • Fix overflow clipping when both the shorthand and an explicit axis are set, and preserve <Transform> line indices when clipping 4f3c7aa
  • Fix background color inheritance for <Static> and nested <Text> 753a5f8
  • Fix fractional percentages being truncated in layout sizes, and restore layout defaults when style props are undefined 274b15a
  • Preserve visibility across Suspense transitions fc685bc
  • Call onRender after the frame is written 83d7de5

<Static>

  • Stop replaying <Static> output on full-clear frames (#1005) d661543
  • Replay <Static> output when resuming re-enters the alternate screen (#1012) 9235028
  • Fix repeated padding, ignored margins, and output inside hidden ancestors 793fe59
  • Keep <Static> output after abandoned concurrent renders 8678b76
  • Reset captured <Static> output when its identity changes cfdd9e6

... (truncated)

Commits
  • 26d2c3f 8.0.0
  • 509ea75 Clear changed incremental rows before painting (#1039)
  • 91eb50a Skip unchanged prefixes during incremental rendering (#1036)
  • 935db23 Switch to node:test
  • d08ff67 Align reconciler host config with updated type definitions (#1037)
  • f603aeb Redraw the frame when the terminal loses rows (#1025)
  • 7cd7fd9 Align minWidth and maxWidth types with supported values (#1033)
  • 02ae1e5 Treat components sharing a focus ID as one Tab stop (#1026)
  • c800284 Keep content above the frame when rows shrink with a cursor shown (#1031)
  • 36f5624 Keep text at its natural width when there is no room to wrap (#1022)
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [ink](https://github.com/vadimdemedes/ink) from 5.2.1 to 8.0.0.
- [Release notes](https://github.com/vadimdemedes/ink/releases)
- [Commits](vadimdemedes/ink@v5.2.1...v8.0.0)

---
updated-dependencies:
- dependency-name: ink
  dependency-version: 8.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code labels Oct 28, 2026
@dependabot
dependabot Bot requested a review from a team as a code owner October 28, 2026 15:46

@elmarhepp elmarhepp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting changes: one blocking issue, see the inline comments.

The single finding holds. The lockfile shows that ink 8.0.0 and its bundled react-reconciler 0.34.0 require React 19.3 or newer, but React 18.3.1 is still what gets resolved. A clean install hits a peer conflict, and a forced install runs an unsupported combination. Also, ink 8 declares node >=22, while the TUI's engines field still allows Node 20. The PR should not be merged as is: either upgrade React and its types together with ink, or keep ink on 5.x.

Notes:

  1. tui/package.json: The diff touches only package.json and package-lock.json. The ink 8 release notes list breaking changes that can affect TUI code: minWidth and maxWidth on <Box> only accept numbers now (percentage strings no longer work), stdin, stdout and stderr are typed as generic Node streams (so stdout.columns and similar TTY properties are gone from the types), and useInput no longer receives unrecognized terminal control sequences. Check the TUI source for these uses. Run the TypeScript build or tsc, the lint step and a manual run of the TUI before merge. Add a test or a manual check for the changed rendering and input paths.
  2. tui/package.json: The CI check reports one failure, and the PR does not say which job failed or why. Before merging, identify the failing job. If it is the install step, it is most likely the React peer conflict described above. Make the CI green on the updated lockfile.

Questions:

  • Which CI job failed, and what is the error message?
  • Which Node version does the project and its CI or container use? Is Node 22 or newer supported?
  • Does the TUI source use minWidth/maxWidth with percentages, stdout.columns, useStdout, or useInput in a way that depends on control sequences?
  • Was the TUI run manually against ink 8, and did it build with tsc?
  • Does the project plan to move to React 19.3 as well, or should this bump stay blocked until then?

Prepared with Meow (Claude), reviewed by Elmar.

Comment thread tui/package.json
"dependencies": {
"ink": "^5.2.1",
"ink": "^8.0.0",
"react": "^18.3.1",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ink 8.0.0 declares react and @types/react as peer dependencies at >=19.3.0, and its bundled react-reconciler 0.34.0 requires react ^19.3.0. This PR leaves "react": "^18.3.1" in place, and the lockfile still resolves React 18.3.1. A clean npm ci should fail with a peer-dependency conflict. If the install is forced (for example with --legacy-peer-deps), the TUI runs ink 8 on React 18, which is not a supported combination. Upgrade react and @types/react to 19.3+ in the same change, after checking the TUI code against React 19, or keep ink on 5.x.

Comment thread tui/package.json
},
"dependencies": {
"ink": "^5.2.1",
"ink": "^8.0.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note, not blocking: ink 8.0.0 requires Node >=22 (see the engines field in package-lock.json). The transitive dependencies chalk 6, cli-truncate 6, slice-ansi 9, ansi-styles 7 and is-in-ci 2 also require Node 20 or 22. The PR does not declare or check the Node version the project supports, and the CI matrix is not visible in the diff. If the project, a Dockerfile or CI still runs on Node 18 or 20, installation or startup breaks. Confirm the supported Node version and state it, for example in engines or .nvmrc.

@dependabot @github

dependabot Bot commented on behalf of github Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #10.

@dependabot dependabot Bot closed this Oct 29, 2026
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/tui/ink-8.0.0 branch October 29, 2026 15:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant