Codineer v0.6.4
Bug Fixes
-
fix(runtime):
build_runtimenow returns the resolved model name alongside the runtime instance, so the banner and status output always display the actual model (e.g.claude-3-5-sonnet) instead of the raw input alias like"auto". -
fix(cli/resume): Global flags
--model,--permission-mode, and--allowed-toolsare now correctly forwarded when combined with--resume; previously they were silently discarded. Additionally,codineer --resume <session>with no trailing slash commands now opens the interactive REPL with the session pre-loaded, instead of falling through to a non-interactive code path.
New Features
-
feat(banner): The startup banner now adapts dynamically to terminal width (minimum 80 cols) and re-renders correctly on window resize. The
--resumecommand in the banner is wrapped across multiple lines using display-width-aware wrapping so it is never truncated regardless of session path length.tilde_session_pathis now exported for use across crates. -
feat(repl/ux): Interactive REPL behaviour aligned with Claude Code:
?inline shortcuts panel — typing?at the start of the prompt instantly shows a shortcuts reference panel below the prompt; any further input hides it.?+ Enter submits?to the AI as normal text.- Double Ctrl+C to exit — first
Ctrl+Con an empty prompt shows an inline "Press Ctrl-C again to exit" hint below the prompt; a secondCtrl+Cwithin 1.5 s exits. Any other key clears the hint. !bash mode — typing! <command>(e.g.! ls -la) sends the shell command to the AI as a run request instead of plain chat input.\+ Enter for newline — pressing Enter with a trailing\inserts a literal newline (same asShift+Enter/Ctrl+J).- Double-tap Esc to clear — two rapid
Escpresses (within 1.5 s) in plain mode clear the current input line. - Session restore —
run_replnow accepts an optionalresume_path; when present the session is activated before the first prompt is drawn. - Goodbye message — on exit the resume command for the finished session is printed so users can easily re-attach later.
Tests
- test: Added 16 new unit tests for the editor covering double Ctrl+C exit,
\+Enter newline, double-Esc clear, Ctrl+D behaviour,?shortcuts panel rendering,InterruptHintaction distinctness, andsubmit_or_togglelogic. CLI tests updated to assert the newresume_pathfield and added an end-to-end test verifying that--model/--permission-modesurvive--resumeparsing. Overall unit test coverage ≥ 95%.
Documentation
- docs: README (EN & CN) interactive REPL keyboard shortcuts table updated to reflect all new shortcuts; prompt character updated from
>to❯.
Chores
- chore: Version bumped to
0.6.4.
问题修复
-
fix(runtime):
build_runtime现在同时返回运行时实例和已解析的 model 名称,Banner 及状态栏将显示实际 model(如claude-3-5-sonnet),而非原始别名(如"auto")。 -
fix(cli/resume): 当
--resume与--model、--permission-mode、--allowed-tools同时使用时,全局 flag 不再被静默丢弃,均可正常生效。此外,codineer --resume <session>若未附带 slash 命令,现在将正确进入交互式 REPL 并预加载历史会话,不再走非交互代码路径。
新功能
-
feat(banner): 启动 Banner 自适应终端宽度(最小 80 列),调整窗口大小后实时重绘。
--resume命令按显示宽度自动换行,无论 session 路径多长均不再截断。tilde_session_path提升为pub(crate)供跨模块使用。 -
feat(repl/ux): 交互式 REPL 体验全面对齐 Claude Code:
?内联快捷键面板 — 在提示符首位输入?即时在提示符下方展示快捷键参考面板;继续输入任意字符自动隐藏;?+ Enter 将?正常发送给 AI。- 双击 Ctrl+C 退出 — 空提示符下首次按
Ctrl+C在提示符下方显示"Press Ctrl-C again to exit"提示;1.5 秒内再次按Ctrl+C退出;按任意其他键自动隐藏提示。 !bash 模式 — 输入! <命令>(如! ls -la)会将 shell 命令作为执行请求发送给 AI,而非普通聊天输入。\+ Enter 换行 — 在行尾输入\后按 Enter 插入换行符(等同于Shift+Enter/Ctrl+J)。- 双击 Esc 清空输入 — 普通模式下 1.5 秒内连按两次
Esc清空当前输入行。 - 会话恢复 —
run_repl现在接受可选resume_path参数,会在首次显示提示符前自动恢复指定会话。 - 退出提示 — 退出时打印当前会话的 resume 命令,方便下次快速续接。
测试
- test: 新增 16 个 editor 单元测试,覆盖双击 Ctrl+C 退出、
\+Enter 换行、双击 Esc 清空、Ctrl+D 行为、?快捷键面板渲染、InterruptHintaction 独立性及submit_or_toggle逻辑。CLI 测试同步更新以适配新增的resume_path字段,并新增端到端测试验证--model/--permission-mode经--resume解析后的正确透传。整体单测覆盖率 ≥ 95%。
文档
- docs: README(英文及中文)交互式 REPL 快捷键表更新,反映所有新快捷键;提示符字符由
>更新为❯。
Full Changelog: v0.6.3...v0.6.4
Full Changelog: v0.6.3...v0.6.4