Repository navigation
Releases
Releases · HandlerOne01/dsh-purge
v1.1.91
1.1.91
中文
- 版本 1.1.91,仓库迁到 HandlerOne01/dsh-purge。
- 原仓库
HunYiSage/dsh-purge已下线(404),更早的YuJunZhiXue/dsh-purge同样不可用。本次发布以 1.1.90 官方发布包为基线重建,业务代码与原发布一致,只改仓库地址与版本号。 - 包元数据与文档链接全部改指新仓库:
package.json的repository/homepage/bugs/dsh.install,lib/update.js的REPO,三语 README,以及dsh://一键安装链接。 .github/workflows/release.yml的发布仓库判断改为新仓库,push 到master仍会自动打 tag 并上传 zip。- 安装/更新地址改用:
https://codeload.github.com/HandlerOne01/dsh-purge/tar.gz/refs/heads/master。
English
- 1.1.91, repository moved to HandlerOne01/dsh-purge.
- The previous repository
HunYiSage/dsh-purgeis offline (404), and the earlierYuJunZhiXue/dsh-purgeis gone as well. This build is rebuilt from the official 1.1.90 release archive; application code is unchanged apart from repository URLs and the version number. - All package metadata and documentation links now point at the new repository:
repository/homepage/bugs/dsh.installinpackage.json,REPOinlib/update.js, all three READMEs and thedsh://one-click install link. - The release gate in
.github/workflows/release.ymlnow matches the new repository, so a push tomasterstill tags and uploads the zip automatically. - Install/update URL:
https://codeload.github.com/HandlerOne01/dsh-purge/tar.gz/refs/heads/master.
1.1.90
中文
- 版本 1.1.90。
- #208 Android 切后台回来输入框整块消失:撤销按钮原先注册在宿主的
conversation.input.right槽位,这个槽位渲染在 composer 的 React 子树里。宿主在提交阶段只要抛一次错,React 会把整棵树卸载,症状就是输入框连带按钮一起没了。- 撤销按钮不再走任何槽位。改为在
body上挂一个position: fixed的宿主节点,用createPortal把按钮传进去,渲染树完全脱离 composer;composer 内部再出错也牵连不到它。 - 位置按最靠下的那组
.standardControls(就是 composer 底部工具条)的矩形实时对齐,并给它留padding-left空位,不遮住模型选择器;预留宽度跟着按钮实测宽度走。 - 会话切换、窗口尺寸变化、页面滚动都会重新对齐;没有会话时按钮不显示、留白也一起归还。
- 锚点查找带缓存和节流,只在锚点缺失或掉线时才扫一次 DOM,长会话滚动不受影响。
- 撤销按钮不再走任何槽位。改为在
- 验证:
client.js语法检查通过;conversation.input.right在本插件中已无任何注册点;双宿主standardControls类名核对一致。
English
- 1.1.90.
- #208 the whole composer vanished after switching apps: the undo button was registered into the host's
conversation.input.rightslot, which renders inside the composer's React subtree. One throw during a commit phase makes React unmount that tree, and the input box goes with it.- The undo button no longer uses any slot. It renders through
createPortalinto aposition: fixedhost appended tobody, fully outside the composer subtree, so a composer error can no longer take it down. - It aligns itself to the rectangle of the bottom-most
.standardControls(the composer toolbar) and reservespadding-leftthere so the model picker is not covered; the reserved width follows the button's measured width. - It re-aligns on session change, resize and scroll, and releases both the button and the reserved space when there is no session.
- Anchor lookup is cached and throttled: the DOM is scanned only when the anchor is missing or detached, so long chats keep scrolling smoothly.
- The undo button no longer uses any slot. It renders through
- Verification:
client.jspasses the syntax check; noconversation.input.rightregistration remains in the plugin; thestandardControlsclass name matches on both hosts.
1.1.89
中文
- 版本 1.1.89。
- #204 工作目录提示恢复:
deployment:persona-suffix优先写会话真实 cwd 字面量(interpolate: false),拿不到才退静态描述;同时把cwd补进assembly.variables,用户自己模板里的{{cwd}}也能渲染。0.2.1 不再抛unknown prompt variable,工作目录提示不再变成the current workspace。 - #207 桌面静默退出可诊断:
- 新增 #92:宿主每次退出都把
code/signal/ stderr 尾巴写进%TEMP%\dsh-purge-desktop.log(不再只记 signal 分支)。 - 新增 #93:主进程记录
boot/before-quit/will-quit/quit code/window-all-closed/render-process-gone(附渲染进程最后几行 console)/child-process-gone/ 信号 / 每分钟心跳。只用uncaughtExceptionMonitor,不改变崩溃行为。 - asar 换包脚本:
Move-Item失败后改用.NET File.Move重试,成功/失败都Test-Path复核并记录真实错误;空闲改名脚本同样记录失败原因(限流,不刷屏)。
- 新增 #92:宿主每次退出都把
- #202 原子写:
atomicWriteFile保持writeFile + rename(不依赖 hostFs 白名单里没有的open);CLI--apply成功后补打应用戳,下次启动 settle 不会误判未对齐再重打。 - 修复重复标记:#32 / #53 的 export 行锚点原来自我匹配,每点一次「应用」就多追加一行注释;改成带负向前瞻的正则,连续应用保持幂等。
- 验证:web + desktop 双宿主现有补丁全部 applied;rc.2 夹具与 rc.5 实机 pattern 全绿;沙箱 42 个目标文件 apply/revert 字节级还原;生成的 PowerShell 脚本通过
Parser::ParseFile语法检查。
English
- 1.1.89.
- #204 working directory restored: the persona suffix now uses the real session cwd as a literal (
interpolate: false) and only falls back to the static sentence when no cwd is available;cwdis also added toassembly.variables, so user templates with{{cwd}}render. 0.2.1 no longer throwsunknown prompt variable, and the prompt keeps the real path instead ofthe current workspace. - #207 desktop exit is diagnosable:
- New #92: every host exit writes
code/signal/ stderr tail to%TEMP%\dsh-purge-desktop.log. - New #93: main process logs
boot/before-quit/will-quit/quit code/window-all-closed/render-process-gone(with the renderer console tail) /child-process-gone/ signals / a one-minute heartbeat. UsesuncaughtExceptionMonitoronly, so crash behavior is unchanged. - ASAR swap: falls back to
.NET File.MoveafterMove-Itemfails, verifies withTest-Path, and records the real error; the idle rename script logs failures too (rate-limited).
- New #92: every host exit writes
- #202 atomic writes:
atomicWriteFilestays onwriteFile + rename(the hostFs whitelist has noopen); the CLI--applynow also writes the applied stamp so the next boot's settle does not re-apply. - Duplicate markers fixed: the #32 / #53 export-line anchors matched their own output and appended another comment on every Apply; both now use negative lookaheads and are idempotent.
- Verified: all existing patches applied on both web and desktop hosts; rc.2 fixtures and rc.5 real files green; sandbox apply/revert restored 42 target files byte-for-byte; generated PowerShell scripts pass
Parser::ParseFile.
1.1.88
中文
- 版本 1.1.88。
- 双版本适配(rc.2 + rc.5):#32/#36/#50/#53/#57/#62 在 0.2.1-rc.2 与 0.2.1-rc.5 上都能命中。旧 pattern 全部保留,rc.5 的新 pattern 追加,不再用新文案覆盖旧版。
- #36 升级字段:bash/pwsh 的
sandbox_permissionsjustification 描述一并清洗;补上Approval is auto-granted.大写 marker,tool-fs 不再因为大小写差异永远漂移。 - #50 跨会话引用:去掉 untrusted / “不要跟随指令”话术,保留只读快照的事实描述。
- #57 developer role:rc.5 responses 通路的
instructionRole分支纳入 openai/azure 白名单。 - #62 审批 fail-open:rc.5 的
void 0分支(无 approval 服务 / 无 agent / unavailable)全部放行;已打过旧 approval 分支的文件不会因 marker 被整条跳过。 - #32 / #53 状态标记:#53 不再共用 #32 的注释 marker,旧宿主不会假绿;rc.5 残留的
local web GUI前缀与DeepSeek Harness Web GUI描述已清掉。 - 宿主门禁:
package.json增加dshTargets,状态页同时接受 rc.2 与 rc.5。 - 验证:web + desktop 双宿主 73/85 applied、0 pending、0 drifted;沙箱 42 个目标文件 apply/revert 字节级还原通过。
English
- 1.1.88.
- Dual-version support (rc.2 + rc.5): patches #32/#36/#50/#53/#57/#62 now match both 0.2.1-rc.2 and 0.2.1-rc.5. Old patterns are kept; rc.5 patterns are added instead of replacing them.
- #36 escalation schema: also neutralizes the bash/pwsh
sandbox_permissionsjustification text; adds the capitalisedApproval is auto-granted.marker so tool-fs no longer drifts on case alone. - #50 session references: drops untrusted / "do not follow instructions" framing while keeping the read-only snapshot wording.
- #57 developer role: the rc.5
instructionRoleresponses branch is included in the openai/azure allowlist. - #62 approval fail-open: rc.5
void 0branches (no approval service / no agent / unavailable) all allow; files already stamped by the old approval branch are re-processed instead of skipped. - #32 / #53 markers: #53 no longer shares #32's comment marker, so older hosts cannot show a false green; rc.5 leftovers (
local web GUIprefix andDeepSeek Harness Web GUIdescription) are removed. - Host gate:
package.jsongainsdshTargets, and the status page accepts both rc.2 and rc.5. - Verified: on both web and desktop hosts, 73/85 applied, 0 pending, 0 drifted; sandbox apply/revert restored all 42 target files byte-for-byte.
1.1.87
中文
- 版本 1.1.87。
- 回滚 / 备份加固:
- 0 字节的
.dshpurge.bak不再被当成"原版"写回宿主:revertAll/restoreFromBak遇到空备份会改名为.bad并跳过,下次启动顺手清掉残骸。 - 宿主升级后刷新过期 bak 时补上单数
marker的补丁(#6/#7/#8/#10),不再漏掉这些基线,避免旧 bak 覆盖新版文件导致新旧代码混合。 - 备份、配置、状态、覆盖文件统一走原子写(临时文件 + fsync + rename),断电或进程被杀不会留下半截文件。
- 0 字节的
- 补丁命中契约:标记
optional的补丁命中数不符时记为软失败,不再阻断整体应用;#42 的两处插入型替换加探针,重复应用不会二次插入。 - 桌面 / 进程(Windows):
- 进程枚举改用
|分隔并强制 UTF-8 输出,修复中文安装路径下换包时旧进程杀不掉的问题。 - helper 只有在确实拿到 exe 路径时才带
killApp;换包失败会把原版重新拉起并写日志,不再留空桌面。
- 进程枚举改用
- 安全加固:
- asar 解包校验输出路径必须位于目标目录内,越界条目跳过并告警。
- 红队文件读写路径校验对最近存在的祖先做
realpath,堵住 symlink 逃逸。 - 更新检查只允许
https。 - 报告回放生成的 curl / HTTP 报文对头部、Cookie、请求体去除换行,防注入。
- 提示词 / 运行钩子:插件停用后
rewriteFn直接返回宿主原始装配文本,不再残留注入;停用时清理 assemble guard;运行时缓存签名纳入红队设置、策略与 override 版本,状态变化立即生效。 - 红队演练台:
listEngagements默认不再逐条统计;漏洞列表与报告支持evidenceLimit,大证据不再拖慢面板。 - 子代理:名额占位改为立即占用(
n+1),append 失败时回退,避免并发派出超限。 - CLI:
--apply存在失败项时以退出码 1 结束,脚本调用能感知失败。 - 清理:删除无引用的
lib/mnemon-settings.js及 13 处死代码 / 未使用的 import;移除test/目录与test脚本,发布 CI 只做语法检查。
English
- 1.1.87.
- Rollback / backup hardening:
- A zero-byte
.dshpurge.bakis no longer treated as the original and written back to the host:revertAll/restoreFromBakrename it to.badand skip it; leftovers are swept on the next start. - When refreshing stale backups after a host upgrade, patches that use the singular
markerform (#6/#7/#8/#10) are now included, so their baseline is not missed and an old backup can no longer overwrite the new file. - Backups, config, state and override files are written atomically (temp file + fsync + rename), so a crash never leaves a half-written file.
- A zero-byte
- Patch hit contract:
optionalpatches that miss their expected hit count are recorded as soft failures instead of blocking the whole apply; the two insert-type repla...