The production contract remains SDK/device 1.0.0 and JSON projection format 1. widgets are additive; existing installed flat projections do not need conversion. Capability negotiation prevents newer controls from being sent to older firmware.
widgets
examples/music-lyrics
apps/desktop/examples/music-lyrics
examples/video-player
examples/agent-studio
examples/plugin-host
gauge
sparkline
ctx.frames
hid.consumer
Music Lyrics and Video Player can use the current package form. Custom chart visuals are possible through host-rendered frames. Agent Studio is retired because plugins no longer have access to built-in Agent sessions or approval requests.
ctx.agent.query(), ctx.agent.detail() and ctx.agent.approve() are removed. The agent.read and agent.approve permissions are no longer accepted in manifests or event declarations. Packages depending on these operations must remove the integration and permissions before they can be checked, imported or submitted. Removing only the permissions does not migrate host code. Live and preview brokers reject the retired operations, including calls made through raw SDK IPC or stale grants.
ctx.agent.query()
ctx.agent.detail()
ctx.agent.approve()
agent.read
agent.approve
The App-owned Agent UI and Plugin Studio's AI authoring/MCP tools remain separate from the plugin runtime contract. Plugins cannot query built-in Agent sessions or resolve their approval requests.
Use the current contract and apps/desktop/examples/control-gallery for both control batches, system resources and image animation/fullscreen. The gallery is a local authoring/verification example, not an automatically installed user plugin. Its camera names are fixture selections; it does not claim camera streaming support.
apps/desktop/examples/control-gallery
The bundled sdk-showcase extends this into a working capability gallery, including host Canvas, raw BGRA/JPEG and decoded GIF frames. See plugin media for its API and source boundaries.
sdk-showcase
New interactions should use widgets; existing hits continue to send their old context. Widgets send {id,value,context}. Update event schemas and handlers together, and retain null support on shared knob events. Prefer the built-in named fonts/icons; keep real cover/photo/video artwork as assets.
hits
{id,value,context}
The dated control, SDL and physical-device results for this migration are recorded in hardware verification.
Projection.pages adds four-direction Dock-local navigation in Host-connected and independent native installations. Tag primitives, hits or root widgets with page; use initialPage for entry and optional read-only pageChange for Host notifications. Requires firmware advertising pages.swipe.v1; legacy projections remain valid. See local page navigation for the declaration, lifecycle, gesture priorities and examples.
Projection.pages
page
initialPage
pageChange
pages.swipe.v1