Add live terminal dashboard with Rich

Replace scrolling LiteLLM debug logs with an in-place Rich Live dashboard
that shows key metrics after each turn: funds sparkline, task progress bars
with colored domain labels, team skill bars, runway urgency, and more.

- New: src/yc_bench/runner/dashboard.py (BenchmarkDashboard, DashboardState)
- Add on_turn/on_turn_start callbacks to agent loop
- Auto-detect TTY, redirect all logging to logs/debug.log when live
- Add --no-live flag to disable dashboard and get old log output
- Use alternate screen buffer (screen=True) for clean rendering
- Fix start.sh: clean up stale temp files before mktemp

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
adit jain 2026-02-26 22:11:55 -08:00
parent d4ce0a1e5a
commit f25a2be1e4
6 changed files with 570 additions and 17 deletions

View file

@ -95,6 +95,7 @@ def run_command_cli(
"default", "--config",
help="Preset name ('default', 'fast_test', 'high_reward') or path to a .toml file",
),
no_live: bool = typer.Option(False, "--no-live", help="Disable the live terminal dashboard"),
):
"""Run a full benchmark: migrate DB, seed world, run agent loop to completion."""
from dotenv import find_dotenv, load_dotenv
@ -109,6 +110,7 @@ def run_command_cli(
company_name=company_name,
start_date=start_date,
config_name=config_name,
no_live=no_live,
)
raise SystemExit(run_benchmark(args))