feat: enhance terminal, ACP, and web UI with team tools, skill display, and session improvements#65
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6e6a29c7c9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| r.pendingSystemPrompt = "" | ||
| r.pendingEnvInfo = "" | ||
| if spData, spErr := json.Marshal(sp); spErr == nil { | ||
| _, _ = r.file.WriteString(string(spData) + "\n") | ||
| } |
There was a problem hiding this comment.
Preserve pending system prompt when flush write fails
The new buffered flush clears pendingSystemPrompt/pendingEnvInfo and ignores the write error for the system_prompt entry, so an I/O failure on that first flush can permanently drop the system prompt while later entries still persist. This breaks resume behavior that depends on EntrySystemPrompt (prompt/env snapshot) and is hard to recover because the buffer is already cleared; the flush should only clear pending fields after a successful write (or propagate the error).
Useful? React with 👍 / 👎.
Summary
Enhance the terminal/ACP handler, TUI formatting, web UI tool cards, and session recording across the stack — adding rich display for team and skill tools, fixing light-mode terminal rendering, and preventing empty session files.
Related Issues / Tickets
Type of Change
Changes Made
ACP handler — team tool kind mapping (
internal/handler/acp.go): Addedteam_listasToolKindRead;team_send_message,team_create,team_spawn,team_deleteasToolKindExecute.Web handler — tool display info (
internal/handler/web.go): Added display metadata (title, icon, category, subtitle) forload_skill,team_list,team_send_message,team_create,team_spawn,team_delete.Session recorder — lazy system prompt flush (
internal/session/session.go): Buffer system prompt + env info until the first real message is recorded, preventing empty session files when jcode is opened and immediately closed.Skills loader — description in output (
internal/skills/skills.go): Includedescriptionattribute in the<skill>tag so consumers (TUI, web) can show a short summary instead of the full body.TUI formatting — new tool renderers (
internal/tui/format.go): Added compact formatters forload_skill(name + description),team_list(structured member list with status dots), and team operations (team_send_message,team_create,team_spawn,team_delete).Web UI — ToolCallCard rich renderers (
web/src/components/ToolCallCard.vue): Added dedicated card renderers for skill loader, team list (member table with status badges), team create (name + lead), team spawn (name + prompt preview + ID), and team message (recipient + summary + body preview).Web UI — terminal panel UX (
web/src/components/TerminalPanel.vue): Moved+button inline after last tab; close (×) icon appears on hover instead of always-visible; active tab shows × at reduced opacity.Web UI — light mode fixes (
web/src/style.css,TerminalInstance.vue): Added light-mode terminal background color; xterm viewport background override; light-mode code block styling (GitHub-style#f6f8fa).Web UI — chat prose tightening (
web/src/style.css): Reduced line-height to 1.625, tighter paragraph/list spacing, adjusted font-size to 15px for a more compact chat feel.Web UI — alignment tweaks (
App.vue,ToolCallCard.vue): Addedpl-9indent on tool cards; removed left padding on tool card headers for visual alignment with the gutter.Testing
load_skill,team_list, and team operation tools.jsonlfileScreenshots / Recordings
Checklist
Additional Notes
EntrySystemPromptentry format.descriptionattribute) is additive — existing consumers that only parsednamewill continue to work.