 David KayaandCopilot
|
4c01d8b1a7
|
feat: surface structured permission details in approval UI
Wire the sidecar's new permissionDetail payload through the frontend:
- Add PermissionDetail interface to sidecar contract
- Add permissionDetail field to PendingApprovalRecord and thread
through normalization and AryxAppService mapping
- Create PermissionDetailView component with kind-specific rendering:
shell (command block + warning), write (filename + diff), read (path),
mcp (server badge + args), url (prominent URL), memory (subject/fact),
custom-tool (description + args), hook (message + args)
- ApprovalBanner shows structured detail when available, falls back to
generic text for backward compatibility
- QueuedApprovalsList shows brief kind-specific summaries
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-03-26 16:59:15 +01:00 |
|
 David KayaandCopilot
|
fcfc5c9641
|
refactor: decompose large frontend components into focused modules
Split six monolithic component files into smaller, single-responsibility
modules organized by feature domain:
- ChatPane (1054→~250 lines): extract InlinePills, ApprovalBanner,
ThinkingDots into chat/ directory
- SettingsPanel (1027→~280 lines): extract McpServerEditor,
LspProfileEditor, ToolingEditorShell into settings/ directory;
mutation helpers into lib/settingsHelpers.ts
- PatternEditor: use shared ToggleSwitch from ui/
- App.tsx: extract useTheme and useSidecarCapabilities into hooks/
- Sidebar: extracted accessibility improvements inline
New shared primitives:
- hooks/useClickOutside: replaces 5 duplicated click-outside listeners
- components/ui/: ToggleSwitch, PopoverToggleRow, FormField, TextInput,
TextareaInput, SelectInput, InfoCallout
Accessibility improvements:
- NewSessionModal: role=dialog, aria-modal, Escape-to-close
- Pill dropdowns: aria-expanded, aria-haspopup, role=listbox/option
- Sidebar context menu: role=menu/menuitem, Escape-to-close
- SessionItem: Space key activation alongside Enter
- ToolbarButton: aria-pressed for toggle state
- ApprovalBanner: role=alert
- QueuedApprovalsList: aria-expanded on toggle
- ThinkingDots: aria-label
No behavioral changes. All 137 tests pass.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
2026-03-25 20:12:36 +01:00 |
|