loki-mode 11.3.0 → 11.3.2

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 (242) hide show
  1. package/README.md +68 -650
  2. package/SKILL.md +5 -5
  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/efficiency_cost.py +8 -0
  10. package/autonomy/lib/engine10-push.sh +22 -8
  11. package/autonomy/lib/prd-enrich.sh +1 -1
  12. package/autonomy/lib/voter-agents.sh +1 -1
  13. package/autonomy/loki +161 -105
  14. package/autonomy/run.sh +30 -18
  15. package/autonomy/sandbox.sh +1 -1
  16. package/autonomy/tui.sh +6 -5
  17. package/autonomy/verify.sh +1 -1
  18. package/bin/loki +195 -59
  19. package/completions/_loki +8 -0
  20. package/completions/loki.bash +3 -3
  21. package/dashboard/__init__.py +1 -1
  22. package/dashboard/server.py +47 -45
  23. package/docs/AGENT-CHANGE-RECEIPT.md +2 -2
  24. package/docs/ARCHITECTURE.md +337 -0
  25. package/docs/BRANDING.md +124 -0
  26. package/docs/CLI-REFERENCE.md +11 -1
  27. package/docs/COMPONENTS.md +447 -0
  28. package/docs/DEPLOYMENT.md +9 -9
  29. package/docs/DOCKER.md +469 -0
  30. package/docs/INSTALLATION.md +67 -1045
  31. package/docs/KNOWN-ISSUES.md +11 -35
  32. package/docs/OTEL-COLLECTOR.md +24 -0
  33. package/docs/ROUTING-EVIDENCE.md +32 -0
  34. package/docs/TESTING.md +161 -0
  35. package/docs/air-gapped.md +1 -2
  36. package/docs/alternative-installations.md +14 -24
  37. package/docs/architecture/DECISIONS.md +333 -0
  38. package/docs/audit-logging.md +7 -7
  39. package/docs/authentication.md +3 -3
  40. package/docs/authorization.md +1 -1
  41. package/docs/certification/04-production-deployment/lab.md +6 -6
  42. package/docs/certification/04-production-deployment/lesson.md +4 -4
  43. package/docs/certification/README.md +1 -1
  44. package/docs/control-plane-container.md +2 -2
  45. package/docs/dev/real-run.md +34 -0
  46. package/docs/dev/release-checklist.md +2 -2
  47. package/docs/environment-variables.md +1 -0
  48. package/docs/exit-codes.md +3 -3
  49. package/docs/git-workflow.md +3 -3
  50. package/docs/metrics.md +37 -55
  51. package/docs/network-security.md +1 -1
  52. package/docs/siem-integration.md +5 -5
  53. package/docs/spec-first-intent.md +28 -0
  54. package/docs/v10/CLI-MODERN.md +7 -3
  55. package/docs/v10/DECISIONS.md +59 -0
  56. package/docs/v10/DEPS.md +22 -22
  57. package/docs/v10/ENGINE.md +1 -1
  58. package/docs/v10/FAILURE-CLASSES.md +212 -1
  59. package/docs/v10/FOUNDER-QUEUE.md +1 -0
  60. package/docs/v10/GUARDS.md +31 -0
  61. package/docs/v10/GUIDE.md +7 -5
  62. package/docs/v10/LEGACY-REMOVAL.md +4 -6
  63. package/docs/v10/METRICS.md +14 -2
  64. package/docs/v10/MODERNIZE.md +1 -1
  65. package/docs/v10/OPERATING-MODEL.md +4 -3
  66. package/docs/v10/PROGRESS.md +35 -0
  67. package/docs/v11/COST-HALF.md +352 -0
  68. package/docs/v11/INTOTO-AGENT-CHANGE-PREDICATE.md +77 -0
  69. package/docs/v11/MARKET-SLICES.md +315 -0
  70. package/docs/v11/MCP-2026-07-28.md +55 -0
  71. package/docs/v11/REGISTRIES.md +730 -0
  72. package/docs/v11/VERIFY-PR-SANDBOX.md +41 -0
  73. package/loki-ts/data/model-pricing.json +52 -24
  74. package/loki-ts/dist/loki.js +1185 -945
  75. package/mcp/__init__.py +1 -1
  76. package/mcp/v10_tools.py +29 -0
  77. package/package.json +9 -11
  78. package/packages/control-plane/dist/ask-tools-server.js +8 -2
  79. package/packages/control-plane/dist/server.js +15832 -12361
  80. package/packages/control-plane/drizzle/0006_token_sessions.sql +1 -0
  81. package/packages/control-plane/drizzle/meta/0006_snapshot.json +807 -0
  82. package/packages/control-plane/drizzle/meta/_journal.json +7 -0
  83. package/packages/control-plane/src/db/schema.ts +1 -0
  84. package/packages/control-plane/src/server/routes/cost.ts +4 -3
  85. package/packages/control-plane/src/server/runs.ts +3 -3
  86. package/packages/control-plane/ui/dist/assets/index-DbLzr87u.js +190 -0
  87. package/packages/control-plane/ui/dist/index.html +1 -1
  88. package/plugins/loki-mode/.claude-plugin/plugin.json +1 -1
  89. package/providers/opencode.sh +2 -3
  90. package/src/observability/genai-spans.js +104 -0
  91. package/src/observability/otel-bridge.js +49 -1
  92. package/src/observability/otel.js +2 -2
  93. package/src/protocols/mcp-client.js +6 -2
  94. package/src/protocols/mcp-server.js +191 -6
  95. package/src/protocols/transport/sse.js +23 -2
  96. package/tools/audit-docs.py +1 -1
  97. package/web-app/dist/assets/{AdminPage-D_e45uTw.js → AdminPage-DuRQZsF9.js} +1 -1
  98. package/web-app/dist/assets/{Avatar-T3nIpoaf.js → Avatar-7GtOQvsO.js} +1 -1
  99. package/web-app/dist/assets/{Badge-BKqb59pP.js → Badge-CYgTnIxj.js} +1 -1
  100. package/web-app/dist/assets/{Button-DjVlkh8_.js → Button-rYSyIu7X.js} +1 -1
  101. package/web-app/dist/assets/{CockpitPage-DXJgLGmh.js → CockpitPage-9adANY4o.js} +1 -1
  102. package/web-app/dist/assets/{ComparePage-BRP_eVc_.js → ComparePage-DEG2oA-R.js} +1 -1
  103. package/web-app/dist/assets/{ErrorBoundary-CLjpGLjC.js → ErrorBoundary-CwtvY4xs.js} +1 -1
  104. package/web-app/dist/assets/{EvidenceReceiptPanel-DX-vb4Xy.js → EvidenceReceiptPanel-DTT73pPB.js} +1 -1
  105. package/web-app/dist/assets/{GitHubIssuesPanel-214HVHtX.js → GitHubIssuesPanel-CpWZLz2x.js} +1 -1
  106. package/web-app/dist/assets/{GitHubPRsPanel-BEiZKc4t.js → GitHubPRsPanel-H293R7E2.js} +1 -1
  107. package/web-app/dist/assets/{HomePage-VvMHS5ga.js → HomePage-B11Imp9k.js} +2 -2
  108. package/web-app/dist/assets/{LoginPage-5WD-v7n3.js → LoginPage-BZBgx5Jr.js} +1 -1
  109. package/web-app/dist/assets/{MagicPage-DUQT_Jye.js → MagicPage-B27S4_X8.js} +1 -1
  110. package/web-app/dist/assets/{MetricsPage-lga-z79v.js → MetricsPage-CfbJWNDG.js} +1 -1
  111. package/web-app/dist/assets/{NotFoundPage-CGhBX3G1.js → NotFoundPage-Tp_4zMSm.js} +1 -1
  112. package/web-app/dist/assets/{ProjectPage-CdzF2GzZ.js → ProjectPage-CM4fgMsV.js} +3 -3
  113. package/web-app/dist/assets/{ProjectsPage-DRG64N8s.js → ProjectsPage-DP2Fvsrd.js} +1 -1
  114. package/web-app/dist/assets/{SettingsPage-5fzW9Frb.js → SettingsPage-C4G9-EAy.js} +1 -1
  115. package/web-app/dist/assets/{ShowcasePage-DrTdxO4y.js → ShowcasePage-Dj-n4dwu.js} +1 -1
  116. package/web-app/dist/assets/{SystemSettingsPage-C9Mqs6Rd.js → SystemSettingsPage-BqMLpuGt.js} +1 -1
  117. package/web-app/dist/assets/{TeamsPage-CUGPdSWo.js → TeamsPage-mIH8H96m.js} +1 -1
  118. package/web-app/dist/assets/{TemplatesPage-CNraDY0F.js → TemplatesPage-BagW-v4n.js} +1 -1
  119. package/web-app/dist/assets/{TerminalOutput-BIu_6Pea.js → TerminalOutput-CTQRHhnK.js} +1 -1
  120. package/web-app/dist/assets/{activity-Bk-kgqaf.js → activity-DNQiBDDL.js} +1 -1
  121. package/web-app/dist/assets/{bell-BXmUdmo8.js → bell-Coiwdad1.js} +1 -1
  122. package/web-app/dist/assets/{bot-CiuzXxUR.js → bot-Cou-rTgR.js} +1 -1
  123. package/web-app/dist/assets/{check-BEzjXppd.js → check-CsF-XtQp.js} +1 -1
  124. package/web-app/dist/assets/{chevron-left-AYWCXHf8.js → chevron-left-BJiy55Ht.js} +1 -1
  125. package/web-app/dist/assets/{circle-alert-BNg2uSRq.js → circle-alert-D6-pQQWq.js} +1 -1
  126. package/web-app/dist/assets/{clock-DTj0kkGT.js → clock-BOGqwgt9.js} +1 -1
  127. package/web-app/dist/assets/{cloud-x4nTDBLT.js → cloud-DsxhTtf5.js} +1 -1
  128. package/web-app/dist/assets/{code-xml-BVh_MLrk.js → code-xml-CxJDHUlE.js} +1 -1
  129. package/web-app/dist/assets/{database-DdfBaowG.js → database-BJePscl_.js} +1 -1
  130. package/web-app/dist/assets/{dollar-sign-XuYFmAOY.js → dollar-sign-6qWGAkZo.js} +1 -1
  131. package/web-app/dist/assets/{file-code-corner-D4cRnmeL.js → file-code-corner-DcOtYeDb.js} +1 -1
  132. package/web-app/dist/assets/{file-plus-CyoVlHc_.js → file-plus-WuRyLFo0.js} +1 -1
  133. package/web-app/dist/assets/{globe-Y6IK2RPW.js → globe-r-xCP4DE.js} +1 -1
  134. package/web-app/dist/assets/{hammer-BKzr9VZI.js → hammer-DTt0SsCB.js} +1 -1
  135. package/web-app/dist/assets/{index-B20cSx5G.js → index-BkbXyH8y.js} +3 -3
  136. package/web-app/dist/assets/{layers-DebNOhGS.js → layers-BvZhvSMY.js} +1 -1
  137. package/web-app/dist/assets/{loader-circle-DyGbrEgd.js → loader-circle-3gosTei9.js} +1 -1
  138. package/web-app/dist/assets/{lock-BKPpyt20.js → lock-CZZMxP0U.js} +1 -1
  139. package/web-app/dist/assets/{package-egF5Wi4y.js → package-C5A8CkJr.js} +1 -1
  140. package/web-app/dist/assets/{plus-OiEgKIc-.js → plus-Btv7tTIF.js} +1 -1
  141. package/web-app/dist/assets/{refresh-cw-CzKvrONq.js → refresh-cw-DsWLXgs_.js} +1 -1
  142. package/web-app/dist/assets/{rotate-ccw-Bu2mII0p.js → rotate-ccw-DOVDjway.js} +1 -1
  143. package/web-app/dist/assets/{scroll-text-CSkiyax8.js → scroll-text-smySzlrX.js} +1 -1
  144. package/web-app/dist/assets/{server-DlPthJFw.js → server-b5PHsqAU.js} +1 -1
  145. package/web-app/dist/assets/{shield-alert-CbpHWQQX.js → shield-alert-BD7FDlh-.js} +1 -1
  146. package/web-app/dist/assets/{thumbs-up-DgGpZe-Q.js → thumbs-up-CAsFzbyE.js} +1 -1
  147. package/web-app/dist/assets/{trash-2-BV3GlCB-.js → trash-2-BJ35qHgl.js} +1 -1
  148. package/web-app/dist/assets/{trending-down-Y4TJtXhD.js → trending-down-Ozrd26cZ.js} +1 -1
  149. package/web-app/dist/assets/{trending-up-DsDNoHZY.js → trending-up-BhnMcM32.js} +1 -1
  150. package/web-app/dist/assets/{upload-gkThrc_I.js → upload-JVHfdwoA.js} +1 -1
  151. package/web-app/dist/assets/{usePolling-jpNSeNAe.js → usePolling-CTzbDV-e.js} +1 -1
  152. package/web-app/dist/assets/{user-3Zez1WOK.js → user-Bks3-GYv.js} +1 -1
  153. package/web-app/dist/index.html +1 -1
  154. package/docs/ARCHITECTURE-OVERVIEW.md +0 -209
  155. package/docs/AUTONOMI-ECOSYSTEM.md +0 -107
  156. package/docs/COCKPIT-SPEC.md +0 -72
  157. package/docs/COCKPIT-UX-MANDATE.md +0 -53
  158. package/docs/COMPETITIVE-ANALYSIS.md +0 -303
  159. package/docs/COMPETITIVE-NEXT-10.md +0 -316
  160. package/docs/COMPETITIVE-RALPH-ZEROSHOT-2026-07-08.md +0 -81
  161. package/docs/DASHBOARD-9.12-EVIDENCE.md +0 -97
  162. package/docs/DASHBOARD-ARCHITECTURE.md +0 -425
  163. package/docs/DASHBOARD_V2_CHECKLIST.md +0 -243
  164. package/docs/DEMOS.md +0 -63
  165. package/docs/ENTERPRISE-IDENTITY-ROADMAP.md +0 -206
  166. package/docs/EVIDENCE-RECEIPT-BUILD-APPLICABILITY.md +0 -79
  167. package/docs/FEAT-PRDREUSE-DOCKER-PLAN.md +0 -144
  168. package/docs/GATE-FAILURE-TRIAGE.md +0 -254
  169. package/docs/HANDOFF-2026-08-03.md +0 -439
  170. package/docs/LOOP-CANDIDATE-PROPOSAL-v1.md +0 -167
  171. package/docs/LOOP-HARNESS-AUDIT.md +0 -684
  172. package/docs/MERGE-DEDUP-MAP.md +0 -420
  173. package/docs/MERGE-ROUTE-MAP.md +0 -139
  174. package/docs/MODEL-REGISTRY-PLAN.md +0 -155
  175. package/docs/OUTCOME-FRONTIER.md +0 -536
  176. package/docs/P2-SPEC-ROBUSTNESS-PLAN.md +0 -192
  177. package/docs/PLANS-INDEX.md +0 -32
  178. package/docs/PRD-REUSE-DONE-RECOGNITION-PLAN.md +0 -536
  179. package/docs/PROMPT-ABLATION-RESULT.md +0 -97
  180. package/docs/R4-TRUST-TRAJECTORY-DESIGN.md +0 -127
  181. package/docs/R5-AUTO-WIKI-DESIGN.md +0 -137
  182. package/docs/R6-ROLLBACK-CHECKPOINT-PLAN.md +0 -107
  183. package/docs/R7-ZERO-CONFIG-FIRST-RUN-PLAN.md +0 -137
  184. package/docs/R8-SHAREABLE-TEAM-ASSETS-PLAN.md +0 -129
  185. package/docs/R9-OPEN-CORE-HOOKS-PLAN.md +0 -113
  186. package/docs/RARV-C-100X-PLAN.md +0 -286
  187. package/docs/RARV-C-LOOP-EFFICIENCY-PLAN.md +0 -470
  188. package/docs/SHAREABLE-PROOF-PLAN.md +0 -194
  189. package/docs/SONNET5-DEFAULT-PLAN.md +0 -157
  190. package/docs/SPEED-AND-FIRST-PASS-PLAN.md +0 -281
  191. package/docs/STALE-STATE-AUDIT.md +0 -174
  192. package/docs/SYNERGY-TASKS.md +0 -143
  193. package/docs/TASKLIST-ACCURACY-PLAN.md +0 -355
  194. package/docs/TOP-100-BACKLOG.md +0 -159
  195. package/docs/V8-ACCEPTANCE-TRIAGE-2026-07-24.md +0 -114
  196. package/docs/V8-COMPLEXITY-AUDIT-2026-07-24.md +0 -45
  197. package/docs/V8-MAJOR-RELEASE-PLAN.md +0 -137
  198. package/docs/V8-OVERNIGHT-PLAN-2026-07-25.md +0 -82
  199. package/docs/V8-SDK-RESEARCH-RAW.md +0 -129
  200. package/docs/WELCOME-OPENER-PLAN.md +0 -106
  201. package/docs/adoption-baseline-2026-07-31.md +0 -84
  202. package/docs/architecture/bmad-integration-epic.md +0 -271
  203. package/docs/architecture/bmad-integration-review.md +0 -86
  204. package/docs/architecture/bmad-integration-validation.md +0 -249
  205. package/docs/architecture/bmad-loki-voice-agent-council-analysis.md +0 -61
  206. package/docs/auto-claude-comparison.md +0 -250
  207. package/docs/bug-fixes/agent-01-cli-fixes.md +0 -101
  208. package/docs/bug-fixes/agent-02-purplelab-fixes.md +0 -88
  209. package/docs/bug-fixes/agent-03-dashboard-fixes.md +0 -119
  210. package/docs/bug-fixes/agent-04-memory-fixes.md +0 -105
  211. package/docs/bug-fixes/agent-05-provider-fixes.md +0 -86
  212. package/docs/bug-fixes/agent-06-integration-fixes.md +0 -101
  213. package/docs/bug-fixes/agent-07-dash-run-fixes.md +0 -101
  214. package/docs/bug-fixes/agent-08-docker-fixes.md +0 -164
  215. package/docs/bug-fixes/agent-09-e2e-build-fixes.md +0 -69
  216. package/docs/bug-fixes/agent-10-e2e-fullstack-fixes.md +0 -102
  217. package/docs/bug-fixes/agent-11-e2e-session-fixes.md +0 -70
  218. package/docs/bug-fixes/agent-12-scenario-fixes.md +0 -120
  219. package/docs/bug-fixes/agent-13-enterprise-fixes.md +0 -143
  220. package/docs/bug-fixes/agent-14-uat-newuser-fixes.md +0 -88
  221. package/docs/bug-fixes/agent-15-uat-poweruser-fixes.md +0 -132
  222. package/docs/bug-fixes/agent-19-code-review.md +0 -316
  223. package/docs/bug-fixes/agent-20-architecture-review.md +0 -331
  224. package/docs/competitive/bolt-new-analysis.md +0 -579
  225. package/docs/competitive/emergence-others-analysis.md +0 -605
  226. package/docs/competitive/replit-lovable-analysis.md +0 -622
  227. package/docs/dashboard-guide.md +0 -487
  228. package/docs/enterprise/migration.md +0 -265
  229. package/docs/history/one-run-audit.md +0 -304
  230. package/docs/plans/FORGE-AUTONOMOUS-QUEUE.md +0 -312
  231. package/docs/plans/ULTRAPLAN-FORGE-BAAS.md +0 -612
  232. package/docs/plans/UT2-6-LSP-DIAGNOSTIC-BROADCAST.md +0 -394
  233. package/docs/prd-purple-lab-ide.md +0 -152
  234. package/docs/prd-purple-lab-platform-v2.md +0 -223
  235. package/docs/prd-purple-lab-platform.md +0 -319
  236. package/docs/retrospectives/v7.5.15-fleet-postmortem.md +0 -325
  237. package/docs/retrospectives/v7.5.15-honesty-audit.md +0 -136
  238. package/docs/retrospectives/v7.5.15-llm-failure-modes.md +0 -49
  239. package/docs/show-hn-post.md +0 -46
  240. package/docs/test-scenarios/enterprise-scenarios.md +0 -732
  241. package/docs/thick2thin.md +0 -173
  242. package/packages/control-plane/ui/dist/assets/index-DcBJXjCJ.js +0 -190
@@ -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.