loki-mode 10.10.2 → 10.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/SKILL.md +2 -2
  2. package/VERSION +1 -1
  3. package/dashboard/__init__.py +1 -1
  4. package/docs/CLI-REFERENCE.md +1 -1
  5. package/docs/INSTALLATION.md +1 -1
  6. package/docs/v10/BOARD.md +8 -0
  7. package/docs/v10/DEPS.md +2 -0
  8. package/docs/v10/FAILURE-CLASSES.md +59 -16
  9. package/docs/v10/METRICS.md +9 -0
  10. package/docs/v10/PROGRESS.md +17 -0
  11. package/docs/v10/cp-redesign/PARITY.md +188 -0
  12. package/docs/v10/cp-redesign/legacy/INDEX.md +1167 -0
  13. package/loki-ts/dist/loki.js +631 -612
  14. package/mcp/__init__.py +1 -1
  15. package/package.json +1 -1
  16. package/packages/control-plane/dist/server.js +433 -340
  17. package/packages/control-plane/src/server/diffstat.ts +77 -0
  18. package/packages/control-plane/src/server/repos.ts +5 -2
  19. package/packages/control-plane/src/server/routes/index.ts +1 -1
  20. package/packages/control-plane/src/server/runs.ts +3 -1
  21. package/packages/control-plane/ui/dist/assets/index-D27veKDf.js +152 -0
  22. package/packages/control-plane/ui/dist/index.html +1 -1
  23. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  24. package/web-app/dist/assets/{AdminPage-BvbxMtZO.js → AdminPage-qj6cyTT6.js} +1 -1
  25. package/web-app/dist/assets/{Avatar-Dc7Scg02.js → Avatar-Dg4WrYYd.js} +1 -1
  26. package/web-app/dist/assets/{Badge-BmVuOqbM.js → Badge-DHiwSg-p.js} +1 -1
  27. package/web-app/dist/assets/{Button-DvzqhxRU.js → Button-gi8XEzIU.js} +1 -1
  28. package/web-app/dist/assets/{CockpitPage-D8AZo7Ha.js → CockpitPage-B1QNjPBn.js} +1 -1
  29. package/web-app/dist/assets/{ComparePage-NmqaTXDz.js → ComparePage-DW-oUaDu.js} +1 -1
  30. package/web-app/dist/assets/{ErrorBoundary-PGl8Kzoq.js → ErrorBoundary-BK5zjqn-.js} +1 -1
  31. package/web-app/dist/assets/{EvidenceReceiptPanel-2NY4n9gv.js → EvidenceReceiptPanel-F58cuFm9.js} +1 -1
  32. package/web-app/dist/assets/{GitHubIssuesPanel-DBO_LHHM.js → GitHubIssuesPanel-QVyvF19M.js} +1 -1
  33. package/web-app/dist/assets/{GitHubPRsPanel-K7m9uJ1N.js → GitHubPRsPanel-BRFHMzwy.js} +1 -1
  34. package/web-app/dist/assets/{HomePage-qNQzAJxM.js → HomePage-Cpskd4yM.js} +2 -2
  35. package/web-app/dist/assets/{LoginPage-esu3OK65.js → LoginPage-CteYWi5M.js} +1 -1
  36. package/web-app/dist/assets/{MagicPage-CCdVvXrA.js → MagicPage-CCLor0AU.js} +1 -1
  37. package/web-app/dist/assets/{MetricsPage-bEvugU2t.js → MetricsPage-WgsOaLoq.js} +1 -1
  38. package/web-app/dist/assets/{NotFoundPage-BlEjQ1wX.js → NotFoundPage-DXSCr9P6.js} +1 -1
  39. package/web-app/dist/assets/{ProjectPage-Bnug_Yzv.js → ProjectPage-sR0kaaXV.js} +3 -3
  40. package/web-app/dist/assets/{ProjectsPage-M8r1vfpn.js → ProjectsPage-J3TNS42-.js} +1 -1
  41. package/web-app/dist/assets/{SettingsPage-NqAJpB48.js → SettingsPage-Cil5837P.js} +1 -1
  42. package/web-app/dist/assets/{ShowcasePage-8FggxL1P.js → ShowcasePage-C3_oWYJa.js} +1 -1
  43. package/web-app/dist/assets/{SystemSettingsPage-3Sz3kFOO.js → SystemSettingsPage-Sddw1fFS.js} +1 -1
  44. package/web-app/dist/assets/{TeamsPage-nV-6vdWM.js → TeamsPage-B0poySCt.js} +1 -1
  45. package/web-app/dist/assets/{TemplatesPage-Brbc_VR9.js → TemplatesPage-pcYSxHam.js} +1 -1
  46. package/web-app/dist/assets/{TerminalOutput-D1yta5ac.js → TerminalOutput-CRWTZM7F.js} +1 -1
  47. package/web-app/dist/assets/{activity-oEeKuqFe.js → activity-D3aR95zO.js} +1 -1
  48. package/web-app/dist/assets/{bell-3NJtqBRR.js → bell-WdWaPIBo.js} +1 -1
  49. package/web-app/dist/assets/{bot-CuvJZ6x1.js → bot-CzD3xokc.js} +1 -1
  50. package/web-app/dist/assets/{check-n4289IZw.js → check-DMYJiYcm.js} +1 -1
  51. package/web-app/dist/assets/{chevron-left-CmQeio7h.js → chevron-left-DY0FSKvI.js} +1 -1
  52. package/web-app/dist/assets/{circle-alert-CmmVW-Pd.js → circle-alert-DVPtG3Pe.js} +1 -1
  53. package/web-app/dist/assets/{clock-QFqk7GlA.js → clock-BjjLL6uI.js} +1 -1
  54. package/web-app/dist/assets/{cloud-BNkSokmq.js → cloud-CnUCVZhm.js} +1 -1
  55. package/web-app/dist/assets/{code-xml-nWeketqj.js → code-xml-BPoxcFNK.js} +1 -1
  56. package/web-app/dist/assets/{database-C83MXTmJ.js → database-ClVgDBYt.js} +1 -1
  57. package/web-app/dist/assets/{dollar-sign-Blg6TO4y.js → dollar-sign-Ui4BIml8.js} +1 -1
  58. package/web-app/dist/assets/{file-code-corner-Tk11oUzm.js → file-code-corner-BNYl7J1Z.js} +1 -1
  59. package/web-app/dist/assets/{file-plus-DF_eyA6I.js → file-plus-BxkSyRVn.js} +1 -1
  60. package/web-app/dist/assets/{globe-D5hDqqmn.js → globe-b2poyDKT.js} +1 -1
  61. package/web-app/dist/assets/{hammer-C2hm9lzl.js → hammer-D_0BUpBG.js} +1 -1
  62. package/web-app/dist/assets/{index-pMxOIwXq.js → index-D8TYtITk.js} +3 -3
  63. package/web-app/dist/assets/{layers-XWQKGXg0.js → layers-Co1szEIf.js} +1 -1
  64. package/web-app/dist/assets/{loader-circle-BRuvorm2.js → loader-circle-DylW-nwq.js} +1 -1
  65. package/web-app/dist/assets/{lock-BSGvQf5v.js → lock-D7aFdKw7.js} +1 -1
  66. package/web-app/dist/assets/{package-3FJYUYgJ.js → package-ElSsRKiN.js} +1 -1
  67. package/web-app/dist/assets/{plus-CeIx6g9P.js → plus-CVWgRxDX.js} +1 -1
  68. package/web-app/dist/assets/{refresh-cw-ChutW42g.js → refresh-cw-B2azSZHT.js} +1 -1
  69. package/web-app/dist/assets/{rotate-ccw-BdSjUAk-.js → rotate-ccw-BdQHOrf0.js} +1 -1
  70. package/web-app/dist/assets/{scroll-text-BjFqxpw3.js → scroll-text-9m-YKf83.js} +1 -1
  71. package/web-app/dist/assets/{server-C7UEKdol.js → server-BYq99Fe1.js} +1 -1
  72. package/web-app/dist/assets/{shield-alert-DY8fpEs7.js → shield-alert-BNCiHXhR.js} +1 -1
  73. package/web-app/dist/assets/{thumbs-up-Cz1san1g.js → thumbs-up-BB_EJkat.js} +1 -1
  74. package/web-app/dist/assets/{trash-2-D2MvGYeP.js → trash-2-BMF4kFvy.js} +1 -1
  75. package/web-app/dist/assets/{trending-down-CxO3OYOB.js → trending-down-BiqiTPXx.js} +1 -1
  76. package/web-app/dist/assets/{trending-up-DCHKPJLe.js → trending-up-Bq6qyKub.js} +1 -1
  77. package/web-app/dist/assets/{upload-CdPJpSHC.js → upload-1HzIJHHR.js} +1 -1
  78. package/web-app/dist/assets/{usePolling-DAH6K3ST.js → usePolling-FNwpjURt.js} +1 -1
  79. package/web-app/dist/assets/{user-Byyt01W4.js → user-DrORfQv3.js} +1 -1
  80. package/web-app/dist/index.html +1 -1
  81. package/packages/control-plane/ui/dist/assets/index-BrA22FUs.js +0 -152
@@ -0,0 +1,1167 @@
1
+ # Legacy dashboard capture index
2
+
3
+ The screenshots listed here are not committed on main: several show local machine paths, and together they are 11 MB. They live on branch worktree-agent-af573bf770a13c505 (commit 02cd936f7) for reference.
4
+
5
+ Captured from commit 102629c77 (parent of 9dda8171c, which deleted the legacy dashboard), served by dashboard/server.py (v10.7.1) on a temp port against a fixture .loki (queue, memory, council, metrics, context, checkpoints and proofs copied read-only from the main checkout plus a synthetic dashboard-state.json). The prebuilt dashboard/static/index.html committed at that SHA was used as is (no rebuild needed). Screenshots were taken headless at 1600x1000.
6
+
7
+ Harness rules: GET requests are passed through and their status recorded. Non-GET requests to start, stop, restart, rollback, restore, migrate, spawn, kill or run endpoints were aborted by the harness (marked ABORTED) so the capture never spawned or killed a process; those controls are recorded with their endpoint but not exercised. Every other control was clicked for real and the backend status recorded. A control with no request listed is client-side only. Per-section controls capped at 14 distinct controls; shared chrome is listed once under Home.
8
+
9
+ Naming: page-*.png is the page as loaded, page-*-full.png is full scroll height when different, and page-*__ctl-NN-*.png is the page after clicking that control (only saved when the screen changed).
10
+
11
+
12
+ ## Home shell (header, project picker, session panel, always-visible chrome)
13
+
14
+ Screenshot: `page-00-home.png`
15
+
16
+ Requests on load (endpoint -> HTTP status):
17
+
18
+ - GET /api/activity -> 200
19
+ - GET /api/agents -> 200
20
+ - GET /api/app-runner/status -> 200
21
+ - GET /api/checklist -> 200
22
+ - GET /api/checklist/summary -> 200
23
+ - GET /api/checklist/waivers -> 200
24
+ - GET /api/checkpoints -> 200
25
+ - GET /api/context -> 200
26
+ - GET /api/cost -> 200
27
+ - GET /api/cost/timeline -> 200
28
+ - GET /api/council/convergence -> 200
29
+ - GET /api/council/gate -> 200
30
+ - GET /api/council/state -> 200
31
+ - GET /api/council/transcripts -> 200
32
+ - GET /api/council/verdicts -> 200
33
+ - GET /api/escalations -> 200
34
+ - GET /api/fleet/runs -> 200
35
+ - GET /api/fleet/summary -> 200
36
+ - GET /api/gate-policy -> 200
37
+ - GET /api/learning/metrics -> 200
38
+ - GET /api/learning/signals -> 200
39
+ - GET /api/learning/tools -> 200
40
+ - GET /api/learning/trends -> 200
41
+ - GET /api/logs -> 200
42
+ - GET /api/memory/economics -> 200
43
+ - GET /api/memory/files -> 200
44
+ - GET /api/memory/stats -> 200
45
+ - GET /api/memory/summary -> 200
46
+ - GET /api/migration/list -> 200
47
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
48
+ - GET /api/notifications -> 200
49
+ - GET /api/notifications/triggers -> 200
50
+ - GET /api/phases -> 200
51
+ - GET /api/playwright/results -> 200
52
+ - GET /api/pricing -> 200
53
+ - GET /api/prompt-versions -> 200
54
+ - GET /api/proofs -> 200
55
+ - GET /api/proofs/summary -> 200
56
+ - GET /api/quality-score -> 200
57
+ - GET /api/quality-score/history -> 200
58
+ - GET /api/running-projects -> 200
59
+ - GET /api/session-diff -> 200
60
+ - GET /api/session/model -> 200
61
+ - GET /api/spec -> 200
62
+ - GET /api/spec/history -> 200
63
+ - GET /api/status -> 200
64
+ - GET /api/tasks -> 200
65
+ - GET /api/usage -> 200
66
+ - GET /api/wiki -> 200
67
+
68
+ Controls:
69
+
70
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
71
+ |---|---|---|---|---|
72
+ | Switch or focus a project | select | select (not changed) | client-side only | `page-00-home__ctl-01-switch-or-focus-a-projec.png` |
73
+ | Overview | button | nav-only | client-side only | |
74
+ | App Runner | button | nav-only | client-side only | |
75
+ | Checkpoints | button | nav-only | client-side only | |
76
+ | Context | button | nav-only | client-side only | |
77
+ | Fleet | button | nav-only | client-side only | |
78
+ | Quality | button | nav-only | client-side only | |
79
+ | Trust | button | nav-only | client-side only | |
80
+ | Council | button | nav-only | client-side only | |
81
+ | Spec Checklist | button | nav-only | client-side only | |
82
+ | Insights | button | nav-only | client-side only | |
83
+ | Analytics | button | nav-only | client-side only | |
84
+ | Cost | button | nav-only | client-side only | |
85
+ | Notifications 0 | button | nav-only | client-side only | |
86
+
87
+ ## Overview
88
+
89
+ Screenshot: `page-overview.png`
90
+
91
+ Requests on load (endpoint -> HTTP status):
92
+
93
+ - GET /api/activity -> 200
94
+ - GET /api/agents -> 200
95
+ - GET /api/app-runner/status -> 200
96
+ - GET /api/checklist -> 200
97
+ - GET /api/checklist/summary -> 200
98
+ - GET /api/checklist/waivers -> 200
99
+ - GET /api/checkpoints -> 200
100
+ - GET /api/context -> 200
101
+ - GET /api/cost -> 200
102
+ - GET /api/cost/timeline -> 200
103
+ - GET /api/council/convergence -> 200
104
+ - GET /api/council/gate -> 200
105
+ - GET /api/council/state -> 200
106
+ - GET /api/council/transcripts -> 200
107
+ - GET /api/council/verdicts -> 200
108
+ - GET /api/escalations -> 200
109
+ - GET /api/fleet/runs -> 200
110
+ - GET /api/fleet/summary -> 200
111
+ - GET /api/gate-policy -> 200
112
+ - GET /api/learning/metrics -> 200
113
+ - GET /api/learning/signals -> 200
114
+ - GET /api/learning/tools -> 200
115
+ - GET /api/learning/trends -> 200
116
+ - GET /api/logs -> 200
117
+ - GET /api/memory/economics -> 200
118
+ - GET /api/memory/files -> 200
119
+ - GET /api/memory/stats -> 200
120
+ - GET /api/memory/summary -> 200
121
+ - GET /api/migration/list -> 200
122
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
123
+ - GET /api/notifications -> 200
124
+ - GET /api/notifications/triggers -> 200
125
+ - GET /api/phases -> 200
126
+ - GET /api/playwright/results -> 200
127
+ - GET /api/pricing -> 200
128
+ - GET /api/prompt-versions -> 200
129
+ - GET /api/proofs -> 200
130
+ - GET /api/proofs/summary -> 200
131
+ - GET /api/quality-score -> 200
132
+ - GET /api/quality-score/history -> 200
133
+ - GET /api/running-projects -> 200
134
+ - GET /api/session-diff -> 200
135
+ - GET /api/session/model -> 200
136
+ - GET /api/spec -> 200
137
+ - GET /api/spec/history -> 200
138
+ - GET /api/status -> 200
139
+ - GET /api/tasks -> 200
140
+ - GET /api/usage -> 200
141
+ - GET /api/wiki -> 200
142
+
143
+ Controls:
144
+
145
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
146
+ |---|---|---|---|---|
147
+
148
+ ## App Runner
149
+
150
+ Screenshot: `page-app-runner.png`
151
+
152
+ Requests on load (endpoint -> HTTP status):
153
+
154
+ - GET /api/activity -> 200
155
+ - GET /api/agents -> 200
156
+ - GET /api/app-runner/status -> 200
157
+ - GET /api/checklist -> 200
158
+ - GET /api/checklist/summary -> 200
159
+ - GET /api/checklist/waivers -> 200
160
+ - GET /api/checkpoints -> 200
161
+ - GET /api/context -> 200
162
+ - GET /api/cost -> 200
163
+ - GET /api/cost/timeline -> 200
164
+ - GET /api/council/convergence -> 200
165
+ - GET /api/council/gate -> 200
166
+ - GET /api/council/state -> 200
167
+ - GET /api/council/transcripts -> 200
168
+ - GET /api/council/verdicts -> 200
169
+ - GET /api/escalations -> 200
170
+ - GET /api/fleet/runs -> 200
171
+ - GET /api/fleet/summary -> 200
172
+ - GET /api/gate-policy -> 200
173
+ - GET /api/learning/metrics -> 200
174
+ - GET /api/learning/signals -> 200
175
+ - GET /api/learning/tools -> 200
176
+ - GET /api/learning/trends -> 200
177
+ - GET /api/logs -> 200
178
+ - GET /api/memory/economics -> 200
179
+ - GET /api/memory/files -> 200
180
+ - GET /api/memory/stats -> 200
181
+ - GET /api/memory/summary -> 200
182
+ - GET /api/migration/list -> 200
183
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
184
+ - GET /api/notifications -> 200
185
+ - GET /api/notifications/triggers -> 200
186
+ - GET /api/phases -> 200
187
+ - GET /api/playwright/results -> 200
188
+ - GET /api/pricing -> 200
189
+ - GET /api/prompt-versions -> 200
190
+ - GET /api/proofs -> 200
191
+ - GET /api/proofs/summary -> 200
192
+ - GET /api/quality-score -> 200
193
+ - GET /api/quality-score/history -> 200
194
+ - GET /api/running-projects -> 200
195
+ - GET /api/session-diff -> 200
196
+ - GET /api/session/model -> 200
197
+ - GET /api/spec -> 200
198
+ - GET /api/spec/history -> 200
199
+ - GET /api/status -> 200
200
+ - GET /api/tasks -> 200
201
+ - GET /api/usage -> 200
202
+ - GET /api/wiki -> 200
203
+
204
+ Controls:
205
+
206
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
207
+ |---|---|---|---|---|
208
+ | Refresh | button | click-failed: locator.click: Timeout 2500ms exceeded. | client-side only | |
209
+ | Open in browser | button | click-failed: locator.click: Timeout 2500ms exceeded. | client-side only | |
210
+ | Restart | button | click-failed: locator.click: Timeout 2500ms exceeded. | client-side only | |
211
+
212
+ ## Checkpoints
213
+
214
+ Screenshot: `page-checkpoint.png`
215
+
216
+ Requests on load (endpoint -> HTTP status):
217
+
218
+ - GET /api/activity -> 200
219
+ - GET /api/agents -> 200
220
+ - GET /api/app-runner/status -> 200
221
+ - GET /api/checklist -> 200
222
+ - GET /api/checklist/summary -> 200
223
+ - GET /api/checklist/waivers -> 200
224
+ - GET /api/checkpoints -> 200
225
+ - GET /api/context -> 200
226
+ - GET /api/cost -> 200
227
+ - GET /api/cost/timeline -> 200
228
+ - GET /api/council/convergence -> 200
229
+ - GET /api/council/gate -> 200
230
+ - GET /api/council/state -> 200
231
+ - GET /api/council/transcripts -> 200
232
+ - GET /api/council/verdicts -> 200
233
+ - GET /api/escalations -> 200
234
+ - GET /api/fleet/runs -> 200
235
+ - GET /api/fleet/summary -> 200
236
+ - GET /api/gate-policy -> 200
237
+ - GET /api/learning/metrics -> 200
238
+ - GET /api/learning/signals -> 200
239
+ - GET /api/learning/tools -> 200
240
+ - GET /api/learning/trends -> 200
241
+ - GET /api/logs -> 200
242
+ - GET /api/memory/economics -> 200
243
+ - GET /api/memory/files -> 200
244
+ - GET /api/memory/stats -> 200
245
+ - GET /api/memory/summary -> 200
246
+ - GET /api/migration/list -> 200
247
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
248
+ - GET /api/notifications -> 200
249
+ - GET /api/notifications/triggers -> 200
250
+ - GET /api/playwright/results -> 200
251
+ - GET /api/pricing -> 200
252
+ - GET /api/prompt-versions -> 200
253
+ - GET /api/proofs -> 200
254
+ - GET /api/proofs/summary -> 200
255
+ - GET /api/quality-score -> 200
256
+ - GET /api/quality-score/history -> 200
257
+ - GET /api/running-projects -> 200
258
+ - GET /api/session-diff -> 200
259
+ - GET /api/session/model -> 200
260
+ - GET /api/spec -> 200
261
+ - GET /api/spec/history -> 200
262
+ - GET /api/status -> 200
263
+ - GET /api/tasks -> 200
264
+ - GET /api/usage -> 200
265
+ - GET /api/wiki -> 200
266
+
267
+ Controls:
268
+
269
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
270
+ |---|---|---|---|---|
271
+ | Create Checkpoint | button | clicked | client-side only | `page-checkpoint__ctl-01-create-checkpoint.png` |
272
+
273
+ ## Context
274
+
275
+ Screenshot: `page-context.png`
276
+
277
+ Requests on load (endpoint -> HTTP status):
278
+
279
+ - GET /api/activity -> 200
280
+ - GET /api/agents -> 200
281
+ - GET /api/app-runner/status -> 200
282
+ - GET /api/checklist -> 200
283
+ - GET /api/checklist/summary -> 200
284
+ - GET /api/checklist/waivers -> 200
285
+ - GET /api/checkpoints -> 200
286
+ - GET /api/context -> 200
287
+ - GET /api/cost -> 200
288
+ - GET /api/cost/timeline -> 200
289
+ - GET /api/council/convergence -> 200
290
+ - GET /api/council/gate -> 200
291
+ - GET /api/council/state -> 200
292
+ - GET /api/council/transcripts -> 200
293
+ - GET /api/council/verdicts -> 200
294
+ - GET /api/escalations -> 200
295
+ - GET /api/fleet/runs -> 200
296
+ - GET /api/fleet/summary -> 200
297
+ - GET /api/gate-policy -> 200
298
+ - GET /api/learning/metrics -> 200
299
+ - GET /api/learning/signals -> 200
300
+ - GET /api/learning/tools -> 200
301
+ - GET /api/learning/trends -> 200
302
+ - GET /api/logs -> 200
303
+ - GET /api/memory/economics -> 200
304
+ - GET /api/memory/files -> 200
305
+ - GET /api/memory/stats -> 200
306
+ - GET /api/memory/summary -> 200
307
+ - GET /api/migration/list -> 200
308
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
309
+ - GET /api/notifications -> 200
310
+ - GET /api/notifications/triggers -> 200
311
+ - GET /api/playwright/results -> 200
312
+ - GET /api/pricing -> 200
313
+ - GET /api/prompt-versions -> 200
314
+ - GET /api/proofs -> 200
315
+ - GET /api/proofs/summary -> 200
316
+ - GET /api/quality-score -> 200
317
+ - GET /api/quality-score/history -> 200
318
+ - GET /api/running-projects -> 200
319
+ - GET /api/session-diff -> 200
320
+ - GET /api/session/model -> 200
321
+ - GET /api/spec -> 200
322
+ - GET /api/spec/history -> 200
323
+ - GET /api/status -> 200
324
+ - GET /api/tasks -> 200
325
+ - GET /api/usage -> 200
326
+ - GET /api/wiki -> 200
327
+
328
+ Controls:
329
+
330
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
331
+ |---|---|---|---|---|
332
+ | Gauge | button | clicked | client-side only | `page-context__ctl-01-gauge.png` |
333
+ | Timeline | button | clicked | client-side only | `page-context__ctl-02-timeline.png` |
334
+ | Breakdown | button | clicked | client-side only | `page-context__ctl-03-breakdown.png` |
335
+
336
+ ## Fleet
337
+
338
+ Screenshot: omitted on purpose (the fleet table lists every registered project on the capturing machine, including unrelated private repos and local paths; the control inventory below is unaffected)
339
+
340
+ Requests on load (endpoint -> HTTP status):
341
+
342
+ - GET /api/activity -> 200
343
+ - GET /api/agents -> 200
344
+ - GET /api/app-runner/status -> 200
345
+ - GET /api/checklist -> 200
346
+ - GET /api/checklist/summary -> 200
347
+ - GET /api/checklist/waivers -> 200
348
+ - GET /api/checkpoints -> 200
349
+ - GET /api/context -> 200
350
+ - GET /api/cost -> 200
351
+ - GET /api/cost/timeline -> 200
352
+ - GET /api/council/convergence -> 200
353
+ - GET /api/council/gate -> 200
354
+ - GET /api/council/state -> 200
355
+ - GET /api/council/transcripts -> 200
356
+ - GET /api/council/verdicts -> 200
357
+ - GET /api/escalations -> 200
358
+ - GET /api/fleet/runs -> 200
359
+ - GET /api/fleet/summary -> 200
360
+ - GET /api/gate-policy -> 200
361
+ - GET /api/learning/metrics -> 200
362
+ - GET /api/learning/signals -> 200
363
+ - GET /api/learning/tools -> 200
364
+ - GET /api/learning/trends -> 200
365
+ - GET /api/logs -> 200
366
+ - GET /api/memory/economics -> 200
367
+ - GET /api/memory/files -> 200
368
+ - GET /api/memory/stats -> 200
369
+ - GET /api/memory/summary -> 200
370
+ - GET /api/migration/list -> 200
371
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
372
+ - GET /api/notifications -> 200
373
+ - GET /api/notifications/triggers -> 200
374
+ - GET /api/playwright/results -> 200
375
+ - GET /api/pricing -> 200
376
+ - GET /api/prompt-versions -> 200
377
+ - GET /api/proofs -> 200
378
+ - GET /api/proofs/summary -> 200
379
+ - GET /api/quality-score -> 200
380
+ - GET /api/quality-score/history -> 200
381
+ - GET /api/running-projects -> 200
382
+ - GET /api/session-diff -> 200
383
+ - GET /api/session/model -> 200
384
+ - GET /api/spec -> 200
385
+ - GET /api/spec/history -> 200
386
+ - GET /api/status -> 200
387
+ - GET /api/tasks -> 200
388
+ - GET /api/usage -> 200
389
+ - GET /api/wiki -> 200
390
+
391
+ Controls:
392
+
393
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
394
+ |---|---|---|---|---|
395
+ | Refresh | button | clicked | GET /api/fleet/runs -> 200; GET /api/fleet/summary -> 200 | omitted (same reason) |
396
+
397
+ ## Quality
398
+
399
+ Screenshot: `page-quality.png`
400
+
401
+ Requests on load (endpoint -> HTTP status):
402
+
403
+ - GET /api/activity -> 200
404
+ - GET /api/agents -> 200
405
+ - GET /api/app-runner/status -> 200
406
+ - GET /api/checklist -> 200
407
+ - GET /api/checklist/summary -> 200
408
+ - GET /api/checklist/waivers -> 200
409
+ - GET /api/checkpoints -> 200
410
+ - GET /api/context -> 200
411
+ - GET /api/cost -> 200
412
+ - GET /api/cost/timeline -> 200
413
+ - GET /api/council/convergence -> 200
414
+ - GET /api/council/gate -> 200
415
+ - GET /api/council/state -> 200
416
+ - GET /api/council/transcripts -> 200
417
+ - GET /api/council/verdicts -> 200
418
+ - GET /api/escalations -> 200
419
+ - GET /api/fleet/runs -> 200
420
+ - GET /api/fleet/summary -> 200
421
+ - GET /api/gate-policy -> 200
422
+ - GET /api/learning/metrics -> 200
423
+ - GET /api/learning/signals -> 200
424
+ - GET /api/learning/tools -> 200
425
+ - GET /api/learning/trends -> 200
426
+ - GET /api/logs -> 200
427
+ - GET /api/memory/economics -> 200
428
+ - GET /api/memory/files -> 200
429
+ - GET /api/memory/stats -> 200
430
+ - GET /api/memory/summary -> 200
431
+ - GET /api/migration/list -> 200
432
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
433
+ - GET /api/notifications -> 200
434
+ - GET /api/notifications/triggers -> 200
435
+ - GET /api/playwright/results -> 200
436
+ - GET /api/pricing -> 200
437
+ - GET /api/prompt-versions -> 200
438
+ - GET /api/proofs -> 200
439
+ - GET /api/proofs/summary -> 200
440
+ - GET /api/quality-score -> 200
441
+ - GET /api/quality-score/history -> 200
442
+ - GET /api/running-projects -> 200
443
+ - GET /api/session-diff -> 200
444
+ - GET /api/session/model -> 200
445
+ - GET /api/spec -> 200
446
+ - GET /api/spec/history -> 200
447
+ - GET /api/status -> 200
448
+ - GET /api/tasks -> 200
449
+ - GET /api/usage -> 200
450
+ - GET /api/wiki -> 200
451
+
452
+ Controls:
453
+
454
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
455
+ |---|---|---|---|---|
456
+ | Run quality scan | button | clicked | client-side only | `page-quality__ctl-01-run-quality-scan.png` |
457
+ | Optimize Now | button | clicked | POST /api/prompt-optimize -> 200 | `page-quality__ctl-02-optimize-now.png` |
458
+
459
+ ## Trust
460
+
461
+ Screenshot: `page-trust.png`
462
+
463
+ Requests on load (endpoint -> HTTP status):
464
+
465
+ - GET /api/activity -> 200
466
+ - GET /api/agents -> 200
467
+ - GET /api/app-runner/status -> 200
468
+ - GET /api/checklist -> 200
469
+ - GET /api/checklist/summary -> 200
470
+ - GET /api/checklist/waivers -> 200
471
+ - GET /api/checkpoints -> 200
472
+ - GET /api/context -> 200
473
+ - GET /api/cost -> 200
474
+ - GET /api/cost/timeline -> 200
475
+ - GET /api/council/convergence -> 200
476
+ - GET /api/council/gate -> 200
477
+ - GET /api/council/state -> 200
478
+ - GET /api/council/transcripts -> 200
479
+ - GET /api/council/verdicts -> 200
480
+ - GET /api/escalations -> 200
481
+ - GET /api/fleet/runs -> 200
482
+ - GET /api/fleet/summary -> 200
483
+ - GET /api/gate-policy -> 200
484
+ - GET /api/learning/metrics -> 200
485
+ - GET /api/learning/signals -> 200
486
+ - GET /api/learning/tools -> 200
487
+ - GET /api/learning/trends -> 200
488
+ - GET /api/logs -> 200
489
+ - GET /api/memory/economics -> 200
490
+ - GET /api/memory/files -> 200
491
+ - GET /api/memory/stats -> 200
492
+ - GET /api/memory/summary -> 200
493
+ - GET /api/migration/list -> 200
494
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
495
+ - GET /api/notifications -> 200
496
+ - GET /api/notifications/triggers -> 200
497
+ - GET /api/playwright/results -> 200
498
+ - GET /api/pricing -> 200
499
+ - GET /api/prompt-versions -> 200
500
+ - GET /api/proofs -> 200
501
+ - GET /api/proofs/summary -> 200
502
+ - GET /api/quality-score -> 200
503
+ - GET /api/quality-score/history -> 200
504
+ - GET /api/running-projects -> 200
505
+ - GET /api/session-diff -> 200
506
+ - GET /api/session/model -> 200
507
+ - GET /api/spec -> 200
508
+ - GET /api/spec/history -> 200
509
+ - GET /api/status -> 200
510
+ - GET /api/tasks -> 200
511
+ - GET /api/trust/trajectory -> 200
512
+ - GET /api/usage -> 200
513
+ - GET /api/wiki -> 200
514
+
515
+ Controls:
516
+
517
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
518
+ |---|---|---|---|---|
519
+
520
+ ## Council
521
+
522
+ Screenshot: `page-council.png`
523
+
524
+ Requests on load (endpoint -> HTTP status):
525
+
526
+ - GET /api/activity -> 200
527
+ - GET /api/agents -> 200
528
+ - GET /api/app-runner/status -> 200
529
+ - GET /api/checklist -> 200
530
+ - GET /api/checklist/summary -> 200
531
+ - GET /api/checklist/waivers -> 200
532
+ - GET /api/checkpoints -> 200
533
+ - GET /api/context -> 200
534
+ - GET /api/cost -> 200
535
+ - GET /api/cost/timeline -> 200
536
+ - GET /api/council/convergence -> 200
537
+ - GET /api/council/gate -> 200
538
+ - GET /api/council/state -> 200
539
+ - GET /api/council/transcripts -> 200
540
+ - GET /api/council/verdicts -> 200
541
+ - GET /api/escalations -> 200
542
+ - GET /api/fleet/runs -> 200
543
+ - GET /api/fleet/summary -> 200
544
+ - GET /api/gate-policy -> 200
545
+ - GET /api/learning/metrics -> 200
546
+ - GET /api/learning/signals -> 200
547
+ - GET /api/learning/tools -> 200
548
+ - GET /api/learning/trends -> 200
549
+ - GET /api/logs -> 200
550
+ - GET /api/memory/economics -> 200
551
+ - GET /api/memory/files -> 200
552
+ - GET /api/memory/stats -> 200
553
+ - GET /api/memory/summary -> 200
554
+ - GET /api/migration/list -> 200
555
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
556
+ - GET /api/notifications -> 200
557
+ - GET /api/notifications/triggers -> 200
558
+ - GET /api/playwright/results -> 200
559
+ - GET /api/pricing -> 200
560
+ - GET /api/prompt-versions -> 200
561
+ - GET /api/proofs -> 200
562
+ - GET /api/proofs/summary -> 200
563
+ - GET /api/quality-score -> 200
564
+ - GET /api/quality-score/history -> 200
565
+ - GET /api/running-projects -> 200
566
+ - GET /api/session-diff -> 200
567
+ - GET /api/session/model -> 200
568
+ - GET /api/spec -> 200
569
+ - GET /api/spec/history -> 200
570
+ - GET /api/status -> 200
571
+ - GET /api/tasks -> 200
572
+ - GET /api/trust/trajectory -> 200
573
+ - GET /api/usage -> 200
574
+ - GET /api/wiki -> 200
575
+
576
+ Controls:
577
+
578
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
579
+ |---|---|---|---|---|
580
+ | Force Review | button | clicked | POST /api/council/force-review -> 200 | `page-council__ctl-01-force-review.png` |
581
+ | Decision Log | button | clicked | client-side only | `page-council__ctl-02-decision-log.png` |
582
+ | Convergence | button | clicked | client-side only | `page-council__ctl-03-convergence.png` |
583
+ | Agents | button | clicked | client-side only | `page-council__ctl-04-agents.png` |
584
+
585
+ ## Spec Checklist
586
+
587
+ Screenshot: `page-prd-checklist.png`
588
+
589
+ Requests on load (endpoint -> HTTP status):
590
+
591
+ - GET /api/activity -> 200
592
+ - GET /api/agents -> 200
593
+ - GET /api/app-runner/status -> 200
594
+ - GET /api/checklist -> 200
595
+ - GET /api/checklist/summary -> 200
596
+ - GET /api/checklist/waivers -> 200
597
+ - GET /api/checkpoints -> 200
598
+ - GET /api/context -> 200
599
+ - GET /api/cost -> 200
600
+ - GET /api/cost/timeline -> 200
601
+ - GET /api/council/convergence -> 200
602
+ - GET /api/council/gate -> 200
603
+ - GET /api/council/state -> 200
604
+ - GET /api/council/transcripts -> 200
605
+ - GET /api/council/verdicts -> 200
606
+ - GET /api/escalations -> 200
607
+ - GET /api/fleet/runs -> 200
608
+ - GET /api/fleet/summary -> 200
609
+ - GET /api/gate-policy -> 200
610
+ - GET /api/learning/metrics -> 200
611
+ - GET /api/learning/signals -> 200
612
+ - GET /api/learning/tools -> 200
613
+ - GET /api/learning/trends -> 200
614
+ - GET /api/logs -> 200
615
+ - GET /api/memory/economics -> 200
616
+ - GET /api/memory/files -> 200
617
+ - GET /api/memory/stats -> 200
618
+ - GET /api/memory/summary -> 200
619
+ - GET /api/migration/list -> 200
620
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
621
+ - GET /api/notifications -> 200
622
+ - GET /api/notifications/triggers -> 200
623
+ - GET /api/playwright/results -> 200
624
+ - GET /api/pricing -> 200
625
+ - GET /api/prompt-versions -> 200
626
+ - GET /api/proofs -> 200
627
+ - GET /api/proofs/summary -> 200
628
+ - GET /api/quality-score -> 200
629
+ - GET /api/quality-score/history -> 200
630
+ - GET /api/running-projects -> 200
631
+ - GET /api/session-diff -> 200
632
+ - GET /api/session/model -> 200
633
+ - GET /api/spec -> 200
634
+ - GET /api/spec/history -> 200
635
+ - GET /api/status -> 200
636
+ - GET /api/tasks -> 200
637
+ - GET /api/usage -> 200
638
+ - GET /api/wiki -> 200
639
+
640
+ Controls:
641
+
642
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
643
+ |---|---|---|---|---|
644
+
645
+ ## Insights
646
+
647
+ Screenshot: `page-insights.png`
648
+
649
+ Requests on load (endpoint -> HTTP status):
650
+
651
+ - GET /api/activity -> 200
652
+ - GET /api/agents -> 200
653
+ - GET /api/app-runner/status -> 200
654
+ - GET /api/checklist -> 200
655
+ - GET /api/checklist/summary -> 200
656
+ - GET /api/checklist/waivers -> 200
657
+ - GET /api/checkpoints -> 200
658
+ - GET /api/context -> 200
659
+ - GET /api/cost -> 200
660
+ - GET /api/cost/timeline -> 200
661
+ - GET /api/council/convergence -> 200
662
+ - GET /api/council/gate -> 200
663
+ - GET /api/council/state -> 200
664
+ - GET /api/council/transcripts -> 200
665
+ - GET /api/council/verdicts -> 200
666
+ - GET /api/escalations -> 200
667
+ - GET /api/fleet/runs -> 200
668
+ - GET /api/fleet/summary -> 200
669
+ - GET /api/gate-policy -> 200
670
+ - GET /api/learning/metrics -> 200
671
+ - GET /api/learning/signals -> 200
672
+ - GET /api/learning/tools -> 200
673
+ - GET /api/learning/trends -> 200
674
+ - GET /api/learnings -> 200
675
+ - GET /api/logs -> 200
676
+ - GET /api/memory/economics -> 200
677
+ - GET /api/memory/files -> 200
678
+ - GET /api/memory/stats -> 200
679
+ - GET /api/memory/summary -> 200
680
+ - GET /api/migration/list -> 200
681
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
682
+ - GET /api/notifications -> 200
683
+ - GET /api/notifications/triggers -> 200
684
+ - GET /api/playwright/results -> 200
685
+ - GET /api/pricing -> 200
686
+ - GET /api/prompt-versions -> 200
687
+ - GET /api/proofs -> 200
688
+ - GET /api/proofs/summary -> 200
689
+ - GET /api/quality-score -> 200
690
+ - GET /api/quality-score/history -> 200
691
+ - GET /api/running-projects -> 200
692
+ - GET /api/session-diff -> 200
693
+ - GET /api/session/model -> 200
694
+ - GET /api/spec -> 200
695
+ - GET /api/spec/history -> 200
696
+ - GET /api/status -> 200
697
+ - GET /api/tasks -> 200
698
+ - GET /api/usage -> 200
699
+ - GET /api/wiki -> 200
700
+
701
+ Controls:
702
+
703
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
704
+ |---|---|---|---|---|
705
+ | All Levels Info Success Warning Error Step Agent D | select | select (not changed) | client-side only | `page-insights__ctl-01-all-levels-info-success-.png` |
706
+ | Toggle auto-scroll | button | not found | client-side only | |
707
+ | Clear all logs | button | not found | client-side only | |
708
+ | Download logs as text file | button | not found | client-side only | |
709
+ | Summary | button | clicked | client-side only | `page-insights__ctl-05-summary.png` |
710
+ | Search | button | clicked | client-side only | `page-insights__ctl-06-search.png` |
711
+ | Episodes | button | clicked | GET /api/memory/files -> 200 | `page-insights__ctl-07-episodes.png` |
712
+ | Patterns | button | clicked | GET /api/memory/patterns -> 200 | `page-insights__ctl-08-patterns.png` |
713
+ | Skills | button | clicked | GET /api/memory/files -> 200 | `page-insights__ctl-09-skills.png` |
714
+ | Consolidate Memory | button | clicked | POST /api/memory/consolidate -> 200 | `page-insights__ctl-10-consolidate-memory.png` |
715
+ | Refresh | button | clicked | GET /api/memory/economics -> 200 | `page-insights__ctl-11-refresh.png` |
716
+ | Notes | button | clicked | GET /api/memory/files -> 200 | `page-insights__ctl-12-notes.png` |
717
+ | Learnings | button | clicked | GET /api/memory/files -> 200 | `page-insights__ctl-13-learnings.png` |
718
+
719
+ ## Analytics
720
+
721
+ Screenshot: `page-analytics.png`
722
+
723
+ Requests on load (endpoint -> HTTP status):
724
+
725
+ - GET /api/activity -> 200
726
+ - GET /api/agents -> 200
727
+ - GET /api/app-runner/status -> 200
728
+ - GET /api/checklist -> 200
729
+ - GET /api/checklist/summary -> 200
730
+ - GET /api/checklist/waivers -> 200
731
+ - GET /api/checkpoints -> 200
732
+ - GET /api/context -> 200
733
+ - GET /api/cost -> 200
734
+ - GET /api/cost/timeline -> 200
735
+ - GET /api/council/convergence -> 200
736
+ - GET /api/council/gate -> 200
737
+ - GET /api/council/state -> 200
738
+ - GET /api/council/transcripts -> 200
739
+ - GET /api/council/verdicts -> 200
740
+ - GET /api/escalations -> 200
741
+ - GET /api/fleet/runs -> 200
742
+ - GET /api/fleet/summary -> 200
743
+ - GET /api/gate-policy -> 200
744
+ - GET /api/learning/metrics -> 200
745
+ - GET /api/learning/signals -> 200
746
+ - GET /api/learning/tools -> 200
747
+ - GET /api/learning/trends -> 200
748
+ - GET /api/learnings -> 200
749
+ - GET /api/logs -> 200
750
+ - GET /api/memory/economics -> 200
751
+ - GET /api/memory/files -> 200
752
+ - GET /api/memory/stats -> 200
753
+ - GET /api/memory/summary -> 200
754
+ - GET /api/migration/list -> 200
755
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
756
+ - GET /api/notifications -> 200
757
+ - GET /api/notifications/triggers -> 200
758
+ - GET /api/playwright/results -> 200
759
+ - GET /api/pricing -> 200
760
+ - GET /api/prompt-versions -> 200
761
+ - GET /api/proofs -> 200
762
+ - GET /api/proofs/summary -> 200
763
+ - GET /api/quality-score -> 200
764
+ - GET /api/quality-score/history -> 200
765
+ - GET /api/running-projects -> 200
766
+ - GET /api/session-diff -> 200
767
+ - GET /api/session/model -> 200
768
+ - GET /api/spec -> 200
769
+ - GET /api/spec/history -> 200
770
+ - GET /api/status -> 200
771
+ - GET /api/tasks -> 200
772
+ - GET /api/usage -> 200
773
+ - GET /api/wiki -> 200
774
+
775
+ Controls:
776
+
777
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
778
+ |---|---|---|---|---|
779
+ | Start a build | button | clicked | client-side only | `page-analytics__ctl-01-start-a-build.png` |
780
+
781
+ ## Cost
782
+
783
+ Screenshot: `page-cost.png`
784
+
785
+ Requests on load (endpoint -> HTTP status):
786
+
787
+ - GET /api/activity -> 200
788
+ - GET /api/agents -> 200
789
+ - GET /api/app-runner/status -> 200
790
+ - GET /api/budget -> 200
791
+ - GET /api/checklist -> 200
792
+ - GET /api/checklist/summary -> 200
793
+ - GET /api/checklist/waivers -> 200
794
+ - GET /api/checkpoints -> 200
795
+ - GET /api/context -> 200
796
+ - GET /api/cost -> 200
797
+ - GET /api/cost/timeline -> 200
798
+ - GET /api/council/convergence -> 200
799
+ - GET /api/council/gate -> 200
800
+ - GET /api/council/state -> 200
801
+ - GET /api/council/transcripts -> 200
802
+ - GET /api/council/verdicts -> 200
803
+ - GET /api/escalations -> 200
804
+ - GET /api/fleet/runs -> 200
805
+ - GET /api/fleet/summary -> 200
806
+ - GET /api/gate-policy -> 200
807
+ - GET /api/learning/metrics -> 200
808
+ - GET /api/learning/signals -> 200
809
+ - GET /api/learning/tools -> 200
810
+ - GET /api/learning/trends -> 200
811
+ - GET /api/logs -> 200
812
+ - GET /api/memory/economics -> 200
813
+ - GET /api/memory/files -> 200
814
+ - GET /api/memory/stats -> 200
815
+ - GET /api/memory/summary -> 200
816
+ - GET /api/migration/list -> 200
817
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
818
+ - GET /api/notifications -> 200
819
+ - GET /api/notifications/triggers -> 200
820
+ - GET /api/playwright/results -> 200
821
+ - GET /api/pricing -> 200
822
+ - GET /api/prompt-versions -> 200
823
+ - GET /api/proofs -> 200
824
+ - GET /api/proofs/summary -> 200
825
+ - GET /api/quality-score -> 200
826
+ - GET /api/quality-score/history -> 200
827
+ - GET /api/running-projects -> 200
828
+ - GET /api/session-diff -> 200
829
+ - GET /api/session/model -> 200
830
+ - GET /api/spec -> 200
831
+ - GET /api/spec/history -> 200
832
+ - GET /api/status -> 200
833
+ - GET /api/tasks -> 200
834
+ - GET /api/usage -> 200
835
+ - GET /api/wiki -> 200
836
+
837
+ Controls:
838
+
839
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
840
+ |---|---|---|---|---|
841
+
842
+ ## Notifications
843
+
844
+ Screenshot: `page-notifications.png`
845
+
846
+ Requests on load (endpoint -> HTTP status):
847
+
848
+ - GET /api/activity -> 200
849
+ - GET /api/agents -> 200
850
+ - GET /api/app-runner/status -> 200
851
+ - GET /api/budget -> 200
852
+ - GET /api/checklist -> 200
853
+ - GET /api/checklist/summary -> 200
854
+ - GET /api/checklist/waivers -> 200
855
+ - GET /api/checkpoints -> 200
856
+ - GET /api/context -> 200
857
+ - GET /api/cost -> 200
858
+ - GET /api/cost/timeline -> 200
859
+ - GET /api/council/convergence -> 200
860
+ - GET /api/council/gate -> 200
861
+ - GET /api/council/state -> 200
862
+ - GET /api/council/transcripts -> 200
863
+ - GET /api/council/verdicts -> 200
864
+ - GET /api/escalations -> 200
865
+ - GET /api/fleet/runs -> 200
866
+ - GET /api/fleet/summary -> 200
867
+ - GET /api/gate-policy -> 200
868
+ - GET /api/learning/metrics -> 200
869
+ - GET /api/learning/signals -> 200
870
+ - GET /api/learning/tools -> 200
871
+ - GET /api/learning/trends -> 200
872
+ - GET /api/logs -> 200
873
+ - GET /api/memory/economics -> 200
874
+ - GET /api/memory/files -> 200
875
+ - GET /api/memory/stats -> 200
876
+ - GET /api/memory/summary -> 200
877
+ - GET /api/migration/list -> 200
878
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
879
+ - GET /api/notifications -> 200
880
+ - GET /api/notifications/triggers -> 200
881
+ - GET /api/playwright/results -> 200
882
+ - GET /api/pricing -> 200
883
+ - GET /api/prompt-versions -> 200
884
+ - GET /api/proofs -> 200
885
+ - GET /api/proofs/summary -> 200
886
+ - GET /api/quality-score -> 200
887
+ - GET /api/quality-score/history -> 200
888
+ - GET /api/running-projects -> 200
889
+ - GET /api/session-diff -> 200
890
+ - GET /api/session/model -> 200
891
+ - GET /api/spec -> 200
892
+ - GET /api/spec/history -> 200
893
+ - GET /api/status -> 200
894
+ - GET /api/tasks -> 200
895
+ - GET /api/usage -> 200
896
+ - GET /api/wiki -> 200
897
+
898
+ Controls:
899
+
900
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
901
+ |---|---|---|---|---|
902
+ | 0 unread notifications | button | not found | client-side only | |
903
+ | Feed | button | clicked | client-side only | `page-notifications__ctl-02-feed.png` |
904
+ | Triggers | button | clicked | client-side only | `page-notifications__ctl-03-triggers.png` |
905
+ | Build | button | clicked | client-side only | `page-notifications__ctl-04-build.png` |
906
+ | System | button | clicked | client-side only | `page-notifications__ctl-05-system.png` |
907
+ | Security | button | clicked | client-side only | `page-notifications__ctl-06-security.png` |
908
+
909
+ ## Escalations
910
+
911
+ Screenshot: `page-escalations.png`
912
+
913
+ Requests on load (endpoint -> HTTP status):
914
+
915
+ - GET /api/activity -> 200
916
+ - GET /api/agents -> 200
917
+ - GET /api/app-runner/status -> 200
918
+ - GET /api/checklist -> 200
919
+ - GET /api/checklist/summary -> 200
920
+ - GET /api/checklist/waivers -> 200
921
+ - GET /api/checkpoints -> 200
922
+ - GET /api/context -> 200
923
+ - GET /api/cost -> 200
924
+ - GET /api/cost/timeline -> 200
925
+ - GET /api/council/convergence -> 200
926
+ - GET /api/council/gate -> 200
927
+ - GET /api/council/state -> 200
928
+ - GET /api/council/transcripts -> 200
929
+ - GET /api/council/verdicts -> 200
930
+ - GET /api/escalations -> 200
931
+ - GET /api/fleet/runs -> 200
932
+ - GET /api/fleet/summary -> 200
933
+ - GET /api/gate-policy -> 200
934
+ - GET /api/learning/metrics -> 200
935
+ - GET /api/learning/signals -> 200
936
+ - GET /api/learning/tools -> 200
937
+ - GET /api/learning/trends -> 200
938
+ - GET /api/logs -> 200
939
+ - GET /api/memory/economics -> 200
940
+ - GET /api/memory/files -> 200
941
+ - GET /api/memory/stats -> 200
942
+ - GET /api/memory/summary -> 200
943
+ - GET /api/migration/list -> 200
944
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
945
+ - GET /api/notifications -> 200
946
+ - GET /api/notifications/triggers -> 200
947
+ - GET /api/playwright/results -> 200
948
+ - GET /api/pricing -> 200
949
+ - GET /api/prompt-versions -> 200
950
+ - GET /api/proofs -> 200
951
+ - GET /api/proofs/summary -> 200
952
+ - GET /api/quality-score -> 200
953
+ - GET /api/quality-score/history -> 200
954
+ - GET /api/running-projects -> 200
955
+ - GET /api/session-diff -> 200
956
+ - GET /api/session/model -> 200
957
+ - GET /api/spec -> 200
958
+ - GET /api/spec/history -> 200
959
+ - GET /api/status -> 200
960
+ - GET /api/tasks -> 200
961
+ - GET /api/usage -> 200
962
+ - GET /api/wiki -> 200
963
+
964
+ Controls:
965
+
966
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
967
+ |---|---|---|---|---|
968
+
969
+ ## Migration
970
+
971
+ Screenshot: `page-migration.png`
972
+
973
+ Requests on load (endpoint -> HTTP status):
974
+
975
+ - GET /api/activity -> 200
976
+ - GET /api/agents -> 200
977
+ - GET /api/app-runner/status -> 200
978
+ - GET /api/checklist -> 200
979
+ - GET /api/checklist/summary -> 200
980
+ - GET /api/checklist/waivers -> 200
981
+ - GET /api/checkpoints -> 200
982
+ - GET /api/context -> 200
983
+ - GET /api/cost -> 200
984
+ - GET /api/cost/timeline -> 200
985
+ - GET /api/council/convergence -> 200
986
+ - GET /api/council/gate -> 200
987
+ - GET /api/council/state -> 200
988
+ - GET /api/council/transcripts -> 200
989
+ - GET /api/council/verdicts -> 200
990
+ - GET /api/escalations -> 200
991
+ - GET /api/fleet/runs -> 200
992
+ - GET /api/fleet/summary -> 200
993
+ - GET /api/gate-policy -> 200
994
+ - GET /api/learning/metrics -> 200
995
+ - GET /api/learning/signals -> 200
996
+ - GET /api/learning/tools -> 200
997
+ - GET /api/learning/trends -> 200
998
+ - GET /api/logs -> 200
999
+ - GET /api/memory/economics -> 200
1000
+ - GET /api/memory/files -> 200
1001
+ - GET /api/memory/stats -> 200
1002
+ - GET /api/memory/summary -> 200
1003
+ - GET /api/migration/list -> 200
1004
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
1005
+ - GET /api/notifications -> 200
1006
+ - GET /api/notifications/triggers -> 200
1007
+ - GET /api/playwright/results -> 200
1008
+ - GET /api/pricing -> 200
1009
+ - GET /api/prompt-versions -> 200
1010
+ - GET /api/proofs -> 200
1011
+ - GET /api/proofs/summary -> 200
1012
+ - GET /api/quality-score -> 200
1013
+ - GET /api/quality-score/history -> 200
1014
+ - GET /api/running-projects -> 200
1015
+ - GET /api/session-diff -> 200
1016
+ - GET /api/session/model -> 200
1017
+ - GET /api/spec -> 200
1018
+ - GET /api/spec/history -> 200
1019
+ - GET /api/status -> 200
1020
+ - GET /api/tasks -> 200
1021
+ - GET /api/usage -> 200
1022
+ - GET /api/wiki -> 200
1023
+
1024
+ Controls:
1025
+
1026
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1027
+ |---|---|---|---|---|
1028
+
1029
+ ## Wiki
1030
+
1031
+ Screenshot: `page-wiki.png`
1032
+
1033
+ Requests on load (endpoint -> HTTP status):
1034
+
1035
+ - GET /api/activity -> 200
1036
+ - GET /api/agents -> 200
1037
+ - GET /api/app-runner/status -> 200
1038
+ - GET /api/checklist -> 200
1039
+ - GET /api/checklist/summary -> 200
1040
+ - GET /api/checklist/waivers -> 200
1041
+ - GET /api/checkpoints -> 200
1042
+ - GET /api/context -> 200
1043
+ - GET /api/cost -> 200
1044
+ - GET /api/cost/timeline -> 200
1045
+ - GET /api/council/convergence -> 200
1046
+ - GET /api/council/gate -> 200
1047
+ - GET /api/council/state -> 200
1048
+ - GET /api/council/transcripts -> 200
1049
+ - GET /api/council/verdicts -> 200
1050
+ - GET /api/escalations -> 200
1051
+ - GET /api/fleet/runs -> 200
1052
+ - GET /api/fleet/summary -> 200
1053
+ - GET /api/gate-policy -> 200
1054
+ - GET /api/learning/metrics -> 200
1055
+ - GET /api/learning/signals -> 200
1056
+ - GET /api/learning/tools -> 200
1057
+ - GET /api/learning/trends -> 200
1058
+ - GET /api/logs -> 200
1059
+ - GET /api/memory/economics -> 200
1060
+ - GET /api/memory/files -> 200
1061
+ - GET /api/memory/stats -> 200
1062
+ - GET /api/memory/summary -> 200
1063
+ - GET /api/migration/list -> 200
1064
+ - GET /api/migration/mig_20260225_040146_wdpr_rhel_ami/status -> 200
1065
+ - GET /api/notifications -> 200
1066
+ - GET /api/notifications/triggers -> 200
1067
+ - GET /api/playwright/results -> 200
1068
+ - GET /api/pricing -> 200
1069
+ - GET /api/prompt-versions -> 200
1070
+ - GET /api/proofs -> 200
1071
+ - GET /api/proofs/summary -> 200
1072
+ - GET /api/quality-score -> 200
1073
+ - GET /api/quality-score/history -> 200
1074
+ - GET /api/running-projects -> 200
1075
+ - GET /api/session-diff -> 200
1076
+ - GET /api/session/model -> 200
1077
+ - GET /api/spec -> 200
1078
+ - GET /api/spec/history -> 200
1079
+ - GET /api/status -> 200
1080
+ - GET /api/tasks -> 200
1081
+ - GET /api/usage -> 200
1082
+ - GET /api/wiki -> 200
1083
+
1084
+ Controls:
1085
+
1086
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1087
+ |---|---|---|---|---|
1088
+ | Architecture | button | clicked | client-side only | `page-wiki__ctl-01-architecture.png` |
1089
+ | Key Modules | button | clicked | client-side only | `page-wiki__ctl-02-key-modules.png` |
1090
+ | Data Flow | button | clicked | client-side only | `page-wiki__ctl-03-data-flow.png` |
1091
+ | Ask | button | clicked | client-side only | `page-wiki__ctl-04-ask.png` |
1092
+ | Copy command | button | not found | client-side only | |
1093
+
1094
+ ## standalone:cost.html
1095
+
1096
+ Screenshot: `page-standalone-cost.png`
1097
+
1098
+ Requests on load (endpoint -> HTTP status):
1099
+
1100
+ - GET /api/cost/timeline -> 200
1101
+
1102
+ Controls:
1103
+
1104
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1105
+ |---|---|---|---|---|
1106
+
1107
+ ## standalone:proofs.html
1108
+
1109
+ Screenshot: `page-standalone-proofs.png`
1110
+
1111
+ Requests on load (endpoint -> HTTP status):
1112
+
1113
+ - GET /api/proofs -> 200
1114
+
1115
+ Controls:
1116
+
1117
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1118
+ |---|---|---|---|---|
1119
+
1120
+ ## standalone:start.html
1121
+
1122
+ Screenshot: `page-standalone-start.png`
1123
+
1124
+ Requests on load (endpoint -> HTTP status):
1125
+
1126
+ - GET /api/onboarding/state -> 200
1127
+ - GET /api/operator/workspaces/runs -> 200
1128
+
1129
+ Controls:
1130
+
1131
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1132
+ |---|---|---|---|---|
1133
+
1134
+ ## standalone:trust.html
1135
+
1136
+ Screenshot: `page-standalone-trust.png`
1137
+
1138
+ Requests on load (endpoint -> HTTP status):
1139
+
1140
+ - GET /api/trust/trajectory -> 200
1141
+
1142
+ Controls:
1143
+
1144
+ | Control | Kind | Result | Endpoint called (status) | Screenshot |
1145
+ |---|---|---|---|---|
1146
+
1147
+ ## Session panel and header controls (exercised individually)
1148
+
1149
+ Each control was clicked in a fresh browser context against a connected dashboard. Status is the legacy /api/status value at capture time: stopped (the fixture has no live loki process), so Pause and Stop render but are disabled, and a Start build click with a spec is aborted by the harness because it would spawn a build.
1150
+
1151
+ | Control | Result | Endpoint called (status) | Screenshot |
1152
+ |---|---|---|---|
1153
+ | Refresh | clicked | client-side only | `home-ctl-01-refresh.png` |
1154
+ | Open in browser | failed: page.evaluate: Error: button disabled | client-side only | `home-ctl-02-open-in-browser.png` |
1155
+ | Restart | failed: page.evaluate: Error: button disabled | client-side only | `home-ctl-03-restart.png` |
1156
+ | Collapse status panel | clicked | client-side only | `home-ctl-04-collapse-status-panel.png` |
1157
+ | Pause session | failed: page.evaluate: Error: button disabled | client-side only | `home-ctl-05-pause-session.png` |
1158
+ | Stop session | failed: page.evaluate: Error: button disabled | client-side only | `home-ctl-06-stop-session.png` |
1159
+ | Start build | clicked | client-side only | `home-ctl-07-start-build.png` |
1160
+ | Start build (with spec text) | clicked | POST /api/control/start -> ABORTED by harness (spawns or stops a process) | `home-ctl-08-start-build-with-spec-text-.png` |
1161
+ | Execution model select | clicked | client-side only | `home-ctl-09-execution-model-select.png` |
1162
+ | Run model select | clicked | POST /api/session/model -> 200 | `home-ctl-10-run-model-select.png` |
1163
+ | Project picker | clicked | POST /api/focus -> 200 | `home-ctl-11-project-picker.png` |
1164
+ | Settings | clicked | client-side only | `home-ctl-12-settings.png` |
1165
+ | Go (API URL) | clicked | client-side only | `home-ctl-13-go-api-url-.png` |
1166
+ | Dark mode | clicked | client-side only | `home-ctl-14-dark-mode.png` |
1167
+ | Copy command | failed: page.evaluate: Error: not found | client-side only | `home-ctl-15-copy-command.png` |