Skip to content

feat: live progress via --output-format stream-json; nous status --watch TUI #127

@sriumcp

Description

@sriumcp

TL;DR

Pipe Claude Code's stream-json events into iter-N/executor_log.jsonl, then power a no-LLM nous status --watch TUI that redraws every 1–5 seconds with phase, arm progress, latest tool calls, and stuck-detection.

Why this matters

Even with #114's nous status, the user has no per-tool-call signal during a 90-minute EXECUTE_ANALYZE turn. The 5/18 sessions show this becoming a tic: "report progress" / "where's the campaign at" every few minutes, each one answered by the agent re-running the same five-line bash pipeline.

What's already shipped

Proposed approach

  1. Switch cli_dispatch.py (or, after Agentic Strategy Evolution: a three-loop methodology for optimizing multi-layer policy spaces #1, sdk_dispatch.py) to consume the streaming event log.
  2. Tee events to iter-N/executor_log.jsonl — one JSON line per tool call / message.
  3. Implement nous status --watch using a small TUI library (rich / textual). Read state.json + experiment_plan.yaml + executor_log.jsonl + worktree state + last 3 retry-log lines. Redraw every 1–5 seconds.
  4. Add stuck-detection: heartbeat absence > 5 minutes triggers a Channels alert (depends on Future: Outer loop, observability, and advanced features #10) or a stderr warning.
  5. Bonus: nous status --line prints a single-line summary suitable for shell prompts and CI logs.

Acceptance criteria

  • During a live EXECUTE_ANALYZE, nous status --watch shows tool calls within 1–2 seconds of occurrence.
  • If the executor goes silent for 5+ minutes, the TUI displays a clear "STUCK?" warning.
  • nous status --line is documented and stable enough to embed in zsh/bash prompts.

Out of scope


Part of #120.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions