- Fix doctor command to properly validate DEEPSEEK_API_KEY (check non-empty)
- Lower auto-compaction threshold from 95% to 85% to trigger earlier
- Fix should_compact() to always trigger when over token threshold
(even with few unpinned messages)
This fixes the issue where auto-compaction wasn't working and users
would hit context length errors.
* Polish UI, fix bugs, and rewrite README for clarity
- Fix welcome banner generating a fake session ID (random UUID that
didn't match the actual session); now shows tips and omits the
misleading session line
- Fix footer redundancy: mode and model were shown in both the header
and footer; footer now shows session ID, token count, and help hint
- Fix STATUS_SUCCESS and STATUS_WARNING being the same color
(both DEEPSEEK_SKY), making success/warning states indistinguishable;
success is now green, warning is amber
- Remove unprofessional thinking tagline ("You're absolutely right!
... maybe."); replaced with professional labels
- Fix README mode cycle documentation (said Normal->Plan->Agent->YOLO
but code actually cycles Plan->Agent->YOLO->Plan)
- Fix README tool miscategorization: web.run, web_search,
request_user_input, and multi_tool_use.parallel were listed under
"File Operations" instead of their own categories
- Rewrite README with numbered getting-started steps, keyboard
shortcuts table, cleaner tool categories, environment variable table,
and compact troubleshooting table
- Remove unused imports (chrono::Local, uuid::Uuid, Color, Modifier)
and dead code (mode_color, mode_badge_style)
https://claude.ai/code/session_011XiGZRhainhyvZ8BKKrfzj
* Update src/tui/app.rs
* Update README.md
- Add image_query support to web.run (DuckDuckGo image search)
- Encode tool-call function names for Chat Completions history rebuild
- Allow safe MCP meta tools in multi_tool_use.parallel
- Update prompts for stronger citation placement and quote-limit guidance
- Intelligent context offloading: large tool results (>15k chars) auto-moved to RLM memory
- Persistent history context: compacted messages offloaded to RLM history variable
- Full MCP protocol: SSE transport, Resources (resources/list, resources/read), Prompts (prompts/list, prompts/get)
- mcp_read_resource and mcp_get_prompt virtual tools exposed to the model
- Dialectical Duo mode with Player/Coach TUI rendering
- Dynamic system prompt refresh at each turn for up-to-date RLM/Duo/working-set context
- project_map tool for automatic codebase structure discovery
- delegate_to_agent alias for streamlined sub-agent delegation
- Default theme changed to Whale with updated color palette
- Fix MCP test compilation for updated McpServerConfig struct shape
- Fix clippy warnings (strip_prefix, inspect_err, flatten, is_some_and)
- Set is_loading immediately in dispatch_user_message to prevent
a race condition where the user could dispatch two messages before
the TurnStarted event arrived
- Raise fixpoint loop cap in enforce_tool_call_pairs from 10 to
messages.len() so long conversations converge; add warn logging
on non-convergence
- Scan non-contiguous tool results in build_chat_messages safety net
and drain orphaned results that aren't immediately adjacent
- Log specific missing tool IDs when stripping orphaned tool_calls
- Add tests for partial tool results and long-chain convergence
- Bump version to 0.3.4
- Redesign footer: live clock, lowercase mode badges, color-coded context %
- Stream thinking/reasoning blocks in real-time with sidebar style and cursor
- Replace ThinkingSummary with richer Thinking variant in history cells
- Remove dead code (unused footer helpers, context bar, copy hint)
- Bump version to 0.3.3
The dtolnay/rust-toolchain action already specifies the toolchain version
in the action reference (@stable). Adding toolchain: stable as an input
was causing 'toolchain is a required input' errors.
Fixed in:
- ci.yml
- release.yml
- crates-publish.yml
- Use strip_prefix instead of manual string slicing in apply_patch.rs
- Use vec![] macro instead of Vec::new() + push in api_key.rs
- Fix iter_overeager_cloned by filtering before cloning in session_picker.rs
- Use ? operator instead of let...else in delete_selected
- Allow clippy::too_many_arguments for build_list_lines
🤖 Generated with [Claude Code](https://claude.com/claude-code)