Goal
Add a component/action contribution registry for composer and workspace controls so future features can add UI affordances without threading more bespoke props through large components.
Scope
- Identify the first stable contribution points for composer controls, footer controls, workspace toolbar actions, and settings sections.
- Register existing controls through typed descriptors where doing so reduces prop drilling.
- Keep rendering local React components; this is not remote plugin loading.
- Avoid changing extension APIs until the internal registry shape has settled.
- Keep the registry compatible with future server/capability-driven UI, including features that may depend on a Pi server being present.
Acceptance criteria
- At least one composer or workspace control group is driven by typed registry descriptors.
- Existing keyboard, dismissal, and focus behavior is preserved.
- The registry reduces direct coupling or prop drilling in the touched surface.
- Registry entries can declare required capabilities without coupling directly to Electron or Pi runtime internals.
bun run ai:check passes.
Goal
Add a component/action contribution registry for composer and workspace controls so future features can add UI affordances without threading more bespoke props through large components.
Scope
Acceptance criteria
bun run ai:checkpasses.