Repository navigation
v0.5.0
Deep Code v0.5.0 发布说明
本次更新为 Deep Code 带来了手动上下文压缩命令 /compact、Ctrl+R 历史反向搜索、新的CLI命令参数、DeepSeek 官方网页搜索 API 接入、全新升级的权限系统,以及 VSCode 插件的 Slash 命令与 Plan 模式支持。这是一个以「可观测性」和「可控性」为主题的版本:你可以更清楚地看到 Deep Code 在做什么,也可以更细粒度地决定它能做什么。
全新功能
1. 手动上下文压缩:/compact
此前 Deep Code 只支持达到阈值后的自动压缩。v0.5.0 新增 /compact 命令,可以在任何时候手动压缩当前会话,主动释放上下文空间,让任务对话可以持续推进。
围绕压缩,这个版本做了一系列机制升级:
- 更健壮的压缩逻辑:借鉴 DSH 的策略,正确处理被中断的工具调用、按字节估算请求体积,避免压缩本身触发上下文超限。新增
retainRatio和retainTokens两项配置,自动压缩后会按比例(默认保留上下文窗口的 16%)或按绝对 token 数保留最近的完整对话。工具调用与结果保持完整,不会因截断产生孤儿调用。 /undo可以回到压缩前:/undo现在能从压缩检查点恢复原始用户输入和完整对话,压缩不再是单向操作。- 默认自动压缩阈值从 50% 上调到 80%:减少不必要的提前压缩,充分利用 DeepSeek 模型的 1M 上下文窗口。
配置示例(两者互斥,项目级配置会整体覆盖用户级策略):
{
"autoCompactWindow": "180K",
"retainTokens": 32768
}2. Ctrl+R 历史反向搜索
终端用户熟悉的 Ctrl+R 来了。在输入框按 Ctrl+R 即可搜索当前会话及跨会话保存的所有用户输入:
- 输入关键词实时预览匹配结果;
Ctrl+R/↑查找更早的匹配,Ctrl+S/↓查找更新的匹配;Enter把结果放入输入框继续编辑(不会直接发送),Esc/Ctrl+C取消并恢复原草稿。
跨会话历史保存在 ~/.deepcode/history.jsonl,可在 settings.json 中配置持久化策略和体积上限:
{
"history": {
"persistence": "saveAll",
"maxBytes": 10485760
}
}persistence 设为 "none" 可停止保存(已有历史仍可搜索);maxBytes 默认 10 MiB,超限时自动裁剪最旧记录,设为 0 表示不限大小。
3. CLI指定配置文件:-s / --settings
如果需要在多个 API 账号、多个环境或 CI 之间切换,可以使用 -s / --settings 显式指定一个配置文件:
deepcode -s ./settings.ci.json
deepcode -x -s ./settings.ci.json -p "运行检查并输出结果"指定的文件会被当作项目级配置源使用,这个功能适合需要“只读配置”或“每次运行使用不同配置”的场景。
4. CLI的exec模式支持 --session-id 与 --json
面向脚本化和自动化场景,exec 模式新增两个参数:
--session-id <uuid>:以指定 ID 创建并持久化会话,之后可以用--resume精确接回;--json:以单个 JSON 对象输出最终的助手回复,方便程序解析。
deepcode --exec --json --session-id 3f4b... -p "总结这个仓库的结构"5. 配置诊断:deepcode --doctor
环境出问题、配置不生效、API 连不上——现在一条命令就能定位:
deepcode --doctor # 检查当前配置、API 连接和安装环境
deepcode --doctor -s ./settings.json # 检查指定的配置文件报告会列出配置文件路径、加载状态、每个配置项的最终值及其来源(用户级还是项目级)。密钥和自定义环境变量值不会显示。检查结果分 PASS、WARN、FAIL、SKIP 四档,存在 FAIL 时退出码为 1,方便接入 CI 或排查脚本。诊断只读不修改任何配置。
6. DeepSeek 官方网页搜索 API
DeepSeek 上线了官方网页搜索 API,Deep Code 第一时间接入。在 settings.json 中开启:
{
"deepseekSearchApiEnabled": true
}当 BASE_URL 为 https://api.deepseek.com 时生效。按官方文档,网页搜索按请求次数计费(每 1,000 次成功请求 5 元),不按 token 或结果条数计费。关闭开关或使用其他 API 地址时,保持原有的内置搜索行为不变。
7. 权限系统全面升级
v0.5.0 对权限体系做了四项重要改进,目标是「少打断、可预期」:
/permissions交互式权限编辑器:不用再手写 JSON。在编辑器里可以把默认模式设为allowAll或askAll,把每个权限范围单独设为允许、拒绝、询问或跟随默认,并实时预览当前项目的实际生效配置。- 会话级授权:权限确认菜单新增 "Yes, during this session" 选项——本次会话内同类操作不再询问,但不写入配置文件。适合临时授权一批操作,又不留下长期权限。
- 写入位置可选:
/model和/permissions保存配置时,现在可以选择写入用户级还是项目级配置,不再默认只写项目级。 - 写入前先看 diff:Write 和 Edit 工具请求权限时,会直接展示将要写入或修改的内容差异,批准与否有据可依。
8. 会话自动标题与终端状态
Deep Code 借鉴了codex的策略,能够根据用户消息自动生成会话标题了,resume 列表里一眼就能找到想恢复的那个。终端标签页标题也会同步显示会话标题和实时状态指示(运行中、等待输入等)。
9. DeepCode Plus 快速配置
开通 DeepCode Plus 订阅后,运行 deepcode --plus 按提示输入 API Key,验证通过即自动保存到 ~/.deepcode-plus/settings.json。也可以在用户级或项目级 settings.json 的 env.PLUS_API_KEY 中配置。
10. VSCode 插件:Slash 命令与 Plan 模式
VSCode Companion 大幅补齐了与 CLI 的能力差距:
- 输入框支持完整的 Slash 命令体系(
/model、/compact、/permissions等); - 支持 Plan 模式切换,计划完成后弹出后续操作菜单(直接实施、调整计划等),与 CLI 体验对齐。
改进与优化
- 通知系统感知会话状态:
notify脚本不再只在任务完成时触发。现在会话完成、失败、等待用户输入、等待权限确认时都会执行通知脚本。- 彩蛋:新版通知还能怎么玩?试试这个:https://github.com/qorzj/red_alert_notify 。配置好通知脚本,然后竖起耳朵。"Construction complete, Commander."
- Process Output 与 Bash 历史:Bash 工具的进程输出展示和滚动体验大幅改进,支持 ANSI 颜色,并可以在进程输出历史间导航。
- raw 显示模式持久化:
/raw的选择会保存到全局配置,重启后保持。 - 欢迎界面适配窄终端:Logo 在窄窗口下自动裁剪,布局不再错乱。
- 修复
/undo草稿复现:回答或关闭问题后,恢复的草稿不再意外重新出现。 - Write 工具返回 snippet ID:写入结果可引用、可追踪。
升级方式
# 全局更新到最新版
npm install -g @vegamo/deepcode-cli@latest
# 查看当前版本
deepcode --version完整配置说明见 docs/configuration.md。
感谢使用 Deep Code!如有问题或建议,欢迎在 GitHub 仓库 提交 issue。
New Contributors
- @xiaofeilovecoding made their first contribution in #380
- @wang1408 made their first contribution in #388
Full Changelog: v0.4.5...v0.5.0