alwaysApply, paths
| alwaysApply |
paths |
| false |
| **/*.ts |
| **/*.cjs |
| **/*.mjs |
|
服务器侧改码:流程与门禁
哪一层要重启(R8 判据)
| 改什么 |
是否需 build + 重启 |
是否中断在线用户 |
src/**(TS,编排器) |
✅ npm run build + 重启 dshs |
✅(开发环境)直接做 —— 动手前一句话说明即可,⛔ 不必等确认(R8 · 2026-09-13 用户明令「这个是开发环境服务器,不用担心中断用户」;2026-09-16 收口) |
web/*.html(门户静态页) |
❌ 即时生效 |
❌ 否 |
| profile 层(cordis patch / bundles) |
重启该用户实例 |
仅该用户 —— 同样直接做,一句话说明即可 |
改 web/*.html 千万不要重启服务 —— 那是无谓的中断(R8 的"不必等确认"不等于"可以无谓重启":按 R11 只做正向迭代,无收益的重启仍是劣化)。
部署前
- 校验改前基线:
ssh bt-server 'git hash-object <file>' vs 本机 git rev-parse HEAD:<file>
—— 比 md5 可靠(不受 CRLF / 编码影响;md5 已误判过一次)。
- 备份:
cp <file> <file>.bak-<ts>,回滚命令写进档案。
插件安装(ensure-*.cjs / pnpm)
- 必须走 pnpm:
pnpm add file:<tgz>;lockfile 才是账本,手放 node_modules 无效。
- 同名同版本 tgz 改了内容必须升版本号 —— pnpm 会复用旧包(已踩)。
- 装完若需实例生效 → 重启该用户实例 → 属 R8,动手前一句话说明影响即可,⛔ 不必等确认。
验证
- API 链路必须同时覆盖"有请求体"与"无请求体" —— 只测 POST 会整条漏掉 GET/SSE。
- 浏览器验证用
browser-harness,铁律:动手前先 list_tabs(),确认附着的不是用户正在用的 Chrome。