docs(us-015): add Part 4 — per-story agent/worktree/summary in dashboard

Each story shows an optional second line:
  agent · status · worktree path (if not main) · last output summary

Sources: git worktree list, agent-config.json, session.json,
completionNotes, git log on feat/<id> branch, iteration logs.
--compact flag suppresses metadata lines.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Dobromir Popov
2026-06-29 16:21:57 +03:00
parent dac81a66b4
commit 8ea70ff6a0

View File

@@ -138,3 +138,41 @@ The OpenRouter model is set via `--model` (e.g. `openai/gpt-4o`, `mistralai/mist
- `ralph_progress.py run-next --agent custom --agent-cmd ./my-agent.sh` runs a task via custom script
- `python -m pytest` passes from repo root
- Commit only this story's changes
---
## Part 4: Per-story metadata in dashboard
Every story in the dashboard gets an optional second line showing what is known about it:
```
✓ US-012 12 — Real PyTorch model backend
codex · done · "Added model_backend.py with bitsandbytes NF4 support"
⚡ US-014 14 — Tracker-as-first-layer-node
codex · in-progress · worktree: ../AI-worktree-us-014
→ US-015 15 — Ralph agent-agnostic runner
claude · in-progress · worktree: ../AI-worktree-us-015
```
### Sources
| Data | Source |
|------|--------|
| Active worktree path | `git worktree list --porcelain` — match branches `feat/<story-id>` |
| Agent (active story) | `.ralph-tui/agent-config.json``agent` field |
| Agent (completed story) | `.ralph-tui/session.json``agentPlugin`; or `completionNotes` text |
| Last output summary | `story.completionNotes` (done); latest `git log -1 --format=%s feat/<id>` (worktree); last lines of most recent `.ralph-tui/iterations/<hash>_<date>_<id>.log` (in-progress) |
### Behaviour
- Metadata line is omitted if there is nothing to show (no agent, no worktree, no notes)
- Default: shown (verbose). `--compact` flag suppresses it for a tighter one-line-per-story view
- `_active_worktrees() -> dict[story_id, rel_path]` helper, called once per dashboard render
- `_story_meta(story, worktrees, session) -> str | None` helper returns the joined metadata string
### Additional acceptance criteria
- `ralph_progress.py show` displays worktree path for any story whose branch exists as `feat/<story-id>`
- Agent name appears next to in-progress and recently-completed stories
- `completionNotes` from prd.json appears as the summary for done stories
- `--compact` suppresses metadata lines