Files
dsh_ai1net_server/归档/humanize-原文件备份-20260922/dsh-opensource-release/references__01-保留移除与脱敏口径.md
T
admin ce8e6ceed9 chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)
回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复:
- 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录)
- tmp/(32.4 M,按接续棒命名的过程临时区)
- .workbuddy/tmp/(39.5 M)
- 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物)
- tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留

入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与
接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、
.workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。

排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、
打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
2026-09-24 07:51:03 +08:00

9.1 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「不带任何文档」⇒ 不带。