You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 7363f0f
Browse filesBrowse the repository at this point in the historyBrowse files
fix(plugin-hono-server): drop the retired ui-plugin arm from UI auto-discovery
The auto-discovery block matched `type === 'ui' || type === 'ui-plugin'`
under a "Support legacy" comment. `ui-plugin` is outside the closed
plugin-type set and both kernels' `use()` already refuse it through the
shared plugin contract, so the disjunct was reachable through neither
kernel's `use()`. Delete it and its comment.
Pin C in ui-plugin-auto-discovery.pin.test.ts replaces its placeholder:
C1 reads the contract's refusal of a declared `ui-plugin` on both
kernels (envelope parity), and C2 proves the arm is gone behaviourally:
an admitted `ui` entry flipped to `ui-plugin` before start() mounts
nothing, with an in-case firing control.
Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TnPAC1UsTGfHPXVUCL6iLn
The UI auto-discovery block in `HonoServerPlugin.start()` no longer names the retired plugin type `ui-plugin`: the `plugin.type === 'ui-plugin'` disjunct and its "Support legacy" comment are removed, and the block mounts `type: 'ui'` plugins only (#15638).
6
+
7
+
Clause-②: no
8
+
9
+
-**Why nothing a plugin declares moves.**`ui-plugin` is not a member of the closed plugin-type set (`'standard'` plus `CORE_PLUGIN_TYPES`), and `kernel.use()` already refuses it on both published kernels, before the block can see it, with `PLUGIN_CONTRACT_VIOLATION ... at 'type'`. `LiteKernel.use()` throws it as-is; `ObjectKernel.use()` throws it behind its `Failed to load plugin: NAME - ` prefix. The disjunct was reachable through neither kernel's `use()`, so the deletion changes no accept or reject verdict for any declared value, and the refusal is the generic closed-set one. There is no message specific to this spelling.
10
+
-**The one object that stops mounting.** The contract validates at `use()` and stores the plugin object by reference, so an object admitted as `ui` that then rewrites its own `type` to `ui-plugin` before `start()` used to be mounted by the removed disjunct. It no longer is.
11
+
-**Fix**: declare `type: 'ui'`, with `staticPath` and `slug` (both required for that type).
0 commit comments