[中文](#cn-v0.1.2-alpha.1) | [English](#en-v0.1.2-alpha.1)
<h3 id="cn-v0.1.2-alpha.1">新增功能</h3>
* 会话流默认在每个已完成回答前折叠过程内容,并默认折叠的「System prompt」 @07akioni, @lsdsjy
* 会话流正文宽度可自适应或拖拽调整 @yixiangihsiang
* 会话流每个已完成回答后可展开查看精确 token 用量 @hypatiamay, @ZiyaZhang
* 会话视图提供紧凑的回合导航 @LegGasai
* 统一界面次级文字层级,会话流支持字号调节,Markdown 表格随正文字号缩放 @yixiangihsiang
* 插件支持在模型设置页添加提供方登录配置 @LegGasai
* 支持注册第三方语言,并补全多语言文本 @tianyicui, @LegGasai, @imccyu
* 开启子代理模型选择后,Agent 可在授权范围内选择提供方、模型和推理力度 @Dudu-0223
* 启动子代理时可指定提供方、模型、推理力度和最大输出长度 @pku-xht
* Claude Code、Codex 子代理支持配置模型 @pku-xht
* Python SDK runtime 新增 Windows x64 发行包 @tianyicui
* ACP 补齐标准会话控制、模型设置、MCP、权限和取消能力 @tianyicui, @pku-xht
* DeepSeek 官方适配器默认随请求提供已启用插件的包名和版本,可在配置中关闭 @tianyicui
* DeepSeek 官方适配器新增可选的 Session 日志增量上传,默认关闭 @tianyicui
<h3>体验优化</h3>
* 改善页面启动流程,减少代码加载次数和数据量开销 @lsdsjy
* 改善会话初始化流程,减少数据传输解析开销,统一会话自有状态加载 @imccyu, @Kingwl, @kermanx
* 改善会话记录占用的磁盘空间 @Magolor
* 优化输入交互中的 `/` 与 `@` 菜单图标、目录加载、文件搜索 @Yifffan, @LegGasai
* 会话运行中存在草稿时主按钮切换为「发送」,消息排队发送 @lsdsjy
* 输入框中的文件和会话引用在相邻文字编辑后仍保持有效 @LegGasai
* 切换会话后仍保留未提交的提问卡片草稿 @LegGasai
* 会话流中的流式回复代码块在生成期间持续显示语法高亮 @07akioni
* 会话流中的提问历史显示为可读的问答卡片,并标明取消或中断后的未提交状态 @LegGasai
* 图片发送后立即显示,压缩和上传在后台继续 @CreatixChu
* 上下文压缩会计入图片占用 @CreatixChu
* 轨迹视图支持展示用户、助手和工具结果中的图片 @CreatixChu
* 在本地文件系统模式下,模型可直接找到已上传图片的可读取位置 @CreatixChu
* 调整图片压缩策略,压缩更快、上传体积更小,并改善超长截图的清晰度 @CreatixChu
* 会话日志截断尾部自动修复时输出警告并注明受影响会话 @turtle1999
<h3>问题修复</h3>
* 修复 macOS 和 Linux 上持久 PowerShell 启动过早、输出不完整的问题 @tianyicui
* 修复 Linux 持久 Bash 在管道内部读取时提前返回空输出的问题 @LegGasai
* 修复 Bash 命令派生大量子进程时 macOS 宿主卡顿的问题 @LegGasai
* 修复 Windows 目录选择器截断含「开」等特定编码字符路径的问题 @tianyicui
* 修复会话视图中持久 Bash 与 PowerShell 结果无法展开的问题 @LegGasai
* 修复 Profile 配置的 Agent Preset 目录在启动时丢失的问题 @LegGasai
* 无法加载的 Agent Preset 会提前标记,并在切换失败时说明原因 @LegGasai
* Minimal preset 不再显示不适用的 `/goal` 命令 @Magolor
* 文件编辑工具接受当前操作未使用字段的 `null` 占位值 @lsdsjy
* PTC Mode 的 SDK 功能只能通过 `run_code` 调用,不再被模型当作普通工具直接调用 @CreatixChu
* 网关定期发送 WebSocket 心跳,避免空闲连接中断 @lsdsjy
* 修复新建空会话挤掉 Workspace 折叠列表已有会话的问题 @lsdsjy
* 修复系统提示词 workflow 分区顺序 @LegGasai
<h3>其他变更</h3>
* 更新 [安全说明](SAFETY.zh.md):DeepSeek Harness 尚未接受安全审计,沙箱、审批与权限控制不能保证隔离 @turtle1999
* 调整模型提示词顺序,使 Shell 使用指南稳定出现在其他工具指南之前 @LegGasai
* 旧版调用接口 APIProxy 已迁移并移除,请统一使用 `@Remote` 网关 @imccyu
* 会话视图工程大幅拆分,请面向诉求分层导入合适模块 @imccyu
* 网络访问 Web 界面时启用链接中的一次性 token 认证鉴权 @tianyicui
* 应用统一通过 `dsh` Profile 启动,包括 Python SDK、ACP 模式等 @tianyicui
* pi-ai 模型支持更新,并增加 vLLM 思考预算等配置 @tianyicui
* Headless 运行期间向 stderr 流式输出进度,stdout 只输出最终结果 @lsdsjy
* Code Mode 统一更名为 PTC mode,现有会话记录仍可读取 @tianyicui
* 默认启用公网 WebFetch(内置 SSRF 防护,公网请求不再逐次审批) @Dudu-0223
---
<h3 id="en-v0.1.2-alpha.1">New Features</h3>
* By default, fold process details and the System prompt before each completed answer in the conversation stream by @07akioni and @lsdsjy
* Make conversation-stream content width adaptive and drag-resizable by @yixiangihsiang
* Show expandable exact token usage after each completed answer in the conversation stream by @hypatiamay and @ZiyaZhang
* Add compact turn navigation to the conversation view by @LegGasai
* Align secondary text styling, add conversation font sizing, and scale Markdown tables with body text by @yixiangihsiang
* Let plugins add provider sign-in controls to Models settings by @LegGasai
* Support third-party UI languages and complete more localized interface text by @tianyicui, @LegGasai, and @imccyu
* Let agents choose provider, model, and reasoning effort for subagents within configured authorization by @Dudu-0223
* Let callers select provider, model, reasoning effort, and maximum output length when starting subagents by @pku-xht
* Support configured models for Claude Code and Codex subagents by @pku-xht
* Publish the Python SDK runtime for Windows x64 by @tianyicui
* Complete ACP support for standard session controls, model settings, MCP, permissions, and cancellation by @tianyicui and @pku-xht
* Include enabled plugin package names and versions in official DeepSeek requests; deployments can turn this off by @tianyicui
* Add opt-in incremental Session-log uploads to official DeepSeek requests by @tianyicui
<h3>Improvements</h3>
* Improve page startup by reducing code-load requests and transferred data by @lsdsjy
* Load conversation state in one pass while reducing transfer and parsing work by @imccyu, @Kingwl, and @kermanx
* Reduce the disk space used by conversation records by @Magolor
* Improve `/` and `@` interactions with clearer menu icons, directory loading, and file search by @Yifffan and @LegGasai
* Switch the primary action to Send and queue the message when a draft is entered during a running turn by @lsdsjy
* Keep file and conversation references valid when adjacent composer text is edited by @LegGasai
* Preserve unfinished question-card drafts when switching conversations by @LegGasai
* Keep code blocks syntax-highlighted while responses stream in the conversation view by @07akioni
* Render question history as readable question-and-answer cards with clear cancelled and interrupted states by @LegGasai
* Show images immediately while compression and upload continue in the background by @CreatixChu
* Count image usage during context compaction by @CreatixChu
* Show images from users, assistants, and tool results in Trajectory by @CreatixChu
* Let the model locate uploaded images directly when using the local filesystem by @CreatixChu
* Improve image compression speed, reduce upload size, and preserve more detail in very tall or wide images by @CreatixChu
* Warn when automatically repairing a truncated conversation-log tail and identify the affected conversation by @turtle1999
<h3>Bug Fixes</h3>
* Fix persistent PowerShell starting too early and returning incomplete output on macOS and Linux by @tianyicui
* Fix persistent Bash returning empty output early during pipeline reads on Linux by @LegGasai
* Fix host stalls on macOS when Bash commands spawn many subprocesses by @LegGasai
* Fix the Windows directory picker truncating paths that contain characters such as 「开」 by @tianyicui
* Fix persistent Bash and PowerShell results not expanding in the conversation view by @LegGasai
* Fix Profile-configured Agent Preset directories being lost at startup by @LegGasai
* Flag Agent Presets that cannot load and explain why switching failed by @LegGasai
* Remove the unsupported `/goal` command from the Minimal preset by @Magolor
* Accept `null` placeholders for file-edit fields unused by the selected operation by @lsdsjy
* Keep PTC Mode SDK features inside `run_code` instead of exposing them as directly callable tools by @CreatixChu
* Send periodic WebSocket heartbeats to keep idle connections alive by @lsdsjy
* Keep a new blank conversation from displacing existing conversations in the collapsed Workspace list by @lsdsjy
* Fix the workflow section order in the system prompt by @LegGasai
<h3>Chores</h3>
* Update the [Safety Notice](SAFETY.md): DeepSeek Harness has not been security-audited, and sandboxing, approvals, and permissions do not guarantee isolation by @turtle1999
* Keep Shell guidance ahead of other tool instructions in the model prompt by @LegGasai
* Complete the migration from the legacy ApiProxy interface to the `@Remote` gateway and remove ApiProxy by @imccyu
* Split the conversation UI into focused modules so developers can import the layer that owns each capability by @imccyu
* Require the one-time token in the launch URL when accessing the Web interface over a network by @tianyicui
* Launch applications through `dsh` Profiles, including Python SDK and ACP modes by @tianyicui
* Update pi-ai model support and add controls such as the vLLM thinking budget by @tianyicui
* Stream progress to stderr during headless runs while keeping stdout limited to the final result by @lsdsjy
* Rename Code Mode to PTC mode while keeping existing conversation records readable by @tianyicui
* Enable public WebFetch by default with SSRF protection and no per-request approval for public network access by @Dudu-0223
---
Full Changelog: https://github.com/deepseek-ai/deepseek-harness/compare/dsh-v0.1.1-rc.2...dsh-v0.1.2-alpha.1