Skip to content

Latest commit

 

History

History
134 lines (94 loc) · 3.62 KB

File metadata and controls

134 lines (94 loc) · 3.62 KB

Geneclaw Dashboard — Operations Runbook

Org: Clawland-AI/Geneclaw
Module: geneclaw/dashboard/
Type: Read-only Streamlit web application


1. Prerequisites

Requirement Command
Python ≥ 3.11 python --version
Geneclaw installed pip install -e .
Dashboard extras pip install -e ".[dashboard]"
Events data nanobot geneclaw evolve --dry-run (generates events.jsonl)
Benchmark data (optional) nanobot geneclaw benchmark --save

The [dashboard] extra installs Streamlit, Plotly, and Pandas.


2. Quick Start

# Install dashboard dependencies (one-time)
pip install -e ".[dashboard]"

# Launch the dashboard
nanobot geneclaw dashboard

The dashboard opens at http://localhost:8501 by default.

Custom Port

nanobot geneclaw dashboard --port 9090

Custom Data Files

nanobot geneclaw dashboard \
  --events /path/to/events.jsonl \
  --benchmarks /path/to/benchmarks.jsonl

3. Dashboard Pages

3.1 Overview

  • Time range selector (24 h / 7 d / 30 d / All time)
  • KPI cards: Proposals generated, Apply attempted/succeeded, Success rate
  • Risk distribution bar chart
  • Top files touched leaderboard
  • Recent 20 events table

3.2 Event Timeline

  • Grouped bar chart (hourly or daily granularity) showing event types over time
  • Risk level filter (multi-select)
  • Event detail table (top 100 matching events)

3.3 Proposal Audit

  • Proposal selector dropdown (by proposal_id)
  • Metadata display: risk level, diff lines, files touched, objective, tests to run, rollback plan
  • Related events timeline for the selected proposal

3.4 Benchmarks

  • Total duration trend line chart (across benchmark runs)
  • Stage breakdown grouped bar chart (avg ms per stage)
  • Event count filter (multi-select)
  • Raw stage data table

4. Data Sources

File Generated By Contents
geneclaw/events/events.jsonl nanobot geneclaw evolve, apply EvoEvent records
geneclaw/benchmarks/benchmarks.jsonl nanobot geneclaw benchmark --save BenchmarkResult records

Both files are append-only JSONL. The dashboard reads them without modification.


5. Security & Privacy

  • Read-only: The dashboard never writes files, triggers evolve/apply, or changes configuration.
  • Redaction: All string fields are run through the same secret-redaction patterns used elsewhere in Geneclaw. API keys, tokens, and passwords are masked with ***REDACTED***.
  • No external network: The Streamlit server runs locally only (--server.headless true). No data is sent externally.

6. Troubleshooting

Problem Solution
ModuleNotFoundError: streamlit Run pip install -e ".[dashboard]"
"No events found" on Overview Generate events: nanobot geneclaw evolve --dry-run
"No benchmark data" on Benchmarks Run nanobot geneclaw benchmark --save
Port already in use Use --port <other_port>
Stale data Streamlit caches data per session; click Rerun (top-right) or press R

7. Development

Running Tests

pytest tests/test_geneclaw_dashboard.py -v

Module Structure

geneclaw/dashboard/
├── __init__.py
├── app.py           # Streamlit entry point
├── loader.py        # Data loading, filtering, redaction
└── views/
    ├── __init__.py
    ├── overview.py   # Overview page
    ├── timeline.py   # Event Timeline page
    ├── audit.py      # Proposal Audit page
    └── benchmarks.py # Benchmarks page