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