Skip to content

chore: Nx 24, Node 26.13, Babel 8 and pako 3, plus dead-code cleanup - #612

Merged
anandpant merged 13 commits into
mainfrom
chore/latest-toolchain
Nov 1, 2026
Merged

anandpant merged 13 commits into
mainfrom
chore/latest-toolchain

Conversation

@anandpant

@anandpant anandpant commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator

Moves the toolchain to the current stable lines, finishes the dependency migrations an earlier slice had deferred, and removes dead packages, code and tests.

Toolchain and Nx

  • Node 26.13.0 LTS and native pnpm 12.16.1 via mise (pnpm's latest tag; 12.17.0 is only next-12). Pins in mise.toml, package.json engines/packageManager, the lockfile and README move together; no Corepack.
  • Nx 24.0.3 with the official migrations. Nx 24 removes the @nx/storybook executors, so the ten Storybook targets are now @nx/storybook/plugin inferred tasks with the same names, ports, output directories and Icons sync-catalog-assets dependency. build-storybook keeps default inputs: the inferred production set excludes stories and .storybook/**, which would have served stale cached builds. affected.legacy keeps the local gate's project-level scope.
  • The plugin also infers static-storybook targets that use @nx/web:file-server, so @nx/web 24.0.3 is added and each target serves that project's configured Storybook output.
  • Removed unused @nx/plugin, @nx/react, @nx/vite and @nx/vitest.

Dependencies

  • Babel 8.0.10 and decorators 8.0.2. Agents' Rolldown Babel bridge accepts Babel 8 and Vite React 6 no longer uses Babel, so the Agents-to-Babel-7 override is gone; Nx keeps its own nested Babel 7.
  • Pako 3.0.3 for CLI share links, with legacyHash: true so encrypted payloads stay byte-identical to the recorded Excalidraw fixture (the fixture test fails without it). @types/pako removed; pako ships types. CLI patch changeset included.
  • SWC 1.16.21, KaTeX override 0.19.1 (with a rendered display-math test), smol-toml override 1.9.1; deleted the axios override, which matched no locked package.
  • shadcn components reviewed against CLI 4.23.0 new-york sources: only deliberate local deltas, nothing to apply.
  • Not yet age-eligible under the 24h release gate: lucide-react 1.66.0 and @tanstack/react-hotkeys 0.20.x.

Fixes

Chat math. The Playground never loaded KaTeX's stylesheet, so formulas in chat and reasoning messages showed their screen-reader MathML beside unstyled HTML. It now imports katex/dist/katex.min.css; a Browserbase test renders inline, display and invalid TeX.

Canvas resize.
Read-only scene canvases (Playground sample, Storybook) now refit when their viewport resizes; previously loading wide and narrowing to a phone kept the wide zoom and clipped the diagram. Editable canvases still keep the user's camera. Empty read-only mobile controls are hidden, while panning off-screen reveals the working Scroll back to content recovery button. A Browserbase regression covers hiding, hit-testing and recovery.

Phone headers. Dense artifact/editor headers use two aligned rows at 320/390px: brand plus Docs/GitHub, then existing route links and actions. Compact home headers and desktop layouts stay one row. Browserbase checks wait for the real Hanken Grotesk and Excalifont faces before measuring. No controls or copy were added.

Deletions

Unused Icons/Web/Excalidraw src/index.ts barrels and three unconsumed exports; one-shot cutover inventory and runbook prose tests (public-domain exposure checks kept); CLI audit cases that parsed source spelling or repeated version pins (built-help and document tests cover them); Playground retired-path and route-spelling checks; CSS/font substring tests.

Verification

pnpm ci:local gate, Excalidraw and Playground Browserbase suites, all five Storybook builds uncached and served through static-storybook, CLI package smoke and bundle report, Worker dry runs, headless Storybook resize check. Independent Codex gpt-6.1-sol high review covered the full patch and both follow-ups. The one mobile recovery finding was fixed and independently re-reviewed.

Real preview proof: icon search/multi-select/palette and a two-SVG ZIP; generation of an exact three-step native diagram; save/reload; edit/export with all eight elements moved; actual styled chat math; authless Icons and Playground MCP tool calls; mobile resize and pan/recenter. Final preview at 970a09ca: all nine combinations of homepage/artifact/editor and 320/390/1280px passed loaded-font, row-count and clipping checks; screenshots inspected. All five preview deploys passed. After merge: all five production deploys passed, both MCP endpoints passed real tool calls, and Playground generation/download, styled math, phone header and pan/recenter recovery passed live. CLI 0.31.6 is npm latest; the published tarball integrity, executable/bin mapping, Pako 3.0.3 notices, version and share help were verified. Main is clean and the owned worktree/branch, servers and browsers are cleaned up.

Run the official Nx 24 migrations. The removed @nx/storybook executors
become @nx/storybook/plugin inferred targets with the same names, ports,
output directories and sync-catalog-assets dependencies. Inferred inputs
default to the production set, which excludes stories and .storybook/**,
so build-storybook keeps default inputs to invalidate on story changes.
viteConfigPath now resolves from the config file because inferred tasks
run in the project root. affected.legacy keeps the gate's project scope.
Agents' Rolldown Babel bridge accepts @babel/core 8 and Vite React 6 no
longer uses Babel, so the Agents decorator override to Babel 7 goes; Nx
keeps its own nested Babel 7. Delete the axios override, which no longer
matches any locked package. Cover the KaTeX override with a rendered
display-math and unknown-command check through MessageResponse.
Select pako's classic zlib hash so share payloads stay byte-identical to
the recorded Excalidraw fixture; pako 3 defaults to a faster hash that
changes the output. pako ships its own types, so @types/pako goes.
No importer, manifest, route or Storybook glob reads the Icons, Web or
Excalidraw src/index.ts barrels. CodeExampleSchema, CodeModeSearchHitSchema
and MAX_SHARE_ID_LENGTH have no consumers; the share-id regex still
bounds ids at 128.
Remove the one-shot cutover inventory, retired-identifier scans and
runbook prose checks, keeping the public-domain and Wrangler exposure
cases. Drop CLI audit cases that parse cli.ts or document.ts spelling
or repeat version pins; built-help and document tests cover them. Drop
the retired Playground lib path ban, route import spelling and line
cap, the any-laundering limitation pin, and CSS/font substring tests
that cannot show which rule renders.
…pty mobile chrome

A read-only scene canvas fit only on first load, so loading wide and
narrowing to a phone kept the wide zoom and clipped every node after the
first. It now refits whenever Excalidraw reports a new viewport size;
editable canvases still keep the user's camera. The empty read-only
mobile menu and bottom bar are hidden at every width, not only in
containers 700px and wider.
@streamdown/math renders KaTeX but the Playground never loaded its CSS,
so formulas showed their screen-reader MathML beside unstyled HTML. Import
katex/dist/katex.min.css at the app stylesheet, declaring KaTeX 0.19.1
directly so the import resolves. A Browserbase check renders inline,
display and invalid TeX through MessageResponse.
The Nx 24 Storybook plugin always infers static-storybook with
@nx/web:file-server and the project's own storybook-static directory.
Add @nx/web 24.0.3 and point each target at the configured output
directory so it serves the built Storybook.
@anandpant anandpant added the preview Deploy PR previews for the affected apps label Nov 1, 2026
@anandpant anandpant changed the title chore(toolchain): move to Node 26.13.0 LTS and native pnpm 12.16.1 via mise chore: Nx 24, Node 26.13, Babel 8 and pako 3, plus dead-code cleanup Nov 1, 2026

Copy link
Copy Markdown
Collaborator Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@socket-security

socket-security Bot commented Nov 1, 2026 •

Copy link
Copy Markdown

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Sketchi Web Preview

Status: deleted

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Sketchi Icons Preview

Status: deleted

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Sketchi Eval Harness Preview

Status: deleted

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Sketchi Excalidraw Workspace Preview

Status: deleted

@github-actions

github-actions Bot commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Sketchi Playground / Studio Preview

Status: deleted

Hiding the whole read-only mobile bottom bar also hid Excalidraw's
Scroll back to content button, so a phone user who panned the diagram
away was left with a blank canvas. Hide the bar only while it has no
recovery button, and then show the button alone. A Browserbase check
pans a 390px read-only canvas away and recovers through the button.
At 390px the artifact and editor headers wrapped into three rows: the
lockup alone, the route with its actions, then Docs and GitHub. On phones
a route with actions now takes a second full-width row, links left and
actions right, under the lockup and Docs/GitHub. Link-only headers and
desktop keep one row. At 320px the header tightens its padding and icon
gaps so a route link and five actions fit. A Browserbase check measures
the rows at 320, 390 and 1280 with Hanken Grotesk and Excalifont loaded.

anandpant commented Nov 1, 2026 •

Copy link
Copy Markdown
Collaborator Author

Merge activity

  • Nov 1, 5:19 AM UTC: A user started a stack merge that includes this pull request via Graphite.
  • Nov 1, 5:19 AM UTC: @anandpant merged this pull request with Graphite.

@anandpant
anandpant merged commit d319d01 into main Nov 1, 2026
13 checks passed
@anandpant
anandpant deleted the chore/latest-toolchain branch November 1, 2026 05:19
@github-actions github-actions Bot mentioned this pull request Nov 1, 2026

This branch was successfully deployed

1 active deployment
staging — 970a09ca Deployed Nov 1, 2026 by anandpant via cleanup-preview (web) #1154
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview Deploy PR previews for the affected apps

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant