v1.5.0
Changed
-
The frontend packages are renamed to unscoped names:
@dockyard/bridge→
dockyard-bridge,@dockyard/ui→dockyard-ui. They publish under an
unscoped personal-account name (the@dockyardorg scope was unownable and
blocked the v1.4.0 npm publish). An App's imports change accordingly
(import { createBridge } from 'dockyard-bridge'); the templates and the
attach-a-ui-resourceskill are updated to match. Nothing was ever published
under@dockyard, so there is no deprecation to manage. The internal
inspector frontend keeps its@dockyard/inspectorworkspace name (it is never
published). (D-174) -
Builder.UIgained an optional visibility variadic —
.UI(appName, tool.VisibilityApp)sets_meta.ui.visibilityfor a UI-only
action tool; omitting it keeps the spec default (model + app). New
tool.VisibilityModel/tool.VisibilityAppconsts. Behaviour change: a
.UI("name")that references no registered App now returns a typed error at
Register(previously a silent no-op) — register the App (apps.Register)
before the tool. A correctly-ordered project is unaffected. (D-173)
Fixed
- A framework-wide wiring audit (the same class as the
_meta.uibug) fixed
three declared-but-unwired seams:require_spec_complianceis now enforced. The quality flag was
declared, scaffoldedtrue, and documented "enforced bydockyard validate", but no consumer read it — the spec-compliance check ran
unconditionally, so toggling the flag did nothing. It now gates the check
(opt-out), consistent with the otherquality.*gates. All shipped
manifests set ittrue, so no real project changes behaviour. (D-175)@dockyard/bridge'sui/resource-teardownnow tears the View down.
The notification was documented as triggeringBridgeShell.close()but was
never dispatched — a production host sending it would leak the bridge's
listeners/transport and leavereadystucktrue. It now callsclose().- The bridge retains the negotiated
protocolVersion+hostInfofrom
theui/initializeresult (exposed asbridge.protocolVersion/
bridge.hostInfo);protocol.tspromised retention but both were
discarded.
tool.New[...].UI(appName).Register(srv)now emits the tool→App link.
The builder previously dropped it silently — the registered tool carried no
_meta.ui.resourceUri(RFC §7.1), so a host that renders MCP Apps showed the
text fallback instead of the App. The builder now resolves the App's name to
itsui://URI (via a newserver.AppLinkseam recorded byapps.Register)
and emits_meta.uiatRegister. Theanalytics-widgetstemplate is fixed
automatically (no template change). (D-173)
Commits
Fixed
- wiring: framework-wide audit — enforce require_spec_compliance, wire bridge teardown + handshake retention (v1.5 wave A)
- tool: wire the tool→App _meta.ui link in the builder (v1.5 wave A item 1)