docs: record packaged Settings popout acceptance

This commit is contained in:
Brad Groux 2026-09-03 21:02:05 -05:00
parent be7dd68599
commit ffd91a46b2
2 changed files with 74 additions and 64 deletions

View file

@ -12,4 +12,14 @@ Initial browser attempts corrected test setup errors: the shared variant/inert a
Read-only host-preview POSTs have an explicit synthetic response fixture. All other non-read API requests remain blocked and the test observes zero mutations; no reset, deletion, save, cleanup, or launch is performed.
Rebuilt packaged macOS verification, installed-app replacement, final documentation images/GIFs, and release remain unfinished.
## Packaged macOS acceptance
The unsigned arm64 Electron candidate at integration commit `4f747e6f14c3e90549644dabf46aff29b658620f` was rebuilt with `pnpm desktop:package:mac:dir`. Its packaged `app.asar` SHA-256 is `57e855b0ab4d3a107ada9d9fe5dcdb6aea31e69c6cb73453cd27e195cf4b9aaf`. The application reports version 6.1.6 and `app.isPackaged` was asserted; this is not a signed release.
All eleven child openings passed in both themes at 1700×900 with 16px text and the native minimum 1180×760 with 20px text. Checks prove root and child containment, 1rem body inset, parent inertness, fully visible initial focus, footer bounds, Tab containment, Escape, exact opener restoration, and no document overflow. The five Tasks fields identified in the alignment report also share their left edge, width, and height within 2px, including unit-bearing fields and Default Priority. All mutations were blocked after isolated-profile onboarding, with zero unexpected write requests.
Screenshot review of the first candidate exposed an offscreen cleanup confirmation focus target despite a passing focus assertion. Initial focus was moved to the fixed-footer Close action. Both browser cases and four Maintenance unit tests passed again; both review axes found no outstanding findings. The rebuilt final native run passed the stricter fully-visible-focus assertion and its cleanup capture shows the focus ring on Close.
Diagnostic screenshots and the local native harness are under `/private/tmp/vk-native-ui-1389.8cJNtK/`; run with `NATIVE_SCOPE=settings-popouts pnpm --filter @veritas-kanban/server exec tsx /tmp/vk-native-ui-1389.8cJNtK/verify.mjs` from the integration worktree. The owned application was closed after verification. These captures are not final maintained documentation media.
Source CI, installed-app replacement, final documentation images/GIFs, the remaining whole-app audit, and release remain separate unfinished gates.

View file

@ -23,69 +23,69 @@ The shared provider registers only open overlays, removes unmounted entries, and
Line numbers identify the audited opening and may move during migration. A shared primitive alone does not prove the feature's inner scroll, spacing, or keyboard behavior. Each row remains subject to rendered acceptance.
| Consumer | Opening line | Intended variant | Status |
| ------------------------------------------------------------------------------------------------- | -----------: | ---------------- | ----------------------------------------------------- |
| [TemplateEditorDialog.tsx](../../web/src/components/templates/TemplateEditorDialog.tsx) | 188 | authoring | Shared primitive adopted; runtime acceptance pending |
| [TemplatesPage.tsx](../../web/src/components/templates/TemplatesPage.tsx) | 274 | confirm | Shared primitive adopted; runtime acceptance pending |
| [TemplatesPage.tsx](../../web/src/components/templates/TemplatesPage.tsx) | 298 | form | Shared primitive adopted; runtime acceptance pending |
| [SearchDialog.tsx](../../web/src/components/search/SearchDialog.tsx) | 282 | authoring | Migration pending; migrate with nested consumers |
| [AdmissionQueuePanel.tsx](../../web/src/components/digest/AdmissionQueuePanel.tsx) | 315 | form | Migration pending |
| [WorkflowStartDialog.tsx](../../web/src/components/workflows/WorkflowStartDialog.tsx) | 71 | form | Migration pending; migrate with nested consumers |
| [CreateTaskDialog.tsx](../../web/src/components/task/CreateTaskDialog.tsx) | 267 | form | Migration pending; migrate with nested consumers |
| [PolicyManager.tsx](../../web/src/components/policies/PolicyManager.tsx) | 552 | authoring | Shared modal; runtime acceptance pending in #1423 |
| [PolicyManager.tsx](../../web/src/components/policies/PolicyManager.tsx) | 906 | form | Shared modal; runtime acceptance pending in #1423 |
| [TimeTrackingSection.tsx](../../web/src/components/task/TimeTrackingSection.tsx) | 243 | form | Migration pending |
| [BulkActionsBar.tsx](../../web/src/components/board/BulkActionsBar.tsx) | 366 | confirm | Migration pending |
| [ArchiveSuggestionBanner.tsx](../../web/src/components/board/ArchiveSuggestionBanner.tsx) | 92 | confirm | Migration pending |
| [ConflictResolver.tsx](../../web/src/components/task/ConflictResolver.tsx) | 124 | utility | Migration pending |
| [ConflictResolver.tsx](../../web/src/components/task/ConflictResolver.tsx) | 383 | confirm | Migration pending |
| [FilterBar.tsx](../../web/src/components/board/FilterBar.tsx) | 349 | form | Migration pending |
| [FilterBar.tsx](../../web/src/components/board/FilterBar.tsx) | 374 | confirm | Migration pending |
| [ChatPanel.tsx](../../web/src/components/chat/ChatPanel.tsx) | 279 | chat | Migration pending; migrate with nested consumers |
| [ChatPanel.tsx](../../web/src/components/chat/ChatPanel.tsx) | 297 | confirm | Migration pending; migrate with nested consumers |
| [TaskWorkView.tsx](../../web/src/components/task/TaskWorkView.tsx) | 1055 | confirm | Migration pending |
| [ObservationsSection.tsx](../../web/src/components/task/ObservationsSection.tsx) | 118 | confirm | Migration pending |
| [SquadChatPanel.tsx](../../web/src/components/chat/SquadChatPanel.tsx) | 522 | chat | Migration pending; migrate with nested consumers |
| [ReviewPanel.tsx](../../web/src/components/task/ReviewPanel.tsx) | 212 | form | Migration pending |
| [ArtifactPreviewModal.tsx](../../web/src/components/task/ArtifactPreviewModal.tsx) | 112 | authoring | Migration pending |
| [CommandPalette.tsx](../../web/src/components/layout/CommandPalette.tsx) | 293 | form | Migration pending; migrate with nested consumers |
| [SettingsDialog.tsx](../../web/src/components/settings/SettingsDialog.tsx) | 529 | authoring | Shared geometry; browser passed; native pending #1436 |
| [SettingsDialog.tsx](../../web/src/components/settings/SettingsDialog.tsx) | 739 | confirm | Shared geometry; browser passed; native pending #1436 |
| [PRDialog.tsx](../../web/src/components/task/git/PRDialog.tsx) | 36 | authoring | Migration pending |
| [ActivitySidebar.tsx](../../web/src/components/layout/ActivitySidebar.tsx) | 244 | utility | Migration pending |
| [SortableListItem.tsx](../../web/src/components/settings/SortableListItem.tsx) | 171 | confirm | Shared geometry; browser passed; native pending #1436 |
| [WorktreeStatus.tsx](../../web/src/components/task/git/WorktreeStatus.tsx) | 374 | form | Migration pending |
| [WorktreeStatus.tsx](../../web/src/components/task/git/WorktreeStatus.tsx) | 404 | confirm | Migration pending |
| [TaskDetailsTab.tsx](../../web/src/components/task/detail/TaskDetailsTab.tsx) | 254 | confirm | Migration pending |
| [KeyboardShortcutsDialog.tsx](../../web/src/components/layout/KeyboardShortcutsDialog.tsx) | 49 | form | Migration pending |
| [ArchiveSidebar.tsx](../../web/src/components/layout/ArchiveSidebar.tsx) | 240 | utility | Migration pending |
| [MobileShell.tsx](../../web/src/components/layout/MobileShell.tsx) | 129 | utility | Migration pending |
| [ApplyTemplateDialog.tsx](../../web/src/components/task/ApplyTemplateDialog.tsx) | 305 | authoring | Migration pending |
| [PreviewPanel.tsx](../../web/src/components/task/PreviewPanel.tsx) | 71 | utility | Migration pending; migrate with nested consumers |
| [AttachmentsSection.tsx](../../web/src/components/task/AttachmentsSection.tsx) | 172 | confirm | Migration pending |
| [SectionHeader.tsx](../../web/src/components/settings/shared/SectionHeader.tsx) | 66 | confirm | Shared geometry; browser passed; native pending #1436 |
| [DesktopOnboarding.tsx](../../web/src/components/auth/DesktopOnboarding.tsx) | 711 | authoring | Migration pending |
| [AgentRunTimelinePanel.tsx](../../web/src/components/task/AgentRunTimelinePanel.tsx) | 1373 | form | Migration pending |
| [DeliverablesSection.tsx](../../web/src/components/task/DeliverablesSection.tsx) | 272 | confirm | Migration pending |
| [DrillDownPanel.tsx](../../web/src/components/dashboard/DrillDownPanel.tsx) | 14 | utility | Migration pending |
| [WorkflowSection.tsx](../../web/src/components/task/WorkflowSection.tsx) | 266 | authoring | Migration pending |
| [CommentsSection.tsx](../../web/src/components/task/CommentsSection.tsx) | 190 | confirm | Migration pending |
| [TaskDetailPanel.tsx](../../web/src/components/task/TaskDetailPanel.tsx) | 271 | task | Migration pending |
| [sheet.tsx](../../web/src/components/ui/sheet.tsx) | 147 | utility | Migration pending |
| [alert-dialog.tsx](../../web/src/components/ui/alert-dialog.tsx) | 136 | form | Migration pending |
| [WorkProductsSection.tsx](../../web/src/components/task/WorkProductsSection.tsx) | 504 | authoring | Migration pending |
| [WorkProductsSection.tsx](../../web/src/components/task/WorkProductsSection.tsx) | 551 | authoring | Migration pending |
| [AgentPanel.tsx](../../web/src/components/task/AgentPanel.tsx) | 630 | confirm | Migration pending |
| [AgentPanel.tsx](../../web/src/components/task/AgentPanel.tsx) | 661 | form | Migration pending |
| [dialog.tsx](../../web/src/components/ui/dialog.tsx) | 157 | form | Migration pending |
| [ExportDialog.tsx](../../web/src/components/dashboard/ExportDialog.tsx) | 106 | form | Migration pending |
| [SkillRiskDashboardPanel.tsx](../../web/src/components/settings/tabs/SkillRiskDashboardPanel.tsx) | 339 | form | Shared geometry; browser passed; native pending #1436 |
| [ToolPoliciesTab.tsx](../../web/src/components/settings/tabs/ToolPoliciesTab.tsx) | 269 | authoring | Shared geometry; browser passed; native pending #1436 |
| [GeneralTab.tsx](../../web/src/components/settings/tabs/GeneralTab.tsx) | 404 | confirm | Shared geometry; browser passed; native pending #1436 |
| [TemplateComponents.tsx](../../web/src/components/settings/tabs/TemplateComponents.tsx) | 252 | confirm | Shared geometry; browser passed; native pending #1436 |
| [SecurityTab.tsx](../../web/src/components/settings/tabs/SecurityTab.tsx) | 174 | confirm | Shared geometry; browser passed; native pending #1436 |
| [AgentsTab.tsx](../../web/src/components/settings/tabs/AgentsTab.tsx) | 2331 | confirm | Shared geometry; browser passed; native pending #1436 |
| [MaintenanceTab.tsx](../../web/src/components/settings/tabs/MaintenanceTab.tsx) | 590 | form | Shared geometry; browser passed; native pending #1436 |
| Consumer | Opening line | Intended variant | Status |
| ------------------------------------------------------------------------------------------------- | -----------: | ---------------- | ---------------------------------------------------- |
| [TemplateEditorDialog.tsx](../../web/src/components/templates/TemplateEditorDialog.tsx) | 188 | authoring | Shared primitive adopted; runtime acceptance pending |
| [TemplatesPage.tsx](../../web/src/components/templates/TemplatesPage.tsx) | 274 | confirm | Shared primitive adopted; runtime acceptance pending |
| [TemplatesPage.tsx](../../web/src/components/templates/TemplatesPage.tsx) | 298 | form | Shared primitive adopted; runtime acceptance pending |
| [SearchDialog.tsx](../../web/src/components/search/SearchDialog.tsx) | 282 | authoring | Migration pending; migrate with nested consumers |
| [AdmissionQueuePanel.tsx](../../web/src/components/digest/AdmissionQueuePanel.tsx) | 315 | form | Migration pending |
| [WorkflowStartDialog.tsx](../../web/src/components/workflows/WorkflowStartDialog.tsx) | 71 | form | Migration pending; migrate with nested consumers |
| [CreateTaskDialog.tsx](../../web/src/components/task/CreateTaskDialog.tsx) | 267 | form | Migration pending; migrate with nested consumers |
| [PolicyManager.tsx](../../web/src/components/policies/PolicyManager.tsx) | 552 | authoring | Shared modal; runtime acceptance pending in #1423 |
| [PolicyManager.tsx](../../web/src/components/policies/PolicyManager.tsx) | 906 | form | Shared modal; runtime acceptance pending in #1423 |
| [TimeTrackingSection.tsx](../../web/src/components/task/TimeTrackingSection.tsx) | 243 | form | Migration pending |
| [BulkActionsBar.tsx](../../web/src/components/board/BulkActionsBar.tsx) | 366 | confirm | Migration pending |
| [ArchiveSuggestionBanner.tsx](../../web/src/components/board/ArchiveSuggestionBanner.tsx) | 92 | confirm | Migration pending |
| [ConflictResolver.tsx](../../web/src/components/task/ConflictResolver.tsx) | 124 | utility | Migration pending |
| [ConflictResolver.tsx](../../web/src/components/task/ConflictResolver.tsx) | 383 | confirm | Migration pending |
| [FilterBar.tsx](../../web/src/components/board/FilterBar.tsx) | 349 | form | Migration pending |
| [FilterBar.tsx](../../web/src/components/board/FilterBar.tsx) | 374 | confirm | Migration pending |
| [ChatPanel.tsx](../../web/src/components/chat/ChatPanel.tsx) | 279 | chat | Migration pending; migrate with nested consumers |
| [ChatPanel.tsx](../../web/src/components/chat/ChatPanel.tsx) | 297 | confirm | Migration pending; migrate with nested consumers |
| [TaskWorkView.tsx](../../web/src/components/task/TaskWorkView.tsx) | 1055 | confirm | Migration pending |
| [ObservationsSection.tsx](../../web/src/components/task/ObservationsSection.tsx) | 118 | confirm | Migration pending |
| [SquadChatPanel.tsx](../../web/src/components/chat/SquadChatPanel.tsx) | 522 | chat | Migration pending; migrate with nested consumers |
| [ReviewPanel.tsx](../../web/src/components/task/ReviewPanel.tsx) | 212 | form | Migration pending |
| [ArtifactPreviewModal.tsx](../../web/src/components/task/ArtifactPreviewModal.tsx) | 112 | authoring | Migration pending |
| [CommandPalette.tsx](../../web/src/components/layout/CommandPalette.tsx) | 293 | form | Migration pending; migrate with nested consumers |
| [SettingsDialog.tsx](../../web/src/components/settings/SettingsDialog.tsx) | 529 | authoring | Shared geometry; browser/native passed #1436 |
| [SettingsDialog.tsx](../../web/src/components/settings/SettingsDialog.tsx) | 739 | confirm | Shared geometry; browser/native passed #1436 |
| [PRDialog.tsx](../../web/src/components/task/git/PRDialog.tsx) | 36 | authoring | Migration pending |
| [ActivitySidebar.tsx](../../web/src/components/layout/ActivitySidebar.tsx) | 244 | utility | Migration pending |
| [SortableListItem.tsx](../../web/src/components/settings/SortableListItem.tsx) | 171 | confirm | Shared geometry; browser/native passed #1436 |
| [WorktreeStatus.tsx](../../web/src/components/task/git/WorktreeStatus.tsx) | 374 | form | Migration pending |
| [WorktreeStatus.tsx](../../web/src/components/task/git/WorktreeStatus.tsx) | 404 | confirm | Migration pending |
| [TaskDetailsTab.tsx](../../web/src/components/task/detail/TaskDetailsTab.tsx) | 254 | confirm | Migration pending |
| [KeyboardShortcutsDialog.tsx](../../web/src/components/layout/KeyboardShortcutsDialog.tsx) | 49 | form | Migration pending |
| [ArchiveSidebar.tsx](../../web/src/components/layout/ArchiveSidebar.tsx) | 240 | utility | Migration pending |
| [MobileShell.tsx](../../web/src/components/layout/MobileShell.tsx) | 129 | utility | Migration pending |
| [ApplyTemplateDialog.tsx](../../web/src/components/task/ApplyTemplateDialog.tsx) | 305 | authoring | Migration pending |
| [PreviewPanel.tsx](../../web/src/components/task/PreviewPanel.tsx) | 71 | utility | Migration pending; migrate with nested consumers |
| [AttachmentsSection.tsx](../../web/src/components/task/AttachmentsSection.tsx) | 172 | confirm | Migration pending |
| [SectionHeader.tsx](../../web/src/components/settings/shared/SectionHeader.tsx) | 66 | confirm | Shared geometry; browser/native passed #1436 |
| [DesktopOnboarding.tsx](../../web/src/components/auth/DesktopOnboarding.tsx) | 711 | authoring | Migration pending |
| [AgentRunTimelinePanel.tsx](../../web/src/components/task/AgentRunTimelinePanel.tsx) | 1373 | form | Migration pending |
| [DeliverablesSection.tsx](../../web/src/components/task/DeliverablesSection.tsx) | 272 | confirm | Migration pending |
| [DrillDownPanel.tsx](../../web/src/components/dashboard/DrillDownPanel.tsx) | 14 | utility | Migration pending |
| [WorkflowSection.tsx](../../web/src/components/task/WorkflowSection.tsx) | 266 | authoring | Migration pending |
| [CommentsSection.tsx](../../web/src/components/task/CommentsSection.tsx) | 190 | confirm | Migration pending |
| [TaskDetailPanel.tsx](../../web/src/components/task/TaskDetailPanel.tsx) | 271 | task | Migration pending |
| [sheet.tsx](../../web/src/components/ui/sheet.tsx) | 147 | utility | Migration pending |
| [alert-dialog.tsx](../../web/src/components/ui/alert-dialog.tsx) | 136 | form | Migration pending |
| [WorkProductsSection.tsx](../../web/src/components/task/WorkProductsSection.tsx) | 504 | authoring | Migration pending |
| [WorkProductsSection.tsx](../../web/src/components/task/WorkProductsSection.tsx) | 551 | authoring | Migration pending |
| [AgentPanel.tsx](../../web/src/components/task/AgentPanel.tsx) | 630 | confirm | Migration pending |
| [AgentPanel.tsx](../../web/src/components/task/AgentPanel.tsx) | 661 | form | Migration pending |
| [dialog.tsx](../../web/src/components/ui/dialog.tsx) | 157 | form | Migration pending |
| [ExportDialog.tsx](../../web/src/components/dashboard/ExportDialog.tsx) | 106 | form | Migration pending |
| [SkillRiskDashboardPanel.tsx](../../web/src/components/settings/tabs/SkillRiskDashboardPanel.tsx) | 339 | form | Shared geometry; browser/native passed #1436 |
| [ToolPoliciesTab.tsx](../../web/src/components/settings/tabs/ToolPoliciesTab.tsx) | 269 | authoring | Shared geometry; browser/native passed #1436 |
| [GeneralTab.tsx](../../web/src/components/settings/tabs/GeneralTab.tsx) | 404 | confirm | Shared geometry; browser/native passed #1436 |
| [TemplateComponents.tsx](../../web/src/components/settings/tabs/TemplateComponents.tsx) | 252 | confirm | Shared geometry; browser/native passed #1436 |
| [SecurityTab.tsx](../../web/src/components/settings/tabs/SecurityTab.tsx) | 174 | confirm | Shared geometry; browser/native passed #1436 |
| [AgentsTab.tsx](../../web/src/components/settings/tabs/AgentsTab.tsx) | 2331 | confirm | Shared geometry; browser/native passed #1436 |
| [MaintenanceTab.tsx](../../web/src/components/settings/tabs/MaintenanceTab.tsx) | 590 | form | Shared geometry; browser/native passed #1436 |
The mobile notification drawer is a deliberate bottom-sheet exception; it still needs matching spacing and keyboard checks. Compatibility wrappers in `ui/dialog.tsx`, `ui/alert-dialog.tsx`, and `ui/sheet.tsx` remain inventoried above where they instantiate roots; their public call sites must not be silently treated as migrated. Docked Workbench chat is not a modal and must keep its non-modal focus model while adopting the same header/composer spacing.