Skip to content

feat: support native plans in output modes - #86

Closed
jefft72 wants to merge 3 commits into
plan/07-plan-apifrom
plan/08-output-modes
Closed

jefft72 wants to merge 3 commits into
plan/07-plan-apifrom
plan/08-output-modes

Conversation

@jefft72

@jefft72 jefft72 commented Aug 16, 2026

Copy link
Copy Markdown
Contributor

Summary

Makes plan mode observable and resolvable outside the TUI, across print, JSON, and RPC output modes, and in exported HTML transcripts.

Replaces #71.

Reasoning

Plan mode was only reachable interactively, which made it unusable for scripted and RPC callers.
Plan lifecycle events are deliberately suppressed on the RPC wire rather than forwarded, because RPC clients resolve plans through explicit commands and would otherwise see state transitions they cannot act on.

Profile switch notices and the RpcEvent union stay in the integration stack, so these modes carry no task profile dependency.

Changes

  • Streams plan submission and resolution through print and JSON output modes
  • Suppresses native plan lifecycle events on the RPC wire and adds a type-level assertion pinning that
  • Renders plan artifacts in exported HTML transcripts
  • Adds print mode, RPC semantics, and export coverage

Testing

  • npx vitest --run test/print-mode.test.ts test/rpc-prompt-response-semantics.test.ts test/export-html-plan-mode.test.ts
  • tsgo --noEmit reports zero errors

Render native plan artifacts in exported HTML and reject plan lifecycle state from print-mode activation paths. Cover tree export, queued prompts, and JSON event suppression without exposing plan bookkeeping.
Keep native plan lifecycle state out of JSON and RPC wire protocols while rejecting non-interactive plan targets before mutation. Cover startup, replacement, prompt, and streaming command boundaries.
- Print, JSON, and RPC consumers could not observe or resolve a plan, which made plan mode unusable outside the TUI
- Profile switch notices and the RpcEvent union stay in the integration stack so these modes carry no task profile dependency
@Pepps233
Pepps233 self-requested a review August 16, 2026 18:50
@Pepps233 Pepps233 added enhancement New feature or request coding-agent labels Aug 16, 2026
@Pepps233
Pepps233 requested a review from Issacboy123 August 16, 2026 18:51

@Issacboy123 Issacboy123 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Native plan artifacts now flow through print, JSON events, RPC, and HTML export instead of being translated into mode-specific substitutes. Focused tests cover each surface. No issues discovered during my review.

@Pepps233 Pepps233 closed this Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coding-agent enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants