You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
P1 — a startup crash plus inconsistent, hand-rolled dialogs
Summary
Quill has ~15 dialog classes and 39 raw wx.Dialog(...) usages across 8 UI files. Many are hand-rolled custom dialogs with their own focus, keyboard, and button handling — which is where bugs keep appearing (focus landing on the wrong control, buttons that don't behave, and at least one startup crash). We should standardize on two dialog kinds and delete the bespoke ones:
Native (wx.MessageDialog / wx.MessageBox) for confirms, saves, and simple messages. Reliable button handling, read directly by VoiceOver/NVDA.
Web (the existing wx-accessible-webview surfaces) for anything that displays rich content or captures input. Reuse what we already ship — AccessibleChatView is the web-input pattern (the Ask Quill chat), AccessibleHtmlDialog for display, MarkdownPreviewDialog for previews. No new component needed.
Bugs this fixes / folds in
Startup crash: on a fresh profile, after the "Ready. Tip: press Ctrl+Shift+P" status is announced, the first-run onboarding sequence crashes (reported on both Windows and macOS, with a screen reader active). The crash is almost certainly in one of the hand-rolled onboarding dialogs (show_startup_wizard_page → profile/assistant/speech/watch-folder prompts). Converting these removes the crasher.
Product area
UI / dialogs, accessibility, onboarding
Severity
P1 — a startup crash plus inconsistent, hand-rolled dialogs
Summary
Quill has ~15 dialog classes and 39 raw
wx.Dialog(...)usages across 8 UI files. Many are hand-rolled custom dialogs with their own focus, keyboard, and button handling — which is where bugs keep appearing (focus landing on the wrong control, buttons that don't behave, and at least one startup crash). We should standardize on two dialog kinds and delete the bespoke ones:wx.MessageDialog/wx.MessageBox) for confirms, saves, and simple messages. Reliable button handling, read directly by VoiceOver/NVDA.wx-accessible-webviewsurfaces) for anything that displays rich content or captures input. Reuse what we already ship —AccessibleChatViewis the web-input pattern (the Ask Quill chat),AccessibleHtmlDialogfor display,MarkdownPreviewDialogfor previews. No new component needed.Bugs this fixes / folds in
show_startup_wizard_page→ profile/assistant/speech/watch-folder prompts). Converting these removes the crasher.open_welcome_guideputs HTML/markdown straight into aDocument). It should render in a web surface instead. This issue supersedes [Bug]: the last step of onboarding opens a raw html file. #72.Dialog inventory & target
Keep (already correct):
AskQuillChatDialog(web chat),MarkdownPreviewDialog(web), unsaved-changes prompt (now nativewx.MessageDialog), delete-note confirm (native).→ Web (display or input):
StickyNoteEditorDialog,StickyNotesVaultDialog(quill/ui/sticky_notes.py)RunPythonDialog,PromptStudioDialog,AgentCenterDialog,WritingAssistantDialog,SearchableModelPickerDialog,AIHubDialog,AssistantConnectionDialog(quill/ui/assistant_tools.py)AIModelDialog(quill/ui/ai_model_panel.py),TrainStyleDialog(quill/ui/style_panel.py)→ Native
wx.MessageDialog: trust-consent prompt, untrusted-location, and the assorted confirm prompts inquill/ui/main_frame.py.Decide case-by-case:
CommandPaletteDialog(search + list picker) — likely web for consistent screen-reader behavior.Acceptance
wx.Dialogsubclasses remain for confirm/message flows; those usewx.MessageDialog/MessageBox.AccessibleChatView, not a new component.