Files
workbuddy_skills/dsh-opensource-release/references/01-保留移除与脱敏口径.md
T
admin e03465c398 按用户令提交:把此前未纳管的 9 个技能目录一并入库
用户令逐字:「E:/ProgramData/.workbuddy/skills  提交仓库是指的这里」——
即本目录就是仓库(2026-10-07 已在本目录建仓,见当日日志 §22),本轮把余下未纳管的 9 个技能一并提交。

本次入库(9 个技能,46 个文件):
1、`AI HOT`
2、`draw-ui`
3、`dsh-diagnose`
4、`dsh-knowledge`
5、`dsh-local-env`
6、`dsh-opensource-release`
7、`dsh-workflow`
8、`oil-motion`
9、`skills-security-check`

提交前核对:
· **凭据类扫描**(`*.env` / `*token*` / `*.key` / `*secret*` / `*.pem`)⇒ **零命中** ✓;
· 体积合计约 20 MB(`draw-ui` 12M + `oil-motion` 6.5M 是大头,形态为配图/素材 ——
  仓库 `.gitignore` 里明写「`assets/*.png` 是内容不是产物」⇒ 属刻意入库);
· 运行产物仍按既定规则排除(`__pycache__` / `logs/` / `tmp/` / `.venv/` / `*.egg-info` / `uv.lock` / `.workbuddy/`)。
2026-10-08 22:29:08 +08:00

9.0 KiB
Raw Blame History

保留 / 移除清单 · 脱敏映射表 · 保留未动(改口径先改这里)

归属:技能 dsh-opensource-release 的详情档(按需读,不是每次都要读)。 本档覆盖:保留 / 移除清单 · 保留 · 移除 · 本就不在代码仓(别去找) · 特许保留项 · 待决项 · 脱敏映射表 · 保留未动(刻意)(原行 L382–L480)。 主文件 / 判据与流程主干 = ../SKILL.md(§0.5 事故清单 · §0 事实 · §1 硬规则 R-O1–R-O17 · §1.5 用户当场纠正的硬口径 · §5 授权结构 · §6 发布 SOP 主干 · §7 验证八件套 · §相关)。 来源:2026-09-22「技能重组线」把 ../SKILL.md 的 L382–L480 段逐行原样下沉到本文件,未改一字。 跨档引用:正文里的「§N / 见 §8 坑 N / 见下表」等编号,用 ../SKILL.md 末节「详情索引」的原章节列定位。 维护:本文件与 ../SKILL.md 的指针行成对;改内容时同时核对主文件的指针描述是否仍准确。


2. 保留 / 移除清单(delta · 改口径先改这里)

保留

assets/         注入脚本(2:inject/recovery.js · inject/assist.js)—— ⚠️ **proxy.ts 的 loadInject 按包根解析 ⇒ 缺了平台启动即抛错**,必须随包
src/            控制面 TS 源码(**已剔除 6 个 K8s 后端模块**,见下)
web/            静态页
scripts/        运维与冒烟脚本(**已剔除 5 个 K8s / 已排除插件相关脚本**)
test/           单测(**已剔除 2 个 K8s 模块的测试**)
.github/workflows/build.yml
package.json  package-lock.json  tsconfig.json  cordis.patch.yml
Dockerfile  .dockerignore  .gitignore(重建)
mksess.cjs  ensure-role-profile-patch.cjs(临时会话 / profile 补丁)

🔴 K8s 相关一律不带(2026-09-14 用户定稿,2026-09-15 升级为长期策略): ⛔ 不再保留 deploy/(11 个 K8s 清单)· poc/(4 个 K8s 可行性验证件)· Dockerfile.dsh(每用户 Pod 镜像)· 6 个 K8s 后端模块(k8s-spawner k8s-user-fs leader reconcile tcp-bridge web/file-service)· 2 个 K8s 测试 · smoke-file-service.mjs · CI 里的 dsh 镜像步骤 · config.ts 的 K8s 专属配置项 · 以及全部 k8s 注释与语义描述。 ✅ 保留 src/db/pg.ts(Postgres = 共享 HA,不是 K8s 专属)。 📌 权威清单与处置办法:_K8s排除台账.md(本工作根下),含「下次取新版本怎么做」的步骤与判读表; 扫描器 _k8s_scan.py(--source 扫源仓 / 不给参数扫导出物);判定标准 = 构建 blocking hits: 0。

移除

路径 理由
poc/business-plugins/ 已投放插件(功能管理分区插件,含全部 .tgz)
poc/workspace-scoped-picker/ 已投放插件(目录选择器)
scripts/ensure-anysearch-admin.cjs
scripts/ensure-anysearch-pool.mjs
特定插件投放脚本
scripts/ensure-biz-plugins.cjs
scripts/ensure-portal-entry.cjs
scripts/install-workspace-picker.sh
scripts/provision-new-users.sh
插件 / 本平台专属投放与开通脚本
docs/(7 篇) R-O4:项目文档
STANDARD.md · poc/README.md · poc/*/README.md R-O4:文档
.workbuddy/ · lib/ · node_modules/ · data/ 本地状态与构建产物
.git ⛔ 历史里含全部内部信息 ⇒ 必须全新仓库
全部 *.tgz 构建产物

本就不在代码仓(别去找)

MCN 工作台(dsh-plugin-mcn-suite)、douyin-accounts、vision-router、各 skill 本体(含 MCN 相关 skill) 都不在 dsh_shenxian 里,它们在其他仓库 / 实例 profile。收尾探针会复核 mcn / douyin / 抖音 / vision-router 0 命中。

⚠️ 特许保留项(不要在脱敏里动它)

项 处置 依据
dsh-univer-office(插件名 + 实例侧 unix-socket 适配) 保留原名、保留代码:src/supervisor/orchestrator.ts 的 DSH_INSTANCE_UNIVER_SOCKET / UNIVER_DSH_GATEWAY_SOCKET 段不得删;src/web/routes/whitelist.ts 注释里点名 dsh-univer-office;探针 LEAK_PROBES 里不得出现 dsh-univer / UNIVER 用户 2026-09-13:「univer 可以保留这个插件 专门讲讲如何把开源插件改造为可在多租户平台运行」
↳ 为什么值得保留 它是 PLUGIN-PORTING.md(插件移植指南)的唯一实证样本:一个「静态预检通过但在托管平台完全不可用」的真实案例,含两层根因、3 条设计决策、2 个平台侧机制坑 同上

待决项(用户没拍板前维持现状)

  • poc/business-plugins + poc/workspace-scoped-picker:现按严格口径移除(「所有已投放的插件」)。若判定它们属「平台自带界面」而非投放插件 → 加回,并同步改本节 + 探针。

3. 脱敏映射表(唯一口径,改只改这里 + 脚本里的 GLOBAL)

类别 原值 替换为 命中
平台域名 dsh.alotbuy.com / *.ai1net.com / ai1net <baseDomain> 3 文件
↳ 特例 web/wake.html 的 safeNext() 正则 改成运行时从 location.hostname 推导注册域(split('.') 去最左一段),彻底去硬编码 —
服务器公网 IP 47.77.182.89 <SERVER_PUBLIC_IP> 1
宿主内网 IP 172.18.16.212 <HOST_LAN_IP> 1
服务器代码路径 /opt/dshs <INSTALL_DIR> 8
↳ 特例 require('/opt/dshs/node_modules/better-sqlite3') require('better-sqlite3')(等价且更规范) —
服务器平台目录 /opt/dsh/{state,artifacts,backups} /var/lib/dsh-web-platform/{state,artifacts,backups}(与上游文档一致的数据根) 6
内部档案号 全角/ASCII 括号里的 档案 NN(含 档案 81 · R1、(档案 20)、backoff (档案 20)) 整块删(号无对外意义);残渣(空括号 () / ().)由后续规则清掉 183
悬空文档引用 docs/k8s.md §5.2 / docs/blueprint.md / docs/domain-config.md 映射到 README 真实小节(README「部署形态」 / README「架构」 / README「配置」);§号 一并去掉 42
↳ 实现位置 以上两项由 _build_export.py 的 REGEX_RULES 做(不是 GLOBAL);⛔ 清理规则只准碰全角标点,唯一放开的两条 ASCII 规则:① (档案 NN)(模式里必须有档案号 ⇒ 不会误伤 foo())② ().+句末标点((): void 后面是 : ⇒ 不命中)。每次改 REGEX_RULES 必须重建 + tsc 复核(第一次踩过:ASCII 括号进字符类把 foo() 删了,tsc 报 Invalid character) —
↳ tar 相对写法 opt/dsh*(无前导斜杠) var/lib/dsh-web-platform* —
账号 / 私有仓库 maogeigei、[email protected]:...dsh_shenxian_doc.git <YOUR_GITHUB_ACCOUNT>;文档库引用随 README 重写整体移除 1
云厂商标识 「阿里云内网 DNS」「BT-Panel 58888/8765」「sshd 22/32022」 「云厂商内网 DNS」「面板」「sshd」 1
插件具体名 anysearch / @anysearch/anysearch-dsh / @liustack/modlens / mcn-workstation 「该插件」/「某第三方插件」→ 再整行重写成中性描述 6
↳ 例外(保留原名) dsh-univer-office 与其实例侧适配(DSH_INSTANCE_UNIVER_SOCKET / UNIVER_DSH_GATEWAY_SOCKET) 不脱敏、不删代码(用户 2026-09-13 明确「可以保留这个插件」);它同时是 PLUGIN-PORTING.md 的实证样本 ⇒ 其 env 名、注释、DELETE_LINES 条目都不得再动 3
项目改名 dshs 全部自指标识 dsh-web-platform(规则顺序:dshs.db → dshs.db → /var/lib/dshs → DSHS_ → dshs) 149
↳ 必须保留 上游骨架仓库(已按要求不再具名)、上游 \dshs`` 原样不动(出处/致谢);LICENSE(AGPL-3.0 官方全文)逐字节不动 —

发布前必须替换的占位符(写在台账里):

占位符 出现位置
<YOUR_GITHUB_ACCOUNT> README.md、package.json → repository
<CONTACT_EMAIL> 原为 README.md 授权章节 / LICENSE,授权章节与 LICENSE 已于 2026-09-13 移除,该占位符随之消失(见 §5)
<COPYRIGHT_HOLDER> LICENSE
<SERVER_PUBLIC_IP> / <HOST_LAN_IP> scripts/install-egress-guard.sh(部署时按实际服务器填)
<INSTALL_DIR> / <baseDomain> 仅注释,可留

install.sh 里的 dsh.example.com / [email protected] 是文档示例,符合惯例,不改。


4. 保留未动(刻意)

  • 183 处「档案 NN」内部编号引用(仅代码注释):属内部档案号,不是本机/服务器信息。已列入「可选后续」;要清需用户点头(做一次纯注释替换)。
  • 上游 docs/ 内容虽为 MIT 可带走,但 R-O4「不带任何文档」⇒ 不带。