Skip to content

fix(examples): register and render the Settings dock in the vite/next hubs - #251

Closed
antfubot wants to merge 1 commit into
mainfrom
fix/hub-examples-settings-dock
Closed

fix(examples): register and render the Settings dock in the vite/next hubs#251
antfubot wants to merge 1 commit into
mainfrom
fix/hub-examples-settings-dock

Conversation

@antfubot

Copy link
Copy Markdown
Collaborator

examples/hub-vite never registered the reserved ~settings ~builtin dock, so no Settings tab ever appeared at the standalone /__devframes mount — unlike examples/hub-next, which already registered it for parity with the hub-example-parity mandate in AGENTS.md.

That registration in hub-next was itself inert: both hand-rolled reference clients (examples/hub-vite's vanilla shell and examples/hub-next's React shell) treated every ~builtin dock as needing no rail tab at all — lumped in with action/launcher/group, which genuinely have no panel of their own. So even hub-next's registered ~settings entry never rendered.

This PR:

  • Registers ~settings in hub-vite's configure(), mirroring hub-next.
  • Gives ~builtin docks their own tab in both clients (split out of the "no tab" type set), rendered through a native Settings panel per the documented build-your-own-hub-ui contract instead of the generic dock-renderer registry.
  • The Settings panel lists every dock with a visibility checkbox, backed by the shared devframe:user-settings state (docksHidden) every viewer already reads — wiring up a capability the hub client types exposed but neither reference host previously exercised.

Verified: pnpm lint, pnpm typecheck, pnpm build, and pnpm test (including hub-next's existing ~settings registration assertion) all pass; manually confirmed over the wire protocol that a live hub-vite dev server registers ~settings in devframe:docks and that toggling devframe:user-settings.docksHidden round-trips correctly.

🤖 Generated with the help of an agent.

… hubs

hub-vite never registered the reserved `~settings` `~builtin` dock, so no
Settings tab ever appeared at the standalone `/__devframes` mount - unlike
hub-next, which already registered it for parity.

hub-next's registration was itself inert: both hand-rolled clients treated
every `~builtin` dock as needing no rail tab at all, so even the registered
entry never rendered. Give `~builtin` its own tab in both clients, backed by
a native Settings panel (per-dock visibility, using the shared
`devframe:user-settings` state every viewer already reads) instead of
routing it through the generic dock-renderer registry.

🤖 Generated with the help of an agent.
@netlify

netlify Bot commented Aug 17, 2026

Copy link
Copy Markdown

Deploy Preview for devfra ready!

Name Link
🔨 Latest commit eb9cb94
🔍 Latest deploy log https://app.netlify.com/projects/devfra/deploys/6a829a0f20eb7300086148ca
😎 Deploy Preview https://deploy-preview-251--devfra.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@antfu antfu closed this Aug 17, 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.

2 participants