Skip to content

Add foundation keyboard shortcuts and plugin API - #6

Merged
wesbillman merged 2 commits into
mainfrom
brain/keyboard-shortcuts
Sep 11, 2026
Merged

wesbillman merged 2 commits into
mainfrom
brain/keyboard-shortcuts

Conversation

@wesbillman

@wesbillman wesbillman commented Sep 10, 2026

Copy link
Copy Markdown
Collaborator

Implemented by Brain on behalf of Wes.

Summary

  • One foundation-owned in-app shortcut dispatcher; plugins inject shortcuts and register through the same binding contract. Existing Cordis contribution ownership controls readiness, disable/re-enable, replacement and disposal.
  • Command+, opens real Settings navigation and focuses main; Command+= / Command++ / Command+- / Command+0 control text size. Non-Apple platforms use Control. Preserve local handlers, exact modifiers, IME/AltGraph, editors and dialogs (including open Shadow DOM).
  • Host-owned device-local text sizing (80–200%, 10% steps) with visible Appearance controls, persistence and retry. Actual message/composer and shared typography scale; window zoom, rem-based layout spacing and icons do not. Existing color storage is unchanged.
  • Type-only author exports, documented conflict/focus/lifetime policy, and an independent ready-to-install shortcut-counter example.

Originating Buzz channel: keyboard-shortcuts (54af1452-92a0-4d46-ac41-e5b758f76044).

Verification

At 57228d608ff77337dcd4f49ecb7dff5dc9f6e312:

  • Whole-tree Biome, TypeScript, author declarations and production frontend build passed.

  • 48 focused tests across shortcut, appearance, app composition and plugin runtime files passed.

  • All 8 shortcut journeys passed in Chromium/WebKit against the production frontend and fixture broker (not a native app or real relay). At first implementation snapshot e35e78c, the 26 combined shortcut/appearance/settings/plugin browser journeys passed; final follow-up only changes Space validation and Shadow DOM modal guards plus regression coverage.

  • Ten isolated mutation probes at e35e78c detected broken Settings selection/home/focus, each zoom action, message/composer typography, listener teardown and plugin readiness. Both follow-up regressions at 57228d6 fail when their fixes are reverted. Clean-control shortcuts rerun passed. Mutation copies were separate from the review worktree.

  • Independent source review found Space validation and Shadow DOM modal handling; both addressed in the second commit and independently rechecked. No remaining blockers from that review.

  • A standalone TypeScript consumer compiles against generated @buzz/author; its host-only registration call is rejected by the type contract.

  • Wes reported the local worktree try “works great” on 2026-09-11 after the desktop/web handoff. This records human acceptance of that try, not an exhaustive native/platform matrix.

Deferred / not integration-ready

  • Broader integration scan / native checks; kept as a draft rather than claiming full validation. No native, dependency, capability or CSP changes.
  • Custom third-party fixed-size/Shadow DOM typography needs its own adapter; arbitrary plugin CSS is not forcibly rewritten.

Try from the feature worktree with the pinned bin/just desktop (coordinate the existing dev app/port first), or bin/pnpm exec vite --port 5188 --strictPort for an isolated browser session. No developer .env or credentials are included.

Brain added 2 commits September 10, 2026 17:33
Signed-off-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
Signed-off-by: Brain <1a02c72794dcd0f07058a353bc3a81f4028b8c77c92c87fce6d5c8b85970a20b@buzz.block.builderlab.xyz>
@wesbillman
wesbillman marked this pull request as ready for review September 11, 2026 00:04
@wesbillman
wesbillman merged commit 5ff5982 into main Sep 11, 2026
2 checks passed
@wesbillman
wesbillman deleted the brain/keyboard-shortcuts branch September 11, 2026 00:04
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.

1 participant