Conversation
- TerminalView subscribes to WebSocket terminal events for a specific agent - Initial log fetch via REST (GET /api/agents/:id/logs, last 200 lines) - Auto-scroll to bottom on new output via ScrollViewReader - Monospace font with black background / green text - Kill button in toolbar with confirmation dialog - TerminalInputBar with monospaced text field + send button - Sends input via WebSocket terminal:input command - Chains onto existing onMessage handler to avoid overwriting AppState's handler Closes #84
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Warning Rate limit exceeded
⌛ 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. 📒 Files selected for processing (2)
✨ 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 |
- Extract TerminalViewModel (@observable @mainactor class) to eliminate @State closure that won't compile (#1) - Use [weak self] captures and @mainactor dispatch for thread safety (#6) - Fix auto-scroll: add invisible bottom anchor below text content so ScrollViewReader scrolls to actual bottom, not text top (#4) - Add .defaultScrollAnchor(.bottom) for initial scroll position - Cap output buffer at 50K chars with newline-boundary trimming (#5) - Bump font from .caption to .footnote for terminal readability (#8) - Add contextual status messages: not connected / loading / waiting (#9) - Enable .textSelection on terminal output - Reorder TerminalInputBar modifiers to place text-input-specific modifiers before .textFieldStyle (#3) - Use .task for async subscribe, .onDisappear for sync cleanup
Summary
terminal:outputevents for a specific agent, fetches initial logs via REST (GET /api/agents/:id/logs), auto-scrolls on new output, monospace green-on-black rendering, kill button in toolbar with confirmation dialogterminal:inputcommand, submits on return keywsManager.onMessagehandler to avoid overwriting AppState's manifest/status handlingDependencies
subscribeTerminal,unsubscribeTerminal,sendTerminalInputfetchLogs(agentId:lines:)killAgent,client,wsManager,manifestTest plan
Closes #84