Repository navigation
Releases: lzzzz666888/dsh-purge-optimized
Releases · lzzzz666888/dsh-purge-optimized
Release list
v1.1.91-opt.1
1.1.91-opt.1
中文
- 版本 1.1.91-opt.1,上游基线 1.1.90。衍生分支,不是上游版本。
- 恢复技能库:
skills/redteam/从 1.1.71 逐字节搬回 23 个技能,package.json的files重新包含"skills"。1.1.90 打包时丢了这个目录,installBundledSkills()一直返回{action:'missing'},一个文件都不落盘,而提示词和skill-fixes.js仍在引用 gogo-intranet / fscan-intranet 这些名字。 - 恢复知识库:
store-core.js的 dispatch 不再短路pocSearch|pocList|pocGet|pocSave|pocUpdate|pocDelete|pocUse|pocStats,tools.js删除KB_DISABLED常量与 6 处早退。底层 SQLite 方法原本就完整,只是上层被封。pocGet未命中返回{ok:false,error}而不是 throw;pocUpdate外层补 try/catch。- 5 个工具的
execute()原本漏写args参数(早退导致永不执行到),一并补成(args, exec)。
- 恢复本地靶场白名单:
writeAllowText()在 1.1.90 里是空函数,写入不落盘;readAllowExact/permittedHost/isOwnNetwork/isSkippedV4被整个删除。现已按原逻辑恢复,并补回设置页的输入框与保存按钮(1.1.90 只剩一个标题)。 - 模板索引增强:
searchTemplates()增加offset/matched/byCategory与每项的category/categoryName;templateStats()增加byCategory。上游 1.1.90 的界面对着这三个字段取值,但后端一个都不返回,翻页与类目条实际是死的(1.1.71 同样如此)。 - 页签接回:侧栏 tabs 补回「知识库」「技能库」,路由从「三条全给 EnvTab」拆成三条独立路由。
- 保持不动:
isLocalLabV4私网门禁、lookupIps的 DNS 解析判定(2s 超时 / 5s 缓存 / 256 条上限)、isCheatTask游戏外挂拦截、tools/pre-execute钩子、8 个证据链工具、presets/redteam/agent.cordis.yml里已删除的toolFilter(0.2.1 写回会让整份预设注册失败)。 - 归属:本分支为 Apache-2.0,上游版权归 HunYiSage;NOTICE 保留上游原文,仅追加本分支说明。
English
- 1.1.91-opt.1, based on upstream 1.1.90. Derivative branch, not an upstream release.
- Skill library restored: the 23 skills under
skills/redteam/are copied byte-for-byte from 1.1.71 andfilesinpackage.jsonincludes"skills"again. Upstream 1.1.90 stopped shipping that directory, soinstallBundledSkills()always returned{action:'missing'}and copied nothing, while the prompts andskill-fixes.jsstill referenced names like gogo-intranet and fscan-intranet. - Knowledge base re-enabled:
store-core.jsno longer short-circuitspocSearch|pocList|pocGet|pocSave|pocUpdate|pocDelete|pocUse|pocStats, andtools.jsdrops theKB_DISABLEDconstant plus its six early returns. The SQLite layer underneath was intact the whole time.pocGetreturns{ok:false,error}on a miss instead of throwing;pocUpdateis wrapped in try/catch.- Five tools had
execute()without anargsparameter because the early return made that unreachable; they now take(args, exec).
- Local-lab allowlist restored:
writeAllowText()was an empty stub in 1.1.90 that never wrote to disk, andreadAllowExact/permittedHost/isOwnNetwork/isSkippedV4had been deleted. The original behaviour is back, together with the settings panel textarea and save button (1.1.90 had reduced that block to a bare heading). - Template index improved:
searchTemplates()now returnsoffset/matched/byCategoryplus per-itemcategory/categoryName;templateStats()gainsbyCategory. The 1.1.90 UI reads all three, but the backend returned none of them, so pagination and the category bar were inert (1.1.71 had the same bug). - Tabs reconnected: the sidebar tabs list includes Knowledge and Skills again, and the three previously merged routes each get their own branch instead of all falling through to
EnvTab. - Left untouched: the
isLocalLabV4private-network gate, thelookupIpsDNS check (2s timeout / 5s cache / 256 entries),isCheatTaskgame-cheat interception, thetools/pre-executehook, the eight evidence-chain tools, and the removedtoolFilterinpresets/redteam/agent.cordis.yml(writing it back breaks preset registration on 0.2.1). - Attribution: this branch is Apache-2.0; upstream copyright stays with HunYiSage. NOTICE keeps the upstream text and only appends a branch note.
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 co...