Skip to content

chore(deps): bump @astryxdesign/core to 0.5.0 and rebuild the patch #3753

Description

@Astro-Han

Why now

Two hunks in patches/@astryxdesign+core+0.4.5.patch are now upstream. The blank userAgentData.platform fix we carry in dist/Kbd/Kbd.js and dist/hooks/useHotkeys.js landed as facebook/astryx#5325 and ships in 0.5.0, so we can drop them.

patch-package keys the patch file to the exact version, so the file has to be regenerated as +0.5.0.patch either way.

Patch state against 0.5.0

Dry-ran the current patch against the 0.5.0 tarball with git apply --check. Exactly two hunks fail, and they are the two that are now redundant:

error: dist/Kbd/Kbd.js:111: patch does not apply
error: dist/hooks/useHotkeys.js:54: patch does not apply

Everything else still applies. Four files need an offset:

file offset
dist/SideNav/SideNavItem.js +1
src/Chat/ChatToolCalls.tsx +9
src/DropdownMenu/DropdownMenuItem.tsx +3 (×3)
src/SideNav/SideNavItem.tsx +7, +7, +8

The Markdown and useStreamingText hunks, which are the largest ones we carry, apply clean. So the rebuild is mechanical: delete two hunks, re-record the rest.

0.5.0 breaking changes, checked against our tree

Banner drops defaultIsExpanded. We are not affected. The only defaultIsExpanded in our source is our own prop in packages/ui/src/astryx-chat-reasoning.tsx, unrelated to Banner, and no <Banner> call site passes it. If we run the banner-collapsible-content codemod, confirm it leaves that file alone.

Overlays now share one dismissal stack. A window keydown listener now sees an Escape that a focus-trapped layer used to swallow, arriving with defaultPrevented already true. Three listeners in our tree:

  • apps/desktop/src/renderer/app-shell-overlays.tsx:144 already bails on event.defaultPrevented, so it should be unaffected.
  • apps/desktop/src/renderer/features/workbar/controller/use-workbar-controller.ts:623 is capture-phase but only handles modifier combos, no Escape.
  • packages/ui/src/composer.tsx:743 handles both Escape and IME composition on its own root. 0.5.0 changes how a composition-cancelling Escape is claimed, so this one needs manual verification, ideally with a CJK IME.

Not blocking

facebook/astryx#5394 folds both platform checks into one shared util and also treats Unknown as no answer. Merged, but only on canary. No behavioural difference for us, so nothing to wait for.

Steps

  1. Bump @astryxdesign/core to 0.5.0 in package.json, packages/ui/package.json, and apps/desktop/package.json.
  2. Delete the Kbd.js and useHotkeys.js hunks, re-record with patch-package, land it as patches/@astryxdesign+core+0.5.0.patch.
  3. Verify composer Escape and IME behaviour by hand.
  4. Re-check the Banner codemod against astryx-chat-reasoning.tsx if we run it.

Investigation and draft prepared with Claude Code; verified by the reporter before filing.

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions