Repository navigation
Releases: muyuanjin/dsh-ptc-plus
Releases · muyuanjin/dsh-ptc-plus
Release list
v0.5.4
宿主适配
- 适配目标:DSH
0.2.2-alpha.2(alpha 通道)。engines.dsh允许>=0.2.1-0 <0.2.3,0.2.1 线继续可用 - 用到的都是宿主的公共扩展面:工具执行走
ctx.tools.setExecutor的批量派发;PTC 调用从宿主读sandboxPolicy与workingDirectory;宿主 RPC 走共享 Typert gateway - 插件不按宿主版本号分支:宿主换了工具 schema 渲染器、把可编辑的
run_code槽位交还给插件、或只声明自己的工具时,同一份代码继续工作 - 会话的能力决定与绑定取用写进会话日志;0.5.2 把它们写成对话消息
新增
- 会话能力面板重做:每个能力一行,分列陈述对象、类型、来源、已保存的启用与披露、本会话的启用与披露,以及这一行的回执;点列头按该列排序。0.5.2 是“草稿 + 详情窗”,一次只谈一个能力
- 面板有两个入口:星光菜单里的会话入口只写本会话的记录,设置页里的同一张表改保存的规则;两个入口各写自己的地址。表格在设置页里能滚动,窄窗下也能放下整行
- 面板列出全局绑定条目,并控制本会话用不用它,提交的就是
/binding use|skip <id> - 状态由控件自己表达:整块底色与边框随状态变化,行首标记用实心、空心和划斜线区分不同状态
/capabilities list分列陈述已保存的规则与本会话记录的选择;0.5.2 给每个能力一个effective合成答案- 设置里新增一个默认关闭的开关「编辑时替换原单元格」:打开后编辑替换原单元格,重建按新版本进行;关闭时编辑只追加一次执行
修复
- 能力变更的回执在会话里常驻。0.5.2 在会话还没有人类消息时先画出回执,发出第一句话后又把它藏起来;连续几次写入现在合并成一张卡片,逐行列出改了哪些条目
- 会话没有活动运行时,能力面板说“本会话的能力尚未清点”,不再抛
select an active PTC session;能力目录也能在没有活动运行时的会话里读出(0.5.2 这两处都要求一个活跃的 PTC 会话) - 0.5.2 写入的会话日志可能打不开:它把能力决定写成受保护 system head 之前的对话消息,读日志的一方会整份拒绝。新版把决定写进会话日志
- REPL 页签排在宿主原生页签之后。0.5.2 用
order: 20,在带「统计」页签的宿主上会插到「轨迹」和「统计」中间 - 设置里的重写开关移到高级开关旁,并说明它改的是重写时保留还是覆盖历史
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级后重启 DSH - 不需要配置迁移:新增的「编辑时替换原单元格」默认关闭,旧配置按原行为运行
- 修复 0.5.2 留下的、打不开的会话日志,用仓库 checkout 里的
scripts/repair-session-log.mjs;该脚本不随 npm 包发布
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.4Host Compatibility
- Built against DSH
0.2.2-alpha.2(alpha channel).engines.dshallows>=0.2.1-0 <0.2.3, so the 0.2.1 line keeps working - Everything used is a public host surface: tool execution goes through the batched dispatch of
ctx.tools.setExecutor; a PTC call readssandboxPolicyandworkingDirectoryfrom the host; host RPC goes through the shared Typert gateway - Nothing branches on a host version: the same code keeps working when the host moves its tool schema renderers, hands the editable
run_codeslots back to the plugin, or declares only its own tools - A session's capability decisions and binding adoption are written into the session log; 0.5.2 wrote them as conversation messages
New Features
- The session capability panel is rebuilt: one row per capability stating its object, type, source, the saved availability and disclosure, this session's availability and disclosure, and that row's receipt, with a column header that sorts by its own column. 0.5.2 used a draft with a detail window and discussed one capability at a time
- The panel has two entrances: the one in the sparkle menu writes only this session's record, the same table in settings edits the saved rules, and each entrance writes its own address. The table scrolls in settings and fits a whole row in a narrow window
- The panel lists the global binding entries and controls whether this session uses one, submitting the same
/binding use|skip <id>command a human types - The state is carried by the control: its fill and border follow the state, and the row mark uses filled, hollow and struck-through shapes to tell the states apart
/capabilities liststates the saved rules and this session's recorded choices in separate columns; 0.5.2 gave every capability one blendedeffectiveanswer- A new switch, "Replace the edited cell in place", is off by default: turning it on makes an edit replace the original cell and rebuild from the new version, while off keeps the edit as one more execution
Fixes
- The receipt of a capability change stays in the conversation. 0.5.2 drew it while the session had no human message yet and hid it again once the first message arrived; several writes that arrive together are now one card listing what each one changed
- With no live runtime the capability panel says this session's capabilities have not been observed instead of throwing
select an active PTC session, and the capability catalog can be read in a session that has no live runtime (0.5.2 required one in both cases) - A session log written by 0.5.2 can fail to open: it recorded a capability decision as a conversation message ahead of the host's protected system head, and any reader of that log rejects the whole file. The current releases write the decision into the session log
- The REPL tab sorts after the host's own tabs. 0.5.2 used
order: 20, which lands between the trajectory and statistics tabs on a host that has a statistics tab - The rewrite switch in settings moved beside the advanced switches and now says whether a rewrite keeps or replaces the earlier history
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading - No configuration migration: the new "Replace the edited cell in place" switch is off by default, so an existing configuration keeps its current behaviour
- Repairing a session log left behind by 0.5.2 uses
scripts/repair-session-log.mjsfrom the repository checkout; the script is not shipped in the npm package
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.4Full Changelog: v0.5.2...v0.5.4
v0.5.2
宿主适配
- 目标发行仍是当前官方 DSH,插件继续使用它的公共扩展面(设置卡片座位、会话投影和公共
Menu),本版本不要求宿主侧改动 - 升级前写下的会话日志检查点会按新格式重新折叠,旧会话照常恢复,不需要先清空会话或配置
新增
- 「能力与上下文 → 提示文本」可以逐句改写插件写给模型的固定提示:每一行标明所属通道、存在条件、字节数和只读原因,只读段落与宿主段落(系统提示与工具说明)只展示、不能改
- 提示文本是一张紧凑表格,点一行展开该行的编辑区;编辑先进草稿,保存才生效,取消丢弃,保存前可以看到逐条差异及其生效时机(下一次请求、新会话或下次触发)
- 检查点的保留窗口在设置里可调:保留最近单元格数(8–512,默认 8)、保留载荷预算(1 MiB–16 MiB,默认 8 MiB,最坏情况约 32 MB)、单元格簇上限(默认与保留单元格数一致,
0表示只由载荷预算约束) - 计算基线采样、worker 回收、启动探针与宿主执行入口的等待上限,以及连续未测量 cell 的丢弃阈值,都可以按机器情况调整
稳定性
- 表面重发布(例如切换工作目录、能力观测、宿主重渲染)不再重建内核:只要 worker 还活着,绑定就在原地保留,视图变化不影响计算状态
- 恢复提示只在真的需要时出现:完整恢复不再发通知,只有确实无法恢复的绑定才被点名(
PTC-R002),曾被宣布可用之后消失的绑定另有PTC-R006点名 - 编辑命令是追加语义:被接受的编辑新增一次调用,原有单元格与其绑定保持不变;改写历史是可选的未来能力,默认关闭
- 长会话实测:163 个 run_code 单元格的会话中恢复类诊断数为 0
修复
- 会话日志检查点的体积由窗口与预算决定,不再随会话累计写入量无限增长:窗口按条数与字节双重上限把旧结算折成摘要记录,超出预算的单个单元格整簇移除。以每格 20 KB 代码加 20 KB 写入的会话实测,450 格为 0.62 MB、900 格为 0.83 MB
- 被移出检查点的单元格在需要时从会话日志重新折叠,因此仍可编辑和查看;日志无法提供时,编辑会提示「该单元格超出保留窗口,已不可编辑」
- 单个单元格本身就超过载荷预算时,它会连同参数原文一起移出检查点并提示「最新单元格超出保留预算,已从检查点移除」,而不是让检查点无限变大
- 提示文本面板里的原因码与槽位种类按界面语言显示,中文界面不再出现内部代码;只读槽位的说明与按钮样式与设置页其余部分一致
- 选中提示文本的某一行后,编辑区会滚动到可见位置,不再出现「点了行却没看到编辑器」
- REPL 绑定面板在会话投影刷新时保留最后一次确认的清单,不再短暂显示后变成「当前绑定状态尚不可确认」;运行时重新激活后仍会正确显示为不可确认,因为新进程并没有那些绑定
- 依赖安全:
zod解析到 4.6.7(GHSA-mrhx-c7xc-m3w5,high)
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH - 现有配置不需要迁移:没有显式设置的保留参数使用上述默认值,已有配置里的其它字段照旧生效
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.2致谢
Host Compatibility
- This release targets the current official DSH release and keeps using its public extension surfaces (the settings card seat, the session projection and the public
Menu); no host-side change is required - Session-log checkpoints written before this version are refolded in the new format, so existing sessions keep recovering without clearing the session or the configuration
New Features
- Capabilities & context → Prompt text now lets you rewrite, sentence by sentence, the fixed text the plugin writes for the model. Each row states its channel, when it applies, its byte size and why it is read-only; read-only and host-owned sections (system prompt and tool descriptions) are shown only
- The prompt text surface is a compact table: select a row to expand its editor. Edits stay in a draft, Save applies them, Cancel discards them, and the pending diff with its effect time (next request, new session or next trigger) is visible before saving
- The checkpoint retention window is configurable: retained recent cells (8–512, default 8), retained payload budget (1 MiB–16 MiB, default 8 MiB, worst case about 32 MB) and the retained cluster limit (defaults to the retained cells;
0means the payload budget is the only bound) - The bounds for compute-baseline sampling, worker reclamation, the startup probe and the host execution seam, plus the threshold for consecutive unmeasured cells, can be tuned for the machine
Stability
- A surface republish (working-directory change, capability observation, host re-render) no longer rebuilds the kernel: while the worker is alive the bindings stay where they are, and a change of view does not change computation state
- Recovery notices appear only when they are needed: a complete restore is silent, a binding that truly cannot be restored is named (
PTC-R002), and one that was announced live and later vanished is named separately (PTC-R006) - An accepted edit appends a call: the original cell and its bindings stay unchanged; rewriting history remains a future opt-in, off by default
- Measured on a long session: 163 run_code cells produced zero recovery diagnostics
Fixes
- The session-log checkpoint is bounded by the window and the budget instead of growing without limit with what the session writes: a count and byte window folds older settlements into summary records and removes a single cell that exceeds the budget on its own. Measured on sessions writing 20 KB of code plus 20 KB per cell: 0.62 MB at 450 cells and 0.83 MB at 900
- A cell removed from the checkpoint is refolded from the session log when it is needed, so it stays editable and readable; when the log cannot provide it, editing reports "This cell is outside the retention window and can no longer be edited"
- A single cell larger than the payload budget is removed with its argument text and reported as "The newest cell exceeded the retention budget and was removed from the checkpoint", instead of letting the checkpoint grow without bound
- The reason codes and slot kinds in the prompt text surface follow the interface language, so Chinese users no longer see internal identifiers; read-only slot descriptions and buttons match the rest of the settings page
- Selecting a prompt text row scrolls its editor into view, so a selected row always shows the editor it expands
- The REPL binding panel keeps the last confirmed inventory when the session projection refreshes, instead of briefly showing it and then falling back to "Current binding state cannot be confirmed". After a runtime reactivation it still reports the state as unconfirmed, because the new process does not hold those bindings
- Dependency security:
zodresolves to 4.6.7 (GHSA-mrhx-c7xc-m3w5, high)
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin - No configuration migration is needed: retention fields that are not set use the defaults above, and other configured fields keep their values
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.2Thanks
- Thanks to @smter for #11: they located the race where a buffered sampling reply was discarded as a timeout after a host event-loop stall, and contributed the regression case that ships with this release
Full Changelog: v0.5.1...v0.5.2
v0.5.1
宿主适配
- 适配 DSH 0.2.1-alpha.5 的公共执行与插件界面;模型看到的 TypeScript 说明与 PTC Plus 支持的
enum、namespace 保持一致。 - 保留上一代宿主公共接口的兼容路径,按宿主实际提供的能力接入。
新增
- “状态与恢复”新增“官方 REPL 模式优先”,默认关闭。开启且 DSH 已启用
executionMode: persistent-in-memory时,立即让官方运行时接管;离开插件执行会释放插件内存环境,官方执行记录不混入插件恢复。
修复
- 修复停止后台子代理后,父会话后续计算可能持续报
PTC session disposed的问题。 - 修复后台续轮可能误用先前代码编辑的会话快照,导致计算值回退的问题。
- 修复会话能力工作台批量应用时的取消与状态反馈;关闭能力管理时,更清楚地显示关闭原因。
- 首次任务开始前修改全局绑定或能力配置,只向模型提供最终配置,避免夹入尚未生效的中间通知。
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH。
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.1Host Compatibility
- Adapt to DSH 0.2.1-alpha.5's public execution and plugin UI surfaces. Model-visible TypeScript guidance agrees with PTC Plus support for runtime
enumand namespaces. - Retain compatibility paths for the previous public Host interfaces, using the capabilities actually provided by the Host.
New Features
- Add “Prioritize the official REPL mode” under State and recovery, disabled by default. When enabled together with DSH's
executionMode: persistent-in-memory, the official runtime takes over immediately. Leaving plugin execution releases its in-memory environment; official execution records never become plugin recovery evidence.
Fixes
- Fix later parent-session computations repeatedly failing with
PTC session disposedafter a background subagent is stopped. - Fix background continuations reusing a previous code edit's session snapshot and reverting computed values.
- Fix cancellation and state reporting when applying capability-workbench changes in a batch, and explain disabled capability management more clearly.
- Before the first task, changes to global bindings or capability configuration provide only the final configuration to the model, without intermediate notifications.
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin.
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.1Full Changelog: v0.5.0...v0.5.1
v0.5.0
宿主适配
- 适配官方 DSH
0.2.1-alpha.2(当前最新发布):PTC 模式下的连续计算、程序内编辑、设置卡片、REPL 页签与星光入口继续通过 DSH 的公共扩展面工作 - 兼容性由公共能力探测决定,不设置版本白名单;设置卡片同时支持
plugins.row.config与上一代settings.plugin.item座位,宿主未提供的能力只会让对应入口缺席
新增
- 设置窗口重新组织并新增“能力与上下文”,默认不启用能力管理(能力沿用宿主):按工具、Skills、MCP 服务器列出当前能力,支持搜索、筛选、排序与逐项开关;可用性与说明方式可在默认、分类、MCP 来源与单个条目四个层级分别控制;统计采集、预算分配输入、说明恢复与模型预览各自独立开关;命名配置可保存、导入导出并套用;清单可将保存值与选定会话对照,统计页展示所选会话的用量与覆盖率证据;一个总开关可整体暂停。保存的配置由新会话与显式刷新采用,已有会话保持现有选择
- 星光菜单新增会话能力管理:逐条或批量暂存当前会话的能力选择,再决定“应用到会话”(仅本会话的临时选择)或“应用到全局”(新会话的默认)
- 执行结果卡支持悬浮预览,可在设置中开关并选择跟随指针的方向
- 安装更轻:profile 安装不再拉取构建期依赖(Babel、CodeMirror、TypeScript 等已内联进发布产物)
修复
- 程序完成值保持完整:富图形与显式
undefined独立渲染,冷重放返回记录值,值传输失败给出可读诊断
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH - 已有插件设置继续沿用;“能力与上下文”默认关闭,需要时在设置中开启
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.0Host Compatibility
- Supports official DSH
0.2.1-alpha.2(the newest release): continuous computation in PTC mode, in-program editing, the settings card, the REPL tab, and the sparkle entry keep working through DSH's public extension surfaces - Compatibility is decided by public capability probing, with no version allowlist; the settings card works from both the
plugins.row.configand previous-generationsettings.plugin.itemseats, and a missing host capability only leaves its entries absent
New Features
- New Capabilities & Context area in a reorganized settings window, with capability management off by default so capabilities stay with the Host: tools, Skills, and MCP servers are listed with search, filters, sorting, and per-item switches; availability and disclosure are controlled per default, category, MCP source, and single item; statistics collection, budget allocation inputs, description recovery, and model previews have independent switches; named configurations can be saved, imported/exported, and applied; the list compares saved values with a chosen session, and the statistics view shows that session's usage and coverage evidence; one master switch pauses the whole group. Saved choices apply to new sessions and explicit refreshes; existing sessions keep their current selections
- The sparkle menu gains session capability management: stage choices item by item or in batch, then choose “Apply to session” (session-temporary) or “Apply to global” (new-session defaults)
- Execution result cards gained hover previews, with a setting for on/off and which side of the pointer they follow
- Leaner installs: profile installs no longer fetch build-only packages (Babel, CodeMirror, TypeScript, and others are inlined into the shipped artifacts)
Fixes
- Program completion values stay intact: rich graphs and explicit
undefinedrender in isolation, cold replay returns recorded values, and failed value transfers report readable diagnostics
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin - Existing plugin settings are kept; Capabilities & Context is off by default — enable it in settings when needed
dsh plugin --profile <profile> add dsh-ptc-plus@0.5.0Full Changelog: v0.4.10...v0.5.0
v0.4.10
宿主适配
- 适配官方 DSH
0.2.1-alpha.1,恢复 PTC 模式下run_code、edit_run_code的连续计算,以及设置、REPL 页签和星光入口。 - 安装时保留 profile 中原有的执行配置;关闭插件或移除完整插件包后,代码执行交回 DSH 原有执行环境。
- 会话恢复、编辑目标和状态提示使用 DSH 的公开会话读取与投影接口;无法读取历史时明确诊断,不把它当作已成功恢复的空会话。
- 适配新版设置和界面组件;设置连接暂不可用时,REPL 和星光入口按插件默认设置显示,菜单或弹窗组件缺失时提供可操作的回退界面。
新增
- TypeScript 执行环境热重载保留现有会话计算状态;切换到其他语言时停止 PTC 接管并报告原因,切回 TypeScript 后按原开关选择恢复。
- 绑定草稿支持大窗口审阅:正文独立滚动,保存与丢弃操作固定可见;从星光菜单或原请求打开草稿时直接进入大窗口。
- 草稿审阅提供分开排列的放大、缩小和关闭操作,可从大窗口返回输入框上方的预览。
- 星光菜单按启用与停用分组显示绑定和数量,停用组默认折叠;绑定列表独立滚动,底部编写、修改、管理和设置入口保持可见。
修复
- 仅压缩历史结果时,旧 cell 不会被当作再次执行或成为新的编辑目标;较新的失败 cell 仍可通过
edit_run_code修正。 - 历史结果被替换后,恢复提示保留原有先后关系,较早的成功结果不会清除后来尚未解决的提示。
- 交给 DSH 原生环境执行的非会话代码调用,保留宿主已选定的工作目录、超时和沙箱参数,避免再次解析丢失执行条件。
- 启用失败时,设置回滚到实际所属的插件配置项,修复自定义插件配置项名称下的回滚失效。
- Cordis 开发工具重新启用时,从当前宿主安装中读取配套 Skill,避免沿用重载前的包资源。
- 草稿预览随输入区和视口变化重新定位;空间不足时可进入大窗口,输入区隐藏时审阅面板同步隐藏。
- 工作台的键盘焦点、禁用反馈和 REPL 名称在明暗主题下保持可辨认。
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH。 - 常规安装沿用已有插件设置。手工配置 composition 的安装需加载完整 bundle,不能只加载主插件;执行 provider 配置见安装指南。
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.10Host Compatibility
- Supports official DSH
0.2.1-alpha.1, restoring continuous computation throughrun_codeandedit_run_codein PTC mode, along with settings, the REPL tab, and the sparkle entry. - Installation preserves the profile's original execution configuration; disabling the plugin or removing its complete bundle returns code execution to DSH's original environment.
- Session recovery, edit targets, and status messages use DSH's public session readers and projections; unavailable history produces a diagnostic instead of being treated as a successfully recovered empty session.
- Supports the newer settings and UI components; while the settings connection is unavailable, the REPL and sparkle entry use the plugin's defaults, and missing menu or dialog components have usable fallbacks.
New Features
- Reloading the TypeScript execution environment retains existing session computation state; switching to another language suspends PTC execution and reports the reason, and switching back resumes according to the existing enable setting.
- Binding drafts can be reviewed in a large dialog with independently scrolling content and fixed save and discard actions; opening a draft from the sparkle menu or its original request goes directly to this dialog.
- Draft review has separately spaced enlarge, shrink, and close controls, allowing a return from the large dialog to the preview above the composer.
- The sparkle menu groups enabled and disabled bindings with counts, starting the disabled group collapsed; the binding list scrolls independently while authoring, revision, management, and settings actions remain visible at the bottom.
Fixes
- Compacting only historical results does not treat an old cell as a new execution or edit target; a newer failed cell remains editable through
edit_run_code. - Replaced historical results retain the ordering of recovery messages, so an earlier successful result cannot clear later unresolved messages.
- Non-session code calls delegated to DSH's native environment retain the working directory, timeout, and sandbox parameters already selected by the host, avoiding loss of execution conditions through a second resolution.
- Failed activation rolls settings back on the plugin's actual configuration entry, fixing rollback for custom entry names.
- Re-enabling Cordis development tools reads the companion Skill from the current host installation, avoiding package resources retained from before a reload.
- The draft preview follows composer and viewport changes; a large dialog remains available when space is limited, and review surfaces hide when the composer is hidden.
- Workbench keyboard focus, disabled feedback, and REPL names remain distinguishable in light and dark themes.
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin. - Standard installations retain existing plugin settings. Manually configured compositions must load the complete bundle rather than only the main plugin; see the installation guide for execution-provider configuration.
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.10Full Changelog: v0.4.8...v0.4.10
v0.4.8
宿主适配
- 适配官方 DSH 的 Cordis 预设资源定位方式:即使预设不提供独立配置文件路径,也能从当前宿主安装中加载开发 Skill。
- DSH Desktop 随附的 Cordis 开发 Skill 不再依赖会话工作区访问宿主安装目录;开启 Cordis 工具扩展无需复制 Skill 或修改宿主。
新增
- 提供方报告工具参数 JSON 无效时,不再直接终止整轮对话,而是交给 DSH 返回工具校验结果,让模型继续修正;无法确认完整性的调用不会执行。
- 对单个完整的
run_code或edit_run_code调用,若仅多出一个末尾},且删除后通过当前工具参数校验,可自动修正;不猜测修复其他 JSON 错误,也不绕过 DSH 权限与审批。
修复
- 修复 DSH Desktop 中开启 Cordis 工具扩展时,因读取随附开发 Skill 失败而导致插件无法启用的问题。
- 修复缺少
description时的参数诊断提示写入非法消息、导致会话无法重新加载的问题;提示区分外层run_code参数和嵌套工具参数。此修复不自动修复旧版本已经损坏的会话日志。 - 修复全局绑定工作台在宿主延迟挂载弹窗内容时的空节点访问错误,并在内容挂载后正确设置键盘焦点。
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH Desktop 或 CLI/Web。 - 无需迁移配置;Cordis 工具扩展仍默认关闭,已有设置保持有效。
- 可从 0.4.3 直接升级,无需安装中间版本。Desktop 的“添加插件”输入
dsh-ptc-plus@0.4.8;只填包名时,包管理器的发布时间限制可能选中旧版本。 - Desktop 内置 pnpm 11.7.0 的同包多版本豁免存在匹配问题:安装过旧版本后,即使指定 0.4.8,也可能在安装或卸载时报发布时间校验失败。需先整理 profile 中 PTC Plus 的旧豁免;半卸载状态还需修复安装。具体步骤见 安装与卸载注意,无需关闭全局安全检查。
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.8Host Compatibility
- Supports the official DSH Cordis preset resource layout: the development Skill loads from the active host installation even when the preset does not expose a standalone configuration-file path.
- The Cordis development Skill bundled with DSH Desktop no longer depends on workspace access to the host installation directory. Enabling the Cordis tools extension requires neither copying the Skill nor modifying the host.
New Features
- When the provider reports invalid tool-argument JSON, the turn no longer ends immediately. DSH returns a tool-validation result so the model can continue correcting the call; calls whose completeness cannot be established do not execute.
- A single complete
run_codeoredit_run_codecall with one extra trailing}can be corrected automatically when removing it passes the current tool-argument validation. Other JSON errors are not repaired by guessing, and DSH authorization and approval remain in effect.
Fixes
- Fixes plugin activation failing in DSH Desktop when enabling the Cordis tools extension because its bundled development Skill could not be read.
- Fixes missing-
descriptiondiagnostics writing invalid messages that prevented sessions from loading again. Diagnostics distinguish outerrun_codearguments from nested tool arguments. This does not automatically repair session logs already damaged by earlier versions. - Fixes a null-element error when the host mounts the global bindings workbench's dialog content lazily, and sets keyboard focus after the content mounts.
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH Desktop or CLI/Web after upgrading the plugin. - No configuration migration is required. The Cordis tools extension remains disabled by default, and existing settings remain valid.
- Upgrade directly from 0.4.3 without installing intermediate versions. Enter
dsh-ptc-plus@0.4.8in Desktop's Add Plugin dialog; a bare package name may select an older version under the package manager's minimum-release-age policy. - Desktop's bundled pnpm 11.7.0 has a matching issue with separate version exemptions for the same package: after an earlier version was installed, even an explicit 0.4.8 install or uninstall can fail release-age validation. Consolidate the profile's old PTC Plus exemptions first; a partial uninstall also requires reinstalling the package. See the installation and uninstall guidance. Do not disable the global security checks.
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.8Full Changelog: v0.4.3...v0.4.8
v0.4.3
宿主适配
- 适配 DSH 0.1.7 的公共扩展面:设置卡片注册到宿主的插件配置座位(侧栏 插件 → 已安装 的
plugins.row.config),星光入口的四个动作进入公共Menu的children区域 - 不渲染
children的宿主同样可用:同一套插件自有动作区由 pinned 区域承载,上一代设置座位settings.plugin.item继续生效 - 兼容性由公共能力探测决定:探测只记录一次已挂载观测,支持
children的宿主不会重复渲染
新增
- 全局用户绑定与星光入口默认开启:可在星光菜单中启停绑定、编写或修改绑定、打开管理工作台和 PTC Plus 设置;已有配置中显式关闭的选项保持关闭
- 单元格末尾缺少一到两个闭合符且修正可唯一验证时,
PTC-C001直接给出可调用的edit_run_code修复;插件不会自动应用或执行它
修复
- 星光菜单的四个动作在旧宿主上不再退化为宿主列表行:渲染
children的宿主使用该区域,不渲染的宿主由 pinned 区域承载同一套插件网格(Agent 编写分组与两列布局) - 修复星光菜单分组上方的双分隔线,以及切换绑定时悬浮窗的闪烁:写入逐条串行化,保存期间条目保持可用,重复点击被忽略
- 设置卡片只出现在宿主的插件配置座位(侧栏 插件 → 已安装),不再注册在通用设置;宿主缺少即时设置所需能力时给出明确诊断
- PTC 的状态提示只替换自己的内容,不再覆盖其他插件发布的目录、任务、Skill 与工具结果
- 恢复更保守:只采用可验证的历史关系,跨压缩与重启后的状态和编辑目标更可靠
- 修改
Object、Map、Set、Reflect等运行时对象后,后续 cell 仍能正常执行并返回结果
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH - 本次发布没有配置迁移;默认值变化只影响此前未显式设置的选项
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.3Host Compatibility
- Adapts to the public extension surfaces of DSH 0.1.7: the settings card registers in the host's plugin configuration seat (
plugins.row.configon the sidebar Plugins → Installed page), and the four sparkle actions render in the publicMenuchildrenregion - Hosts that do not render
childrenkeep working: the pinned region carries the same plugin-owned action grid, and the precedingsettings.plugin.itemseat stays in effect - Compatibility follows public capability detection: the probe records a single mounted observation, and a host that renders
childrennever gets a duplicated carrier
New Features
- Global user bindings and the sparkle entry are enabled by default: toggle bindings, author or revise one, open the workbench, or open PTC Plus settings from the sparkle menu. Options explicitly disabled in an existing configuration stay disabled
- When a cell ends in one or two missing closing tokens and the correction is uniquely validated,
PTC-C001includes a directly callableedit_run_coderepair. The plugin never applies or executes it automatically
Fixes
- The four sparkle actions no longer degrade to bare host list rows on older hosts: hosts that render
childrenuse that region, and hosts that do not get the same plugin-owned grid through the pinned region (Agent 编写group with its two-column layout) - Fix the doubled hairline above the authoring group and the flicker of the popover when toggling a binding: writes are serialized, entries stay usable while a write is in flight, and a repeated click is ignored
- The settings card appears only in the host's plugin configuration seat (sidebar Plugins → Installed) and no longer registers in General settings; a host that lacks what live settings require gets an explicit diagnostic
- PTC status notices replace only their own content and no longer overwrite catalogs, tasks, Skills, or tool results published by other plugins
- Recovery is more conservative: only verifiable historical relations are adopted, so state and edit targets stay reliable across compaction and restarts
- After code redefines runtime objects such as
Object,Map,Set, orReflect, later cells still execute and return results
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin - No configuration migration; the default changes affect only options that were never explicitly set
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.3Full Changelog: v0.4.2...v0.4.3
v0.4.2
修复
- 修复 Electron 版 DSH Desktop 中 helper 进程无法进入 Node 模式、导致
run_code在建立私有通道前退出的问题;Electron 启动标记只传给 helper,不会泄漏到执行用户代码的 Worker(#6) - 修复星光菜单的 PTC Plus 设置快捷按钮:点击后会直接打开包含全部插件选项的应用内设置窗口
- 修复 Windows 隔离开发启动器反复更换端口并累积认证 Cookie 后可能触发 HTTP 431 的问题;默认 Web profile 会复用可用端口,并允许已有开发 Cookie 完成 Client 启动
- 修复 Windows helper 正常退出与终止确认之间的竞态,避免成功完成的
run_code在会话清理时被误报为回收失败 - 修复 Node.js 26 的 REPL 错误处理变化导致 Worker 启动探针失败、使
run_code无法执行的问题;原始抛出值和失败后的会话状态仍可继续使用 - 修复 Global User Binding 的类型投影:保留本地类型闭包、
typeof、类继承、抽象类和访问器语义,并对无法自包含的声明给出明确错误 - 保留原生
Date与Math.random的对象身份和属性描述符,避免运行时适配改变宿主可观察行为
连续计算与恢复
- Journal 升级到 v10,历史 cell 按记录的模块变换版本精确回放;旧日志迁移不会用当前规则重新解释历史源码
- 收紧编译器生成名称、顶层
this来源判断、binding workbench 与会话内核的 realm 一致性,避免生成代码或 Node REPL 临时全局污染持久状态 - Worker 私有的值传输、工具回复校验、错误报告与静态 import 链接不再依赖用户可改写的公开 intrinsic;修改
Object、Map、Set、Reflect等运行时操作后,后续 cell 仍可正常结算 - 加强受损日志边界、worker 退出和 binding 恢复处理,使可继续的状态与必须收缩的状态有一致判定
升级
- 需要 Node.js
^22.19.0 || >=24.0.0;升级插件后请重启 DSH
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.2Fixes
- Fix Electron-based DSH Desktop helpers exiting before opening their private channel because the packaged executable did not enter Node mode. The Electron startup flag is applied only to the helper and is not inherited by the Worker that executes user code (#6)
- Fix the dedicated PTC Plus settings action in the sparkle menu so it opens the complete in-app plugin settings dialog
- Fix the isolated Windows development launcher causing HTTP 431 after repeated port changes accumulated authentication cookies; the default Web profile now reuses an available port and accepts existing development cookies during Client boot
- Fix a Windows race between normal helper exit and termination confirmation that could report a reclamation failure while cleaning up a successful
run_code - Fix the Node.js 26 REPL error-handling change that caused the Worker startup probe to fail and prevented
run_codefrom executing, while retaining exact thrown values and session continuity after failures - Fix Global User Binding type projection for local type closures,
typeof, class inheritance, abstract classes, and accessors, with explicit diagnostics for declarations that cannot be made self-contained - Preserve the native identities and property descriptors of
DateandMath.random, avoiding observable Host changes from runtime adaptation
Continuous Computation and Recovery
- Upgrade the journal to v10 and replay historical cells with their recorded module-transform generation; old logs are not reinterpreted under current transform rules
- Tighten compiler-name allocation, source ownership for top-level
this, and realm consistency between the binding workbench and session kernel so generated code and temporary Node REPL globals cannot pollute persistent state - Keep worker-private value transport, tool-reply validation, error reporting, and static import links independent from user-mutable public intrinsics, so later cells still settle after code changes operations on
Object,Map,Set, orReflect - Improve damaged-journal boundaries, worker-exit handling, and binding recovery so usable state and required contraction are decided consistently
Upgrade
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading the plugin
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.2Full Changelog: v0.4.1...v0.4.2
v0.4.1
新增功能
- 新增全局用户绑定:可用
/binding让 Agent 编写或修改 TypeScript helper,在输入框上方审阅草稿后保存;已启用的绑定可跨会话复用,并可分别控制提供给模型的接口声明与使用提示 - 新增 REPL 工作区:查看会话变量、定义来源和有界值预览;管理、导入和试运行全局绑定,试运行状态与 Agent 会话隔离
- 输入框旁的星光入口现在可以查看和启停绑定、编写或修改绑定、打开完整管理工作台,并直接弹出包含全部选项的 PTC Plus 设置窗口
连续计算与可靠性
- 新的统一
bindingUpdates策略默认使用stateful:后续 cell 可直接重声明或赋值更新变量、函数、类和 import alias,已有闭包读取更新后的值;失败的声明不会永久占住名称。需要名称保护时可切换为protected - 扩展有状态 TypeScript/JavaScript 语义,覆盖静态模块、CommonJS 互操作、闭包源码、动态作用域以及
eval/Function的原生边界;源码定位、缺失闭合符诊断和编辑建议也更准确 - 会话内核移入可回收的 helper 进程;超时或卡住的执行不会在 DSH 宿主内强杀线程。恢复只接受可验证的日志祖先,并明确报告无法恢复的状态或受损边界
兼容性与修复
- 同时适配当前和上一代官方 DSH 公共接口,包括
ptcRuntime/codeRuntime、两代 TYPERT codec、设置座位和会话投影;修复当前 DSH 中星光入口、REPL 页签和状态指示器不显示的问题 - 修复 DSH 0.1.6 串行创建 Agent 时,缺少可选 companion surface 会被 PTC Plus 错误放大为创建失败的问题;插件暂不可用时延后重试,不再打断宿主生命周期(#4、#5)
- 加强跨压缩与重启恢复、模块链接、特殊值和引用关系、工具调用修复、工作目录以及 binding 生命周期的一致性
升级提示
- 需要 Node.js
^22.19.0 || >=24.0.0;升级后请重启 DSH。全局用户绑定默认关闭,需要在 PTC Plus 设置中显式开启 - 旧版五个重声明/模块开关若无法无歧义映射到新策略,会显示为待迁移状态;请在设置中选择统一的
stateful或protected策略 - 升级 DSH 的历史 Session 格式前请保留原日志备份;如需转换,按安装指南使用受验证的迁移流程
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.1New Features
- Add Global User Bindings: use
/bindingto have the Agent author or revise a TypeScript helper, review its draft above the composer, then save it for reuse across sessions; model-facing declarations and usage guidance are controlled separately - Add a REPL workspace for inspecting session variables, definition sources, and bounded value previews, plus managing, importing, and testing global bindings in temporary state separate from the Agent session
- Expand the sparkle shortcut beside the composer: inspect and toggle bindings, author or edit a binding, open the full workbench, and open an in-app PTC Plus settings dialog containing every option
Continuous Computation and Reliability
- Replace the legacy switches with one
bindingUpdatespolicy, defaulting tostateful: later cells can redeclare or assign variables, functions, classes, and import aliases directly; existing closures observe updated values, and failed declarations no longer reserve a name permanently. Selectprotectedwhen name protection is required - Extend stateful TypeScript and JavaScript semantics across static modules, CommonJS interop, callable source, dynamic scopes, and the native boundaries of
evalandFunction; source locations, missing-delimiter diagnostics, and edit suggestions are more accurate - Move the session kernel into a recyclable helper process so timed-out or stuck execution does not require killing a thread inside the DSH host. Recovery accepts only verifiable journal ancestry and reports state or damaged boundaries that cannot be recovered
Compatibility and Fixes
- Support the current and preceding official DSH public contracts, including
ptcRuntime/codeRuntime, both TYPERT codec generations, settings seats, and session projections; restore the sparkle shortcut, REPL tab, and status indicator on current DSH - Fix DSH 0.1.6 serial Agent creation being aborted when an optional companion surface is absent. PTC Plus now defers and retries its own activation without rejecting the Host lifecycle (#4, #5)
- Improve consistency across compaction and restart recovery, module linking, special values and references, tool-call repair, project working directories, and binding lifecycles
Upgrade Notes
- Requires Node.js
^22.19.0 || >=24.0.0; restart DSH after upgrading. Global User Bindings remain disabled by default and must be enabled explicitly in PTC Plus settings - When the five legacy redeclaration/module switches cannot be mapped unambiguously, settings show a pending migration state; choose the unified
statefulorprotectedpolicy - Keep a backup of historical session logs before upgrading the DSH Session format; follow the validated process in the installation guide when conversion is needed
dsh plugin --profile <profile> add dsh-ptc-plus@0.4.1Full Changelog: v0.3.2...v0.4.1
v0.3.2
修复
- 修复
compaction/prune后recoverJournal错误地报告run_coderesult unavailable,避免会话后续的run_code永久卡死 - 恢复 surface replacement 中原始
run_codecall 与 tool/result 的身份映射,并保留可验证的 REPL binding
体验优化
- 适配当前 DSH
next发布通道,保持宿主拥有的 runtime peer 由 profile 提供 - 增加 issue #3 的确定性恢复回归验证,修复后的结果为
GREEN -> recovered, available=false
Fixes
- Fix
recoverJournalincorrectly reporting an unavailablerun_coderesult aftercompaction/prune, which could permanently block laterrun_codecalls - Restore the identity mapping between the original
run_codecall and replacement tool/result entries, preserving verified REPL bindings
Improvements
- Target the current DSH
nextrelease channel while keeping host-owned runtime peers supplied by the profile - Add a deterministic issue #3 recovery regression check with the fixed result
GREEN -> recovered, available=false
Full Changelog: v0.3.1...v0.3.2