Skip to content

Release: framework fixes, plugin split, registry merge, lighter docs - #9

Merged
silveltman merged 9 commits into
mainfrom
preview
Sep 12, 2026
Merged

silveltman merged 9 commits into
mainfrom
preview

Conversation

@silveltman

Copy link
Copy Markdown
Contributor

Summary

Framework (@fulldotdev/sitex, patch release via the included changeset):

  • Only the ssr environment writes generated .sitex type files, fixing the client/ssr race on .sitex/typecheck.
  • Adding a client:* directive in dev refreshes the island registry without a restart.
  • Island components with their own client:* directive no longer pull react-dom/static into browser bundles (new browser-side island wrapper).
  • Island components are registered as dependency optimization entries, so a cold dev server no longer re-optimizes and reloads mid-load (which logged "Invalid hook call").
  • plugin.ts split into focused modules under src/vite (behavior-identical build output).
  • README and 0.4.0 changelog corrected to match the shipped API.

Docs and registry:

  • packages/ui merged into the docs app: one set of component files in apps/docs/src/components/ui with registry.json next to them. Removes the drifted header and section copies.
  • Docs shell is static HTML with two small islands (mobile navigation via client:media, theme toggle on idle). Desktop docs pages drop from about 126 kB to 72 kB of gzipped JavaScript.
  • Theme toggle is hydration-safe, works standalone as an island, and ships a ThemeScript head component.
  • Code component docs use the correct package name and plugin import.
  • Netlify builds with pnpm build.

Verification

  • pnpm ready passes.
  • Built docs checked in the browser at desktop and phone widths: sidebar, mobile sheet, theme toggle, prefetch.
  • Dev server checked on seven pages with a console hook: no errors or hydration warnings, including a cold start.
  • Nested island bundling verified with a temporary nested component (removed).

🤖 Generated with Claude Code

silveltman and others added 9 commits August 21, 2026 10:54
…lient bundles

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
plugin.ts kept only the plugin hooks. MDX compilation, typecheck output,
globals, virtual modules, CSS discovery, static output, options, and
package paths now live in their own files under src/vite.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The docs app and the shadcn registry now share one set of component
files in apps/docs/src/components/ui, with registry.json next to them.
This removes the drifted copies of header and section and the separate
@fulldotdev/ui package.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
ThemeToggle now renders with the default theme on both server and first
client render and reads the stored preference after mount, so hydration
never mismatches. It works standalone as an island, and a ThemeScript
component replaces hand-written inline scripts in consumer layouts.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The docs shell no longer hydrates as one island around the whole page.
The sidebar and header are static HTML; the mobile navigation sheet
hydrates only on small screens through client:media and the theme
toggle hydrates on idle. Desktop pages drop from roughly 126 kB to
72 kB of gzipped JavaScript.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A cold dev server discovered island dependencies lazily, re-optimized
mid-load, and reloaded the page, which briefly ran two React copies and
logged invalid hook call errors. The plugin now hands Vite the island
files and the hydration runtime dependencies up front.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@silveltman
silveltman merged commit 2544624 into main Sep 12, 2026
2 checks passed
@silveltman
silveltman deleted the preview branch September 12, 2026 14:02
@github-actions github-actions Bot mentioned this pull request Sep 12, 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.

1 participant