Commit Graph
146 Commits
Author SHA1 Message Date
叫我小杨同学 89daa5b60c fix: 补丁 81 匹配新宿主 system 变量 + 银行域名加进 attack 拒答表
排查结论钉死:日志投影 assemble 有注入 (seq 8, 45576 字节),
但线上送 LLM 的 system 只有 ~6KB (capability+技能目录,无注入),
两份 assemble 完全不重叠。核对宿主 agent-loop/lib/index.js:
step(assembly) 的实际行是 `const system = renderPrompt(assembly);`,
旧 pattern `const { assembly } = decision; const renderedPrompt = ...`
对新宿主 100% 不命中 → hang-inject 从未执行。

补丁 81 加一条新宿主优先 pattern,独立不依赖补丁 74 的 prepare 块。
把 const system 改成 let system,在 renderPrompt 之后 / buildRequest
之前前置 hungPrompt 全文(有 needle 查重防叠层)。buildRequest 收到
的 system 就是带注入的,线上渲染路径的旁路被堵死。

net-scope 原来只按 CN/HK/MO 后缀分区;.com/.co.jp 类通用后缀
的跨国银行不命中。新增 BANK_HOSTS 覆盖美/英/德/法/瑞/荷/意/西/
北欧/日/韩/新加坡/澳新/加/印/东南亚/中东/俄/拉美/非洲/港澳台陆
主流银行、央行、国际金融组织、主流加密交易所,子域也命中。
taskTargetHit 落到 regionOfSuffix 之后,返回 kind:"bank"。
2026-10-09 16:08:01 +08:00
叫我小杨同学 704eee142b fix(#84+#86): denial stream 用 compact chunk + 补丁 42 升级 plainConfig
#84: denialStream 之前打 type:text-chunks 带 .chunks 字段,
但宿主 firstRunMemberTime 认的是 .texts —— 字段错配继续炸。
改成逐 chunk 包成 { type:"chunk", time, chunk } 走单条路径。

#86: 补丁 42 register/commitLegacy 两个 validate 前漏 plainConfig,
cosmokit volatile 字段作为 live 对象引用灌进 validate,日志爆红。
两处 replace 加 plainConfig 包裹;markers 改成 #86 新串,
再加两条升级 pattern 匹配老用户已清洗、缺 plainConfig 的产物,
确保 skipIfMarked 短路后老用户也能走升级补齐。
2026-10-09 15:47:04 +08:00
叫我小杨同学 f8de7686e9 fix(patch-57): developer role 改白名单 — 修第三方代理注入全丢
根因: 老补丁 57 是黑名单模式 (只排除 deepseek.com),第三方 OpenAI-compat
代理 (recoverystar / glm / 中转站) 实测不认 developer role,会把
developer 消息静默丢弃 —— HUNG_PROMPT_EVERY_STEP 补 81 注入的整段
系统提示词从未到达模型。
审查实验证实: 同样内容 system 角色计 117 tokens, developer 只 87 tokens,
差值恰好是指令大小; 真实会话第一轮计费 7.7k tokens, 远低于带注入时的
~19-20k, 说明注入对第三方 provider 完全不生效。

修复: 从黑名单升级为白名单 — 只有 OpenAI 原生 (api.openai.com) 和
Azure 原生 (*.azure.com) 才用 developer, 其他全部回退 system。
replacements 保留原始官方代码的 3 条 pattern (新用户) + 新增 3 条
升级 pattern (已清洗老用户的 "deepseek 黑名单版" 升级到白名单)。
marker 换新字符串 "developer role allowlist: openai/azure", 让
skipIfMarked 对老用户返回 false, 从而触发升级 pattern。

同步更新 client.js 两处翻译。
2026-10-09 15:32:03 +08:00
叫我小杨同学 d6c97a49ed fix(desktop): PowerShell 立即 kill Electron 消除 #64 crash dialog 根因
- ASAR_SWAP_PS1 不再等 WaitPid 优雅退出,改为立即 Stop-HarnessInstall;
  Electron main 和 host 一起被 kill,UI 来不及收 host 退出事件,
  main.js:3725 的"host stopped"对话框根本没机会显示。
  PowerShell 是 detached+stdio:ignore 独立进程,杀 Electron 不影响自己。
- scheduleAsarSwapRestart 接 ctx fallback,启动期自愈路径也能解析
  desktopRuntime 走 requestRestart 做双保险。
- gracefulExit timeout 从 4500/3000 缩到 2000/1500ms:PS 杀得快,
  不需要那么长的 handoff 窗口兜底。
- core.restartSealedDesktopIfNeeded 透传 input.ctx 给桌面层两条路径。
- index.js:scheduleApplyRestart / handlePurgeCommand 全链路加 ctx 参数,
  commands.register handler 把 effect 作用域 ctx 交到最深处的
  restartSealedDesktopIfNeeded 和 scheduleRestart。
- identity.js:isHardcodedExecRule 长度闸 800→1500,用户 rules 文件偶尔
  引用写死 preamble + 本体 >800 字节时不再被误剥。
2026-10-09 14:41:44 +08:00
叫我小杨同学 3ca2a1967b fix(desktop): 加长 asar swap gracefulExit timeout 到 4500ms, 加标注 #64 硬限制
- 有 runtime: 给宿主最大 4.5s 处理 requestRestart 内部副作用。宿主正常会
  在窗口内自己 kill host 不弹 crash;没 kill 兜底 process.exit 可能仍弹。
- 没 runtime: 延长到 3s 兜底, 注明"这条路径仍可能弹 host stopped"。

诚实标注: 宿主对 host exit 的 crash 判定由宿主 UX 控制, 插件无法影响。
requestRestart 是唯一通路。若实测仍崩, 需 DSH 官方修 requestRestart 或
修 crash 判定逻辑, 插件侧已无进一步手段。

版本号保持 1.1.67。
2026-10-09 14:23:25 +08:00
叫我小杨同学 c2775a02ed fix(desktop): 点重启弹崩溃根因 - 让宿主 ack 预期退出,别裸 process.exit
现象:点"应用"→ 弹"重启"对话框 → 点重启 → 弹"host stopped"崩溃对话框。
实际 PowerShell asar swap 正常启动了,只是宿主 main.js:3725 的 ChildProcess
listener 把 host 子进程退出一律当"崩溃"报,并把 host stderr 全 dump 给用户看
(2026-10-09 crash log 栈顶 `at ChildProcess.<anonymous> ... main.js:3725:36`
+ `maybeClose` + `_handle.onexit` 就是这条路径)。

修法:
1. scheduleAsarSwapRestart 加 options.runtime(desktopRuntime 实例)。
   有 runtime → 先 await runtime.requestRestart() 让宿主主动安排 restart,
   宿主知道 host 会主动退就不弹 crash;setTimeout 1.8s 兜底 process.exit。
   没 runtime → 兜底 process.exit 1.5s(比原 0.8s 长,给 PowerShell handoff
   更多时间)。两条路径都挂日志标记 planned exit 便于排查。
2. restartOfficialHarness 加 options.ctx / options.runtime,内部 desktopRuntimeOf
   拿到 runtime 后透传给 PowerShell 和 helper 两个 scheduleAsarSwapRestart 分支。
3. scheduleRestart 把 ctx 透传给 restartOfficialHarness,asar swap fallback 分支
   也拿 runtime 走同一条优雅退出路径。

版本号保持 1.1.67,不发新版。
2026-10-09 14:14:53 +08:00
叫我小杨同学 a99fba5e86 fix(hang+leak): 7 文件修 assemble throw / crash listener / Map FIFO
卡死路径三连 (UI 发不出 / 任务到一半停):
1. index.js:system-prompt/assemble handler 的 await next() 加 try/catch。
   下游 waterfall 任一环节 throw 就把整条 assemble 弄死,原地卡住发不出去。
2. identity.js:installAssembleGuard wrapped 的 await orig(...) 加 try/catch。
   宿主原生 assemble throw 后 sections.map 会崩,症状就是"任务到一半苏醒"
   "连保存都救不了"的拒答 - 吞掉返回空装配兜底。
3. desktop.js:scheduleAsarSwapRestart 的 PowerShell spawn 加 'error' listener。
   没 handler 时 Node 当 uncaughtException 直接把宿主崩掉(2026-10-09 crash
   log at ChildProcess.<anonymous> main.js:3725 根因)。

启动卡顿 / ReDoS:
4. desktop.js:PROCESS_EXE_SCRIPT execFileSync timeout 15s → 6s。
   Win32_Process 枚举 1-3s 够用, 15s 把启动期 UI 卡 15s 太狠。
5. net-scope.js:ATTACK 正则加 100KB input cap。零宽环视 + 超长输入
   (贴代码/日志)会 ReDoS 把事件循环卡死。

内存积累(cordis 无 session/removed 事件可挂, FIFO 兜底):
6. continue-retry.js:createTracker bySession 加 CAP=200 / EVICT=50。
7. refusal-recover.js:bySession 加 CAP=200 / EVICT=50。
8. redteam/role-section.js:roleBySession 模块级 Map 加 CAP=400 / EVICT=100。

全局 handle 清理:
9. index.js:installHungPromptGlobal 返回 fn, effect cleanup 带 identity
   校验 delete __dshPurgeHungPrompt, 避免热重载时旧 cleanup 挖掉新实例。

版本号保持 1.1.67, 不发新版。
2026-10-09 14:06:07 +08:00
叫我小杨同学 7eb82f45a6 fix(identity+index): 二轮苏醒拒答根因 + 高频 inject disk IO 节流
二轮 inject 失效根因三连:
1. refreshHungOperator 空值兜底 - resolved.text 为空时走加密默认兜住,
   避免二轮 fallbackInject="" → collectInjectText 回退 purge[] 残留 → inject 失效。
2. refreshHungOperator mtime+200ms 节流 - 400ms 轮询 + pre-step + preset-selected
   + readInjectFallback 同秒 10+ 次 syncPromptInjectOnDiskSync + resolveInjectText
   + 3×hashOverride + 模块级赋值, 严重 disk/CPU 消耗。
3. rewritePromptAssembly 不原地改写 assembled.sections -
   宿主若缓存 assembled, 二轮进来已被我们污染过; 改返回新对象,
   下轮进入 sections 保证来源干净。

内存积累 / listener 叠层:
4. wrapDisposers 单例化 - 原本 400ms + pre-step 每次 push 新 noop closure 入 Set。
   改为 WeakSet(prompt) 守 trackDisposer, 只对真正新 prompt 对象记一条 disposer。
5. agent-preset/selected / agent/pre-step / session/created 三个 ctx.on 加
   flag guard, installIdentityOverride 若被二次 apply 不再叠层。
   ctx.effect cleanup 时顺手清 flag, 保留下次 apply 重挂的能力。

版本号保持 1.1.67, 不发新版。
2026-10-09 13:52:58 +08:00
叫我小杨同学 867af65b85 fix(index): 别 20 秒 clearInterval,否则第二轮 inject 被宿主裁短
installIdentityOverride 的 400ms 轮询 20 秒后 clearInterval,挂上就停。但
cordis 会在 session 内切预设、subagent fork、live-mount 时换新的 systemPrompt
代理,此时 wrap 挂不上 → 走原生 assemble → 宿主按 token 预算把长 system 段
裁短 → 用户看到"第二轮只截取了部分"。

session/created / agent-preset/selected / agent/pre-step 这几个事件在正常
session 内第二轮并不触发(保存按钮能救是因为它触发了等价事件链让 guard 重挂),
不能单靠事件覆盖所有换代理路径。

installAssembleGuard 是幂等的(342baae/9292821),400ms 调一次只是对象
identity + Map get,持续跑到 ctx dispose 的开销可忽略。
2026-10-09 13:11:19 +08:00
叫我小杨同学 324b899dae fix(extract-asar): hostFs.promises 补上 rename
atomicWriteFile/atomicCopyFile 需要 fsp.rename,hostFs.promises 原先漏了。
启动种子调 atomicWriteFile 第二步 rename 直接抛 TypeError: fsp.rename
is not a function,导致 /dsh-purge/apply 整条链路倒下。

跟 copyFile 一样走 fsForPair 路由,保证 src/dest 跨 asar/disk 边界时
用的是同一侧 fs。
2026-10-09 12:28:07 +08:00
叫我小杨同学 11d3c0748d fix(core): atomicWrite 别走 fsp.open / fsyncSync / closeSync
hostFs.promises 只包了 readFile/writeFile/mkdir/unlink/rm/copyFile,没 open;
hostFs 的同步侧也没 fsyncSync/closeSync。启动种子调 atomicWriteFile 立刻
抛 TypeError: fsp.open is not a function,applyBoot 整个倒下。

现在 atomicWriteSync/atomicWriteFile 只用 writeFile+rename,原子性靠 rename
(POSIX / Windows MoveFileEx),断电丢最新一次写入可接受,下一次 apply 补。
atomicCopyFile 原本就只用 copyFile+rename,不受影响。
2026-10-09 12:16:55 +08:00
叫我小杨同学 d26e69a4fa fix: 发布 1.1.67,#85/#84 + 启动种子 + 85 项清单一次性修复
- #85 continue 续跑加 failStreak 阈值;refundContinue 不清 lastContinueSeq,连错 3 次放弃
- #84 region gate denialStream 单批 text-chunks 带 .length,不再卡宿主 UI
- 启动即种子:$DSH_HOME/prompt-inject.md 为空/缺失自动写加密默认稿,用户改过的不动
- Windows 重启脚本:pid+random 命名 + 直接 wscript.exe //B,不再 /IM 杀全名
- 官方 CLI shim 原子写 + .dsh-purge.bak 可回退
- WScript clean 判定两 null 放行,首装不卡;探测缓存不缓存空结果
- scheduleAsarRenameWhenIdle 的 .rename-pending 锁时钟回拨/30min 失效自动清
- 三处 execFileSync 加 maxBuffer: 8MB,大结果不再 ENOBUFS 静默
- net-scope / identity / hooks-deny / extract-asar / client.js / core.js / update.js / skills.js / refusal-recover / rewind / rules / reapply 等共 85 项修复
2026-10-09 11:52:39 +08:00
叫我小杨同学andCursor 3df4f489b1 fix(net-scope): region gate denial 改为紧致 stream 记录
Fixes the host crash in #84.

denialStream 原先写入 4 条裸 chunk(block-start/text-delta/block-end/finish)。dsh-llm firstRunMemberTime 只认 chunk/text-chunks/reasoning-chunks/tool-call-chunks,裸记录没有 .texts,append 当下 TypeError 被当成 fatal load failure,systemd Restart=always 后 web token 一直变。现包成 { type: chunk, time, chunk },与 AssistantStreamAccumulator 一致。不改写历史 session.v4.jsonl.zstd。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 10:16:14 +08:00
叫我小杨同学andCursor 342baaed78 fix(identity): 合并 PR #83,assemble 代理层不再每步叠加
Fixes #82

提交者对着 1.1.59 的 wrap(prompt.assemble) 每步叠 createShadowMethod,诊断正确。1.1.60 起已有 Symbol 守卫;冲突保留该守卫和按服务 slot 更新 rewrite,并纳入 PR 的 _dshPurgeWrapped 早退,避免描述符读不到时把新代理写进 accessor。不采用模块级 activeAssembleRewrite,以免多 prompt 抢同一改写函数。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 10:15:33 +08:00
21hbguo 9292821449 fix(identity): installAssembleGuard 幂等,消除 assemble 代理层每步叠加
prompt.assemble 经 cordis traceable 代理读取时每次都新包一层
createShadowMethod 代理。installAssembleGuard 每次执行
`current = wrap(prompt.assemble)` 会把新代理无条件叠进 accessor——
wrap() 的 _dshPurgeWrapped 检查只能阻止重复包装函数本体,挡不住
代理层累积。该函数被 agent/pre-step 每步调用,约 2000 步后
systemPrompt.assemble 的调用链在真实 assemble 之前就耗尽 V8 栈
(Maximum call stack size exceeded,所有 turn 秒败)。

修复:检测到 prompt.assemble._dshPurgeWrapped 已存在时直接返回;
改写闭包改读模块级 activeAssembleRewrite,保持「最新配置生效」语义
(原实现下 wrapped 创建后 rewriteFn 实际从未更新过)。
2026-10-09 09:41:45 +08:00
叫我小杨同学andCursor 09bac57f2c fix: 发布 1.1.66,Hooks 开关与会话来源
清洗页可关掉 hooks deny 旁路。继续/拒答续跑改用官方允许的来源 kind,限流和传输失败不再自动续一轮。

Closes #80. Closes #81.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-09 01:32:17 +08:00
叫我小杨同学andCursor 76e64d65e0 fix: 发布 1.1.65,截图报告与默认提示词
接入上游截图登记和六段报告,默认提示词按当前文稿重新加密。缺外部工具或密钥时技能仍可加载。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 16:52:44 +08:00
叫我小杨同学andCursor 24710ff2d1 fix: 发布 1.1.64,红队流程八项修复
新建靶标才换角色稿;计分、预检和并发名额按现行规则走。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 11:04:18 +08:00
鼬豆腐GOLDkeyandTofu c99dc4dc3a fix(update): 不再手改 pnpm-lock.yaml —— 它会让整个 profile 变成不可安装 (#78)
pinInstalledSpec() 在把 package.json 的安装地址 pin 成 codeload 之后,又用正则把
pnpm-lock.yaml 里 importer 的 specifier/version 两行改成同一个地址,却没有写
packages:/snapshots: 条目。锁文件于是自相矛盾 —— importer 说 codeload,packages
还停在镜像地址 —— pnpm 在任何命令之前校验锁文件就退出:

    ERR_PNPM_LOCKFILE_MISSING_DEPENDENCY
      ╰─▶ Broken lockfile: no entry for 'dsh-purge@https://codeload.github.com/…' in pnpm-lock.yaml

dsh 给子进程带 CI=1(frozen-lockfile 默认开),于是 profile 里连紧随其后、本来能
修好它的 pnpm add --force <codeload url> 也起不来 —— 整个 profile 的
add / remove / update 全部失效,只能人工动锁文件。

这个手改其实不需要:pin 完 package.json 之后,pnpm 自己在 add --force 时就会按新
地址重新解析,把 importer / packages / snapshots 一次写一致(实测 pnpm 12.8.1 +
CI=1:add --force --lockfile-only 退出 0,随后冻结核验退出 0)。两条 integrity 也
说明地址不能手抄:镜像 tar.gz 是 sha512-5eJh…,codeload tar.gz 是 sha512-7n8l…。

这里只删掉锁文件改写,package.json 的 pin 保留(github.com/archive 会 302,pnpm 的
fetch 会失败)。锁文件交回 pnpm 写。

Co-authored-by: Tofu <savethestrayme@163.com>
2026-10-08 09:02:01 +08:00
叫我小杨同学andCursor e4c18d1e2c fix: 发布 1.1.63,官方更新脚本改为纯 ASCII
去掉 wscript 里的中文注释,避免 official update script is not ASCII。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-08 00:30:37 +08:00
叫我小杨同学andCursor 39bc5208b0 fix: 发布 1.1.62,锚点门放宽首轮并重新打开继续/重试
首轮输出上限提到 8192、最多 2 步,已调工具即放开;已有预设同步锚点配置。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 18:49:07 +08:00
叫我小杨同学andCursor f51c1d6ddc fix: 发布 1.1.61,多宿主 Apply 与 #73/#74、极简 preset
- Apply/reapply 同时写 npm-global 与桌面宿主;#73 地区闸门误拦;#74 提示词落盘与 resolveInjectText

- 极简 #80 官方 shell;agent-preset/selected 优先;adaptInjectForMinimalPreset;refusal-recover 扩展

- identity 注入去重与组装;默认提示词重加密 asset-table.js

Closes #73. Closes #74.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-07 18:13:19 +08:00
叫我小杨同学andCursor af13e8c201 fix: 发布 1.1.60,极简/PTC 清洗、回退轮次与桌面补丁
- 反转 run_code/沙箱/plan 拦截(#60/#61/#63);minimal 补 agent-instructions(#26)

- 回退按当前轮定位(rewind + #74/#75);Apply 写入 client 包避免取消重启

- 默认提示词重新加密;#66/#67/#69/#71/#70 与 README #68 安装说明

Closes #66, #67, #69, #70, #71. Docs for #68.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-06 23:32:54 +08:00
叫我小杨同学andCursor 15df041ebe fix: 发布 1.1.59,应用后不再误报没写进宿主
重启校验同时认两条安装路径。原文里已经没有官方身份句和丢掉注入的写法时,不再因为旧标记对不上就取消重启。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 01:36:46 +08:00
叫我小杨同学andCursor 131ef12ecb fix: 发布 1.1.58,打开即挂上默认提示词
重启或重新打开后不用再点保存。磁盘正文优先,其次规则集,再没有就用内置默认。应用成功仍先询问是否重启。前端模块只在页面发出前改写,避免输入框消失。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-05 01:06:55 +08:00
叫我小杨同学andCursor 75637c48b9 fix: 应用成功后自己重启一次
有新补丁或密封包还在时,点应用直接重启,不再弹出确认。没有新补丁就不重启。Windows、Linux、macOS 都退出再打开,斜杠不再干等。极简 bash 只删掉误留的镜像那一句。默认提示词继续用 default-prompt-inject.md 的加密槽,明文不进发布包。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 23:24:49 +08:00
叫我小杨同学andCursor e26d3251f0 fix: 极简等模式不用再点保存也能挂上提示词
组装时若内存里还没挂正文,就从磁盘提示词或当前规则集补上。空的已保存标记不再挡住磁盘文件。提示词段同时挂到全局层,切换官方预设也能看见。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 22:05:33 +08:00
叫我小杨同学andCursor 813fbe4d54 fix: 面板不再盖住官方对话,重打补丁不再回写前端包
浮层收成右侧窄条,底边停在输入框上方;演练台嵌在面板里时不再给官方窗口加右侧内边距。重打补丁时若前端 client.js 内容没变就不写,避免页面按旧 rev 404。桌面启动自检不再杀掉自己,清洗标记同时认新旧两句。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 21:24:20 +08:00
叫我小杨同学andCursor 354f9a1960 fix: 发布 1.1.57,应用后挂上提示词并让 Messages 使用当前系统提示
官方其余模式与标准一样清拦截。演练授权按本机目录保留,卸载成功后才清。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 13:06:19 +08:00
叫我小杨同学andCursor 25c97e5cd2 fix: 空框不再写入默认提示词,玻璃界面跟随宿主主题
应用按框内正文、当前规则集、官方系统提示词的顺序选定;空框且没有规则时停下来要求输入,不再把内置默认写进磁盘。侧栏去掉手动换色,玻璃颜色跟随 DSH。说明只保留官方 Web 和官方桌面。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-04 00:05:11 +08:00
叫我小杨同学andCursor 6f37daa01d fix: 发布 1.1.55,重启后提示词稳定注入且不再误取消
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 16:49:49 +08:00
叫我小杨同学andCursor 4da6d2eaf4 fix: 发布 1.1.54,官方桌面启动不再 INACTIVE_EFFECT(#58–#61)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 14:19:25 +08:00
叫我小杨同学andCursor c67b012bd7 fix: 发布 1.1.53,修应用后无限重启与市场 git 安装(#58–#61)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 13:54:38 +08:00
叫我小杨同学andCursor fccb633937 fix: 1.1.52 回退切整轮并清 derive 缓存,下次发送不再带旧内容
回退 fromSeq 扩到本轮首个 surface 消息;surface replace 后丢掉 derived 缓存并校验;重置 frozenMessages。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 01:43:32 +08:00
叫我小杨同学andCursor a71d3ef7bf fix: 1.1.52 保留用户自改提示词,内置默认只读加密槽
磁盘正文与内置不同时不再被「应用」盖回;运行时 bundled 只走 asset-table,明文 md 仅作 embed 源。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-03 01:32:15 +08:00
叫我小杨同学andCursor 5ef028fc27 fix: 发布 1.1.52,禁自动官方更新交接与插件自更新,密封态自愈,重封默认提示词
Co-authored-by: Cursor <cursoragent@cursor.com>

#57 应用/重启不再跑官方 installer;applied 戳在 sealed/丢根时触发 reapply;启动永不自动更新插件;默认提示词重新加密写入 asset-table。
2026-10-03 01:15:37 +08:00
叫我小杨同学andCursor a18fefa2a9 fix: 发布 1.1.51,修 skills 自导入删空、EnvAdapt op、同版本更新劫持与补丁锚点
Co-authored-by: Cursor <cursoragent@cursor.com>

#54 拒绝 skills 源与目标重叠;#55 补 platformEnvAdaptStatus/Skip;#56 无版本 installer 不再劫持重启并恢复 app;#52/#57 锚点跟上 0.1.7/0.2,导出 patches_ready。
2026-10-03 01:01:31 +08:00
叫我小杨同学andCursor 8f01cd8444 fix: 发布 1.1.50,修 macOS 桌面重启/CLI(#53)与应用后默认提示词注入。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 22:29:28 +08:00
叫我小杨同学andCursor 0674ca2003 fix: 发布 1.1.49-beta.1,修 macOS 官方桌面重启假失败与解包后 CLI 失效(#53)。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 19:20:16 +08:00
叫我小杨同学andCursor e643f9a9a9 fix: 1.1.48 剔除桌面改读 profiles/web 的本机逻辑。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 17:31:49 +08:00
叫我小杨同学andCursor 7a8ba73cd5 fix: 发布 1.1.48,桌面跟 Web 配置、红队派活与 skill/MCP 按任务选用。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 17:25:49 +08:00
叫我小杨同学andCursor b7c14005c3 fix: 发布 1.1.47,演练台环境适配与首次用户须知。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 13:55:13 +08:00
叫我小杨同学andCursor 81c48bf465 fix: 发布 1.1.46,略过有问题的 1.1.45。
工作区说明改回不能压过 system,地区闸门只认大陆、香港、澳门域名,并重新加密默认提示词。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 03:28:46 +08:00
叫我小杨同学andCursor 96c54b8431 fix: 1.1.45 地区闸门不再因单个 CDN 噪声 IP 误拦第二轮。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 02:35:24 +08:00
叫我小杨同学andCursor 7d470fe870 fix: 1.1.45 第二轮发送不再因 undefined.length 直接死掉。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 02:21:39 +08:00
叫我小杨同学andCursor 1283c64cc9 fix: 1.1.45 回退时 snapshotEvents 为空不再炸掉。
会话事件列表为空或未就绪时按空数组处理,避免 gateway/internal 读 length 报错导致回退无效。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 02:12:47 +08:00
叫我小杨同学andCursor 6e40734807 fix: 发布 1.1.45,稳住默认注入并修正清洗进度显示。
点应用即写入默认提示词,不必先保存。剥掉外层 project_instructions 壳并钉死会话系统提示,避免第二轮注入失效。未定位宿主不再显示 0/63,本机不需要的项计入已就绪。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-02 02:09:44 +08:00
叫我小杨同学andCursor b8a5171d78 fix: 发布 1.1.44,回退后下一句按新消息发,启动就注入默认提示词。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 20:36:12 +08:00
叫我小杨同学andCursor 3c7c234b34 fix: 发布 1.1.44,提示词按模式注入并让子代理吃到同一份。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 19:18:54 +08:00
叫我小杨同学andCursor 2ecce304db fix: 发布 1.1.44,提示词按模式注入并让子代理吃到同一份。
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-01 19:18:15 +08:00