Skip to content

fix: pin @opentui/core to 0.1.72 to prevent symbol mismatch#313

Closed
thunter009 wants to merge 1 commit intosubsy:mainfrom
thunter009:fix/pin-opentui-version
Closed

fix: pin @opentui/core to 0.1.72 to prevent symbol mismatch#313
thunter009 wants to merge 1 commit intosubsy:mainfrom
thunter009:fix/pin-opentui-version

Conversation

@thunter009
Copy link
Contributor

@thunter009 thunter009 commented Feb 17, 2026

Summary

  • Pin @opentui/core and @opentui/react from ^0.1.72 to exact 0.1.72
  • The caret range resolves to 0.1.80 which renamed setCursorStylesetCursorStyleOptions in the native dylib, crashing ralph-tui on startup

Context

The bundled dist/index.js has FFI bindings that call setCursorStyle(renderer, style, blinking). In @opentui/core-darwin-arm64@0.1.80, this symbol was renamed to setCursorStyleOptions with a different calling convention (options struct). Pinning to 0.1.72 is a stopgap; longer-term fix is rebuilding the bundle against 0.1.80.

Fixes #312

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Adjusted version specifications for internal dependencies.

The caret range ^0.1.72 resolves to 0.1.80 which renamed
setCursorStyle → setCursorStyleOptions in the native dylib.
The bundled JS bindings still reference setCursorStyle, causing
a crash on startup.

Pinning to exact 0.1.72 until the bundled bindings are rebuilt
against the latest @opentui/core.

Fixes subsy#312

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@vercel
Copy link

vercel bot commented Feb 17, 2026

@thunter009 is attempting to deploy a commit to the plgeek Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Feb 17, 2026

Walkthrough

Dependency version specifiers for @opentui/core and @opentui/react in package.json changed from caret ranges (^0.1.72) to exact pinned versions (0.1.72), restricting version resolution to the specific declared versions rather than allowing minor and patch updates.

Changes

Cohort / File(s) Summary
Dependency Version Pinning
package.json
Changed version specifiers for @opentui/core and @opentui/react from ^0.1.72 (caret) to 0.1.72 (exact pin), preventing automatic resolution to newer minor/patch versions.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: pinning @opentui/core to exact version 0.1.72 to resolve a symbol mismatch issue, which matches the package.json modifications.
Linked Issues check ✅ Passed The PR fully implements the short-term fix proposed in issue #312 by pinning @opentui/core and @opentui/react to exact version 0.1.72, directly addressing the symbol mismatch root cause.
Out of Scope Changes check ✅ Passed All changes are in-scope: only package.json dependency versions for @opentui/core and @opentui/react were modified, directly addressing the stated objective of pinning versions to prevent symbol mismatch.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
package.json (1)

73-74: Pin is the correct stopgap; track the long-term rebuild.

The exact version pin correctly prevents ^0.1.72 from resolving to 0.1.80, where the native dylib renamed setCursorStylesetCursorStyleOptions. @opentui/react@0.1.72 itself declares @opentui/core: "0.1.72" as a pinned dependency, so there is no transitive re-escalation risk from the @opentui/react side. The current latest @opentui/core is 0.1.80 with no known vulnerabilities, so staying on 0.1.72 is safe from a security standpoint for now.

Consider opening a tracking issue (or referencing #312 explicitly) to ensure the long-term fix — rebuilding dist/index.js against @opentui/core@0.1.80 and lifting this pin — is not forgotten as the upstream package continues to evolve rapidly.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@package.json` around lines 73 - 74, The dependency pin for "@opentui/core":
"0.1.72" prevents accidental upgrade to 0.1.80 which renamed setCursorStyle →
setCursorStyleOptions; keep the pin as the short-term mitigation but open a
tracking issue (reference `#312`) to rebuild dist/index.js against
`@opentui/core`@0.1.80, update `@opentui/core` in package.json and lift the version
pin once the library is rebuilt and tested, and ensure `@opentui/react` (still at
"0.1.72") remains compatible after the rebuild.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In `@package.json`:
- Around line 73-74: The dependency pin for "@opentui/core": "0.1.72" prevents
accidental upgrade to 0.1.80 which renamed setCursorStyle →
setCursorStyleOptions; keep the pin as the short-term mitigation but open a
tracking issue (reference `#312`) to rebuild dist/index.js against
`@opentui/core`@0.1.80, update `@opentui/core` in package.json and lift the version
pin once the library is rebuilt and tested, and ensure `@opentui/react` (still at
"0.1.72") remains compatible after the rebuild.

@subsy
Copy link
Owner

subsy commented Feb 18, 2026

Closing as fiixed properly in #315 - thanks @thunter009 for flagging this

@subsy subsy closed this Feb 18, 2026
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.

v0.8.0 crashes: setCursorStyle symbol not found in @opentui/core-darwin-arm64@0.1.80

2 participants

Comments