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)、记忆修复前备份。
This commit is contained in:
commit
ce8e6ceed9
396 files changed
+66045
No files matched your search
@@ -0,0 +1,63 @@
|
||||
# 自动化执行记忆 · 2febff6b-5786-46a3-b345-b648f2e19df3
|
||||
|
||||
> 仅记录「高层执行摘要」。细节在交接单 §16 / 参数表 §11.16 / 接续入口 §0。
|
||||
|
||||
## 2026-09-19 01:0x–01:5x — DSH 覆盖网络线 · 序㊾ 执行棒
|
||||
|
||||
**任务** = 把 `scripts/overlay-probe.cjs` 观测面取数从「只读 47 中继」改为「按两台中继取并集」,消除 `OBS-01/08/09` 在 worker 归属漂移时的假红/假 SKIP。本轮只做这一件事。
|
||||
|
||||
**结果 = ✅ 修复落地并上生产**(约 30 次工具调用)
|
||||
|
||||
- 代码:`D:/github/dsh_shenxian/scripts/overlay-probe.cjs`(122541 B → 135215 B,md5 `d2f879dc3220f2800d812437518e3c63`)。新增 `mergeEndpoints` / `unionUsed` / `remoteInstanceCodes` / `readPeerView`;`eps` 键 = `network:hostId:port`(online 取或、localPort 取在线侧);`used` 按 `network/hostId` 去重(**不求和**);`derived`(OBS-11) 保持 47 视角。
|
||||
- `OBS-16` 硬约束已核:对 47 的读取仍为 3 次,对端 106 采样落在第三次之后、Δ 只取 47 counters —— 真机隔离实验证明读 106 不动 47 计数器。
|
||||
- 先红后绿:夹具红腿 rc=1 / 绿腿 rc=0(逐行 diff 只差 OBS-08 / OBS-09 两行);真机漂移态绿腿(`w-106:40701=401`,落在 106 机);真机退化腿(对端不可达)与改前 47 单点判法逐条一致。
|
||||
- 零回归三件套:探针 **29 PASS / 0 FAIL / 0 SKIP (rc=0)**;`npm.cmd test` **200 pass / 0 fail / 1 skipped**(Node 22);`--scene all` **12 PASS / 0 SKIP / 0 FAIL**。
|
||||
- 部署:两机同源 md5 `d2f879dc3220f2800d812437518e3c63`(47 = `/opt/dshs/scripts/`,106 = `/opt/dshs-cluster/scripts/`,106 此前无此文件)。
|
||||
- 回填:交接单 §16 全节(§8 前缀 `be548afc…` 逐字不变);参数表 §11.16(§10 现算仍 `ac6bbb…`);入口 §0 / §2;当日日志;MEMORY.md。
|
||||
- 收尾:**已释锁**(`--release-exec` 确认无锁)。**未登记接续棒** —— 下一棒不可自决(D8 只能用户云控制台落地;死口孤儿需规划棒先行)。
|
||||
- 遗留(如实留档):`D8` 云安全组乙-1 仍挂起;死口孤儿回收回头条件未触发;`OBS-04` 对 `dshs` 重启敏感。
|
||||
|
||||
## 追加 · 2026-09-19 05:3x — 收官提交(用户指令「提交到仓库」)
|
||||
|
||||
- 提交 `d2ef362`(20 文件 · +2998 −183,master):本棒探针改动 + 前几棒已部署未入仓的源码/文档;⛔ 未用 `git add -A`(显式排除 repo 根三个临时目录)。
|
||||
- 双推:原仓 `work.alotbuy.com` ✅(`git ls-remote` 复验 = `d2ef362`);**CNB 镜像腿 ❌** —— 本机 `~/.cnb/token` 经 `api.cnb.cool/user` 实测 **HTTP 401 `credential invalid or expired`** ⇒ 与「令牌过期回泛化『仓库不存在』」一致,⛔ 不改 URL;补救需用户侧动作(重授权连接器 / 写 `~/.cnb/git-token`)。
|
||||
- 已释锁;入口 §2 与当日日志已补记。
|
||||
|
||||
## 追加 · 2026-09-19 05:4x — CNB 长期令牌落地,双推恢复
|
||||
|
||||
- 用户给长期令牌(名称「开发项目」· 用户名 `cnb`)⇒ 写入 `~/.cnb/git-token`(helper 首选位);⛔ URL 未改、`~/.cnb/token` 未动、令牌明文不入任何记忆文档。
|
||||
- 验证:`api.cnb.cool/user` 由 401 变 **403 `Missing scopes: account`**(= 令牌有效)|补推 CNB 腿 ✅ `45b4999..d2ef362`。
|
||||
- **双推两腿全等**:原仓 ≡ CNB ≡ 本地 = `d2ef362a984fce710e4f46dc8cc1c09cfa6f6b19`。
|
||||
|
||||
## 追加 · 2026-09-19 06:1x–06:4x — 域名切换 alotbuy.com → ai1net.com(用户给了 CF 令牌后一次做完)
|
||||
|
||||
**任务** = 把线上 DSH 服务域名由 `alotbuy.com` 切到 `ai1net.com`(门户 + 实例子域 + 中继兜底 + 平台 env)。
|
||||
|
||||
**结果 = ✅ 全部落地并端到端验收通过**(RUNBOOK S1–S5 全绿;约 40 次工具调用)
|
||||
|
||||
- **S1** 证书:`certbot --dns-cloudflare`(凭据 `/etc/cloudflare-ai1net.ini` 600)⇒ `CN=ai1net.com`、SAN 含 `*.ai1net.com`、`notAfter Dec 17 2026`、**已建自动续期**。
|
||||
- **S2** 两 vhost 入 `/www/server/panel/vhost/nginx/`(失败即自回滚);**S3** env 切域(备份在);**S4** `relay-direct.conf` Host + `dsh.alotbuy.com.conf` map 改指新域。
|
||||
- **S5(不是可选项)** 106 的 `DSHS_RENDEZVOUS_URL` / `relay-client --url` 旧域→新域,两机补同一份 5 条 `SEEDS`。
|
||||
- **验收**:门户 200/50726 B(与 alotbuy 逐字节同源)|实例子域 `admin` 302+token、`guest` 302→wake.html、无 cookie 302→login|**探针 29P/0F/0S(rc=0)**|`npm test` **201/200/0/1**(与基线同)。
|
||||
- **🔴 修掉两个真问题**:**(甲)** 我引入的回归 —— `DSHS_OVERLAY_BOOTSTRAP_SEEDS` 被重复写进 `/etc/dshs.env` ⇒ 压掉 drop-in(唯一载体)⇒ 入口列表窄化成 2 条、丢掉 106 第二中继 ⇒ Manager 失去对 106 的拨号会话;已删重复键 + drop-in 升级为 5 条(主入口 = ai1net)+ 地址覆盖加 `relay-direct.ai1net.com`。**(乙)** 既有缺口 —— 归属 `w-106` 的用户实例子域 **500 `解析不出落点`**:控制面可达性**只读单一** `DSHS_RELAY_STATUS_URL`(47 中继),而 w-106 实时在线态在 **106 中继**上;S5 让 worker 主入口落回 47 中继后修复(500 → 302)。⚠️ **该 500 在恢复 5 条候选后仍复现** ⇒ 非种子窄化单独导致。
|
||||
- **🔴 上报未做(依"只做被明确要求的事")**:① 把「两台中继并集」口径从**探针推广到控制面**(独立立项)② 旧域 `alotbuy.com` 是否退役 / 是否加 301(未加,保留原样 = 软回滚路径,待用户定)。
|
||||
- **未登记接续棒**(用户明令:同一时刻只挂一个,且新事项须先拍板)。
|
||||
- 记录落点:`域名迁移_ai1net_20260919/pending/RUNBOOK-cutover.md §5`|`.workbuddy/memory/2026-09-19.md`|`PLAYBOOK-实例与插件坑.md §18`|`接续入口_覆盖网络线_20260916.md §0`。
|
||||
|
||||
## 追加 · 2026-09-19 07:0x–07:1x — 用户拍板两条:取证完成,**落地被全局执行锁挡住**
|
||||
|
||||
**任务** = 落地用户拍板的两条:① 旧域 `alotbuy.com` **从项目中移除**,后续都用 `ai1net.com` ② **A 立项修**「控制面也按两台中继取并集」。
|
||||
|
||||
**结果 = ⚠️ 未落地**(约 20 次工具调用)
|
||||
|
||||
- **阻塞点**:全局执行锁被另一会话占用(「注册页人机验证+邮箱验证码」,09-19 06:45 起)。本轮**原地有界等待约 20 分钟**(4 轮 `sleep` 后重试抢锁)仍未释放 ⇒ 按 **R9 不接管、不删锁**,收棒并把成果沉淀给接续棒。**非技术阻塞,是并发纪律阻塞。**
|
||||
- **已完成(全部只读 + 1 份待执行方案,零共享资源改动)**:
|
||||
- **旧域全机全仓取证约 120 文件命中,分桶 A–F**:A 运行时事实源(`src/config.ts:312`、`src/net/relay/directory.ts:81`、🔴 **`web/wake.html:92-94` 白名单只认 `*.alotbuy.com` = 切域后 `next` 被拒的真 bug**、`test/overlay-bootstrap.test.mjs:188` 断言);B 服务器现行配置(47 drop-in SEEDS 5 条含 2 条旧域 + `ADDR_OVERRIDES`;106 `dshs-worker.env` 同);C 旧域 nginx 三块;D 现行文档/技能;E 历史归档**不改**;F `work.alotbuy.com`(Gitea)**排除**。
|
||||
- **关键判据**:A 类代码默认值**运行时收益=0**(drop-in 已显式配 SEEDS)⇒ 与任务 2 合并、**只重启一次控制面**;B 类也须重启才生效;实测 `/dshs-overlay/bootstrap` 的 `relays[]/bootstrap[]` **仍 5 条含 2 条旧域**(从 SEEDS 派生)⇒ 改 SEEDS 即"移除"的落地机制。
|
||||
- **任务 2 根因链已取证**:`web/server.js:672` 的 `online`(`:694-705` 读单一 status url)与 `presence`(`:590-596` 单台订阅)⇒ `rendezvous.js:32-47` 取不到 ⇒ `reachability.js:62-71` 按 P0-3 抛错。**修前须补测**"worker 漂回 106 自家中继时是否仍 500"(上棒只验了落回 47 即恢复)。
|
||||
- **vhost 处置自决**:`alotbuy.com.conf` **降级为 301 跳板**(不再是独立门户 = 实质移除);`relay-direct.conf` / `dsh.alotbuy.com.conf` **保留**(导向新域/兜底装置)。彻底删 = 同时砍老流量入口+软回滚+已入网节点旧域候选 ⇒ 净变差触 R11。
|
||||
- **本轮只报告未动手**:106 `dshs-relay-client` = `inactive`(疑历史遗留)|`BRIEF §2`「106 经 SSH 反向隧道」= 过期描述|47 vhost 遗留 `_pending-ai1net/` 待清。
|
||||
- **交付物**:`E:\ProgramData\AI技能\aliyun-dsh-server\_tmp_dompurge\PLAN-旧域移除与并集立项_20260919.md`(分桶清单 / S1–S7 / 验收 / 回滚 / 任务 2 根因链 / 发现)。
|
||||
- **接续棒**:已登记一次性 automation **`924be311-a14f-4aa8-8634-5f87ed3dc301`**,**09-19 07:20** 开跑(= 收口 + 8 分钟,符合"首个接续棒 5~8 分钟"铁律),prompt 指向上述方案并要求"锁被占则有界等待、⛔ 不接管"。
|
||||
- 记录落点:`.workbuddy/memory/2026-09-19.md`(§07:0x)|`_tmp_dompurge/PLAN-*.md`。
|
||||
- ⛔ 未 commit / 未 push|⛔ 未改任何共享资源|⛔ 未删锁。
|
||||
Reference in new issue
Block a user