chore(工作区): 全量入库 + 补齐 .gitignore(以工作区为准)
- 变更规模:新增 514 / 修改 62 / 重命名 155 / 删除 4(归档重组与文档轮次) - .gitignore 修:`归档/**/db-cwd归一-备份-*/` —— 原规则写绝对层级(归档/db-cwd归一-…), 目录搬进 归档/配置与备份/ 后**静默失效**,43 MB 的 DB 备份又变成未跟踪 - .gitignore 补:嵌套 git 内部数据(归档/内嵌git-20261008/、归档/skills-git-旧线-20261007/dotgit-原样移出/) - .gitignore 补:运行态与部署副本(.workbuddy/collab/、.workbuddy/tools/、.workbuddy/.load-pending、.workbuddy/tmp-*) - .gitignore 补:备份件(*.bak-*) - 未跟踪文件从 2190 降到 890(其余为 归档/ 归档件与 .workbuddy/memory/ 知识文件,按口径入库)
This commit is contained in:
1 parent
30b46dbd0c
commit
c1b5e4d966
735 files changed
+153192
-2415
No files matched your search
@@ -0,0 +1,18 @@
|
||||
# automation 23cbc916-ebda-4413-84da-ce229a4230f5(插件投放与分库线 第 29 棒 · 执行棒)
|
||||
|
||||
## 2026-09-25 15:1x–15:4x · 首次执行(已收官)
|
||||
|
||||
- **任务**:按交接单 `插件投放与分库线-03MCN数据面接入改造-阶段二.md` 推进**第二批按表切换** —— `account_analysis`(6 处读写点)+ `video_analysis`(10 处,补写/删点);四步链路 = 全部读写点 → 迁移(幂等)→ `shadow` 真机读数 → 按表切档。
|
||||
- **结果**:全做完。改动面**恰 7 件**(`store/index/imports/workshop/data.js` + `tools/migrate-local-to-platform.mjs` + `tests/mcn-store.test.mjs`),`lib/client.js` 零改动。单测 **40/40**;`node --check` 7 文件 rc=0。47 真机:迁移 `1→1` / `12→12`,幂等重跑 `ins=0/skip=1`、`ins=0/skip=12`,逐表 `onlyLocal=[]/onlyPlatform=[]/match=true`,内容往返 **13/13 逐字相等**,旧库 sha256 前后一致,`shadow` 4/4 `match=true` / `mismatch=0` / **`degraded` 未出现** / 平台 44 次调用全 ok;已按表切档(**4 表 platform**,`hot_accounts`/`account_videos` 仍 `local`)。
|
||||
- **自决新增(单内没写但不做不成立)**:**`loadVideoAnalysisIndex()`** —— `video_analysis` 的两处读点写在**别人的 SQL** 里(视频总表 `parsed` 过滤条件 + `has_analysis` 输出列),平台无 JOIN ⇒ 一次拉全量建插件内索引,再拼 `IN (<字面列表>)` / 补列;拿不全就**具名降级回本地子查询**(⛔ 不拿半份冒充全量)。
|
||||
- **本棒自证抓到并修掉两处**:㈠ `videoAnalysisCountOf` **双计**(初版两路相加,本地语义是 `video_id=? OR aweme_id=?`)⇒ 改逐行 OR 判定 + 索引返回 `rows`,单测 ㉚ 钉住;㈡ `previewExternalDir` 三处判据(其中 `account_persona` 那处是**第 28 棒遗留读点**)⇒ 统一走 `store.analysisExists()`(改 async)。
|
||||
- **两条实测事实(后棒以现算为准)**:㈠ **本地表名仍是旧名** `account_video_analysis`(第 27 棒的 `db.js` 幂等改名只在插件新代码跑起后生效,实例仍载 `0.3.15`)⇒ 迁移工具加 `resolveLocalTable()`,旧名按**拆写常量**写以守 A4;㈡ `video_analysis` 平台主键 = `aweme_id`(天然键、不可空)⇒ 空值行迁移**具名拒收**,⛔ 不静默丢(本地实测 0 行)。红线现算仍 **23**(零新增 DDL);`prepare/exec` 行口径 **230**。
|
||||
- **未闭合**:实例内端到端未取证(实例仍载 `0.3.15`)|S7–S11(出包 `0.5.0` / 建库 / 投放 / 两机一致)全未开工(包与共享层仍 `0.4.0`)|红线 23 未归零(删 `db.js` 属第三批)|第三批未动(`account_videos` 362 行 + `hot_accounts` 拆表 + 12 JOIN + 4 OFFSET + 2 聚合)|`json` 案 B 待拍板。
|
||||
- **卫生**:⛔ 未改 `src/**`(`find src -newermt 15:15` = 0 件;`im.ts` 零改动)|⛔ 未重启任何服务|⛔ 未 commit·push|⛔ 未投放|⛔ 未删任何库(`json` 走附录 C 的 **A 案**,13/13 具名进 `coerced[]`)|✅ 临时会话 1→删 1→残留 0|✅ 47 `/tmp/p29*` 残留 0。
|
||||
- **锁**:11 个域锁 claim 15:14 → release 15:4x;本轮复核 `--locks` = 全局空闲、`.locks/` 空(**校验结果,非只看输出**)。⛔ 未删锁、未接管。
|
||||
- **门禁**:`preflight-lock.sh` 对本棒 6 个目标路径**全判【D】未归类**(脚本未覆盖工作区根路径与插件包路径)⇒ 按脚本字面应 `rc=1`,依用户第 1 步明示口径按 guard 锚点算法定域后开工;⛔ 未改跨库脚本(属机制层)。
|
||||
- **产出**:`交付物/MCN数据面接入-阶段二-第二批按表切换-20260925.md`;探针 `tmp/p29/**`;入口 `§0` 新增第 29 棒行 + `§2` 推进到第 30 棒;`05-交接单/README.md §一` 本单状态行更新;`05-交接单/插件投放与分库线-03…-阶段二.md` 新增 **§七 执行回报(指针表)**。
|
||||
- **下一棒(唯一)**:automation `a22a3713-8cf9-4d90-b42d-0f7b656bf059`(一次性 · `scheduledAt 2026-09-25T15:44` · `cwds = E:/ProgramData/AIProject/aliyun-dsh-server`)= **第 30 棒 · 规划棒** —— 出**第三批(主战场)**改造交接单(`hot_accounts` 拆表 + `account_videos` + `account_video_source`;⛔ 只出件、零落地)。
|
||||
- **排棒状态**:本棒 automation 由 ACTIVE 置 **PAUSED**(一次性任务已耗用);本线在跑棒只剩 `a22a3713…` ⇒ 满足「同时只挂一个」。⚠️ 其他线 ACTIVE 棒非本 lane,未动。
|
||||
- **收尾补记**:释放锁后又补写入口 §2 的「⏭️ 本线后续」(新增第 29 棒「已收官」+「未闭合 4 条」两条)⇒ 为守「写只在持锁时发生」**重新 `--claim-exec` 单域**(`aliyun-dsh-server/接续入口…`)→ 写完再 `--release-exec`;终态复核 `--locks` = 全局空闲、`.locks/` 仅剩 `.migrations`(迁移号台账,非锁)。入口文件 253,031 B / 714 行 / **CR=0(纯 LF)**。
|
||||
- **其余收尾项**:`05-交接单/README.md §一` 本单行已更新(状态列 → 「第二批已切完」+ 占用者列 → 第 27/28/29 棒均跑完 + 下一棒 = 第 30 棒)|`05-交接单/插件投放与分库线-03…-阶段二.md` 新增 **§七 执行回报(指针表,含两处口径修订)**|工作区日志 `2026-09-25.md` 已追加本棒小节。
|
||||
Reference in new issue
Block a user