Skip to content

deps: bump ink from 7.1.1 to 8.0.0 - #180

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/npm_and_yarn/ink-8.0.0
Open

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

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Bumps ink from 7.1.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 dependabot Bot added the dependencies Dependency updates (Dependabot) label Oct 13, 2026
Bumps [ink](https://github.com/vadimdemedes/ink) from 7.1.1 to 8.0.0.
- [Release notes](https://github.com/vadimdemedes/ink/releases)
- [Commits](vadimdemedes/ink@v7.1.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 force-pushed the dependabot/npm_and_yarn/ink-8.0.0 branch from f6211af to 3663000 Compare October 19, 2026 12:50

DeDuva commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Validation failed — not merging. ink 7.1.1 → 8.0.0, head f6211afd.

Stage: the test job (run 38325297390, job 115062491933) — mergeable: true but mergeStateStatus: unstable.

Error:

FAIL test/remote-control.test.ts [ test/remote-control.test.ts ]
Error: Cannot find package 'ws' imported from /home/runner/work/squad/squad/test/remote-control.test.ts
  ❯ test/remote-control.test.ts:11:1
Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }

Test Files  1 failed | 289 passed | 2 skipped (292)

Likely cause — and it is a latent repository bug, not an ink API break. ws is declared only in packages/squad-sdk/package.json (^8.22.0), which installs it at packages/squad-sdk/node_modules/ws. The root node_modules/ws@8.21.0 exists on dev solely because ink 7 depends on ws ^8.20.0. ink 8 drops that dependency — this PR's lockfile diff removes "ws": "^8.20.0" from node_modules/ink and deletes the node_modules/ws entry outright. test/remote-control.test.ts does import WebSocket from 'ws' and resolves from the repo root, so it has been relying on ink's transitively hoisted copy. Remove ink's dependency and the import has nothing to resolve against.

Recommended next action (a human's call, nothing changed here): declare ws as a root devDependency so test/remote-control.test.ts has a dependency it actually owns, then rebase this PR. That is worth doing regardless of ink 8 — the test is resolving a package no manifest in the repo promises it at that location, so any future dependency change could break it the same way.

Separately, ink 8.0.0 is a major and still needs review on its own merits once the resolution failure is cleared. Relevant breaking changes against this repo's packages/squad-cli TUI:

  • Requires React 19.3+. dev now carries react ^19.3.1 (via the group merged as deps: bump the minor-patch group across 1 directory with 31 updates #185), so this one is satisfied.
  • minWidth / maxWidth on <Box> no longer accept percentage strings.
  • stdin / stdout / stderr are typed as generic Node streams in render() options and useStdin() / useStdout() / useStderr() — TTY-only properties such as stdout.columns are no longer in the types, which is a plausible tsc --noEmit break for terminal-width code.
  • useInput no longer receives unrecognized terminal control sequences (mouse reports, focus in/out, cursor position replies).

Those last three want a look at the CLI's <Box> sizing, any stdout.columns use, and any useInput handler that inspects raw escape sequences.

DeDuva commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Still failing after the rebase — verdict unchanged. Dependabot rebased this PR onto dev at 85b17fb during this run; the head is now 3663000e, not the f6211afd my comment above refers to.

The test job on the new head (run 39255213944, job 118068737777) fails with exactly the same error:

Error: Cannot find package 'ws' imported from /home/runner/work/squad/squad/test/remote-control.test.ts
  ❯ test/remote-control.test.ts:11:1
Serialized Error: { code: 'ERR_MODULE_NOT_FOUND' }

So the diagnosis above is confirmed against the current base rather than inferred: the failure is the loss of ink 7's transitively hoisted root node_modules/ws, not anything about ink 8's API.

One of the four breaking changes listed above is now off the table: dev carries react ^19.3.1 since #185 merged in this run, so ink 8's React 19.3+ requirement is satisfied. The <Box> percentage-width, generic-stream-typing and useInput control-sequence changes still want a look once ws is declared at the root.

The earlier CANCELLED test entry on this head is run 39255213842, superseded by cancel-in-progress; the surviving run is the FAILURE above. Nothing was re-run to green and no code or configuration was changed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependency updates (Dependabot)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant