Skip to content

feat!: require React 19 - #149

Open
pratikbuilds wants to merge 1 commit into
corbitsdev:mainfrom
pratikbuilds:claude/i142-react19-only-e4208a
Open

pratikbuilds wants to merge 1 commit into
corbitsdev:mainfrom
pratikbuilds:claude/i142-react19-only-e4208a

Conversation

@pratikbuilds

Copy link
Copy Markdown
Collaborator

Summary

Narrows the react and react-dom peer range to ^19.0.0 and drops the React 18 claims from the README and the Panel docs (finding 20). Many components take ref as a plain prop, which only reaches them on React 19.

Breaking: consumers must be on React 19.

Verification

  • bun run check
  • bun.lock is updated to the new peer range.

Closes #142

Narrow the react and react-dom peer range to ^19.0.0 and drop the React
18 claims from the README. Many components take `ref` as a plain prop,
which only reaches them on React 19.

Resolves corbitsdev#142 finding 20.

BREAKING CHANGE: the react and react-dom peer range no longer accepts
React 18; consumers must be on React 19.

@TheGreatAxios TheGreatAxios 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.

Review · Request changes

Narrows the react and react-dom peer dependency range to ^19.0.0 and removes React 18 support claims from README.md and Panel's JSDoc.

Findings

  • CONTRIBUTING.md:37 — Peer and dependency range changes use build(deps): with no ! ("Add ! only for public API breaks: removed or renamed exports, changed signatures, newly required params. Peer and dependency range changes are build(deps): with no !."). Could we retitle the commit and PR from feat!: require React 19 to build(deps): require React 19?
  • src/ui/panel.tsx:30 — This commit removes "on React 18 and 19" from Panel's JSDoc at line 90, but leaves HIDDEN_PANE_PROPS: Record<string, string> = { inert: "inert" } (lines 30–34 and 423) in the same file, which exists only because React 18 dropped boolean inert. Under React 19, PanelPane can pass inert={!shown} directly on the <div> and remove HIDDEN_PANE_PROPS.
  • src/ui/conversation.tsx:969 (informational) — ConversationItem still keeps a release ref fallback and comment for React 18's null-ref detach alongside the React 19 cleanup return (and src/ui/conversation.test.tsx:312, src/ui/attachments.test.tsx:137, src/ui/message.test.tsx:557, src/ui/prompt-input.test.tsx:133 still carry React 18 forwardRef comments).

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Follow-ups from the conversation PR review

2 participants