Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 31 additions & 1 deletion docs/dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ order:

| Tab | Sub-sections | Shows |
|-----|--------------|-------|
| **Overview** | Summary · Health · Stats | Daemon status (OODA loop active / stopped), current cycle number, top-priority goal, last cycle's actions, and the recent-actions stream (**Summary**); system status — version, daemon state, active process count, disk usage — open PRs, open issues, and the **Machines & Memory Sharing** card, i.e. whether Simard runs on one machine or a group and how they share what they've learned (**Health**); and aggregate run counters and rollups (**Stats**). |
| **Overview** | Summary · Health · Stats | Daemon status (OODA loop active / stopped), current cycle number, top-priority goal, last cycle's actions, and the recent-actions stream (**Summary**); system status — version, daemon state, active process count, disk usage — per-PR **Merge Readiness** (the single Overview PR surface — the duplicative "Open PRs" card was removed, see [Overview → Health: Open PRs card removed](#overview-tab-health-open-prs-card-removed-26)), open issues, and the **Machines & Memory Sharing** card, i.e. whether Simard runs on one machine or a group and how they share what they've learned (**Health**); and aggregate run counters and rollups (**Stats**). |
| **Goals** | Goals · Work Board | The full goal register — active top-N goals with priority, status, and current activity, plus the proposed backlog with promote/dismiss controls (**Goals**) — and the shared scratch canvas with Task Memory and Recent Actions (**Work Board**). |
| **Activity** | Logs · Traces · Thinking · Failures | The **Background Service Log** (live activity from Simard's always-on background process), the cost ledger, and the **Cycle Reports** card — recent OODA cycles with their live cycle number, real per-cycle tree status, and Observe/Orient/Decide/Act detail, collapsed with a `×N` repeat-count and refreshed live, see [Activity: Cycle Reports](#activity-tab-logs-cycle-reports-26) — with a severity menu (All / Errors / Warnings / Info) and free-text search (**Logs**); recent agent traces from the cost ledger, journald, and in-process spans, plus OTEL status, each row read as plain language — **when**, **what**, **who** (**Traces**); the **Thinking** panel's two halves — a **Cycle History** table (collapsed per-cycle timeline with real timestamps, a `×N` repeat-count for runs of equivalent cycles, difference-carrying summaries, and a self-hiding duration-trend chart) and the **Agent Internal Reasoning** OODA Observe/Orient/Decide/Act breakdown, see [Thinking: Cycle History](#thinking-tab-cycle-history-21) (**Thinking**); and brain-fallback and decision failures (**Failures**). |
| **Workers** | Processes · Engineers · Terminal | The live process tree under the daemon — engineer subprocesses, LLM sessions, tmux sessions, and their resource usage (**Processes** / **Engineers**) — and a browser-attached PTY into the daemon host (**Terminal**). |
Expand Down Expand Up @@ -145,6 +145,21 @@ works. The transform is render-layer only: the canonical `brain` / `ooda_brain`
strings, logs, and API responses are unchanged. See
[Overview action-detail humanization](reference/dashboard-action-detail-humanization.md).

### Overview tab → Health: Open PRs card removed (#26)

The **Health** sub-section previously carried two overlapping PR cards: a plain
**Open PRs** list and the richer **Merge Readiness** card. Everything the Open
PRs card showed (PR number, title, link) is a strict subset of Merge Readiness,
which additionally reports whether each PR can merge (CI rollup, base-branch
allow-list, objective merge-gate verdict, blocker reason, and the active
merge-judge kind). The duplicate **Open PRs** card has been **removed
completely** — its markup, its client renderer, and its `/api/activity` →
`open_prs` data producer (one fewer `gh pr list` subprocess per Overview
refresh). **Merge Readiness** is now the single Overview PR surface; the
**Pull Requests → Readiness** tab (`/api/prs`) is a separate view and is
unaffected. Full before/after and the `/api/activity` contract change are in the
[Open PRs card removal & live memory-consolidation reference](reference/dashboard-overview-health-and-live-memory.md).

### Overview tab → Health: plain-English "Machines & Memory Sharing" card

The **Health** sub-section's card that reports whether Simard is running on one
Expand Down Expand Up @@ -335,6 +350,20 @@ holding thousands of facts told operators that memory was empty when it was
rich. The panel now hides empty legacy tiles so the displayed numbers always
match Simard's actual remembered state.

The **Last Memory Compaction** statistic in the same card now reflects **live**
consolidation state (#26). It previously derived from the modification time of
the retired JSON snapshot files, so it stayed frozen even while consolidation
ran (~30 `consolidate-memory` actions per 30 min; episodic memory growing
through the day). It now reads the most recent live consolidation signal — the
newest `consolidate-memory` OODA action timestamp — and shows `Not tracked yet`
when no such signal exists yet: it fails closed to `null` rather than fabricating
a value, with no legacy-file or directory-mtime fallback. `/api/memory` gains a
`recent_consolidation_activity` `{count, last}` summary, so the statistic visibly
advances as memory grows. This
is the same live-read reconciliation as the Activity and Goals tabs (#2697 /
#2695). See the
[Open PRs card removal & live memory-consolidation reference](reference/dashboard-overview-health-and-live-memory.md).

## Feedback widget: report a bug / request a feature (#2629)

Every tab carries a **Report bug / Request feature** control in the shared
Expand Down Expand Up @@ -634,4 +663,5 @@ The `SIMARD_DASHBOARD_URL` environment variable is honored by `conftest.py` (def
- [How to report a bug or request a feature from the dashboard](howto/report-a-bug-or-request-a-feature.md)
- [Thinking tab — Cycle History (timestamps, collapse, duration trend)](reference/dashboard-thinking-cycle-history.md)
- [Activity tab — Cycle Reports (live cycle number, accurate tree status, shared detail)](reference/dashboard-activity-cycle-reports.md)
- [Overview Health & live memory-consolidation (Open PRs card removal, live Last Memory Compaction)](reference/dashboard-overview-health-and-live-memory.md)
- [Background tab prefetch and refresh (instant tab switches)](reference/dashboard-background-tab-prefetch.md)
1 change: 1 addition & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@ Terminal sessions and repo-grounded engineer runs now bridge through one explici
- [Dashboard Chat reference](./reference/dashboard-chat.md) - Durable, resumable dashboard chat sessions: the on-disk `chat_sessions/` store, the `GET /api/chat/sessions[/{id}]` REST API, and the `/ws/chat` streaming protocol with non-streaming fallback (issue #2577).
- [Thinking tab — Cycle History reference](./reference/dashboard-thinking-cycle-history.md) - The Thinking tab's first-half Cycle History: real per-cycle timestamps, consecutive-cycle collapse with a `×N` repeat-count and cycle range, difference-carrying row summaries, and a duration-trend chart that hides when data is absent — the `/api/ooda-cycles` contract and the relaxed `thinking_collapse` mode, with the second-half OODA reasoning breakdown preserved unchanged (#21).
- [Activity tab — Cycle Reports reference](./reference/dashboard-activity-cycle-reports.md) - The Activity tab's Logs-sub-section Cycle Reports card: the live OODA cycle index (never a frozen `#1`), the real per-cycle working-tree status (clean vs. dirty, not a stale constant), per-cycle Observe/Orient/Decide/Act detail, and `×N` collapse — all read through the single shared cycle-report reader and strict collapse pass the Thinking tab's Agent Internal Reasoning view uses, and rendered through the same shared entry-renderer, with a 15 s live refresh, so the two views agree on the same data instead of one rendering a stale copy — the `/api/logs` → `cycle_reports` contract (#26).
- [Dashboard Overview Health & live memory-consolidation reference](./reference/dashboard-overview-health-and-live-memory.md) - Two dashboard component fixes (#26): the duplicative Overview → Health "Open PRs" card is removed (markup, client renderer, and the `/api/activity` → `open_prs` producer all gone), leaving the strictly-superset Merge Readiness card as the single Overview PR surface; and the Resources → Memory "Last Memory Compaction" statistic now reflects LIVE consolidation state — the newest `consolidate-memory` OODA action timestamp (or `Not tracked yet` when none exists yet — fails closed to null, no fabricated fallback) plus a new `recent_consolidation_activity` `{count, last}` on `/api/memory` — so it advances as episodic memory grows instead of showing a stale snapshot, reconciling with the Activity/Goals live-read fixes (#2697/#2695).
- [Signal continuous conversation reference](./reference/signal-continuous-conversation.md) - One long-lived, durable meeting session per operator over Signal: the `signal_sessions/` store keyed via `operators.json`, `/new` (reset) · `/help` · `/close` lifecycle controls, resume-across-restart, and preserved Note-to-Self loop prevention (issue #2577).
- [Terminal session idle detection](./reference/terminal-session-idle-detection.md) - How Simard determines when a PTY session is genuinely idle vs. silently computing.
- [RustyClawd Bash-tool idle-liveness](./reference/rustyclawd-bash-tool-idle-liveness.md) - How the RustyClawd Bash tool replaced its wall-clock cap with idle-liveness (#2607) so a still-producing command is never SIGKILLed on elapsed time: the `SIMARD_RUSTYCLAWD_IDLE_LIVENESS_SECS` idle window (`0` = unbounded) and the audit of every wall-clock cap on agent/LLM work.
Expand Down
Loading
Loading