Skip to content

feat: TUI progress visibility for council reviews #9

Description

@skwid138

Summary

When a council review is in progress, the user has no visibility into what's happening in the TUI. Reviews can take 60-180+ seconds, and the only feedback is silence until the aggregated result appears (or an error surfaces). The recently added debug logging helps developers diagnose issues but is not a user-facing progress indicator.

Desired Behavior

Provide real-time progress feedback in the TUI during council reviews, such as:

  • "Council review started — dispatching to N models..."
  • "Reviewer 1/N responded (model-name)" as each completes
  • "Waiting for M remaining reviewers..." with elapsed time
  • "Aggregating responses..." when the aggregation phase begins
  • Timeout warnings: "Reviewer X approaching timeout (150s/180s)..."

Current State

  • The plugin logs structured messages via ctx.client.app.log() when debug: true
  • These logs go to opencode's internal log stream, not to user-visible TUI elements
  • The council_review tool returns only the final aggregated result or an error string
  • No intermediate progress is surfaced to the calling agent or user

Constraints & Considerations

  • OpenCode's plugin API may not currently support streaming progress updates to the TUI — this may require upstream API additions or a convention for progress reporting
  • The progress messages should be informational, not pollute the conversation history
  • Should work regardless of whether debug logging is enabled
  • Consider whether this is best implemented as:
    • Plugin-level progress events (if the API supports it)
    • Periodic status messages to the parent session
    • A convention where the tool returns partial results that the calling agent can surface

References

  • src/index.ts lines 470-483 (current logging infrastructure)
  • OpenCode plugin API documentation for available progress/streaming mechanisms

Metadata

Metadata

Assignees

No one assigned

    Labels

    type/featureNew feature or capability request.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions