本仓库以 zai-org/ZCode 的稳定 tag 为上游基线,产出仅供自己使用的 Windows 安装包。构建不再连接官方更新、强更、遥测和内置 Provider 云刷新链路;插件市场与手机远控保持原样。
上游基线自 2026-10-21 起冻结在 v3.15.1:Sync upstream 工作流不再定时运行(schedule 已移除,GitHub 侧为 disabled_manually)。需要上游某个具体能力时手动 git fetch upstream --tags 并评估单个 tag,不做常规跟随。
- 版本号格式为
<私有版本>+<官方基线版本>,两者都是major.minor.patch,例如1.0.0+3.15.1。 - 根
package.json与apps/zcode-cli/package.json使用同一个版本号;桌面构建元数据、CLI__CLI_VERSION__与安装包文件名都从它派生。 - Windows 安装包命名为
ZCode-Dev-<version>-win-<arch>.exe,例如ZCode-Dev-1.0.0+3.15.1-win-x64.exe。 - Release tag 为
v<version>,例如v1.0.0+3.15.1;tag 必须与package.json完全一致。 - 版本比较按“私有版本优先,官方基线次之”的二元组进行。SemVer 会忽略
+之后的 build metadata,因此更新检查不得直接使用semver.gt。
版本号的两种用途:
- 「显示与更新」使用完整的
<私有版本>+<官方基线>:About / 版本信息、安装包名、Release tag、自动更新比较,以及需要区分自维护包身份的本地场景。 - 「与云端/官方服务交互」使用官方基线版本(
1.0.0+3.15.1→3.15.1,实现为 sharedZCODE_UPSTREAM_VERSION):请求头(X-ZCode-App-Version、User-Agent)、app_version查询参数、客户端灰度与帮助配置、OAuth 中转、项目访问令牌、遥测与反馈、注入远端进程的应用版本,以及依赖版本比较的功能门槛(如手机远控前端 v4 判定)。官方服务不认识私有版本号,1.0.0会被当成远低于基线的旧客户端。 - 例外:自维护远端资源(server bundle / remote assets 的 CDN 路径、manifest、握手校验)继续以私有版本为键,保证构建与部署两侧自洽;这些链路不访问官方资产。
- 版本号缺少
+基线时(非自维护构建、测试桩)按原样使用,不做转换。
- 发布与手动 Windows 构建固定使用 production 身份:
productName:ZCode DevappId/ Windows AUMID:dev.zcode.app.dev- Linux executable / package:
zcode-dev - 产物名基名:
ZCode-Dev(productName的空白替换为连字符)
- 安装身份与官方
ZCode完全独立,两者可以并排安装、同时运行,不互相替换。appId决定 NSIS 安装标识与 Windows AUMID,productName决定安装目录、开始菜单、任务栏与 卸载项;两项都不同,Shell 不会把两者当成同一个应用。 - 名称显示分工(两个版本同时运行时必须可分辨):
- 对外身份显示
ZCode Dev:快捷方式、开始菜单、任务栏悬停 / Alt+Tab(index.html的<title>)、 托盘悬停提示、关于页、Web 远控端浏览器标签。 - 应用内界面显示
ZCode:设置、对话、菜单项文案等 i18n 文案保持不变。
- 对外身份显示
- Electron 用户数据使用
%APPDATA%\ZCode Dev(由runtimeApplicationName推导), 与官方的%APPDATA%\ZCode分开,因此单实例锁互不影响。 - 业务数据继续使用
~/.zcode,与官方版共享(会话、Provider 配置、凭据、插件)。 这是有意选择:本版与官方v3.15.1的数据库 schema 完全一致(迁移文件逐字节相同), 凭据写入带文件锁与原子写且损坏时先备份再报错,数据库迁移只往前补。 约束:不得用两个版本同时打开同一个会话(界面状态可能互相覆盖,数据本身不损坏)。 - 本地开发态使用
ZCode Dev Local(不与安装版抢%APPDATA%与单实例锁); e2e 通过ZCODE_DESKTOP_APPLICATION_NAME覆盖为独立身份。 - 从旧的
ZCode身份自建包升级时,appId已变化会被识别成两个应用,需先卸载旧版。 ZCODE_PREVIEW_IDENTITY只保留给ZCODE_ENV=test的本地/e2e 构建;发布与手动 Windows 构建必须显式产出 production 身份。Build Windows不提供product_identity输入;release.yml直接复用正式身份构建。- 产物文件名不得包含空格:上传 GitHub Release 时空格会被规范化为点号,
与
SHA256SUMS.txt记录的原名不一致,导致用户按校验和核对失败。
- 只读取
https://api.github.com/repos/yanhy2000/ZCode/releases/latest。 - 只接受已发布、非 draft、非 prerelease 的 release;tag 必须能被解析为
v<私有版本>+<官方基线>。 - 发现新版本时只打开 release 页面,不在客户端下载、安装或重启。
- 不读取官方
/api/v1/client/configs、minimalVersion、stable/preview channel,也不初始化electron-updater。
- 仅打包态启用;启动后延迟 20 秒检查一次,此后每 6 小时检查一次。
- 发现新版本时每个应用会话最多提示一次;用户关闭提示后本次会话不再弹出。
- 自动检查失败只写日志,不打扰用户。
入口:
- 右上角帮助菜单(macOS 应用菜单、Windows 标题栏帮助菜单、Web 桌面帮助菜单)。
- Windows/Linux 托盘右键菜单。
入口对所有产品身份可见。点击后:
| 结果 | 行为 |
|---|---|
| 发现新版本 | 原生对话框显示当前版本和目标版本,按钮为“打开下载页 / 稍后”;打开 release.html_url |
| 已是最新 | 原生对话框提示当前已是最新版本 |
| 网络不可达 / 超时 | 提示无法连接 GitHub,并建议检查网络或代理 |
| HTTP 404 | 提示仓库尚无已发布 release |
| HTTP 403 / 429 | 提示 GitHub API 请求受限或频率过高 |
| 响应格式异常 | 提示无法解析 release 信息 |
| 其他 HTTP 错误 | 提示状态码,保留重试入口 |
手动检查进行中时菜单项禁用,避免并发请求。
删除以下设置及其 UI、IPC、platform 方法和持久化字段:
receivePreviewUpdates(接受预览版更新)autoDownloadAndInstallUpdates(自动下载并安装更新)
旧的 setting.json 中出现这些键时按未知字段忽略,不参与任何行为。
- 设置 → 常规新增「标题生成模型」一行,包含模型选择器与「思考级别」两个控件,位于同一行、右侧对齐。
- 该行的控件列使用
controlLayout="wide"(280px)而非默认 192px:两个控件并排时默认宽度会把思考级别挤出容器。 - 模型名过长时选择器自适应收缩并在内部省略号截断(触发按钮
max-w-52,内层 span 需一并truncate——RollingToolbarLabel的内层是whitespace-nowrap,只在外层截断无效)。 - 未配置时使用会话默认模型生成标题;已配置时标题请求使用该模型,并继承会话当前的思考级别。
- 行末提供「清除」操作,清除后回到默认(
titleGenerationModelSelection: undefined)。 - 生成时机:根会话、
turnNumber === 0、无父会话、输入不少于MIN_GENERATED_TITLE_INPUT_CHARS = 10、titleSource !== "custom",且该轮成功结束后才触发。
- 帮助菜单、任务菜单、命令面板中的「问题上报」统一打开
https://github.com/yanhy2000/ZCode/issues(ui/src/lib/productLinks.ts的ZCODE_PROJECT_ISSUES_URL)。 - 对话错误横幅、V4 会话订阅错误面板、远控连接失败面板的反馈按钮行为一致:先把脱敏后的描述复制到剪贴板,再打开 issue 页;复制成功提示「已复制问题描述」,失败时只提示已打开反馈页面。
- 内置反馈提交表单已物理删除(
packages/ui/src/feedback/**、FeedbackHost挂载、baseFeedbackService装配);不再向官方 feedback API 提交任何内容,也不依赖账号 JWT。
- 不初始化 ARMS RUM,不创建产品事件上报链路,不注册资源、网络、稳定性或数据体积上报定时器。
- 不向官方端点发送 app launch、DAU、远程使用、MCP、更新等事件。
- 保留本地日志和本地崩溃转储,用于本机排查;日志不得包含凭据或用户数据。
- 移除
ZCODE_ARMS_RUM_ENDPOINT、ZCODE_TELEMETRY_REPORT_ENDPOINT的构建注入与使用。
- 保留
zcodeBuiltinRemote/EndpointScopedZCodeBuiltinSource的构造代码,供后续第三方接入参考。 - 自维护构建固定关闭:Host 装配(
packages/services/src/node.ts)不传zcodeBuiltinEnvironment,因此不会构造 Endpoint-scoped source 与其 remote synchronizer,不创建zcodeBuiltinRemote,不请求/api/v1/client/configs,也不下载官方 CDN 内置 Provider 配置。 - 内置 Provider 配置只来自仓库
config/provider/zcode-builtin.json,不存在 Active/LKG 物化与远端接管。 - 历史更正(2026-10-18):此前只保证「不创建
zcodeBuiltinRemote」,但传了zcodeBuiltinEnvironment,EndpointScopedZCodeBuiltinSource会在内部自建 synchronizer 并跑 60s 周期检查,启动即请求/api/v1/client/configs并下载官方配置(实测远端 revision 23 含zhipu-account/start-plan)。当时因仓库内置配置 revision 更大未被采用,但上游 revision 一旦超过就会静默接管 Provider 配置。 - 通过显式开关控制,后续替换为自有第三方 Provider 逻辑时再删除保留代码。
- 自维护构建固定提供
alwaysOn,不再请求官方/api/v1/client/configs的dynamicWorkflow灰度。 - 服务端无法远程关闭或降级该功能;设置里的“关闭 / 通过命令启用 / 始终开启”选择仍然生效,默认跟随
alwaysOn。 - 设置行的取值 = 本地固定的「提供
alwaysOn」套上设置里的用户选择:修改后切换设置页面、重新打开设置或重启应用都保持该选择;选择回“始终开启(默认)”时删除设置里的dynamicWorkflowMode字段,继续跟随默认。 - Host 用同一规则计算生效模式(闩住的提供 + 每次现读的用户选择),并在 workspace 客户端就绪时把结论下发给 CLI:
onDemand/alwaysOn下发enabled:true与对应 mode,disabled下发enabled:false。 - 未打包 dev 的合法
ZCODE_DYNAMIC_WORKFLOW_MODE覆盖保留,仅供本地调试,且只改写 Host 的运行时候选;设置行仍按本地默认显示(调试用差异,打包态不存在)。打包态不接受外部环境改写。 - 本地 Host 与 SSH/WSL/Docker 远程 Host 使用同一结论,不再依赖云端配置。
- 用户可见名称统一为“工作流 / Workflows”;内部协议字段和代码标识仍使用
dynamicWorkflow。
- 自维护构建不读取官方
desktopContextPrompt云端灰度,也不再传递ZCODE_DESKTOP_CONTEXT_PROMPT_ENABLED。 - 本地 Desktop Host 与 desktop-attached remote Host 固定使用 desktop presentation surface;普通 HTTP/manual app-server 没有 Desktop 宿主事实,仍为 terminal。
- 因此 Desktop 的 system prompt、Gen UI 输出目录与内联评论能力不再受离线或未登录影响。
- 远控二维码链接固定使用官方基线版本:
https://zcode.z.ai/remote/v4?...&app_version=<官方基线>(例如app_version=3.15.1)。 - 远程前端版本按官方基线判定(门槛常量
WEB_REMOTE_CONTROL_V4_MIN_APP_VERSION);私有版本1.0.0不得参与该判定,否则链接会退回云端已下线的/remote/v3并返回 404。 - relay、attachment、会话复用与本地配对凭据链路保持不变;云端页面模板不属于自维护范围。
- 启动流程不请求官方
minimalVersion,不展示官方强更弹窗。 - 删除
forceUpdateGuard的启动调用;本地未打包 dev 与打包自维护包行为一致。
- 插件市场继续启用。
- 手机远控继续使用现有 relay 与 attachment 链路。
- 第三方模型、工具、MCP、Skill 行为不变。
- 首次启动不收集 API Key,也不创建 Provider:欢迎页只展示品牌、说明和“开始使用”按钮。
- 点击“开始使用”后关闭欢迎页并进入既有职业/界面引导;模型与 Provider 在设置页配置。
- 欢迎页不展示 API Key 输入框、Provider 选择器、登录或套餐入口,也不写入官方账号状态。
- 左下角常驻入口显示“偏好设置”,不再显示头像、登录状态或“连接使用”。
- 偏好设置菜单保留语言、主题、界面模式、桌面缩放和“使用统计”。
- 偏好设置菜单不展示“升级/续费”、登录/连接账号、退出登录、Rewards 或 Coding Plan 套餐徽标。
自维护构建只保留第三方 Provider 所需的本地配置、模型选择与执行链路。以下官方云控或商业功能不再提供:
- 渲染器动作追踪:物理删除 UI
userActionTelemetry辅助函数、sharedrendererActionTraceschema、platform/channels 类型与全部调用点;点击操作直接执行,不产生 renderer action span 或本地 TTFT 上报。 - 闲时任务(Off-Peak task):物理删除 UI 入口、任务列表/创建/编辑视图、通知与遥测、store、services 取号与调度、Host 协议、模型选择分支和 CLI 工具;保留定时任务(cron automation)的创建、调度、运行历史与
automations/automation_runs数据链路。 - 请求验证(Request Verification):物理删除 shared
verification-policy、UI claim/error/parity/messages、CLI recovery 空壳、Coding Plan claim 头与 3007 错误映射;Provider runtime headers 的账号鉴权刷新链路保留,但不再携带 verification reason/proof。 - 强制更新(forceUpdate / minimalVersion):移除残留类型、Provider 方法、Main 标志与文案。
- Coding Plan 商业面:物理删除商品目录、团队静态商品、体验套餐、账单折扣、购买/升级弹窗、额度重置、套餐卡、套餐徽标、营销触达与 Rewards 组件;模型设置只展示自定义 Provider。
- 官方账号派生层:删除
account:*内置 Provider、账号项目 Key/Team Key 解析、账号 Provider 热同步、usage entitlement/额度查询与官方 MCP 额度。 - CLI 与 Host 的 Coding Plan 登录、账号鉴权、Start Plan 繁忙重试、官方购买 webview/preload 与分区清理不再作为可用路径保留;CLI 侧未被 Desktop 调用的协议定义不要求逐项删除。
- 内置 Provider 配置删除全部
account:*规则与 Coding Plan 模板,revision 提升以覆盖旧 active/LKG 缓存;zai-standard-api/bigmodel-standard-api等第三方模板保留。 - 漏洞上报(zsrc):移除公开配置字段、帮助菜单入口与文案。
- 官方账号、登录、套餐、余额、权益、Rewards、营销触达与官方模型准入:移除桌面客户端入口与服务调用(CLI 侧保留判定见下)。
- 账号 Provider 的根实现(
packages/provider的 account source 与zhipu-accountaccess 类型、packages/shared的账号协议字段与项目访问令牌、packages/provider-node的账号模型选择分类)保留为 CLI 兼容面,不进入桌面产品路径:- 桌面 Host 不装配账号配置来源,注册表恒以 fail-closed 空快照作为 Account 层(
EmptyAccountProviderConfigSource),不产生账号 Provider、账号准入或官方模型准入。 - 桌面不提供官方账号登录、退出或套餐入口;官方账号登录只存在于
apps/zcode-cli的 standalone 链路,不参与桌面构建,桌面也不再向 CLI 下发账号配置(接线为空函数时删除该接线)。 - 决定记录(2026-10-19):曾计划把账号 overlay 从根包物理删除并同步改造 CLI;评估确认
apps/zcode-cli侧影响面约 100 个源码文件 + 约 89 个测试文件(含与 MCP OAuth 共用的凭据存储、SQLite 历史迁移、core 的 9 个模型请求入口),代价不成比例,故保留兼容面,只清理桌面可达面。
- 桌面 Host 不装配账号配置来源,注册表恒以 fail-closed 空快照作为 Account 层(
- Highspeed(加速卡):物理删除 Host
HighspeedCardService(draw / healthy / 加速执行材料与 Coding Plan 双 JWT 头)、UI 激活动效/模型标识/倒计时/节省时间/来源 footer/分享卡与全局通知承载位、桌面 E2E 用例与 Mock 场景、相关单测与文案。加速卡是与官方 Coding Plan 账号权益强绑定的隐藏 Provider(account:*-highspeed-card),自维护版无可用路径。
保留:
- 第三方 Provider 的 registry、API key / baseURL、模型配置、模型选择、对话与工具链路。
- 插件市场排序
pluginStoreOrder。 - 手机远控 relay 与本地配对凭据。
- 模型上下文预算的本地默认值。
- 账号 overlay 与
accountAccess/ 项目访问令牌等协议字段(CLI 兼容;桌面恒为 fail-closed 空快照,不产生账号事实)。 - shared 协议中的
highspeedMeta输入字段、setHighspeedMetrics命令与 CLI 侧 highspeed 投影/持久化分支:没有 Host 生产端后这些数据是惰性的,仅为协议兼容与历史消息读取保留;isHighspeedProviderId谓词与HIGHSPEED_PROVIDER_IDS映射保留用于过滤历史/恢复出的加速 Provider 选择(CLI 测试经 junction 直接引用根 shared,删除会破坏「CLI 零改动」约束)。
数据兼容:
- 既有 SQLite 历史迁移保持原样,不修改已记录的迁移 checksum。
- 旧数据中的闲时任务、官方账号 provider 等字段按未知/空数据忽略;不因删除功能阻断启动。
- 模型设置左列表没有任何供应商时,右栏固定显示“添加供应商”模板页(内容与点击“添加供应商”一致),不再显示无归属的“加载中”占位。
- 只要左列表为空,模板页保持显示且隐藏返回按钮;创建出第一个供应商后恢复正常详情流程(自动选中新供应商)。
- 手动刷新不属于空列表判定;刷新期间保持当前右栏内容稳定。
- 模板页为不含分组标题的单一列表:首位是“创建自定义供应商”,其后是其余供应商模板,Z.ai / BigModel 模板位于列表末尾。
- 页面不显示“智谱”“其他”等分组标题,也不渲染分组容器;除 Z.ai / BigModel 外,模板顺序与
config/provider/zcode-builtin.json的声明顺序一致。
package.json、CLI 包、桌面构建元数据都是1.0.0+3.15.1。- Windows 构建产物名为
ZCode-Dev-1.0.0+3.15.1-win-x64.exe,CI 按resolveDesktopProductIdentity解析出的产品名校验该名称;文件名不得含空格。 - 打包应用启动后不访问官方更新/强更接口。
- 帮助菜单和托盘菜单都能触发 GitHub Release 检查,并覆盖上述成功与失败分支。
- 设置页不再出现预览版更新、自动下载安装两个开关。
- 打包应用不初始化 ARMS,不发送产品事件。
- 内置 Provider 云刷新关闭:Host 装配不传
zcodeBuiltinEnvironment,不构造 Endpoint-scoped source 与 remote synchronizer,启动与运行期都不请求/api/v1/client/configs、不下载官方 CDN 配置;内置 Provider 配置只来自config/provider/zcode-builtin.json(refreshZCodeBuiltin()返回skipped),第三方 Provider 配置仍可正常加载。 - 工作流入口默认可见;读取该能力时不请求
/api/v1/client/configs,设置中的模式切换仍然生效:切换设置页面或重启后设置行仍显示用户的选择,Host 用同一结论下发 CLI 策略(关闭时enabled:false)。 - Desktop Host 固定使用 desktop presentation surface,不请求
desktopContextPrompt灰度,也不读取ZCODE_DESKTOP_CONTEXT_PROMPT_ENABLED。 - Windows 产物只包含正式身份:安装包名
ZCode-Dev-<version>-win-x64.exe,解包目录存在ZCode Dev.exe,不存在ZCode Preview.exe,app.asar内zcodeProductFlavor为production。 pnpm typecheck、pnpm lint、相关单测通过。- desktop preload 纳入
pnpm typecheck;preload 不得引用未导入的符号,已移除能力(如 ARMS 补丁)残留调用不得阻断启动状态 IPC 注册。 - 无可用模型横幅只保留“配置”入口,不展示 Coding Plan“升级”按钮;提示文案不再要求开通编程套餐。
- 草稿页推荐项包含
NAVIGATE:AUTOMATIONS:OFFPEAK时直接丢弃,不展示“闲时任务”快捷建议;本地主动推荐池不包含闲时任务推荐语。 - 自动化页空态描述只说明定时任务,不再提“排队在闲时算力空闲时后台执行”。
- 渲染器动作追踪已物理删除:仓库中不存在
userActionTelemetry、userActionTraceCatalog、rendererActionTrace,UI 点击不再包一层 action span;点击行为与移除前一致。 - 请求验证已物理删除:仓库中不存在 verification-policy、claim、parity、3007 映射或
getRequestVerificationConfig;Provider runtime headers 只用于账号鉴权刷新,缺少账号鉴权时直接返回不可用,不再等待 Renderer 交互。 - 无可用模型横幅和错误归因不再引用请求验证业务码;
zcode.error.modelSuspiciousEmpty在 zh-CN / en-US 都有本地文案。 - 首次启动欢迎页只展示“开始使用”,仓库中不存在
LoginApiKeyForm、API Key 输入框或 Provider 选择器;点击后进入既有引导。 - 左下角入口文案为“偏好设置”;菜单包含语言、主题、界面模式、缩放和“使用统计”,不包含升级、登录、退出登录或套餐徽标。
- 设置 → 模型设置不显示 Z.ai / BigModel 固定套餐项、Start Plan 入口或“编程套餐 / 未连接 / 连接 Z.ai”卡片;只显示自定义 Provider 列表和“添加供应商”。
- 内置 Provider 配置中不存在
account:*规则,config/provider/*.json的 revision 高于 31;第三方 Provider 模板与模型规则保持可加载。 - 仓库中不存在 Coding Plan 购买/升级弹窗、额度重置、套餐卡、营销触达、Rewards 或官方账号 Provider 热同步的可用入口。
- 闲时任务已物理删除:UI 不出现“闲时任务”tab、创建按钮、任务卡、聊天轮尾创建卡或通知;
packages/ui/src不存在offPeakTaskStore、OffPeakTaskList、OffPeakEditView、OffPeakNewTaskEntry等闲时模块。 - services 与 desktop 不再装配闲时取号、同步、mock gateway、Host 派发或调度结算;
offPeakTaskService不再出现在 ServiceCollection。 - 定时任务不受影响:自动化页仍可创建、编辑、启停、立即运行、查看运行历史;
off_peak_tasks表与既有迁移 checksum 保持原样,仅为历史数据兼容保留。 - 设置 → 模型设置没有任何供应商时,右栏直接显示“添加供应商”模板页而非“加载中”;该页保持显示直到创建出第一个供应商,此时不显示返回按钮。
- “添加供应商”模板页不渲染“智谱 / 其他”分组标题:首位为“创建自定义供应商”,Z.ai 与 BigModel 模板显示在列表末尾,其余模板顺序与内置 Provider 配置一致。
- 手机远控链接为
https://zcode.z.ai/remote/v4?...&app_version=3.15.1:路径与app_version都使用官方基线版本,私有版本号不出现在链接中;手机浏览器打开后能进入远控页并连接成功(无需手工改 URL)。 - 版本号用途分离可验证:About、安装包名、Release tag 与自动更新比较使用
1.0.0+3.15.1;请求头X-ZCode-App-Version、app_version参数、帮助配置、OAuth 中转、项目访问令牌、遥测/反馈与远端进程应用版本使用3.15.1。自维护远端资源 CDN/manifest 仍以1.0.0+3.15.1为键。 - Highspeed 已物理删除:仓库中不存在
HighspeedCardService、IHighspeedCardService、createHighspeedHttpTransport、createHighspeedMockTransport、HIGHSPEED_DRAW_PROVIDER_IDS、HIGHSPEED_CARD_EXPIRED_PROVIDER_ERROR_CODE;packages/ui/src不存在highspeed/与v4/highspeed/模块;Host 不注册加速卡服务,也不读取ZCODE_HIGHSPEED_MOCK_SCENARIO;桌面 E2E 的 highspeed 卡片用例、fixtures 与 Mock 场景已删除。HIGHSPEED_PROVIDER_IDS作为 CLI 兼容映射保留(见上文「保留」)。 - Highspeed 移除后 UI 无残留:输入框不出现加速描边/粒子/模型锁定/倒计时,会话行不出现 Highspeed 标签、节省时间或来源 footer,左下角不出现分享卡;普通发送、编辑重发与队列提升不再走抽卡 prepare。协议层
highspeedMeta/setHighspeedMetrics字段保留但不产生新数据。 - Highspeed 移除不影响本地用量统计:
usage-stats的本地 App 用量聚合(model_usage/turn_usage/tool_usage)行为不变,只删除加速卡专用的普通 TPS 请求类型。 - 桌面侧无账号 Provider 专属分支:模型设置的可禁用开关对所有 Provider 生效(不再对账号 Provider 隐藏),GLM-5.3 视觉徽标不因账号套餐隐藏;
packages/ui不出现zhipu-account引用,i18n 不存在settings.modelProvider.accountProviderConfigMissing;桌面 Host 不向 CLI 下发账号配置(不存在账号配置同步接线)。 - 标题生成可配置:设置 → 常规存在「标题生成模型」行,含模型选择器与思考级别两个控件,且两者都不被容器裁切;模型名超长时选择器内部省略号截断,思考级别保持完整可见。清除后回到默认模型。
- 标题生成实际生效:配置模型后,根会话首轮(输入 ≥ 10 字符)成功结束会生成标题;请求继承会话思考级别,不出现
requires adaptive thinking; thinking.type="disabled"之类的 400。 - 反馈入口统一:帮助菜单、任务菜单、命令面板、对话错误横幅、V4 订阅错误面板、远控连接失败面板的反馈动作都跳转 GitHub issue 页;仓库中不存在
packages/ui/src/feedback/**、FeedbackHost或baseFeedbackService的生产挂载。 - Web 端(
zcode-WebRemote/public)设置页与桌面端一致,包含「标题生成模型」行;Web 产物需按packages/web的构建命令单独重建,仅重打桌面包不会更新 Web 端。 - 并排安装:在已安装官方
ZCode的机器上安装本版后,官方版仍在、可正常启动;两者的开始菜单项、任务栏项、卸载项各自独立,互不覆盖。 - 同时运行:两个版本可同时启动(
%APPDATA%\ZCode Dev与%APPDATA%\ZCode不同,单实例锁互不影响)。 - 名称可分辨:任务栏悬停 / Alt+Tab、托盘悬停提示、关于页、Web 远控端浏览器标签均显示
ZCode Dev;应用内设置与对话界面仍显示ZCode。 - 数据共享安全性:本版与
v3.15.1的session-store迁移文件无差异;凭据写入经withFileLock+ 原子写,损坏时先backupCorruptFile再报错。约束「不得两版同时打开同一会话」有文档说明。 - 产物名可校验:安装包文件名不含空格,与
SHA256SUMS.txt、latest.yml中记录的名称完全一致。