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
@@ -8,22 +8,51 @@ Every user-facing use case should map to a complete chain:
8
8
9
9
This matrix shows current-state UI presence and identifies omissions where the chain is not fully RelayCommand-backed yet.
10
10
11
-
## Legend
12
-
13
-
-`UI Tags`: UIs where the use case currently appears (`Phone`, `Tablet`, `Desktop`, `TUI`) plus projected parity target (`Blazor`).
14
-
-`Complete`: row has an explicit RelayCommand path to a handler and a concrete ViewModel state mutation.
15
-
-`Gap`: use case exists, but there is no exposed RelayCommand chain yet.
11
+
## Legend
12
+
13
+
-`UI Tags`: UIs where the use case currently appears (`Phone`, `Tablet`, `Desktop`, `TUI`) plus projected parity target (`Blazor`).
14
+
-`Complete`: row has an explicit RelayCommand path to a handler and a concrete ViewModel state mutation.
15
+
-`Gap`: use case exists, but there is no exposed RelayCommand chain yet.
16
+
17
+
## Coverage Summary
18
+
19
+
- Refreshed against live swagger at `http://PAYTON-DESKTOP:7147/swagger/v1/swagger.json` on `2026-03-03`.
20
+
-`38` UI.Core handler types currently exist across `10` endpoint domains.
21
+
-`35 / 138` distinct HTTP operations currently have at least one UI.Core handler path.
22
+
- This matrix currently records `28` complete RelayCommand use cases and `9` active omission rows.
23
+
- Session-log list/detail use cases share one swagger `GET /mcpserver/sessionlog` operation, so use-case totals and distinct HTTP-operation totals do not match one-to-one.
|`requirements`|`20`|`0`| No UI.Core handler coverage yet. |
39
+
|`tools`|`12`|`0`| No UI.Core handler coverage yet. |
40
+
|`gh`|`13`|`0`| No UI.Core handler coverage yet. |
41
+
|`voice`|`9`|`0`| No UI.Core handler coverage yet. |
42
+
|`agents`|`14`|`0`| No UI.Core handler coverage yet. |
43
+
|`agent-pool`|`15`|`0`| No UI.Core handler coverage yet. |
44
+
|`events`|`1`|`0`| No UI.Core handler coverage yet. |
16
45
17
46
## Blazor Surface Inventory Status
18
47
19
48
- Blazor is a required parity target, but there is no Blazor host implementation in this workspace yet.
20
49
- Endpoint/use-case inventory for Blazor is therefore tracked as expected parity with the same UI.Core RelayCommand surfaces listed below.
21
-
- Migration status for Blazor wiring remains in plan phase `M5` (`P3.11`, `P4.8`, `M5.2`).
50
+
- Migration status for Blazor wiring remains in plan phase `M5` (`P3.11`, `P4.8`, `M5.2`), and parity is still blocked by the open workspace/global-prompt/health omission rows listed below.
22
51
23
52
| Endpoint Group | Expected UI.Core RelayCommand Surface for Blazor | Current Blazor Status |
24
53
| --- | --- | --- |
25
54
| TODO |`TodoListViewModel.RefreshCommand`, `TodoDetailViewModel.*Command`| Not yet wired in RequestTracker |
26
-
| Workspace |`WorkspaceListViewModel.RefreshCommand`, `WorkspaceDetailViewModel.GetWorkspaceCommand`, `WorkspacePolicyViewModel.SaveCommand`, `HealthSnapshotsViewModel.InitializeWorkspaceCommand`| Not yet wired in RequestTracker |
55
+
| Workspace |`WorkspaceListViewModel.RefreshCommand`, `WorkspaceDetailViewModel.GetWorkspaceCommand`, `WorkspacePolicyViewModel.SaveCommand`, `HealthSnapshotsViewModel.InitializeWorkspaceCommand`| Not yet wired in RequestTracker; parity is still blocked by missing shared create/delete/status/start/stop/global-prompt/workspace-health flows|
27
56
| SessionLog |`SessionLogListViewModel.RefreshCommand`, `SessionLogDetailViewModel.LoadCommand`| Not yet wired in RequestTracker |
28
57
| Health |`HealthSnapshotsViewModel.CheckHealthCommand`| Not yet wired in RequestTracker |
29
58
| Templates |`TemplateListViewModel.RefreshCommand`, `TemplateDetailViewModel.Load/Save/Delete/TestCommand`| Not yet wired in RequestTracker |
@@ -62,9 +91,19 @@ This matrix shows current-state UI presence and identifies omissions where the c
| Templates | Test template (`POST /mcpserver/templates/{id}/test`) |`[TUI]`|`TemplateDetailViewModel.TestCommand`|`TestTemplateQueryHandler`|`TestOutput`, `StatusMessage`, `ErrorMessage`|
64
93
65
-
## Omissions (Use Case Exists, RelayCommand Chain Missing)
66
-
67
-
No open omissions in this matrix after GAP-020 closure. Workspace init, tunnel lifecycle, and template detail operations are now RelayCommand-backed in UI.Core.
94
+
## Omissions (Use Case Exists, RelayCommand Chain Missing)
95
+
96
+
| Endpoint Group | User Use Case | UI Tags | Current Host Command / Mutation | Missing Shared RelayCommand Chain |
97
+
| --- | --- | --- | --- | --- |
98
+
| Workspace | Create workspace (`POST /mcpserver/workspace`) |`[Tablet, Desktop]`|`WorkspaceViewModel.NewWorkspaceCommand` seeds an app-local draft that is later persisted by `SaveEditorCommand`| No shared `CreateWorkspaceCommandHandler` or reusable UI.Core create-workspace ViewModel/RelayCommand |
99
+
| Workspace | Save workspace editor (`PUT /mcpserver/workspace/{key}` full editor fields) |`[Tablet, Desktop]`|`WorkspaceViewModel.SaveEditorCommand` mutates app-local editor fields and list selection | No shared UI.Core save-workspace RelayCommand for the Desktop/Android editor path; `UpdateWorkspacePolicyCommandHandler` only covers the TUI policy subset |
100
+
| Workspace | Delete workspace (`DELETE /mcpserver/workspace/{key}`) |`[Tablet, Desktop]`|`WorkspaceViewModel.DeleteSelectedCommand` mutates app-local selection and list state | No `DeleteWorkspaceCommandHandler` or reusable UI.Core delete-workspace ViewModel/RelayCommand |
101
+
| Workspace | Get workspace status (`GET /mcpserver/workspace/{key}/status`) |`[Tablet, Desktop]`|`WorkspaceViewModel.GetSelectedStatusCommand` updates `ProcessStatusText` and indicator state | No `GetWorkspaceStatusQueryHandler` or shared UI.Core status ViewModel/RelayCommand |
102
+
| Health | Check selected workspace health (`GET /health` against selected workspace base URL) |`[Tablet, Desktop]`|`WorkspaceViewModel.CheckSelectedWorkspaceHealthCommand` mutates `ProcessStatusText` and `HealthIndicator*` properties | No shared UI.Core workspace-health probe query/command or health-specific ViewModel mutation path |
| Workspace | Load global prompt (`GET /mcpserver/workspace/prompt`) |`[Desktop]`|`WorkspaceViewModel.LoadGlobalPromptCommand` hydrates `GlobalPromptText` in the app-local VM | No `GetWorkspacePromptQueryHandler` or shared UI.Core prompt ViewModel |
106
+
| Workspace | Save / reset global prompt (`PUT /mcpserver/workspace/prompt`) |`[Desktop]`|`WorkspaceViewModel.SaveGlobalPromptCommand` and `ResetGlobalPromptCommand` mutate `GlobalPromptText` app-locally | No `UpdateWorkspacePromptCommandHandler` or shared UI.Core prompt ViewModel / RelayCommand chain |
68
107
69
108
---
70
109
@@ -157,11 +196,40 @@ No open omissions in this matrix after GAP-020 closure. Workspace init, tunnel l
157
196
-`TUI`: Dedicated health tab with explicit check action and raw payload view.
158
197
-`Phone/Tablet/Desktop`: Show health indicators in shell status, but no direct health-snapshot command surface.
159
198
160
-
-`List templates` (`GET /mcpserver/templates`)
161
-
-`TUI`: Filter + table workflow with template management context.
162
-
-`Phone/Tablet/Desktop`: Use case not surfaced in current shells.
163
-
164
-
### GAP-020 use cases (closed, now RelayCommand-backed)
199
+
-`List templates` (`GET /mcpserver/templates`)
200
+
-`TUI`: Filter + table workflow with template management context.
201
+
-`Phone/Tablet/Desktop`: Use case not surfaced in current shells.
202
+
203
+
### Open-omission use cases
204
+
205
+
-`Create workspace` (`POST /mcpserver/workspace`)
206
+
-`Tablet/Desktop`: Draft-first editor flow still starts from the app-local `WorkspaceViewModel`; no shared UI.Core create-workspace surface exists yet.
207
+
208
+
-`Save workspace editor` (`PUT /mcpserver/workspace/{key}` full editor fields)
209
+
-`Tablet/Desktop`: Save commits the broader workspace editor model from the app-local VM; UI.Core only covers the narrower TUI policy-save path today.
-`Tablet/Desktop`: Lifecycle stop remains app-local and is not reusable by Director or a future Blazor host.
225
+
226
+
-`Load global prompt` (`GET /mcpserver/workspace/prompt`)
227
+
-`Desktop`: Global prompt hydration exists only in the desktop workspace surface; Android/Director/Blazor have no shared UI.Core prompt surface to adopt.
228
+
229
+
-`Save / reset global prompt` (`PUT /mcpserver/workspace/prompt`)
230
+
-`Desktop`: Save and reset remain app-local prompt-editor workflows, so parity cannot yet converge on a shared command chain.
231
+
232
+
### GAP-020 use cases (closed, now RelayCommand-backed)
0 commit comments