Skip to content

Latest commit

 

History

History
108 lines (85 loc) · 6.17 KB

File metadata and controls

108 lines (85 loc) · 6.17 KB

Penrose dashboard

The dashboard is a local research-observability surface for Penrose. It visualizes what the falsification pipeline is doing, why candidate generation can or cannot proceed, and how the current verdict state differs from the append-only decision history. It does not place orders, approve P9 proposals, promote corpus records, or read confirmation data.

Start it

From the repository root:

make dash

Then open http://127.0.0.1:8077/. Set PENROSE_PORT to use another local port. The server uses only the Python standard library and refreshes its cached HTML every 60 seconds. The activity panel polls the assembled live state every eight seconds while the browser tab is visible.

Opening index.html directly shows placeholder-safe example data. Use the local server when reviewing real results.

What each view means

The sidebar is split into two groups: Workflow (Overview, Action Required, Analysis Reports, Verdict Archive, Advisory Patterns, Candidate Lab) and System & Help (Documentation, Data Sources, Evidence, Settings, Support).

  • Overview is the starting point. It shows the P1–P9 system map, current run activity, the authoritative current-verdict distribution, candidate readiness, action items, Pennie, and a compact self-calibration status. Self-calibration details remain reachable from this status card but are intentionally not a primary navigation item.
  • Action Required is next in the workflow: missing-data claims, pending modules, and proposals that need operator attention. It does not perform approval.
  • Analysis Reports shows claims that reached analysis and their stored diagnostics. Claim statements are the primary titles; stable internal IDs are retained as labeled technical lineage.
  • Verdict Archive is the audit/review surface for current and old outcomes. current means the latest live row for a decision identity. history contains replaced or explicitly superseded versions and is never included in current counts. Filters cover verdict, kill reason, strategy class, source/run identifiers, and rationale text.
  • Advisory Patterns is advisory corpus context - recurring failure modes across the active verdict corpus. It informs but never gates a verdict.
  • Candidate Lab shows the corpus abstraction ladder, generator safety state, registered search budgets, emitted populations, admitted candidates, failures, and calibration status. Zero admitted candidates is rendered as a diagnosable state, not hidden as an empty screen.
  • Documentation is the in-app concepts, operating guides, gates, and glossary reference.
  • Data Sources shows the source document a run's claims came from, and the market data each claim was tested against; it is not a catalog inventory.
  • Evidence is the frozen record behind every verdict - epoch/corpus provenance and proof it can be replayed. Epoch migration internals are collapsed by default so the operator sees the active-evidence meaning before hashes and replay identifiers.
  • Settings shows read-only effective configuration and credential status; settings are changed only via reviewed CLI (penrose configure), never from this page.
  • Support links to contribute, discuss, or report an issue on GitHub.

Pennie is embedded in Overview for hypothesis preparation. On every other screen a bottom-right drawer provides the same conversation so an operator can ask for help without abandoning context. Only the full Overview workspace exposes attachment and submission preparation controls.

Decision-log semantics

decisions.jsonl is append-only. The dashboard reads every valid object row and projects two views:

  1. The current state keeps only the last non-superseded row per decision_id (falling back to claim_id). A later replacement row wins. A supersession marker removes that identity from current state.
  2. The history keeps all earlier decision versions for audit. Supersession markers are counted but are not rendered as research verdicts.

The archive response compacts large nested robustness payloads to the metrics needed for review. The canonical JSONL remains unchanged and read-only.

The sidebar health block reports only the active epoch. Historical-version totals belong in Verdict Archive and are deliberately excluded from the always-visible health summary, preventing a fresh epoch from looking as if it contains legacy evidence.

Read-only inputs

The server assembles window.__LIVE__ independently from:

  • dashboard/live.json and dashboard/progress.json for latest-run and in-flight state;
  • decisions.jsonl for current verdicts and history;
  • dream_runs.jsonl and synthesis_runs.jsonl for generated-search lifecycle summaries;
  • dashboard/corpus.json for observation, family-principle, and cross-family-mechanism counts;
  • dashboard/calibration.json, review_queue.jsonl, reports/analysis_index.jsonl, and report Markdown.

One broken or absent source is omitted while the last good page remains available. /live.json exposes the assembled read-only projection for debugging, and /healthz returns ok.

Narrow write surface

Pennie and Support use same-origin, per-launch-token endpoints that may write only validated files to inbox/ or the feedback log. They cannot write the brain, decision log, corpus, holdout, or approval state. P9 approval remains outside the browser.

Troubleshooting

  • If the page shows examples rather than project state, confirm it is served through make dash rather than opened as a file.
  • If the requested port is occupied, the server prints the next-port command instead of a traceback. Either stop the stale listener or run PENROSE_PORT=8078 make dash.
  • If activity appears stuck, inspect dashboard/progress.json; a completed run should set running to false.
  • If archive totals differ from raw line counts, that is expected: malformed lines are isolated, supersession markers are not verdicts, and repeated decision identities have only one current row.
  • If Candidate Lab reports insufficient_abstraction, inspect dashboard/corpus.json. Synthesis needs supported family-principle or cross-family-mechanism nodes; observations alone are not silently promoted.