Skip to content

chore(deps-dev): bump @opentui/core from 0.5.17 to 0.8.2 - #643

Merged
github-actions[bot] merged 4 commits into
mainfrom
dependabot/npm_and_yarn/opentui/core-0.8.2
Nov 11, 2026
Merged

github-actions[bot] merged 4 commits into
mainfrom
dependabot/npm_and_yarn/opentui/core-0.8.2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 8, 2026 •

Copy link
Copy Markdown
Contributor

Bumps @opentui/core from 0.5.17 to 0.8.2.

Release notes

Sourced from @​opentui/core's releases.

Release v0.8.2

In 0.8.1, suspend() turned off raw mode at once, before the Session wrote the bytes that stop mouse reporting. If you moved the mouse while you pressed Ctrl+Z or opened $EDITOR, the terminal echoed the reports at the prompt. The next program then read the queued reports as typed text. After Ctrl+Z, bash ran them as commands. In 0.8.2, raw mode stays on until the promise from suspend() settles, whether it resolves or rejects. destroy() already worked this way. When the promise settles, OpenTUI also discards the input that the kernel queued on process stdin. In a pty test with mouse motion during the transition, the number of echoed and queued reports went from 4 to 0. With a 15 ms link delay, it went from 60 to 0. Keys typed during the transition, about 20 ms, are discarded too. The fix works only if you await suspend() before you give the terminal to another program:

await renderer.suspend()
spawnSync(process.env.EDITOR ?? "vi", [file], { stdio: "inherit" })
await renderer.resume()

If you do not await it, the next program starts while stdin is still in raw mode and mouse reporting is still on.

One layout change can show in existing apps. Native text measurement used to clamp a text's height to Yoga's "at most" height, but only when the width was "at most" too. Yoga reuses a size that it measured at an "at most" width when the same width later comes back as exact. As a result, after an edit a text could keep a clamped height that a fresh layout would not give it, and it lost rows. The same clamp cut text in a flex-start ScrollBox to the height of the viewport, and it cut text in an auto-height absolute box to one row. Now a text's height is its wrapped line count under any height mode, the same way TextTable already measured it. Stretched text and text with an explicit width already kept their full height. Now text that is taller than its space also keeps its full height in centered and flex-start columns, so its siblings shrink or move. In a short centered dialog, the row below a long body can move onto the bottom border. To keep that row in place, give the dialog room for the body, or put the body in a ScrollBox.

MarkdownRenderable also changes how it uses renderNode. In the default coalesced mode, a change to syntaxStyle, fg, conceal, or streaming used to restyle every block as if the default renderer had made it. A custom heading from renderNode became a CodeRenderable, and custom blockquote and rule boxes lost their border color. Now coalesced mode does what top-level mode already did. When a style changes, renderNode runs again for each block with a custom node. Its result replaces the old node, and the old node is destroyed. So renderNode must return a new renderable each time it is called. If it caches a renderable and returns it again, it returns a renderable that was already destroyed:

const markdown = new MarkdownRenderable(renderer, {
  content: "# Title\n\nHello",
  syntaxStyle,
  renderNode: (token) => {
    if (token.type !== "heading") return undefined
    return new TextRenderable(renderer, { content: token.text.toUpperCase() })
  },
})

Blocks from context.defaultRender() are still restyled in place, and they cause no extra renderNode call.

Changed

  • core: A text keeps its full wrapped height under any height mode. It no longer loses rows after an edit, and it shows all its rows in a flex-start ScrollBox or an auto-height absolute box. In centered and flex-start columns, text that is taller than its space makes its siblings shrink or move. See Layout. (#1906)

Fixed

  • core: suspend() leaves raw mode when its promise settles, and then it discards the input queued on stdin. Mouse reports no longer show at the prompt or reach the next program as typed text. See Lifecycle and cleanup. (#1905)
  • core: When streaming is off, a content change on MarkdownRenderable lexes the whole content again. The last block no longer splits in two when the new text extends the old text, as when > one becomes > one\n> two. See Markdown. (#1903)
  • core: In the default coalesced mode, a style change on MarkdownRenderable runs renderNode again for blocks with a custom node, so custom headings, blockquotes, and rules keep their renderable and border color. A style change no longer parses unchanged content again. See Markdown. (#1904)
  • core: In split-footer mode with externalOutputMode: "capture-stdout", the renderer removes escape sequences from captured writes, so colors and OSC 8 links no longer leave text such as [31m in scrollback. Captured rows are plain text. See Renderer. (#1902)
  • core: On Node 26.9.0 and later with --permission, the audio recorder keeps a recording when the Permission Model denies FileHandle.sync(). The recorder closes the file without the sync. See Audio capture and recording. (#1907)
  • ssh: A session with a late close that wrote the terminal restore exits its channel with status 0 instead of 1, and onError still gets the late close. If the renderer cleanup fails during a late close, closed rejects with that failure and the channel exits with status 1. See SSH. (#1900)

API changes and documentation: https://opentui.com/docs/releases/0.8.2

What's Changed

... (truncated)

Commits
  • b7d9797 Release v0.8.2
  • e43fdc1 core: leave raw mode when suspend() settles (#1905)
  • 6d707f4 native: measure text height without the at-most clamp (#1906)
  • 9b7b1ba core: keep recordings when the Permission Model blocks fsync (#1907)
  • b9028c3 core: rerun renderNode for custom Markdown blocks on restyle (#1904)
  • 06c63c4 core: strip escape sequences from captured stdout (#1902)
  • 4b7b229 ssh: exit 0 after a late close that wrote the restore (#1900)
  • ce1376b core: lex all markdown again when an edit is not streaming (#1903)
  • 9a09079 Release v0.8.1
  • 7303776 core: bound the whole close and restore at the limit (#1893)
  • 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 [@opentui/core](https://github.com/anomalyco/opentui/tree/HEAD/packages/core) from 0.5.17 to 0.8.2.
- [Release notes](https://github.com/anomalyco/opentui/releases)
- [Commits](https://github.com/anomalyco/opentui/commits/v0.8.2/packages/core)

---
updated-dependencies:
- dependency-name: "@opentui/core"
  dependency-version: 0.8.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from jjjermiah as a code owner November 8, 2026 09:44
@dependabot dependabot Bot added dependencies javascript Pull requests that update javascript code labels Nov 8, 2026
@coderabbitai

coderabbitai Bot commented Nov 8, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration

  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 57559f1d-0889-4b42-9170-5eb0e180ae30

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@github-actions
github-actions Bot enabled auto-merge November 8, 2026 09:54
@jjjermiah

Copy link
Copy Markdown
Owner

@dependabot rebase

@jjjermiah

Copy link
Copy Markdown
Owner

@dependabot recreate

@dependabot @github

dependabot Bot commented on behalf of github Nov 11, 2026

Copy link
Copy Markdown
Contributor Author

Dependabot can't resolve your JavaScript dependency files. Because of this, Dependabot cannot update this pull request.

The bump changed package.json but the committed bun.lock was out of date, so every CI job
failed at "bun install --frozen-lockfile". Refreshed with bun install.

Validation: bun install --frozen-lockfile exits 0 on this branch (install exit 0 before refresh).
The shrinkwrap pinned effect and @opencode/plugin, optional peers that must not ship, so
check-pack.ts failed and the package gate went red. Regenerated with the command in
docs/packaging.md; check-pack.ts now prints "pack ok".
@jjjermiah

Copy link
Copy Markdown
Owner

@dependabot rebase

…his bump

main moved after this PR was opened (opencode 2.2.7 and other merges), so the lockfile and
shrinkwrap no longer matched. Merged main, reapplied this bump to main package.json, and
regenerated bun.lock and npm-shrinkwrap.json per docs/packaging.md.

Validation: bun install --frozen-lockfile ok; bun .github/scripts/check-pack.ts ok.
@github-actions
github-actions Bot merged commit 13443c7 into main Nov 11, 2026
13 checks passed
@dependabot
dependabot Bot deleted the dependabot/npm_and_yarn/opentui/core-0.8.2 branch November 11, 2026 11:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies javascript Pull requests that update javascript code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant