@tom2012/cc-web 2026.6.17-b → 2026.9.6-b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (235) hide show
  1. package/CHANGELOG.json +92 -21
  2. package/backend/dist/adapters/claude-adapter.d.ts +4 -0
  3. package/backend/dist/adapters/claude-adapter.d.ts.map +1 -1
  4. package/backend/dist/adapters/claude-adapter.js +18 -2
  5. package/backend/dist/adapters/claude-adapter.js.map +1 -1
  6. package/backend/dist/adapters/types.d.ts +8 -0
  7. package/backend/dist/adapters/types.d.ts.map +1 -1
  8. package/backend/dist/auth.d.ts.map +0 -0
  9. package/backend/dist/config.d.ts +0 -0
  10. package/backend/dist/config.js +0 -0
  11. package/backend/dist/config.js.map +0 -0
  12. package/backend/dist/hooks-manager.d.ts.map +1 -1
  13. package/backend/dist/hooks-manager.js +19 -3
  14. package/backend/dist/hooks-manager.js.map +1 -1
  15. package/backend/dist/index.d.ts.map +1 -1
  16. package/backend/dist/index.js +53 -1
  17. package/backend/dist/index.js.map +1 -1
  18. package/backend/dist/routes/auth.d.ts +0 -0
  19. package/backend/dist/routes/auth.d.ts.map +0 -0
  20. package/backend/dist/routes/auth.js.map +0 -0
  21. package/backend/dist/routes/projects.d.ts.map +0 -0
  22. package/backend/dist/routes/projects.js.map +0 -0
  23. package/backend/dist/session-manager.d.ts +0 -0
  24. package/backend/dist/session-manager.d.ts.map +0 -0
  25. package/backend/dist/session-manager.js +0 -0
  26. package/backend/dist/session-manager.js.map +0 -0
  27. package/backend/dist/terminal-manager.d.ts +10 -1
  28. package/backend/dist/terminal-manager.d.ts.map +1 -1
  29. package/backend/dist/terminal-manager.js +19 -2
  30. package/backend/dist/terminal-manager.js.map +1 -1
  31. package/backend/dist/types.d.ts +0 -0
  32. package/backend/dist/types.d.ts.map +0 -0
  33. package/backend/dist/types.js +0 -0
  34. package/backend/dist/types.js.map +0 -0
  35. package/frontend/dist/assets/{ChatOverlay-Dp1BzsYb.js → ChatOverlay-BoPckOLq.js} +1 -1
  36. package/frontend/dist/assets/{ClaudeMemPage-CpzMjJnb.js → ClaudeMemPage-CeaZSvKE.js} +1 -1
  37. package/frontend/dist/assets/{GraphPreview-DDY1yVOX.js → GraphPreview-Ch6KZFsK.js} +1 -1
  38. package/frontend/dist/assets/{MobilePage-BnnE820D.js → MobilePage-JiqI8CSK.js} +3 -3
  39. package/frontend/dist/assets/{NotebookPage-BOiYcs-l.js → NotebookPage-Ci_tsAYM.js} +1 -1
  40. package/frontend/dist/assets/{OfficePreview-C5N2gr8-.js → OfficePreview-76Lw49uc.js} +2 -2
  41. package/frontend/dist/assets/{PdfPreview-COG-9AQa.js → PdfPreview-DEsqK0ec.js} +1 -1
  42. package/frontend/dist/assets/{ProjectPage-ARPH_J5o.js → ProjectPage-v7j0VJzB.js} +4 -4
  43. package/frontend/dist/assets/{ProjectSettingsPage-CMWcT-5r.js → ProjectSettingsPage-BlxBcXB4.js} +1 -1
  44. package/frontend/dist/assets/{SettingsPage-BMrIDtg8.js → SettingsPage-eRuTffii.js} +1 -1
  45. package/frontend/dist/assets/{SkillHubPage-Bq93A7Rt.js → SkillHubPage-DTTbUlQD.js} +1 -1
  46. package/frontend/dist/assets/{check-circle-2-BGT1eH1f.js → check-circle-2-CuGGbYqq.js} +1 -1
  47. package/frontend/dist/assets/{chevron-down-Bbg11n9i.js → chevron-down-DqJlk-z-.js} +1 -1
  48. package/frontend/dist/assets/{chevron-left-BmStQriC.js → chevron-left-ADs1oMLf.js} +1 -1
  49. package/frontend/dist/assets/{file-text-D9WjmbhK.js → file-text-0i5NEvQ3.js} +1 -1
  50. package/frontend/dist/assets/{index-BRqvDxO6.js → index-BcTWKUVp.js} +1 -1
  51. package/frontend/dist/assets/{index-COZnAgez.js → index-BicNGyh6.js} +1 -1
  52. package/frontend/dist/assets/{index-Bhp9CVTp.js → index-Bni5vqf8.js} +1 -1
  53. package/frontend/dist/assets/index-BpdaJxoa.css +1 -0
  54. package/frontend/dist/assets/{index-EFhMcMWk.js → index-D5jbTY4Z.js} +2 -2
  55. package/frontend/dist/assets/{jszip.min-Dyo__hKc.js → jszip.min-CXhYhQvA.js} +1 -1
  56. package/frontend/dist/assets/{save-CAjdgnp7.js → save-BFBfbWoK.js} +1 -1
  57. package/frontend/dist/assets/{search-DmWhhICR.js → search-DUINGkQd.js} +1 -1
  58. package/frontend/dist/assets/{select-DAfsBGCS.js → select-DxHj2qKT.js} +1 -1
  59. package/frontend/dist/assets/{tabs-zra46FZv.js → tabs-6zanHiRL.js} +1 -1
  60. package/frontend/dist/assets/{textarea-BG4Tvy0e.js → textarea-DdVP5OsI.js} +1 -1
  61. package/frontend/dist/index.html +2 -2
  62. package/package.json +36 -10
  63. package/backend/dist/backup/config.d.ts +0 -10
  64. package/backend/dist/backup/config.d.ts.map +0 -1
  65. package/backend/dist/backup/config.js +0 -128
  66. package/backend/dist/backup/config.js.map +0 -1
  67. package/backend/dist/backup/engine.d.ts +0 -22
  68. package/backend/dist/backup/engine.d.ts.map +0 -1
  69. package/backend/dist/backup/engine.js +0 -298
  70. package/backend/dist/backup/engine.js.map +0 -1
  71. package/backend/dist/backup/providers/dropbox.d.ts +0 -25
  72. package/backend/dist/backup/providers/dropbox.d.ts.map +0 -1
  73. package/backend/dist/backup/providers/dropbox.js +0 -320
  74. package/backend/dist/backup/providers/dropbox.js.map +0 -1
  75. package/backend/dist/backup/providers/google-drive.d.ts +0 -29
  76. package/backend/dist/backup/providers/google-drive.d.ts.map +0 -1
  77. package/backend/dist/backup/providers/google-drive.js +0 -303
  78. package/backend/dist/backup/providers/google-drive.js.map +0 -1
  79. package/backend/dist/backup/providers/index.d.ts +0 -3
  80. package/backend/dist/backup/providers/index.d.ts.map +0 -1
  81. package/backend/dist/backup/providers/index.js +0 -19
  82. package/backend/dist/backup/providers/index.js.map +0 -1
  83. package/backend/dist/backup/providers/onedrive.d.ts +0 -29
  84. package/backend/dist/backup/providers/onedrive.d.ts.map +0 -1
  85. package/backend/dist/backup/providers/onedrive.js +0 -317
  86. package/backend/dist/backup/providers/onedrive.js.map +0 -1
  87. package/backend/dist/backup/scheduler.d.ts +0 -6
  88. package/backend/dist/backup/scheduler.d.ts.map +0 -1
  89. package/backend/dist/backup/scheduler.js +0 -55
  90. package/backend/dist/backup/scheduler.js.map +0 -1
  91. package/backend/dist/backup/types.d.ts +0 -73
  92. package/backend/dist/backup/types.d.ts.map +0 -1
  93. package/backend/dist/backup/types.js +0 -4
  94. package/backend/dist/backup/types.js.map +0 -1
  95. package/backend/dist/chat-process-manager.d.ts +0 -45
  96. package/backend/dist/chat-process-manager.d.ts.map +0 -1
  97. package/backend/dist/chat-process-manager.js +0 -258
  98. package/backend/dist/chat-process-manager.js.map +0 -1
  99. package/backend/dist/flows/runner.d.ts +0 -37
  100. package/backend/dist/flows/runner.d.ts.map +0 -1
  101. package/backend/dist/flows/runner.js +0 -660
  102. package/backend/dist/flows/runner.js.map +0 -1
  103. package/backend/dist/flows/store.d.ts +0 -40
  104. package/backend/dist/flows/store.d.ts.map +0 -1
  105. package/backend/dist/flows/store.js +0 -284
  106. package/backend/dist/flows/store.js.map +0 -1
  107. package/backend/dist/flows/types.d.ts +0 -176
  108. package/backend/dist/flows/types.d.ts.map +0 -1
  109. package/backend/dist/flows/types.js +0 -25
  110. package/backend/dist/flows/types.js.map +0 -1
  111. package/backend/dist/information/condenser.d.ts +0 -12
  112. package/backend/dist/information/condenser.d.ts.map +0 -1
  113. package/backend/dist/information/condenser.js +0 -568
  114. package/backend/dist/information/condenser.js.map +0 -1
  115. package/backend/dist/information/conversation-sync.d.ts +0 -22
  116. package/backend/dist/information/conversation-sync.d.ts.map +0 -1
  117. package/backend/dist/information/conversation-sync.js +0 -500
  118. package/backend/dist/information/conversation-sync.js.map +0 -1
  119. package/backend/dist/information/types.d.ts +0 -36
  120. package/backend/dist/information/types.d.ts.map +0 -1
  121. package/backend/dist/information/types.js +0 -4
  122. package/backend/dist/information/types.js.map +0 -1
  123. package/backend/dist/memory-pool/buoyancy.d.ts +0 -2
  124. package/backend/dist/memory-pool/buoyancy.d.ts.map +0 -1
  125. package/backend/dist/memory-pool/buoyancy.js +0 -12
  126. package/backend/dist/memory-pool/buoyancy.js.map +0 -1
  127. package/backend/dist/memory-pool/global-pool-manager.d.ts +0 -12
  128. package/backend/dist/memory-pool/global-pool-manager.d.ts.map +0 -1
  129. package/backend/dist/memory-pool/global-pool-manager.js +0 -295
  130. package/backend/dist/memory-pool/global-pool-manager.js.map +0 -1
  131. package/backend/dist/memory-pool/pool-lock.d.ts +0 -2
  132. package/backend/dist/memory-pool/pool-lock.d.ts.map +0 -1
  133. package/backend/dist/memory-pool/pool-lock.js +0 -31
  134. package/backend/dist/memory-pool/pool-lock.js.map +0 -1
  135. package/backend/dist/memory-pool/pool-manager.d.ts +0 -57
  136. package/backend/dist/memory-pool/pool-manager.d.ts.map +0 -1
  137. package/backend/dist/memory-pool/pool-manager.js +0 -322
  138. package/backend/dist/memory-pool/pool-manager.js.map +0 -1
  139. package/backend/dist/memory-pool/templates.d.ts +0 -5
  140. package/backend/dist/memory-pool/templates.d.ts.map +0 -1
  141. package/backend/dist/memory-pool/templates.js +0 -234
  142. package/backend/dist/memory-pool/templates.js.map +0 -1
  143. package/backend/dist/memory-pool/types.d.ts +0 -61
  144. package/backend/dist/memory-pool/types.d.ts.map +0 -1
  145. package/backend/dist/memory-pool/types.js +0 -4
  146. package/backend/dist/memory-pool/types.js.map +0 -1
  147. package/backend/dist/plan-control/checker.d.ts +0 -3
  148. package/backend/dist/plan-control/checker.d.ts.map +0 -1
  149. package/backend/dist/plan-control/checker.js +0 -103
  150. package/backend/dist/plan-control/checker.js.map +0 -1
  151. package/backend/dist/plan-control/executor.d.ts +0 -93
  152. package/backend/dist/plan-control/executor.d.ts.map +0 -1
  153. package/backend/dist/plan-control/executor.js +0 -955
  154. package/backend/dist/plan-control/executor.js.map +0 -1
  155. package/backend/dist/plan-control/parser.d.ts +0 -12
  156. package/backend/dist/plan-control/parser.d.ts.map +0 -1
  157. package/backend/dist/plan-control/parser.js +0 -216
  158. package/backend/dist/plan-control/parser.js.map +0 -1
  159. package/backend/dist/plan-control/templates.d.ts +0 -4
  160. package/backend/dist/plan-control/templates.d.ts.map +0 -1
  161. package/backend/dist/plan-control/templates.js +0 -271
  162. package/backend/dist/plan-control/templates.js.map +0 -1
  163. package/backend/dist/plan-control/types.d.ts +0 -102
  164. package/backend/dist/plan-control/types.d.ts.map +0 -1
  165. package/backend/dist/plan-control/types.js +0 -12
  166. package/backend/dist/plan-control/types.js.map +0 -1
  167. package/backend/dist/routes/backup.d.ts +0 -4
  168. package/backend/dist/routes/backup.d.ts.map +0 -1
  169. package/backend/dist/routes/backup.js +0 -274
  170. package/backend/dist/routes/backup.js.map +0 -1
  171. package/backend/dist/routes/flows.d.ts +0 -5
  172. package/backend/dist/routes/flows.d.ts.map +0 -1
  173. package/backend/dist/routes/flows.js +0 -457
  174. package/backend/dist/routes/flows.js.map +0 -1
  175. package/backend/dist/routes/global-flows.d.ts +0 -3
  176. package/backend/dist/routes/global-flows.d.ts.map +0 -1
  177. package/backend/dist/routes/global-flows.js +0 -90
  178. package/backend/dist/routes/global-flows.js.map +0 -1
  179. package/backend/dist/routes/information.d.ts +0 -3
  180. package/backend/dist/routes/information.d.ts.map +0 -1
  181. package/backend/dist/routes/information.js +0 -159
  182. package/backend/dist/routes/information.js.map +0 -1
  183. package/backend/dist/routes/memory-pool.d.ts +0 -3
  184. package/backend/dist/routes/memory-pool.d.ts.map +0 -1
  185. package/backend/dist/routes/memory-pool.js +0 -837
  186. package/backend/dist/routes/memory-pool.js.map +0 -1
  187. package/backend/dist/routes/plan-control.d.ts +0 -15
  188. package/backend/dist/routes/plan-control.d.ts.map +0 -1
  189. package/backend/dist/routes/plan-control.js +0 -337
  190. package/backend/dist/routes/plan-control.js.map +0 -1
  191. package/backend/dist/routes/share.d.ts +0 -3
  192. package/backend/dist/routes/share.d.ts.map +0 -1
  193. package/backend/dist/routes/share.js +0 -167
  194. package/backend/dist/routes/share.js.map +0 -1
  195. package/backend/dist/routes/sounds.d.ts +0 -3
  196. package/backend/dist/routes/sounds.d.ts.map +0 -1
  197. package/backend/dist/routes/sounds.js +0 -285
  198. package/backend/dist/routes/sounds.js.map +0 -1
  199. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts +0 -24
  200. package/backend/dist/tracks/__tests__/verify-starter-templates.d.ts.map +0 -1
  201. package/backend/dist/tracks/__tests__/verify-starter-templates.js +0 -175
  202. package/backend/dist/tracks/__tests__/verify-starter-templates.js.map +0 -1
  203. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts +0 -23
  204. package/backend/dist/tracks/__tests__/verify-track-cancel.d.ts.map +0 -1
  205. package/backend/dist/tracks/__tests__/verify-track-cancel.js +0 -153
  206. package/backend/dist/tracks/__tests__/verify-track-cancel.js.map +0 -1
  207. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts +0 -11
  208. package/backend/dist/tracks/__tests__/verify-track-t1.d.ts.map +0 -1
  209. package/backend/dist/tracks/__tests__/verify-track-t1.js +0 -293
  210. package/backend/dist/tracks/__tests__/verify-track-t1.js.map +0 -1
  211. package/backend/dist/tracks/__tests__/verify-track.d.ts +0 -20
  212. package/backend/dist/tracks/__tests__/verify-track.d.ts.map +0 -1
  213. package/backend/dist/tracks/__tests__/verify-track.js +0 -187
  214. package/backend/dist/tracks/__tests__/verify-track.js.map +0 -1
  215. package/backend/dist/tracks/registry.d.ts +0 -61
  216. package/backend/dist/tracks/registry.d.ts.map +0 -1
  217. package/backend/dist/tracks/registry.js +0 -202
  218. package/backend/dist/tracks/registry.js.map +0 -1
  219. package/backend/dist/tracks/track-runner.d.ts +0 -69
  220. package/backend/dist/tracks/track-runner.d.ts.map +0 -1
  221. package/backend/dist/tracks/track-runner.js +0 -158
  222. package/backend/dist/tracks/track-runner.js.map +0 -1
  223. package/backend/dist/tracks/train-loader.d.ts +0 -44
  224. package/backend/dist/tracks/train-loader.d.ts.map +0 -1
  225. package/backend/dist/tracks/train-loader.js +0 -32
  226. package/backend/dist/tracks/train-loader.js.map +0 -1
  227. package/backend/dist/tracks/types-train.d.ts +0 -12
  228. package/backend/dist/tracks/types-train.d.ts.map +0 -1
  229. package/backend/dist/tracks/types-train.js +0 -13
  230. package/backend/dist/tracks/types-train.js.map +0 -1
  231. package/backend/dist/usage-terminal.d.ts +0 -18
  232. package/backend/dist/usage-terminal.d.ts.map +0 -1
  233. package/backend/dist/usage-terminal.js +0 -191
  234. package/backend/dist/usage-terminal.js.map +0 -1
  235. package/frontend/dist/assets/index-GfCaMXPO.css +0 -1
package/CHANGELOG.json CHANGED
@@ -1,23 +1,94 @@
1
1
  [
2
- { "version": "2026.6.17-b", "note": "待办清单新增「日历」「甘特图」查看模式(可按项目筛选);ccweb 启动不再自动打开浏览器,改用 `ccweb open` 手动打开" },
3
- { "version": "2026.6.17-a", "note": "笔记本新增「待办清单」:按项目分块、支持层级子任务、状态(未开始/进行中/完成)、计划与实际完成日期、Markdown 描述" },
4
- { "version": "2026.6.16-b", "note": "同步远端路径选择器默认进入远端用户主目录(~/),并支持在浏览器中新建远端文件夹" },
5
- { "version": "2026.6.16-a", "note": "新增「笔记本」页面(开发时长统计):自动记录在各项目详情页的停留时间,按天/周/月查看每个项目的开发时长" },
6
- { "version": "2026.6.15-b", "note": "文件树新增「新建文件夹」按钮,可在项目根目录直接创建文件夹" },
7
- { "version": "2026.6.15-a", "note": "项目同步设置新增「浏览」远端目录选择器(经 SSH 列目录,免手输远端路径);记忆库新增「会话总结」视图,可浏览 session summary" },
8
- { "version": "2026.6.13-f", "note": "终端触屏方向键新增 Enter(回车)键,方便触屏设备直接确认输入" },
9
- { "version": "2026.6.13-e", "note": "修复 WSL 下后台启动失效:浏览器改为非阻塞解耦启动(不再阻塞 CLI、关闭浏览器不再退出 ccweb),WSL 优先用 wslview 开 Windows 浏览器" },
10
- { "version": "2026.6.13-d", "note": "登录安全加固:防暴力破解双层限流 + 登录 IP 审计(含失败尝试)+ 实时异地登录弹窗预警;修复项目改名后重启被还原" },
11
- { "version": "2026.6.13-c", "note": "检查更新时在待更新面板显示「当前版本→最新版本」的更新内容" },
12
- { "version": "2026.6.13-b", "note": "同步重构:每个项目单独设远端路径 + 项目设置页 + 卡片云朵同步状态" },
13
- { "version": "2026.6.13-a", "note": "支持 .doc 文档预览;首页 header 在小屏不再挤压重叠" },
14
- { "version": "2026.6.12-c", "note": "终端界面左下角新增触屏方向键,方便触屏设备" },
15
- { "version": "2026.6.12-b", "note": "全局记忆页面(claude-mem 只读浏览),桌面与移动端均可进入" },
16
- { "version": "2026.6.12-a", "note": "首页显示主机使用情况(CPU/内存/磁盘/网络上下行)+ header 全宽重排" },
17
- { "version": "2026.6.8-a", "note": "ccweb MCP server:把项目/文件/记忆等工具暴露给 Claude Code / Codex" },
18
- { "version": "2026.5.24-j", "note": "浏览器标签页支持文件上传" },
19
- { "version": "2026.5.24-i", "note": "浏览器标签页支持文件下载" },
20
- { "version": "2026.5.24-h", "note": "浏览器标签页剪贴板透传 + 页面标题显示" },
21
- { "version": "2026.5.24-g", "note": "浏览器标签页多用户隔离 + 内存监控" },
22
- { "version": "2026.5.24-c", "note": "浏览器标签页改用 headless chromium 架构" }
2
+ {
3
+ "version": "2026.9.6-b",
4
+ "note": "终端选中文本后出现浮动「复制」按钮(自动定位在选区上方/下方),一键复制到剪贴板;http 部署下自动回退 execCommand 方案"
5
+ },
6
+ {
7
+ "version": "2026.9.6-a",
8
+ "note": "Claude hooks/statusLine 改为 `--settings` 托管文件注入(不再写入 ~/.claude/settings.json,避免被 Claude Code 重写配置时清掉,修复网页端状态监控失灵);终端 WS 新增 slash command 溯源日志(记录 user + 来源 IP + 命令动词);修复多页面同看一个项目时输入框冒出 3R/;13R 残片(回放前剥离终端设备查询序列 + 多客户端重复应答去重)"
9
+ },
10
+ {
11
+ "version": "2026.6.17-b",
12
+ "note": "待办清单新增「日历」「甘特图」查看模式(可按项目筛选);ccweb 启动不再自动打开浏览器,改用 `ccweb open` 手动打开"
13
+ },
14
+ {
15
+ "version": "2026.6.17-a",
16
+ "note": "笔记本新增「待办清单」:按项目分块、支持层级子任务、状态(未开始/进行中/完成)、计划与实际完成日期、Markdown 描述"
17
+ },
18
+ {
19
+ "version": "2026.6.16-b",
20
+ "note": "同步远端路径选择器默认进入远端用户主目录(~/),并支持在浏览器中新建远端文件夹"
21
+ },
22
+ {
23
+ "version": "2026.6.16-a",
24
+ "note": "新增「笔记本」页面(开发时长统计):自动记录在各项目详情页的停留时间,按天/周/月查看每个项目的开发时长"
25
+ },
26
+ {
27
+ "version": "2026.6.15-b",
28
+ "note": "文件树新增「新建文件夹」按钮,可在项目根目录直接创建文件夹"
29
+ },
30
+ {
31
+ "version": "2026.6.15-a",
32
+ "note": "项目同步设置新增「浏览」远端目录选择器(经 SSH 列目录,免手输远端路径);记忆库新增「会话总结」视图,可浏览 session summary"
33
+ },
34
+ {
35
+ "version": "2026.6.13-f",
36
+ "note": "终端触屏方向键新增 Enter(回车)键,方便触屏设备直接确认输入"
37
+ },
38
+ {
39
+ "version": "2026.6.13-e",
40
+ "note": "修复 WSL 下后台启动失效:浏览器改为非阻塞解耦启动(不再阻塞 CLI、关闭浏览器不再退出 ccweb),WSL 优先用 wslview 开 Windows 浏览器"
41
+ },
42
+ {
43
+ "version": "2026.6.13-d",
44
+ "note": "登录安全加固:防暴力破解双层限流 + 登录 IP 审计(含失败尝试)+ 实时异地登录弹窗预警;修复项目改名后重启被还原"
45
+ },
46
+ {
47
+ "version": "2026.6.13-c",
48
+ "note": "检查更新时在待更新面板显示「当前版本→最新版本」的更新内容"
49
+ },
50
+ {
51
+ "version": "2026.6.13-b",
52
+ "note": "同步重构:每个项目单独设远端路径 + 项目设置页 + 卡片云朵同步状态"
53
+ },
54
+ {
55
+ "version": "2026.6.13-a",
56
+ "note": "支持 .doc 文档预览;首页 header 在小屏不再挤压重叠"
57
+ },
58
+ {
59
+ "version": "2026.6.12-c",
60
+ "note": "终端界面左下角新增触屏方向键,方便触屏设备"
61
+ },
62
+ {
63
+ "version": "2026.6.12-b",
64
+ "note": "全局记忆页面(claude-mem 只读浏览),桌面与移动端均可进入"
65
+ },
66
+ {
67
+ "version": "2026.6.12-a",
68
+ "note": "首页显示主机使用情况(CPU/内存/磁盘/网络上下行)+ header 全宽重排"
69
+ },
70
+ {
71
+ "version": "2026.6.8-a",
72
+ "note": "ccweb MCP server:把项目/文件/记忆等工具暴露给 Claude Code / Codex"
73
+ },
74
+ {
75
+ "version": "2026.5.24-j",
76
+ "note": "浏览器标签页支持文件上传"
77
+ },
78
+ {
79
+ "version": "2026.5.24-i",
80
+ "note": "浏览器标签页支持文件下载"
81
+ },
82
+ {
83
+ "version": "2026.5.24-h",
84
+ "note": "浏览器标签页剪贴板透传 + 页面标题显示"
85
+ },
86
+ {
87
+ "version": "2026.5.24-g",
88
+ "note": "浏览器标签页多用户隔离 + 内存监控"
89
+ },
90
+ {
91
+ "version": "2026.5.24-c",
92
+ "note": "浏览器标签页改用 headless chromium 架构"
93
+ }
23
94
  ]
@@ -7,6 +7,10 @@ export declare class ClaudeAdapter implements CliToolAdapter {
7
7
  getSessionDir(folderPath: string): string | null;
8
8
  parseLineBlocks(line: string): ChatBlock | null;
9
9
  getHooksSettingsPath(): string | null;
10
+ /** ccweb-owned settings file passed via `claude --settings`. Holds ccweb's
11
+ * hooks + statusLine so Claude Code rewriting ~/.claude/settings.json can't
12
+ * wipe them. */
13
+ getManagedSettingsPath(): string;
10
14
  getHookEvents(): string[];
11
15
  buildHookCommand(event: string, portFile: string): string | null;
12
16
  getCurrentModel(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"claude-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAqEnE,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,YAAY;IAGzB,YAAY,CAAC,cAAc,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM;IAOvF,gBAAgB,IAAI,OAAO;IAK3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA0D/C,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIrC,aAAa,IAAI,MAAM,EAAE;IAIzB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAyBhE,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC,kBAAkB,IAAI,SAAS,EAAE;IAejC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAyLhD,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAItC,8BAA8B,IAAI,MAAM;IAExC,eAAe,IAAI,IAAI;CAGxB"}
1
+ {"version":3,"file":"claude-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/claude-adapter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAiB,cAAc,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACnG,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,oBAAoB,CAAC;AAsEnE,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,IAAI,YAAY;IAGzB,YAAY,CAAC,cAAc,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM;IAgBvF,gBAAgB,IAAI,OAAO;IAK3B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAIhD,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IA0D/C,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAIrC;;qBAEiB;IACjB,sBAAsB,IAAI,MAAM;IAIhC,aAAa,IAAI,MAAM,EAAE;IAIzB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAyBhE,eAAe,IAAI,MAAM,GAAG,IAAI;IAWhC,kBAAkB,IAAI,SAAS,EAAE;IAejC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAyLhD,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC;IAItC,8BAA8B,IAAI,MAAM;IAExC,eAAe,IAAI,IAAI;CAGxB"}
@@ -38,6 +38,7 @@ const fs = __importStar(require("fs"));
38
38
  const path = __importStar(require("path"));
39
39
  const os = __importStar(require("os"));
40
40
  const usage_1 = require("./claude/usage");
41
+ const config_1 = require("../config");
41
42
  const logger_1 = require("../logger");
42
43
  const log = (0, logger_1.modLogger)('adapter');
43
44
  // ── Helpers ──────────────────────────────────────────────────────────────────
@@ -87,9 +88,18 @@ class ClaudeAdapter {
87
88
  // ── Command ─────────────────────────────────────────────────────────────
88
89
  buildCommand(permissionMode, continueSession) {
89
90
  const cont = continueSession ? ' --continue' : '';
91
+ // Load ccweb's hooks + statusLine from a ccweb-owned file via --settings.
92
+ // `--settings` MERGES as an additional high-precedence source (it does NOT
93
+ // replace user settings, MCP, model, or other hooks — those still load from
94
+ // ~/.claude/settings.json / project / local). Living outside the user's
95
+ // shared settings.json means Claude Code rewriting that file can't wipe our
96
+ // hooks/statusLine — the bug this fixes.
97
+ // Single-quote for the shell: JSON.stringify's double quotes would leave
98
+ // `$` and backticks live inside bash/zsh double-quote semantics.
99
+ const settings = ` --settings '${this.getManagedSettingsPath().replace(/'/g, "'\\''")}'`;
90
100
  return permissionMode === 'unlimited'
91
- ? `claude --dangerously-skip-permissions${cont}`
92
- : `claude${cont}`;
101
+ ? `claude --dangerously-skip-permissions${cont}${settings}`
102
+ : `claude${cont}${settings}`;
93
103
  }
94
104
  supportsContinue() {
95
105
  return true;
@@ -166,6 +176,12 @@ class ClaudeAdapter {
166
176
  getHooksSettingsPath() {
167
177
  return path.join(os.homedir(), '.claude', 'settings.json');
168
178
  }
179
+ /** ccweb-owned settings file passed via `claude --settings`. Holds ccweb's
180
+ * hooks + statusLine so Claude Code rewriting ~/.claude/settings.json can't
181
+ * wipe them. */
182
+ getManagedSettingsPath() {
183
+ return path.join(config_1.DATA_DIR, 'claude-settings.json');
184
+ }
169
185
  getHookEvents() {
170
186
  return ['PreToolUse', 'PostToolUse', 'Stop', 'PermissionRequest'];
171
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../src/adapters/claude-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claude-adapter.js","sourceRoot":"","sources":["../../src/adapters/claude-adapter.ts"],"names":[],"mappings":"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"}
@@ -42,6 +42,14 @@ export interface CliToolAdapter {
42
42
  parseSessionFile?(content: string): ChatBlock[];
43
43
  /** Settings file path where hooks should be installed, or null if unsupported */
44
44
  getHooksSettingsPath(): string | null;
45
+ /**
46
+ * A ccweb-OWNED settings file passed to the tool via a flag (e.g. claude
47
+ * `--settings`) instead of writing into the user's shared settings file.
48
+ * When set, hooks + statusLine are written here (overwritten wholesale) and
49
+ * the shared file is only cleaned of legacy ccweb entries. This survives the
50
+ * tool rewriting its own shared settings.json. null/undefined → use the
51
+ * shared file. */
52
+ getManagedSettingsPath?(): string | null;
45
53
  getHookEvents(): string[];
46
54
  buildHookCommand(event: string, portFile: string): string | null;
47
55
  getCurrentModel(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;yEACqE;IACrE,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,GAAG,EAAE,aAAa,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,cAAc,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IACxF,gBAAgB,IAAI,OAAO,CAAC;IAG5B,0FAA0F;IAC1F,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,kGAAkG;IAClG,yBAAyB,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzD,gGAAgG;IAChG,uBAAuB,CAAC,IAAI,MAAM,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,2FAA2F;IAC3F,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IAGhD,iFAAiF;IACjF,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAGjE,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,IAAI,SAAS,EAAE,CAAC;IAClC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAGvD,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,eAAe,IAAI,IAAI,CAAC;IAGxB;;;;;;;;OAQG;IACH,8BAA8B,IAAI,MAAM,GAAG,IAAI,CAAC;CACjD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/adapters/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB;yEACqE;IACrE,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,GAAG,EAAE,aAAa,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAGtB,YAAY,CAAC,cAAc,EAAE,SAAS,GAAG,WAAW,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IACxF,gBAAgB,IAAI,OAAO,CAAC;IAG5B,0FAA0F;IAC1F,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACjD,kGAAkG;IAClG,yBAAyB,CAAC,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzD,gGAAgG;IAChG,uBAAuB,CAAC,IAAI,MAAM,CAAC;IACnC,0EAA0E;IAC1E,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;IAChD,2FAA2F;IAC3F,gBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IAGhD,iFAAiF;IACjF,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;;sBAMkB;IAClB,sBAAsB,CAAC,IAAI,MAAM,GAAG,IAAI,CAAC;IACzC,aAAa,IAAI,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAGjE,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,kBAAkB,IAAI,SAAS,EAAE,CAAC;IAClC,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAGvD,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;IACjC,eAAe,IAAI,IAAI,CAAC;IAGxB;;;;;;;;OAQG;IACH,8BAA8B,IAAI,MAAM,GAAG,IAAI,CAAC;CACjD"}
File without changes
File without changes
File without changes
File without changes
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-manager.d.ts","sourceRoot":"","sources":["../src/hooks-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuCH,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAwC3B,2CAA2C;IAC3C,OAAO,CAAC,iBAAiB;IAoCzB,6DAA6D;IAC7D,SAAS,IAAI,IAAI;IAMjB,mGAAmG;IACnG,OAAO,IAAI,IAAI;IAMf,WAAW,IAAI,OAAO;CAavB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"hooks-manager.d.ts","sourceRoot":"","sources":["../src/hooks-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAuCH,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAI5B,wFAAwF;IACxF,OAAO,CAAC,mBAAmB;IAiD3B,2CAA2C;IAC3C,OAAO,CAAC,iBAAiB;IAyCzB,6DAA6D;IAC7D,SAAS,IAAI,IAAI;IAMjB,mGAAmG;IACnG,OAAO,IAAI,IAAI;IAMf,WAAW,IAAI,OAAO;CAavB;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -92,6 +92,17 @@ class HooksManager {
92
92
  }
93
93
  /** Remove all ccweb hook entries (identified by CCWEB_MARKER) for a specific adapter */
94
94
  uninstallForAdapter(adapter) {
95
+ // ccweb-owned managed file (e.g. claude --settings target): remove wholesale.
96
+ const managed = adapter.getManagedSettingsPath?.() ?? null;
97
+ if (managed) {
98
+ try {
99
+ fs.unlinkSync(managed);
100
+ }
101
+ catch { /* absent — fine */ }
102
+ }
103
+ // Also strip any LEGACY ccweb entries from the shared settings file — older
104
+ // ccweb versions wrote hooks/statusLine there; leaving them would double-run
105
+ // (hooks concatenate across sources) or linger after the move to --settings.
95
106
  const settingsPath = adapter.getHooksSettingsPath();
96
107
  if (!settingsPath)
97
108
  return;
@@ -130,10 +141,15 @@ class HooksManager {
130
141
  /** Install hooks for a specific adapter */
131
142
  installForAdapter(adapter) {
132
143
  this.uninstallForAdapter(adapter); // always clean first — handles crash-without-cleanup
133
- const settingsPath = adapter.getHooksSettingsPath();
144
+ // Prefer a ccweb-owned managed file (passed to the tool via a flag) so the
145
+ // tool rewriting its shared settings.json can't wipe our hooks/statusLine.
146
+ const managed = adapter.getManagedSettingsPath?.() ?? null;
147
+ const settingsPath = managed ?? adapter.getHooksSettingsPath();
134
148
  if (!settingsPath)
135
149
  return;
136
- const settings = readSettings(settingsPath);
150
+ // Managed file is ccweb-owned → start fresh. Shared file → merge into the
151
+ // user's existing settings (never returns null only when corrupt).
152
+ const settings = managed ? {} : readSettings(settingsPath);
137
153
  if (settings === null)
138
154
  return; // corrupted — skip to avoid data loss
139
155
  const hooks = (settings.hooks ?? {});
@@ -158,7 +174,7 @@ class HooksManager {
158
174
  settings.statusLine = { type: 'command', command: statusLineCmd };
159
175
  }
160
176
  atomicWrite(settingsPath, settings);
161
- log.info({ tool: adapter.tool }, 'installed ccweb hooks');
177
+ log.info({ tool: adapter.tool, managed: !!managed }, 'installed ccweb hooks');
162
178
  }
163
179
  /** Remove all ccweb hook entries from all supported tools */
164
180
  uninstall() {
@@ -1 +1 @@
1
- {"version":3,"file":"hooks-manager.js","sourceRoot":"","sources":["../src/hooks-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks-manager.js","sourceRoot":"","sources":["../src/hooks-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqGA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAigCtB,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAqGA,QAAA,MAAM,GAAG,6CAAY,CAAC;AAqjCtB,eAAe,GAAG,CAAC"}
@@ -279,6 +279,19 @@ const server = http.createServer(app);
279
279
  const wss = new WebSocket.Server({ noServer: true, maxPayload: 1024 * 1024 }); // 1MB max message
280
280
  // projectId → connected WebSocket clients (all in terminal mode)
281
281
  const projectClients = new Map();
282
+ // ── Multi-viewer device-reply dedupe ─────────────────────────────────────────
283
+ // xterm.js in EVERY connected page auto-answers terminal device queries
284
+ // (cursor position → "\x1b[<r>;<c>R", DA "\x1b[?1;2c", DSR "\x1b[0n", OSC
285
+ // color). The CLI needs exactly one answer per query; the extras arrive when
286
+ // nothing is reading and their tail shows up as literal "3R" / ";13R" in the
287
+ // input line. A WS frame consisting SOLELY of such replies (auto-replies are
288
+ // emitted as standalone frames; human input can never take this shape) is
289
+ // deduped per project by reply CLASS (digits stripped, so two viewers'
290
+ // different cursor positions still collide) within a short window.
291
+ // eslint-disable-next-line no-control-regex
292
+ const DEVICE_REPLY_FRAME = /^(?:\x1b\[[\d;?>=]*[Rnc]|\x1b\]\d+;[^\x07\x1b]*(?:\x07|\x1b\\)|\x1bP[^\x1b]*\x1b\\)+$/;
293
+ const DEVICE_REPLY_WINDOW_MS = 300;
294
+ const deviceReplyGate = new Map();
282
295
  // Paste body / CR split + per-project serial queue lives in terminal-paste.ts —
283
296
  // chat send + v3 track-flow runtime(routes/_flow-injector.ts)共享同一条路径。
284
297
  // v1 任务流系统(backend/src/flows/)已在 v-h 删除。
@@ -858,6 +871,8 @@ wss.on('connection', (ws, req) => {
858
871
  }
859
872
  const projectId = match[1];
860
873
  const localConnection = isLocalWs(req);
874
+ const wsIp = req.socket.remoteAddress || '';
875
+ let wsUser = localConnection ? ((0, config_1.getAdminUsername)() ?? '__local_admin__') : '';
861
876
  let authenticated = localConnection; // localhost = pre-authenticated
862
877
  let wsReadOnly = false; // true for view-only shared projects
863
878
  const chatListener = (msg) => {
@@ -910,6 +925,7 @@ wss.on('connection', (ws, req) => {
910
925
  }
911
926
  // Check access: owner, admin for legacy, or shared user
912
927
  const wsUsername = tokenUser.username;
928
+ wsUser = wsUsername;
913
929
  if (!(0, config_1.isProjectOwner)(project, wsUsername)) {
914
930
  const share = project.shares?.find((s) => s.username === wsUsername);
915
931
  if (!share) {
@@ -966,8 +982,44 @@ wss.on('connection', (ws, req) => {
966
982
  case 'terminal_input':
967
983
  if (wsReadOnly)
968
984
  break; // view-only users cannot send input
969
- if (typeof parsed.data === 'string')
985
+ if (typeof parsed.data === 'string') {
986
+ // Pure device-reply frame → per-project class dedupe (see
987
+ // deviceReplyGate). First reply in the window passes; the rest
988
+ // are the other viewers answering the same query — drop them.
989
+ // Gate only with 2+ viewers: a single page can't duplicate, and
990
+ // skipping keeps a legitimate second reply to a rapid re-query
991
+ // from ever being dropped. Known ambiguity (accepted): modified
992
+ // F3 encodes as ESC[1;<mod>R — indistinguishable from CPR, so it
993
+ // can be swallowed within the window on multi-viewer projects.
994
+ if ((projectClients.get(projectId)?.size ?? 0) > 1 && DEVICE_REPLY_FRAME.test(parsed.data)) {
995
+ const cls = projectId + ':' + parsed.data.replace(/[\d;]/g, '');
996
+ const now = Date.now();
997
+ if (now - (deviceReplyGate.get(cls) ?? 0) < DEVICE_REPLY_WINDOW_MS)
998
+ break;
999
+ if (deviceReplyGate.size > 1000)
1000
+ deviceReplyGate.clear();
1001
+ deviceReplyGate.set(cls, now);
1002
+ }
1003
+ // Attribution log for whole-message sends (chat sends, pastes,
1004
+ // scripts arrive as one frame; hand-typed keys arrive per-char and
1005
+ // stay unlogged). Slash commands only — keeps noise near zero while
1006
+ // making /clear-style floods traceable to a user + source IP.
1007
+ // logger.ts 红线 #1 exemption: PTY input itself never enters the
1008
+ // log — only the command VERB (up to first whitespace, ≤30 chars,
1009
+ // control chars stripped) is recorded. Arguments may contain
1010
+ // secrets and are never logged.
1011
+ {
1012
+ const body = parsed.data.startsWith('\x1b[200~') ? parsed.data.slice(6) : parsed.data;
1013
+ const clean = body.replace(/[\x00-\x1f\x7f-\x9f]/g, ' ').trimStart();
1014
+ if (parsed.data.length > 1 && clean.startsWith('/')) {
1015
+ log.info({
1016
+ projectId, user: wsUser, ip: wsIp, mod: 'ws',
1017
+ command: clean.split(/\s/, 1)[0].slice(0, 30), len: parsed.data.length,
1018
+ }, 'slash command input');
1019
+ }
1020
+ }
970
1021
  (0, terminal_paste_1.writeTerminalInputSplit)(projectId, parsed.data);
1022
+ }
971
1023
  break;
972
1024
  case 'terminal_resize':
973
1025
  if (typeof parsed.cols === 'number' && typeof parsed.rows === 'number') {