loki-mode 11.3.0 → 11.3.1

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 (215) hide show
  1. package/README.md +68 -650
  2. package/SKILL.md +4 -4
  3. package/VERSION +1 -1
  4. package/autonomy/completion-council.sh +2 -2
  5. package/autonomy/context-tracker.py +4 -4
  6. package/autonomy/council-v2.sh +1 -1
  7. package/autonomy/grill.sh +1 -1
  8. package/autonomy/lib/done-recognition.sh +1 -1
  9. package/autonomy/lib/prd-enrich.sh +1 -1
  10. package/autonomy/lib/voter-agents.sh +1 -1
  11. package/autonomy/loki +99 -75
  12. package/autonomy/run.sh +30 -18
  13. package/autonomy/sandbox.sh +1 -1
  14. package/autonomy/tui.sh +6 -5
  15. package/autonomy/verify.sh +1 -1
  16. package/bin/loki +166 -59
  17. package/completions/_loki +2 -0
  18. package/completions/loki.bash +2 -2
  19. package/dashboard/__init__.py +1 -1
  20. package/dashboard/server.py +25 -31
  21. package/docs/ARCHITECTURE.md +337 -0
  22. package/docs/BRANDING.md +124 -0
  23. package/docs/CLI-REFERENCE.md +7 -1
  24. package/docs/COMPONENTS.md +447 -0
  25. package/docs/DEPLOYMENT.md +9 -9
  26. package/docs/DOCKER.md +469 -0
  27. package/docs/INSTALLATION.md +67 -1045
  28. package/docs/KNOWN-ISSUES.md +11 -35
  29. package/docs/TESTING.md +161 -0
  30. package/docs/air-gapped.md +1 -2
  31. package/docs/alternative-installations.md +14 -24
  32. package/docs/architecture/DECISIONS.md +333 -0
  33. package/docs/audit-logging.md +7 -7
  34. package/docs/authentication.md +3 -3
  35. package/docs/authorization.md +1 -1
  36. package/docs/certification/04-production-deployment/lab.md +6 -6
  37. package/docs/certification/04-production-deployment/lesson.md +4 -4
  38. package/docs/certification/README.md +1 -1
  39. package/docs/control-plane-container.md +2 -2
  40. package/docs/dev/real-run.md +34 -0
  41. package/docs/dev/release-checklist.md +2 -2
  42. package/docs/exit-codes.md +3 -3
  43. package/docs/git-workflow.md +3 -3
  44. package/docs/metrics.md +37 -55
  45. package/docs/network-security.md +1 -1
  46. package/docs/siem-integration.md +5 -5
  47. package/docs/v10/CLI-MODERN.md +4 -3
  48. package/docs/v10/DECISIONS.md +44 -0
  49. package/docs/v10/DEPS.md +22 -22
  50. package/docs/v10/ENGINE.md +1 -1
  51. package/docs/v10/FAILURE-CLASSES.md +118 -1
  52. package/docs/v10/FOUNDER-QUEUE.md +1 -0
  53. package/docs/v10/GUARDS.md +13 -0
  54. package/docs/v10/LEGACY-REMOVAL.md +4 -6
  55. package/docs/v10/METRICS.md +2 -2
  56. package/docs/v10/MODERNIZE.md +1 -1
  57. package/docs/v10/OPERATING-MODEL.md +2 -1
  58. package/docs/v10/PROGRESS.md +29 -0
  59. package/docs/v11/COST-HALF.md +352 -0
  60. package/docs/v11/MARKET-SLICES.md +315 -0
  61. package/docs/v11/REGISTRIES.md +730 -0
  62. package/loki-ts/data/model-pricing.json +52 -24
  63. package/loki-ts/dist/loki.js +1036 -957
  64. package/mcp/__init__.py +1 -1
  65. package/package.json +1 -1
  66. package/packages/control-plane/dist/server.js +2467 -736
  67. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  68. package/src/protocols/mcp-client.js +6 -2
  69. package/src/protocols/mcp-server.js +13 -3
  70. package/tools/audit-docs.py +1 -1
  71. package/web-app/dist/assets/{AdminPage-D_e45uTw.js → AdminPage-CMkHNJbF.js} +1 -1
  72. package/web-app/dist/assets/{Avatar-T3nIpoaf.js → Avatar-BJyjV7Zi.js} +1 -1
  73. package/web-app/dist/assets/{Badge-BKqb59pP.js → Badge-D572l0uq.js} +1 -1
  74. package/web-app/dist/assets/{Button-DjVlkh8_.js → Button-T4BnOZgl.js} +1 -1
  75. package/web-app/dist/assets/{CockpitPage-DXJgLGmh.js → CockpitPage-Cj_GFsNn.js} +1 -1
  76. package/web-app/dist/assets/{ComparePage-BRP_eVc_.js → ComparePage-A8m4ZXak.js} +1 -1
  77. package/web-app/dist/assets/{ErrorBoundary-CLjpGLjC.js → ErrorBoundary-hugCg5yg.js} +1 -1
  78. package/web-app/dist/assets/{EvidenceReceiptPanel-DX-vb4Xy.js → EvidenceReceiptPanel-CuJKDC2G.js} +1 -1
  79. package/web-app/dist/assets/{GitHubIssuesPanel-214HVHtX.js → GitHubIssuesPanel-BYGKjarC.js} +1 -1
  80. package/web-app/dist/assets/{GitHubPRsPanel-BEiZKc4t.js → GitHubPRsPanel-c7sFIJlf.js} +1 -1
  81. package/web-app/dist/assets/{HomePage-VvMHS5ga.js → HomePage-A1MIkG2P.js} +2 -2
  82. package/web-app/dist/assets/{LoginPage-5WD-v7n3.js → LoginPage-8KQMRhtR.js} +1 -1
  83. package/web-app/dist/assets/{MagicPage-DUQT_Jye.js → MagicPage-C05QW2Lx.js} +1 -1
  84. package/web-app/dist/assets/{MetricsPage-lga-z79v.js → MetricsPage-Oukv5hme.js} +1 -1
  85. package/web-app/dist/assets/{NotFoundPage-CGhBX3G1.js → NotFoundPage-DKIwsawz.js} +1 -1
  86. package/web-app/dist/assets/{ProjectPage-CdzF2GzZ.js → ProjectPage-DwFRPLCG.js} +3 -3
  87. package/web-app/dist/assets/{ProjectsPage-DRG64N8s.js → ProjectsPage-CgY4YYDX.js} +1 -1
  88. package/web-app/dist/assets/{SettingsPage-5fzW9Frb.js → SettingsPage-BpfcSjUA.js} +1 -1
  89. package/web-app/dist/assets/{ShowcasePage-DrTdxO4y.js → ShowcasePage-BqBakC4K.js} +1 -1
  90. package/web-app/dist/assets/{SystemSettingsPage-C9Mqs6Rd.js → SystemSettingsPage-CZLu5VB0.js} +1 -1
  91. package/web-app/dist/assets/{TeamsPage-CUGPdSWo.js → TeamsPage-D55S1jKz.js} +1 -1
  92. package/web-app/dist/assets/{TemplatesPage-CNraDY0F.js → TemplatesPage-D3SydvxN.js} +1 -1
  93. package/web-app/dist/assets/{TerminalOutput-BIu_6Pea.js → TerminalOutput-hNg8G1-e.js} +1 -1
  94. package/web-app/dist/assets/{activity-Bk-kgqaf.js → activity-D2C0VagO.js} +1 -1
  95. package/web-app/dist/assets/{bell-BXmUdmo8.js → bell-CMvYi36w.js} +1 -1
  96. package/web-app/dist/assets/{bot-CiuzXxUR.js → bot-BvtQ6lmo.js} +1 -1
  97. package/web-app/dist/assets/{check-BEzjXppd.js → check-B13xkXed.js} +1 -1
  98. package/web-app/dist/assets/{chevron-left-AYWCXHf8.js → chevron-left-emu6r49E.js} +1 -1
  99. package/web-app/dist/assets/{circle-alert-BNg2uSRq.js → circle-alert-CExlwjuy.js} +1 -1
  100. package/web-app/dist/assets/{clock-DTj0kkGT.js → clock-D7Uas3oL.js} +1 -1
  101. package/web-app/dist/assets/{cloud-x4nTDBLT.js → cloud-CkB4S86C.js} +1 -1
  102. package/web-app/dist/assets/{code-xml-BVh_MLrk.js → code-xml-SL9IIWIn.js} +1 -1
  103. package/web-app/dist/assets/{database-DdfBaowG.js → database-BQFkd7t1.js} +1 -1
  104. package/web-app/dist/assets/{dollar-sign-XuYFmAOY.js → dollar-sign-qHmnNYsU.js} +1 -1
  105. package/web-app/dist/assets/{file-code-corner-D4cRnmeL.js → file-code-corner-C2YUDP0K.js} +1 -1
  106. package/web-app/dist/assets/{file-plus-CyoVlHc_.js → file-plus-C_ooIkDe.js} +1 -1
  107. package/web-app/dist/assets/{globe-Y6IK2RPW.js → globe-CQ-GL485.js} +1 -1
  108. package/web-app/dist/assets/{hammer-BKzr9VZI.js → hammer-U05L_D7V.js} +1 -1
  109. package/web-app/dist/assets/{index-B20cSx5G.js → index-CooHd7I-.js} +3 -3
  110. package/web-app/dist/assets/{layers-DebNOhGS.js → layers-Buo17rjW.js} +1 -1
  111. package/web-app/dist/assets/{loader-circle-DyGbrEgd.js → loader-circle-15vK3oV1.js} +1 -1
  112. package/web-app/dist/assets/{lock-BKPpyt20.js → lock-BeXLebuJ.js} +1 -1
  113. package/web-app/dist/assets/{package-egF5Wi4y.js → package-MVh_6-6R.js} +1 -1
  114. package/web-app/dist/assets/{plus-OiEgKIc-.js → plus-Dh_nd9vS.js} +1 -1
  115. package/web-app/dist/assets/{refresh-cw-CzKvrONq.js → refresh-cw-C9cBJEAT.js} +1 -1
  116. package/web-app/dist/assets/{rotate-ccw-Bu2mII0p.js → rotate-ccw-D3PAtzST.js} +1 -1
  117. package/web-app/dist/assets/{scroll-text-CSkiyax8.js → scroll-text-DZCoXQjo.js} +1 -1
  118. package/web-app/dist/assets/{server-DlPthJFw.js → server-OCOLI5J_.js} +1 -1
  119. package/web-app/dist/assets/{shield-alert-CbpHWQQX.js → shield-alert-oVhmf1_h.js} +1 -1
  120. package/web-app/dist/assets/{thumbs-up-DgGpZe-Q.js → thumbs-up-B-kbX4vN.js} +1 -1
  121. package/web-app/dist/assets/{trash-2-BV3GlCB-.js → trash-2-EL6moveW.js} +1 -1
  122. package/web-app/dist/assets/{trending-down-Y4TJtXhD.js → trending-down-Cl3kjpsx.js} +1 -1
  123. package/web-app/dist/assets/{trending-up-DsDNoHZY.js → trending-up-DST7I6M2.js} +1 -1
  124. package/web-app/dist/assets/{upload-gkThrc_I.js → upload-CUOT780G.js} +1 -1
  125. package/web-app/dist/assets/{usePolling-jpNSeNAe.js → usePolling-Djmt90eb.js} +1 -1
  126. package/web-app/dist/assets/{user-3Zez1WOK.js → user-BRBohA6J.js} +1 -1
  127. package/web-app/dist/index.html +1 -1
  128. package/docs/ARCHITECTURE-OVERVIEW.md +0 -209
  129. package/docs/AUTONOMI-ECOSYSTEM.md +0 -107
  130. package/docs/COCKPIT-SPEC.md +0 -72
  131. package/docs/COCKPIT-UX-MANDATE.md +0 -53
  132. package/docs/COMPETITIVE-ANALYSIS.md +0 -303
  133. package/docs/COMPETITIVE-NEXT-10.md +0 -316
  134. package/docs/COMPETITIVE-RALPH-ZEROSHOT-2026-07-08.md +0 -81
  135. package/docs/DASHBOARD-9.12-EVIDENCE.md +0 -97
  136. package/docs/DASHBOARD-ARCHITECTURE.md +0 -425
  137. package/docs/DASHBOARD_V2_CHECKLIST.md +0 -243
  138. package/docs/DEMOS.md +0 -63
  139. package/docs/ENTERPRISE-IDENTITY-ROADMAP.md +0 -206
  140. package/docs/EVIDENCE-RECEIPT-BUILD-APPLICABILITY.md +0 -79
  141. package/docs/FEAT-PRDREUSE-DOCKER-PLAN.md +0 -144
  142. package/docs/GATE-FAILURE-TRIAGE.md +0 -254
  143. package/docs/HANDOFF-2026-08-03.md +0 -439
  144. package/docs/LOOP-CANDIDATE-PROPOSAL-v1.md +0 -167
  145. package/docs/LOOP-HARNESS-AUDIT.md +0 -684
  146. package/docs/MERGE-DEDUP-MAP.md +0 -420
  147. package/docs/MERGE-ROUTE-MAP.md +0 -139
  148. package/docs/MODEL-REGISTRY-PLAN.md +0 -155
  149. package/docs/OUTCOME-FRONTIER.md +0 -536
  150. package/docs/P2-SPEC-ROBUSTNESS-PLAN.md +0 -192
  151. package/docs/PLANS-INDEX.md +0 -32
  152. package/docs/PRD-REUSE-DONE-RECOGNITION-PLAN.md +0 -536
  153. package/docs/PROMPT-ABLATION-RESULT.md +0 -97
  154. package/docs/R4-TRUST-TRAJECTORY-DESIGN.md +0 -127
  155. package/docs/R5-AUTO-WIKI-DESIGN.md +0 -137
  156. package/docs/R6-ROLLBACK-CHECKPOINT-PLAN.md +0 -107
  157. package/docs/R7-ZERO-CONFIG-FIRST-RUN-PLAN.md +0 -137
  158. package/docs/R8-SHAREABLE-TEAM-ASSETS-PLAN.md +0 -129
  159. package/docs/R9-OPEN-CORE-HOOKS-PLAN.md +0 -113
  160. package/docs/RARV-C-100X-PLAN.md +0 -286
  161. package/docs/RARV-C-LOOP-EFFICIENCY-PLAN.md +0 -470
  162. package/docs/SHAREABLE-PROOF-PLAN.md +0 -194
  163. package/docs/SONNET5-DEFAULT-PLAN.md +0 -157
  164. package/docs/SPEED-AND-FIRST-PASS-PLAN.md +0 -281
  165. package/docs/STALE-STATE-AUDIT.md +0 -174
  166. package/docs/SYNERGY-TASKS.md +0 -143
  167. package/docs/TASKLIST-ACCURACY-PLAN.md +0 -355
  168. package/docs/TOP-100-BACKLOG.md +0 -159
  169. package/docs/V8-ACCEPTANCE-TRIAGE-2026-07-24.md +0 -114
  170. package/docs/V8-COMPLEXITY-AUDIT-2026-07-24.md +0 -45
  171. package/docs/V8-MAJOR-RELEASE-PLAN.md +0 -137
  172. package/docs/V8-OVERNIGHT-PLAN-2026-07-25.md +0 -82
  173. package/docs/V8-SDK-RESEARCH-RAW.md +0 -129
  174. package/docs/WELCOME-OPENER-PLAN.md +0 -106
  175. package/docs/adoption-baseline-2026-07-31.md +0 -84
  176. package/docs/architecture/bmad-integration-epic.md +0 -271
  177. package/docs/architecture/bmad-integration-review.md +0 -86
  178. package/docs/architecture/bmad-integration-validation.md +0 -249
  179. package/docs/architecture/bmad-loki-voice-agent-council-analysis.md +0 -61
  180. package/docs/auto-claude-comparison.md +0 -250
  181. package/docs/bug-fixes/agent-01-cli-fixes.md +0 -101
  182. package/docs/bug-fixes/agent-02-purplelab-fixes.md +0 -88
  183. package/docs/bug-fixes/agent-03-dashboard-fixes.md +0 -119
  184. package/docs/bug-fixes/agent-04-memory-fixes.md +0 -105
  185. package/docs/bug-fixes/agent-05-provider-fixes.md +0 -86
  186. package/docs/bug-fixes/agent-06-integration-fixes.md +0 -101
  187. package/docs/bug-fixes/agent-07-dash-run-fixes.md +0 -101
  188. package/docs/bug-fixes/agent-08-docker-fixes.md +0 -164
  189. package/docs/bug-fixes/agent-09-e2e-build-fixes.md +0 -69
  190. package/docs/bug-fixes/agent-10-e2e-fullstack-fixes.md +0 -102
  191. package/docs/bug-fixes/agent-11-e2e-session-fixes.md +0 -70
  192. package/docs/bug-fixes/agent-12-scenario-fixes.md +0 -120
  193. package/docs/bug-fixes/agent-13-enterprise-fixes.md +0 -143
  194. package/docs/bug-fixes/agent-14-uat-newuser-fixes.md +0 -88
  195. package/docs/bug-fixes/agent-15-uat-poweruser-fixes.md +0 -132
  196. package/docs/bug-fixes/agent-19-code-review.md +0 -316
  197. package/docs/bug-fixes/agent-20-architecture-review.md +0 -331
  198. package/docs/competitive/bolt-new-analysis.md +0 -579
  199. package/docs/competitive/emergence-others-analysis.md +0 -605
  200. package/docs/competitive/replit-lovable-analysis.md +0 -622
  201. package/docs/dashboard-guide.md +0 -487
  202. package/docs/enterprise/migration.md +0 -265
  203. package/docs/history/one-run-audit.md +0 -304
  204. package/docs/plans/FORGE-AUTONOMOUS-QUEUE.md +0 -312
  205. package/docs/plans/ULTRAPLAN-FORGE-BAAS.md +0 -612
  206. package/docs/plans/UT2-6-LSP-DIAGNOSTIC-BROADCAST.md +0 -394
  207. package/docs/prd-purple-lab-ide.md +0 -152
  208. package/docs/prd-purple-lab-platform-v2.md +0 -223
  209. package/docs/prd-purple-lab-platform.md +0 -319
  210. package/docs/retrospectives/v7.5.15-fleet-postmortem.md +0 -325
  211. package/docs/retrospectives/v7.5.15-honesty-audit.md +0 -136
  212. package/docs/retrospectives/v7.5.15-llm-failure-modes.md +0 -49
  213. package/docs/show-hn-post.md +0 -46
  214. package/docs/test-scenarios/enterprise-scenarios.md +0 -732
  215. package/docs/thick2thin.md +0 -173
@@ -1,487 +0,0 @@
1
- # Loki Mode Dashboard v5.40.0
2
-
3
- > **Control Plane migration:** the classic dashboard UI and its port 57374 are removed in Loki Mode 10.8. The Control Plane (`loki control serve`, default port 47821) is the only UI. See [control-plane-migration.md](control-plane-migration.md) for startup, the `/api/*` to `/v1/*` route mapping and what is not yet available.
4
-
5
- A production-ready realtime dashboard for monitoring and managing Loki Mode autonomous operations. Features a dark Vercel/Linear-inspired theme with purple accents, sidebar navigation, and overview cards.
6
-
7
- ## Overview
8
-
9
- The Loki Mode Dashboard provides a visual interface to:
10
- - Monitor task progress across Kanban columns
11
- - Track active agents and their status
12
- - View system health (RARV cycle, memory, quality gates)
13
- - View Completion Council verdicts and convergence status
14
- - Manage human intervention (pause/stop)
15
- - Add and organize local tasks
16
-
17
- ## Quick Start
18
-
19
- ```bash
20
- # Open the Control Plane (starts `loki control serve` on 127.0.0.1:47821 if none is running)
21
- loki dashboard
22
- ```
23
-
24
- The dashboard automatically syncs with Loki Mode when it's running, polling `dashboard-state.json` every 2 seconds.
25
-
26
- **Ports:** the Control Plane serves the UI and `/v1/*` API on port **47821** by default. See [INSTALLATION.md](INSTALLATION.md#ports) for details.
27
-
28
- **Bound port:** if 57374 is held by something that is not this install's dashboard (another project, an older version, a foreign process), Loki walks to the next free port and never reuses or opens the foreign one. `loki start` and `loki dashboard` open and print the URL of the port actually bound; `loki start` publishes it to `.loki/dashboard/url`. A running dashboard is reused only when its `/health` reports the same version and install path.
29
-
30
- ---
31
-
32
- ## UI Components
33
-
34
- ### 1. Sidebar (Left Panel)
35
-
36
- The sidebar provides navigation and system status at a glance.
37
-
38
- #### Logo & Version
39
- - Loki Mode branding with the running version
40
- - Version updates automatically from server state
41
-
42
- #### Theme Toggle
43
- - Dark Vercel/Linear theme with purple accents (default)
44
- - Switch between dark mode and light mode
45
- - Preference saved to localStorage
46
- - Respects system preference on first visit
47
-
48
- #### Connection Status
49
- - **Green pulsing dot**: Live connection, syncing every 2 seconds
50
- - **Red dot**: Offline, showing local tasks only
51
- - Shows last sync timestamp
52
-
53
- #### Navigation
54
- - **Kanban Board**: Task queue visualization
55
- - **Active Agents**: Agent cards with status
56
- - **System Status**: RARV, Memory, Quality Gates
57
- - Click to smooth-scroll to section
58
- - Active section highlighted based on scroll position
59
-
60
- #### Status Panel
61
- - **Mode**: AUTONOMOUS / PAUSED / STOPPED
62
- - **Phase**: Current SDLC phase (BOOTSTRAP, DEVELOPMENT, etc.)
63
- - **Complexity**: Auto-detected tier (simple/standard/complex)
64
- - **Iteration**: Current RARV iteration count
65
-
66
- #### Intervention Controls
67
- - **PAUSE**: Instructions to create `.loki/PAUSE` file
68
- - **STOP**: Instructions to create `.loki/STOP` file
69
-
70
- #### Resources
71
- - CPU usage percentage
72
- - Memory usage percentage
73
-
74
- ---
75
-
76
- ### 2. Stats Row
77
-
78
- Five stat cards showing:
79
- - **Total Tasks**: Combined server + local tasks
80
- - **In Progress**: Currently active tasks
81
- - **Completed**: Successfully finished tasks
82
- - **Active Agents**: Number of agents running
83
- - **Failed**: Tasks that encountered errors
84
-
85
- ---
86
-
87
- ### 3. Kanban Board
88
-
89
- Four-column task queue visualization:
90
-
91
- #### Columns
92
- | Column | Description | Header Color |
93
- |--------|-------------|--------------|
94
- | Pending | Tasks waiting to start | Gray |
95
- | In Progress | Currently executing | Blue |
96
- | In Review | Being reviewed by quality agents | Purple |
97
- | Completed | Successfully finished | Green |
98
-
99
- #### Task Cards
100
-
101
- **Server Tasks** (from Loki Mode):
102
- - Orange left border
103
- - Non-draggable (controlled by system)
104
- - Shows task ID, title, priority, type, agent
105
-
106
- **Local Tasks** (user-created):
107
- - No colored border
108
- - Draggable between columns
109
- - Stored in localStorage
110
-
111
- **Priority Badges**:
112
- - **High**: Red badge
113
- - **Medium**: Yellow badge
114
- - **Low**: Green badge
115
-
116
- #### Adding Tasks
117
- - Click "+ Add Task" at bottom of Pending column
118
- - Or use keyboard shortcut: Cmd/Ctrl + N
119
- - Fill in: Title, Description, Type, Priority
120
-
121
- ---
122
-
123
- ### 4. Active Agents
124
-
125
- Grid of agent cards showing:
126
-
127
- - **Agent ID**: e.g., orchestrator, backend-agent
128
- - **Agent Type**: e.g., Orchestrator, Backend, Frontend
129
- - **Model Badge**: Colored badge (Opus=amber, Sonnet=indigo, Haiku=emerald)
130
- - **Current Task**: What the agent is working on
131
- - **Stats**: Runtime and tasks completed
132
- - **Status**: Active (green), Idle (gray), Error (red)
133
-
134
- ---
135
-
136
- ### 5. System Grid
137
-
138
- Three system cards:
139
-
140
- #### RARV Cycle
141
- Visual representation of the Reason-Act-Reflect-Verify cycle:
142
- - Active step highlighted with accent color
143
- - Arrow indicators between steps
144
- - Updates in realtime as Loki Mode progresses
145
-
146
- #### Memory System
147
- Progress bars for three memory types:
148
- - **Episodic**: Specific interaction traces (blue)
149
- - **Semantic**: Generalized patterns (purple)
150
- - **Procedural**: Learned skills (green)
151
-
152
- Shows count and visual progress bar for each.
153
-
154
- #### Quality Gates
155
- 8 quality gates with status icons:
156
- - **Static Analysis**: CodeQL/ESLint/type-checker findings on the diff
157
- - **Test Suite**: Project test runner pass/fail (red blocks)
158
- - **Blind Code Review**: 3-reviewer council with severity blocking (Critical/High block, Medium/Low advisory)
159
- - **Anti-Sycophancy**: Devil's Advocate re-review on unanimous PASS
160
- - **Mock Integrity**: Tautological-assertion and mock-ratio detection
161
- - **Test Mutation**: Assertion-churn (test-fitting) detection
162
- - **Documentation Coverage**: README presence, docs freshness, API docs
163
- - **Magic Modules Debate**: Spec-vs-implementation debate on generated modules
164
-
165
- Status icons:
166
- - Checkmark (green): Passed
167
- - Circle (yellow): Pending
168
- - X (red): Failed
169
-
170
- ---
171
-
172
- ## Design System
173
-
174
- ### Dark Vercel/Linear Design Language
175
-
176
- The dashboard follows a dark Vercel/Linear-inspired design with purple accents:
177
-
178
- **Dark Mode (Default)**:
179
- ```css
180
- --bg-primary: #0a0a0b; /* Deep dark background */
181
- --bg-secondary: #141416; /* Card surfaces */
182
- --bg-card: #1a1a1d; /* Elevated surfaces */
183
- --accent: #8b5cf6; /* Purple accent */
184
- --text-primary: #f5f5f5; /* Near white text */
185
- ```
186
-
187
- **Light Mode**:
188
- ```css
189
- --bg-primary: #faf9f0; /* Cream background */
190
- --bg-secondary: #f5f4eb; /* Sidebar/cards */
191
- --bg-card: #ffffff; /* Card background */
192
- --accent: #7c3aed; /* Purple accent */
193
- --text-primary: #1a1a1a; /* Near black text */
194
- ```
195
-
196
- ### Typography
197
- - **Primary font**: Inter (system font fallback)
198
- - **Monospace**: JetBrains Mono (for IDs, code, numbers)
199
-
200
- ### Status Colors
201
- | Status | Light Mode | Dark Mode |
202
- |--------|-----------|-----------|
203
- | Success | #16a34a | #22c55e |
204
- | Warning | #ca8a04 | #eab308 |
205
- | Error | #dc2626 | #ef4444 |
206
- | Info | #2563eb | #3b82f6 |
207
-
208
- ---
209
-
210
- ### 6. Completion Council (v5.25.0)
211
-
212
- The Completion Council panel provides visibility into the multi-agent definition-of-done system:
213
-
214
- #### Overview Tab
215
- - Current council state (active, idle, reviewing)
216
- - Latest verdict (CONTINUE, COMPLETE, FORCE_STOP)
217
- - Vote tally from 3 council members (2/3 majority required)
218
-
219
- #### Decision Log Tab
220
- - Chronological history of all council verdicts
221
- - Per-member vote breakdown
222
- - Anti-sycophancy devil's advocate triggers (shown when unanimous approval occurs)
223
-
224
- #### Convergence Tab
225
- - Git diff hash tracking between iterations
226
- - Convergence detection (repeated identical diffs = no progress)
227
- - Circuit breaker status (triggers after 5 consecutive no-progress iterations)
228
-
229
- #### Agents Tab
230
- - Council member status and assignment
231
- - Current review focus areas
232
-
233
- **API Endpoints:**
234
- - `GET /api/council/state` - Current council state
235
- - `GET /api/council/verdicts` - Decision history
236
- - `GET /api/council/convergence` - Convergence metrics
237
- - `POST /api/council/force-review` - Trigger manual review
238
-
239
- **CLI Commands:**
240
- ```bash
241
- loki council status # Current state
242
- loki council verdicts # Decision history
243
- loki council convergence # Convergence data
244
- loki council force-review # Trigger review
245
- loki council report # Generate report
246
- ```
247
-
248
- ---
249
-
250
- ### 7. Context Window (v5.40.0)
251
-
252
- The Context Window panel provides real-time visibility into context window utilization across agents:
253
-
254
- #### Gauge View
255
- - Circular gauge showing current context usage as a percentage
256
- - Color-coded thresholds: green (<60%), yellow (60-80%), red (>80%)
257
- - Displays tokens used vs. total capacity
258
-
259
- #### Timeline View
260
- - Historical context usage over time
261
- - Per-iteration token consumption trend
262
- - Helps identify context-heavy phases or runaway agents
263
-
264
- #### Breakdown View
265
- - Per-agent context allocation and usage
266
- - Categorized by content type (code, prompts, memory, tool output)
267
- - Highlights largest context consumers
268
-
269
- **API Endpoints:**
270
- - `GET /api/context` - Current context window state (per-agent usage, totals, breakdown)
271
-
272
- ---
273
-
274
- ### 8. Notifications (v5.40.0)
275
-
276
- The Notifications panel provides a feed of system events and configurable trigger management:
277
-
278
- #### Feed View
279
- - Chronological list of notification events
280
- - Severity levels: info, warning, critical
281
- - Click to acknowledge and dismiss
282
- - Auto-generated from context thresholds, task failures, council verdicts, and budget alerts
283
-
284
- #### Trigger Management View
285
- - Configure notification triggers (context threshold, task failure count, budget limit, etc.)
286
- - Enable/disable individual triggers
287
- - Set custom thresholds per trigger type
288
-
289
- **API Endpoints:**
290
- - `GET /api/notifications` - List all notifications (supports query filters)
291
- - `GET /api/notifications/triggers` - Get configured notification triggers
292
- - `PUT /api/notifications/triggers` - Update notification trigger configuration
293
- - `POST /api/notifications/{id}/acknowledge` - Acknowledge a specific notification
294
-
295
- ---
296
-
297
- ## Security Hardening (v5.25.0)
298
-
299
- The dashboard includes several security measures:
300
-
301
- | Fix | Description |
302
- |-----|-------------|
303
- | **Path traversal prevention** | `storage.py` validates all file paths to prevent directory traversal attacks |
304
- | **XSS protection** | Log stream output is sanitized to prevent cross-site scripting |
305
- | **Memory leak fix** | Session control properly cleans up resources on disconnect |
306
- | **Python injection fix** | `completion-council.sh` sanitizes inputs to prevent code injection |
307
- | **CORS configuration** | Configurable via `LOKI_DASHBOARD_CORS` environment variable (default: localhost only) |
308
-
309
- ### Host allowlist (DNS rebinding defense)
310
-
311
- The dashboard refuses any request whose `Host` header is not loopback (`127.0.0.1`, `localhost`, `[::1]`) with 403, except `GET /health` and `GET /metrics`, which are always exempt so container probes (Host = pod IP) and scrapers work.
312
-
313
- | Deployment | Behavior |
314
- |------------|----------|
315
- | Local default (bound to 127.0.0.1) | Only loopback Hosts; add others via `LOKI_DASHBOARD_ALLOWED_HOSTS` |
316
- | Non-loopback bind (`0.0.0.0` or `LOKI_DASHBOARD_HOST` set) with `LOKI_ENTERPRISE_AUTH` or OIDC enabled | Any Host accepted; authentication is the boundary |
317
- | Non-loopback bind without auth | Only loopback plus `LOKI_DASHBOARD_ALLOWED_HOSTS` |
318
-
319
- `LOKI_DASHBOARD_ALLOWED_HOSTS` is a comma-separated list of host names (no port), e.g. `loki.example.com,10.0.0.5`. Helm: `config.dashboardAllowedHosts`. Terraform (aws-ecs): `dashboard_allowed_hosts`.
320
-
321
- ---
322
-
323
- ## Technical Architecture
324
-
325
- ### File-Based Sync
326
-
327
- The dashboard uses a polling-based sync mechanism:
328
-
329
- ```
330
- run.sh Dashboard
331
- | |
332
- |-- writes every 2s --> |
333
- | |
334
- v v
335
- dashboard-state.json fetch() + render
336
- ```
337
-
338
- **State File Structure** (`dashboard-state.json`):
339
- ```json
340
- {
341
- "timestamp": "2026-01-21T10:30:00Z",
342
- "version": "5.25.0",
343
- "mode": "autonomous",
344
- "phase": "DEVELOPMENT",
345
- "complexity": "standard",
346
- "iteration": 5,
347
- "tasks": {
348
- "pending": [...],
349
- "inProgress": [...],
350
- "review": [...],
351
- "completed": [...],
352
- "failed": [...]
353
- },
354
- "agents": [...],
355
- "metrics": {
356
- "tasksCompleted": 12,
357
- "tasksFailed": 0,
358
- "cpuUsage": 45,
359
- "memoryUsage": 62
360
- },
361
- "rarv": {
362
- "currentStep": 1,
363
- "stages": ["reason", "act", "reflect", "verify"]
364
- },
365
- "memory": {
366
- "episodic": 12,
367
- "semantic": 8,
368
- "procedural": 5
369
- },
370
- "qualityGates": {
371
- "staticAnalysis": "passed",
372
- "codeReview": "in_progress",
373
- "antiSycophancy": "pending",
374
- "testCoverage": "passed",
375
- "securityScan": "passed",
376
- "performance": "pending"
377
- }
378
- }
379
- ```
380
-
381
- ### Local Storage
382
-
383
- Local tasks persist in browser localStorage:
384
- - Key: `loki-dashboard-local`
385
- - Survives browser refresh
386
- - Independent of server state
387
-
388
- Theme preference:
389
- - Key: `loki-theme`
390
- - Values: `light` or `dark`
391
-
392
- ---
393
-
394
- ## Responsive Design
395
-
396
- The dashboard adapts to different screen sizes:
397
-
398
- | Breakpoint | Behavior |
399
- |------------|----------|
400
- | > 1400px | Full layout, 5 stat cards |
401
- | 1200-1400px | 3 stat cards, 2 system cards |
402
- | 1024-1200px | Sidebar hidden, mobile header visible |
403
- | < 768px | Single column layout |
404
-
405
- ### Mobile Header
406
- On small screens, a mobile header appears with:
407
- - Loki Mode logo
408
- - Connection status
409
- - Theme toggle
410
-
411
- ---
412
-
413
- ## Keyboard Shortcuts
414
-
415
- | Shortcut | Action |
416
- |----------|--------|
417
- | Cmd/Ctrl + N | Open Add Task modal |
418
- | Escape | Close modal |
419
-
420
- ---
421
-
422
- ## Export
423
-
424
- Click "Export" button to download JSON containing:
425
- - Current server state snapshot
426
- - All local tasks
427
- - Export timestamp
428
-
429
- Useful for:
430
- - Debugging
431
- - Sharing session state
432
- - Backup before making changes
433
-
434
- ---
435
-
436
- ## Troubleshooting
437
-
438
- ### Dashboard Shows "Offline"
439
- 1. Ensure Loki Mode is running: `./autonomy/run.sh`
440
- 2. Check that `dashboard-state.json` exists in `.loki/`
441
- 3. Verify HTTP server is running on correct port
442
-
443
- ### Tasks Not Updating
444
- 1. Check polling interval (default: 2 seconds)
445
- 2. Clear browser cache
446
- 3. Check browser console for fetch errors
447
-
448
- ### Theme Not Saving
449
- 1. Check localStorage is enabled
450
- 2. Clear `loki-theme` key and refresh
451
-
452
- ### Local Tasks Disappeared
453
- 1. Check localStorage is enabled
454
- 2. Different browser/profile will have separate local storage
455
- 3. Export tasks before clearing browser data
456
-
457
- ---
458
-
459
- ## Version History
460
-
461
- | Version | Changes |
462
- |---------|---------|
463
- | v5.40.0 | Context Window tracking panel (gauge, timeline, breakdown), Notification Triggers panel (feed, trigger management) |
464
- | v5.39.0 | Prometheus /metrics endpoint, branch protection, agent audit trail, log integrity, OpenClaw bridge |
465
- | v5.37.0 | TLS/HTTPS, OIDC/SSO, RBAC roles, WebSocket auth, syslog forwarding, budget controls |
466
- | v5.36.0 | Auth wiring on destructive endpoints, rate limiting, salted hashing, non-root Docker |
467
- | v5.35.0 | CONTINUITY.md, 5-specialist code review, checkpoint VSCode UI |
468
- | v5.34.0 | Checkpoint system with git SHA tracking |
469
- | v5.30.0 | Knowledge compounding, deepen-plan phase, specialist reviewers |
470
- | v5.25.0 | Completion Council panel, dark Vercel/Linear theme with purple accents, enterprise security hardening |
471
- | v5.23.0 | Dashboard reads from .loki/ flat files, all web components functional |
472
- | v4.1.0 | Terminal output, quick actions, GitHub import modal, config file support |
473
- | v4.0.0 | Complete rewrite with Anthropic design, realtime sync, mobile support |
474
- | v3.x | Basic status display (no interactivity) |
475
-
476
- ---
477
-
478
- ## Related Documentation
479
-
480
- - [Core Workflow](../references/core-workflow.md) - RARV cycle details
481
- - [Agent Types](../references/agent-types.md) - Agent role definitions
482
- - [Quality Control](../references/quality-control.md) - Quality gates system
483
- - [Memory System](../references/memory-system.md) - Memory architecture
484
-
485
- ## Control Plane by default
486
-
487
- Bare `loki` and `loki dashboard` (also `start` or `open` with no other flags) open the Control Plane. If `~/.loki/control/instance.json` names a live loopback server whose `/health` reports `service=loki-control`, that URL is reused; otherwise `loki control serve` is started detached and its PID is recorded in `~/.loki/control/serve.pid`. With `LOKI_HEADLESS=1`, `LOKI_NO_BROWSER=1` or `--no-open` the URL is printed and no browser is opened. Without bun, Loki prints one line naming bun and does not start a server (the classic dashboard is removed in 10.8). Multi-repo `loki workspace` is on by default; `LOKI_WORKSPACES=0` disables it.