Skip to content

feat(tui): plan view with skill-based chat and execute tab#34

Open
ktpei wants to merge 16 commits intomainfrom
feat/plan-view
Open

feat(tui): plan view with skill-based chat and execute tab#34
ktpei wants to merge 16 commits intomainfrom
feat/plan-view

Conversation

@ktpei
Copy link
Copy Markdown
Collaborator

@ktpei ktpei commented Apr 27, 2026

Summary

  • Add skill-based plan chat with /spec and /prd slash commands for bounded artifact generation
  • Wire chat into Execute tab for task execution
  • Add per-session permission rulesets to daemon for scoped tool access
  • Fix daemon streaming with atomic submit-and-stream to eliminate race conditions
  • Add plan instance management, scaffold directory creation, and plan file validation
  • Rename assistant label to "Ralph" in plan chat

Test plan

  • bun run check:types passes
  • bun run check (biome lint) passes
  • bun run test passes
  • Start daemon and TUI (bun run dev), open Plan tab
  • Type /spec, describe a project → SPEC.md should be generated
  • Type /prd → prd.json should be generated from SPEC.md
  • Switch to Execute tab → tasks from prd.json should be visible
  • Ctrl+T toggles task overlay in Plan tab

🤖 Generated with Claude Code

ktpei and others added 15 commits April 27, 2026 17:47
Implement 3-tab structure for the TUI with Plan view as the primary
deliverable. Plan view includes a chat interface (spec/PRD creation via
daemon jobs) and a task board (prd.json viewer + progress log). Extract
existing dashboard into ExecuteView, add ReviewView placeholder.

New hooks: useChat (poll-based daemon chat), usePlanFiles (fs.watch on
.ralph/), usePlanInstance (auto-resolve OpenCode instance).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add create-prompt mode for generating PROMPT.md execution instructions.
Fix chat polling to check immediately after job submission instead of
waiting 1 second, and add a 2-minute timeout to prevent infinite
"Thinking..." state. Surface instance errors in the plan chat UI.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wires a start-execution action in the Execute view that reads
.ralph/PROMPT.md and submits a job, surfaces a daemon-offline
indicator in Plan chat, keeps all tab views mounted so state
survives tab switches, and drops the unused Ctrl+M mode toggle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Restores the per-instance Chat UI (added on main in #8) that was
displaced by the tab-based rewrite. Pressing enter on a selected
instance in the Execute view opens the full-screen Chat for that
instance, matching the previous Dashboard flow.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Refactor plan chat from open-ended conversation to bounded skills (/spec, /prd).
Add per-session permission rulesets to daemon. Wire chat into execute tab.
Fix daemon streaming with atomic submit-and-stream. Add plan instance management.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Merge idle waiters, null-safe response handling, and permission support
with main's StateStore/markJobTerminal persistence pattern. Fix streaming
test hangs by checking accumulated outputText before entering idle wait.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant