问题:输入 /help、/config 等 slash 命令后没有任何反应
根因:runner/repl.rs 中创建了 CommandRegistry 但从未调用 register_all() 注册内置命令
修复:
let mut slash_registry = CommandRegistry::new();
crab_commands::builtin::register_all(&mut slash_registry);验证:
- 所有 61 个 builtin command 测试通过
help_opens_overlay测试确认/help正确打开 overlay
- 增量构建:4.5 秒
- TUI 清洁构建:17 秒
- 全量测试套件:2 分钟 (4940/4940 通过)
非 bug:这是故意的设计选择,对齐 Claude Code / codex 参考实现。
行为:
- 默认情况下,thinking deltas 只更新 transient spinner,不写入 transcript
- 用户可通过设置
CRAB_SHOW_THINKING=1环境变量启用 inline ThinkingCell 视图
位置:crates/tui/src/app/mod.rs:14-20
非 bug:功能已完整实现,只是默认关闭。
实现状态:
- ✅
VimModeenum 定义完整 (Normal/Insert/Visual/Command) - ✅
VimHandler处理所有 vim 按键逻辑 - ✅
BottomBar渲染 vim 模式 badge (左侧,类似 vim 的-- INSERT --) - ✅ App 正确传递
vim_modelabel 到 BottomBar
默认行为:VimHandler::new() 中 enabled: false
用户激活:用户可以通过快捷键切换 vim 模式(需检查 keybindings)
- 在 README 或 docs/ 中文档化
~/.crab/config.toml格式 - 添加 DeepSeek API 配置示例
- 记录
CRAB_SHOW_THINKING环境变量
- 考虑在首次运行时显示 vim 模式切换提示
- 为常用环境变量添加
/configoverlay 展示
-
CI 强制检查:✅ 全部通过
cargo fmt --checkRUSTFLAGS="-Dwarnings" cargo clippycargo nextest run --workspacecargo deny check
-
测试覆盖率:4940 个测试,0 失败
-
构建性能:满足开发工作流需求