Single chords stay for everyday actions; open/go actions move to two-step mod+k sequences; held mod+digit switches header session tabs and held mod+alt+digit switches context panel surfaces. Rare actions leave the shortcut schema for the command palette, every remaining action ships with a default binding, and stored overrides from the old layout reset once. Key matching now follows the physical key on non-Latin layouts and for Option-modified digits on macOS, including in the recording dialog.
218 lines
8.4 KiB
YAML
218 lines
8.4 KiB
YAML
version: 1
|
|
kind: manual-agent-browser-checklist
|
|
|
|
metadata:
|
|
id: shortcut-registry-ego-lite
|
|
title: Shortcut registry and prefix sequence regression
|
|
owner: packages/ui
|
|
runner: ego-lite
|
|
interface: ego-browser
|
|
dependencies: []
|
|
documentation: packages/ui/src/lib/shortcuts/DOCUMENTATION.md
|
|
|
|
target:
|
|
default_url: http://127.0.0.1:9601
|
|
viewport:
|
|
width: 1800
|
|
height: 1050
|
|
evidence_directory: ~/Desktop/openchamber-pr-2532-evidence
|
|
evidence_prefix: openchamber-pr-2532
|
|
|
|
limitations:
|
|
- IME checks use synthetic KeyboardEvent.isComposing and keyCode 229 signals. Repeat them with a real system IME before claiming native IME coverage.
|
|
- The Windows profile overrides Chromium user-agent data. It validates browser platform detection and rendered shortcut labels, not native Windows keyboard events or desktop packaging.
|
|
- The macOS profile validates the web runtime. Electron, VS Code, hosted mobile, and Capacitor mobile require separate runtime checks.
|
|
|
|
platform_profiles:
|
|
macos_native:
|
|
description: Use the host browser user agent without overrides.
|
|
expected_primary_modifier: Command
|
|
expected_labels:
|
|
- Command symbol U+2318
|
|
- Option symbol U+2325
|
|
setup:
|
|
- Open the target URL in a fresh ego-lite tab.
|
|
- Confirm navigator.userAgent contains Macintosh or Mac OS X.
|
|
- Open Settings, then Shortcuts.
|
|
windows_ua_mock:
|
|
description: Override Chromium identity before reloading the application.
|
|
cdp_command:
|
|
method: Network.setUserAgentOverride
|
|
params:
|
|
userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/138.0.0.0 Safari/537.36
|
|
platform: Win32
|
|
userAgentMetadata:
|
|
brands:
|
|
- brand: Chromium
|
|
version: "138"
|
|
- brand: Not=A?Brand
|
|
version: "24"
|
|
fullVersionList:
|
|
- brand: Chromium
|
|
version: 138.0.0.0
|
|
- brand: Not=A?Brand
|
|
version: 24.0.0.0
|
|
fullVersion: 138.0.0.0
|
|
platform: Windows
|
|
platformVersion: 10.0.0
|
|
architecture: x86
|
|
model: ""
|
|
mobile: false
|
|
bitness: "64"
|
|
wow64: false
|
|
setup:
|
|
- Open the target URL in a separate ego-lite tab.
|
|
- Apply the CDP command above.
|
|
- Reload before evaluating navigator or rendered shortcut labels.
|
|
- Confirm navigator.userAgent contains Windows NT and navigator.platform is Win32.
|
|
- Open Settings, then Shortcuts.
|
|
|
|
checks:
|
|
- id: macos-shortcut-labels
|
|
priority: critical
|
|
profile: macos_native
|
|
steps:
|
|
- Inspect Session Controls, Panels and Tools, Navigation, and Application.
|
|
- Capture the visible Shortcuts settings pane.
|
|
assertions:
|
|
- Open draft project picker renders as Command + S, P using the macOS Command symbol.
|
|
- Open draft worktree picker renders as Command + S, G using the macOS Command symbol.
|
|
- Open recent sessions renders as Command + S, L using the macOS Command symbol.
|
|
- New Mini Chat window renders both macOS Command and Option symbols.
|
|
- No Windows key glyph is used for Mod or Alt.
|
|
evidence:
|
|
type: screenshot
|
|
filename: openchamber-pr-2532-macos-shortcuts.png
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: windows-ua-shortcut-labels
|
|
priority: critical
|
|
profile: windows_ua_mock
|
|
steps:
|
|
- Inspect the same shortcut rows used by macos-shortcut-labels.
|
|
- Capture the visible Shortcuts settings pane.
|
|
assertions:
|
|
- Open draft project picker renders as Ctrl + S, P.
|
|
- Open draft worktree picker renders as Ctrl + S, G.
|
|
- Open recent sessions renders as Ctrl + S, L.
|
|
- New Mini Chat window renders as Ctrl + Alt + N.
|
|
- No macOS modifier symbols or Windows key glyph are rendered.
|
|
evidence:
|
|
type: screenshot
|
|
filename: openchamber-pr-2532-windows-ua-shortcuts.png
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: recorder-contextual-prefix
|
|
priority: critical
|
|
profile: macos_native
|
|
steps:
|
|
- Edit Focus input.
|
|
- Record Mod + L as the first chord.
|
|
- Verify no conflict message is shown before the 3000 ms settling timeout.
|
|
- Record L as the second chord before timeout.
|
|
- Capture the settled recorder without saving the override.
|
|
assertions:
|
|
- The recorder shows two chords and no more than three physical keys per chord.
|
|
- A contextual prefix warning names Add selection to chat.
|
|
- Confirm remains enabled because the contextual owner yields outside its context.
|
|
- The browser-risk warning is visible for the Mod + L leader.
|
|
evidence:
|
|
type: screenshot
|
|
filename: openchamber-pr-2532-recorder-contextual-prefix.png
|
|
cleanup:
|
|
- Select Cancel so the test does not persist a shortcut override.
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: recorder-single-chord-timeout
|
|
priority: high
|
|
profile: macos_native
|
|
steps:
|
|
- Edit Focus input.
|
|
- Record Mod + L as the first chord.
|
|
- Observe the recorder before 3000 ms.
|
|
- Wait at least 3000 ms without pressing a second chord.
|
|
assertions:
|
|
- No conflict or browser-risk message is visible before settlement.
|
|
- Exact-conflict and browser-risk feedback appears after settlement.
|
|
cleanup:
|
|
- Select Cancel so the test does not persist a shortcut override.
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: selection-toolbar-scope
|
|
priority: critical
|
|
profile: macos_native
|
|
preconditions:
|
|
- Open a rendered assistant response containing selectable Markdown text.
|
|
steps:
|
|
- Select text to open the selection toolbar.
|
|
- Trigger an unrelated application shortcut and verify it does not run.
|
|
- Dispatch composing Mod + L and verify Add to chat does not run.
|
|
- Dispatch composing Escape and verify the toolbar remains open without reaching later global capture listeners.
|
|
- Dispatch non-composing Mod + L and verify the selected Markdown reaches the composer once.
|
|
- Reopen the toolbar and press Escape.
|
|
assertions:
|
|
- The visible toolbar suspends the global shortcut registry.
|
|
- IME composition is not consumed by the toolbar shortcut scope.
|
|
- IME Escape keeps its native default while bypassing global Escape handling.
|
|
- Add to chat runs once for the active toolbar only.
|
|
- Escape dismisses the toolbar and restores global shortcuts.
|
|
evidence:
|
|
type: recording
|
|
filename: openchamber-pr-2532-shortcut-regression-final.mov
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: draft-picker-sequences
|
|
priority: critical
|
|
profile: macos_native
|
|
preconditions:
|
|
- Open a draft session with project and worktree selectors mounted.
|
|
steps:
|
|
- Trigger Mod + K, P and verify the project picker opens.
|
|
- Press Escape once and verify it closes.
|
|
- Trigger Mod + K, G and verify the worktree picker opens.
|
|
- Press Escape once and verify it closes.
|
|
assertions:
|
|
- The Mod + K leader arms without a visible menu and completes on the second key.
|
|
- Each sequence opens only its target picker.
|
|
- One non-IME Escape closes either controlled picker.
|
|
evidence:
|
|
type: recording
|
|
filename: openchamber-pr-2532-shortcut-regression-final.mov
|
|
last_result:
|
|
status: passed
|
|
|
|
- id: dropdown-ime-navigation
|
|
priority: critical
|
|
profile: macos_native
|
|
steps:
|
|
- Open the project picker.
|
|
- Dispatch Ctrl + N with isComposing true and keyCode 229.
|
|
- Dispatch Ctrl + P with isComposing true and keyCode 229.
|
|
- Dispatch Escape with isComposing true and keyCode 229.
|
|
- Dispatch one non-IME Escape.
|
|
assertions:
|
|
- Ctrl + N moves active selection forward during composition.
|
|
- Ctrl + P moves active selection backward during composition.
|
|
- IME Escape remains available to the native input method and does not close the picker.
|
|
- Non-IME Escape closes the picker once.
|
|
evidence:
|
|
type: recording
|
|
filename: openchamber-pr-2532-shortcut-regression-final.mov
|
|
last_result:
|
|
status: passed
|
|
|
|
last_run:
|
|
date: 2026-08-06
|
|
application_url: http://127.0.0.1:9601
|
|
source: working-tree
|
|
browser: ego-lite through ego-browser
|
|
overall_status: passed-with-documented-limitations
|
|
notes:
|
|
- The browser checks passed against the working tree before commit; repository validation is recorded separately in the pull request.
|
|
- Keep screenshots and recordings outside the repository and attach them to the pull request.
|