# Weekly Review · 2026-W19 (May 02 – May 09)

**生成时间**: 2026-05-09 23:30 +0800
**数据源**: git origin/develop + Gitea API (FFAIWorkspace/workspace)
**窗口**: 2026-05-02 23:30 → 2026-05-09 23:30 (7 days)

> 本报告**只列事实**。pattern 识别 / 候选改进 / 闭环承载在对应 Gitea issue（label: `weekly-retro`，open=未闭环 / close=完成）。

---

## 1. 数字概览

| 指标 | 本周 | 备注 |
|---|---|---|
| Commit (default branch) | 94 | 5 个活跃天 |
| PR opened | 39 | |
| PR merged | 36 | 平均存活 4.2h |
| PR closed (no merge) | 0 | 放弃 / 重做 |
| PR open (current) | 3 | 含 long-lived |
| PR long-lived (>3d) | 0 | |
| Issue opened | 10 | |
| Issue closed | 0 | 平均关闭 0.0h |
| Issue open (current) | 11 | |
| Actions runs | 218 | success 195 (89%), fail 14, cancelled 6 |
| Stale branches | 51 | ≥7 天无活动 |
| .learnings 新增 | 27 | |

**贡献者**: chentao.jia(42), Chentao Jia(24), Lijian(23), hongwei.zhang(5)

## 2. PR 活动

### 已合并 (36)

- #270 fix(ci): 补 PR-B 漏 commit 的 lsof 诊断 + Phase 注释，加 inline 段计时 — chentao.jia → develop — 存活 0.1h
- #269 fix(ci): 用 flock 替代失效的 Gitea concurrency block，共享测试容器真串行 — chentao.jia → develop — 存活 0.1h
- #267 fix(hooks): pre-commit/pre-push 改用本地 ts-node，杜绝 npx 拉 TS 7 炸 TS5107 — chentao.jia → develop — 存活 0.1h
- #247 feat(audit): 详情页 4 项 P0 优化 + Sensitive 覆盖补齐 + 业务跳转扩展 — lijian.dai → develop — 存活 22.5h
- #266 feat(agent-pool): 开发 agent 池——常驻 worktree 池加速并行任务 — chentao.jia → develop — 存活 0.3h
- #248 chore(workflow): 产品哲学元规则 + 修 worktree 首次 db push 失败的根因 — chentao.jia → develop — 存活 21.5h
- #263 chore: 删除未使用的 core TemporalService（0 调用方） — chentao.jia → develop — 存活 1.9h
- #261 fix(ci): jest --runInBand OOM 止血 + 测试跳过 Temporal 连接 — chentao.jia → develop — 存活 0.1h
- #255 docs(learnings): ERR-006 dev swap 100% 写截断 npm 二进制致 SIGBUS — chentao.jia → develop — 存活 12.2h
- #258 staging — chentao.jia → production — 存活 0.1h
- #257 develop — chentao.jia → staging — 存活 0.1h
- #256 feat(meeting-attendance): 详情页 On site/Online 显示「实到/应到」 — chentao.jia → develop — 存活 0.5h
- #254 release: staging → production — chentao.jia → production — 存活 1.4h
- #253 develop — chentao.jia → staging — 存活 1.5h
- #252 fix(dingtalk): 司龄回退"扣停薪"，HR 口径以本系统为准 — chentao.jia → develop — 存活 0.1h
- #246 docs(learnings): NOPASSWD / AIxC ESM 隐患 / 历史 ERR 补录（rolling 20260508） — chentao.jia → develop — 存活 0.2h
- #245 fix(site-attendance): 打卡页登录态用 /users/me 真校验 (#242 PR2) — chentao.jia → develop — 存活 1.5h
- #243 chore(ops): 统一基线 Node 22（CI/engines/docs）+ #242 ESM 事故复盘 — chentao.jia → develop — 存活 5.8h
- #244 fix(iam): JWT env 名字收敛 + access TTL 30min→30d (#242 PR1) — chentao.jia → develop — 存活 5.1h
- #241 fix(dingtalk): 司龄计算扣除停薪留职区间，年假口径同步对齐 — chentao.jia → develop — 存活 0.1h
- #240 chore(release): staging → production（site-attendance CSV 时区修复 #236 + #238） — hongwei.zhang → production — 存活 0.0h
- #239 chore(release): develop → staging（CSV 时区后缀修复 #238） — hongwei.zhang → staging — 存活 0.1h
- #238 fix(site-attendance): CSV 时间列追加时区缩写（PDT/PST/GMT+8）防 Excel 吞秒 — hongwei.zhang → develop — 存活 0.1h
- #237 chore(release): develop → staging（site-attendance CSV 导出时区修复 #236） — hongwei.zhang → staging — 存活 0.3h
- #235 ci(deploy-uat): 跳过 production→staging 回灌触发的 UAT 重部署 — chentao.jia → develop — 存活 2.5h
- #234 staging — chentao.jia → production — 存活 2.8h
- #236 fix(site-attendance): CSV 导出时间按 checkpoint 时区渲染 + header 标注时区 — hongwei.zhang → develop — 存活 0.2h
- #232 develop — chentao.jia → staging — 存活 0.4h
- #233 fix(ci): ai-review runner 容错解析 Claude 偶尔漏转义的 JSON — chentao.jia → develop — 存活 0.1h
- #231 chore(notes): batch 沉淀 3 个累积笔记 — chentao.jia → develop — 存活 0.1h
- #225 docs: 统一品牌名 AIXC → AIxC（保留 ID/shell 标识符） — chentao.jia → develop — 存活 33.4h
- #226 feat(approval-form): batch1 followup — 测试基线 + Temporal E2E + i18n 补齐 — chentao.jia → develop — 存活 32.7h
- #230 fix(iam): role mutation 必须 invalidate auth cache（撤权 SLA） — chentao.jia → develop — 存活 0.2h
- #229 fix(meeting-attendance): reports controller 不再静默吞 stack — chentao.jia → develop — 存活 0.9h
- #228 develop — chentao.jia → staging — 存活 1.2h
- #227 feat(auth): Entra ROPC 兜底登录 + 应用层 MFA bypass — chentao.jia → develop — 存活 0.1h

### 本周新开 (未合并, 3)

- #272 refactor(env): dev 环境重命名 test，保留 30 天 dev 别名兼容 — chentao.jia → develop — state: open
- #271 docs(daily-reports): lijian 2026-05-08 / 2026-05-09 日报 — lijian.dai → develop — state: open
- #268 fix(logging): 文档漂移 + 写入兜底 + dropOverflow probe — lijian.dai → develop — state: open

## 3. Issue 活动

### 本周新开 (10)

- #273 chore(deploy): 新机器初次部署 SOP 缺漏 (citext 扩展 + git credential 引导) — chentao.jia — state: open
- #265 chore(hooks): pre-commit 用本地 ts-node 替换 npx，避免 worktree 缺依赖时炸 TS5107（第 3 次复现） — chentao.jia — state: open
- #264 infra(ci): backend-integration 互踩根因 + UAT runner 超载 + dedicated-runner-1 闲置（G... — chentao.jia — state: open
- #262 [优化] AI 输出/总结中长文件路径的展示形式 — chentao.jia — state: open
- #260 test-backend: 集成测试去掉 --runInBand，需先解决 worker 间 DB/Redis 隔离 — chentao.jia — state: open
- #259 [workflow] AI Review 历史结果系统盘点 + 工作流优化 — chentao.jia — state: open
- #251 process: 把 5 条第一性原理规则固化进工作流 — chentao.jia — state: open
- #250 process: bug 解决方法论 — 第一性原理拆解（写入开发流程） — chentao.jia — state: open
- #249 ops: 工单 #242 复盘后的工程化保险三件套（防止同类问题复发） — chentao.jia — state: open
- #242 fix(auth): 打卡晚间 unauthorized 根因 + UAT @otplib ESM 依赖事故 — chentao.jia — state: open

## 4. CI / Actions

### Workflow 分布

| Workflow | 总数 | success | failure | cancelled | 平均时长 |
|---|---|---|---|---|---|
| quality-gates.yml | 103 | 91 | 9 | 2 | 3.5m |
| ai-review.yml | 72 | 69 | 3 | 0 | 1.2m |
| deploy-dev.yml | 28 | 24 | 0 | 4 | 5.1m |
| deploy-uat.yml | 11 | 7 | 2 | 0 | 14.4m |
| deploy-production.yml | 4 | 4 | 0 | 0 | 14.7m |

**按分支**: unknown=145, develop=58, staging=11, production=4

### 失败 run (14)

- [quality-gates.yml] branch=? sha=829dab79 — Merge branch 'develop' into docs/audit-system-all-modules — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1357
- [quality-gates.yml] branch=? sha=6ff17c3c — Merge branch 'develop' into docs/audit-system-all-modules — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1343
- [quality-gates.yml] branch=? sha=238f5f43 — Merge branch 'develop' into docs/audit-system-all-modules — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1335
- [quality-gates.yml] branch=? sha=800d4c60 — Merge branch 'develop' into docs/audit-system-all-modules — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1329
- [quality-gates.yml] branch=? sha=0643737e — Merge remote-tracking branch 'origin/develop' into docs/audi — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1297
- [quality-gates.yml] branch=? sha=581e6144 — docs(audit): 收敛 PR #247 review 三处建议 — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1291
- [quality-gates.yml] branch=? sha=2c37f6fd — fix(audit): 处理 PR #247 review 三处关键反馈 — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1281
- [quality-gates.yml] branch=? sha=bbf1d496 — Merge remote-tracking branch 'origin/develop' into docs/audi — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1279
- [quality-gates.yml] branch=? sha=9585032b — chore(audit): 13 个控制器补齐 @Sensitive() 覆盖 — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1275
- [ai-review.yml] branch=? sha=3f6bcb86 — chore(notes): batch 沉淀 3 个累积笔记 (#231) — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1202
- [ai-review.yml] branch=? sha=af733170 — Merge branch 'develop' into fix/iam-role-mutation-cache-inva — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1190
- [deploy-uat.yml] branch=staging sha=e6c70fa1 — Merge pull request 'develop' (#228) from develop into stagin — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1182
- [deploy-uat.yml] branch=staging sha=e6c70fa1 — Merge pull request 'develop' (#228) from develop into stagin — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1181
- [ai-review.yml] branch=? sha=2bb4f884 — Merge branch 'develop' into docs/aixc-rename — http://43.130.59.228/FFAIWorkspace/workspace/actions/runs/1173

## 5. Stale Branches (≥7 天无活动)

- `feature/recruitment` — 39 天前 — Chentao
- `feature/asset-management` — 39 天前 — Chentao
- `feature/performance-docs-refactor` — 39 天前 — Chentao
- `fix/deploy-safe-build` — 31 天前 — Ubuntu
- `fix/ci-set-e` — 31 天前 — hongwei.zhang
- `fix/deploy-nextjs-cache-timing` — 31 天前 — Ubuntu
- `fix/deploy-nextjs-cache` — 31 天前 — Ubuntu
- `feature/aixc-ci-deploy` — 31 天前 — Ubuntu
- `fix/settings-cleanup` — 29 天前 — hongwei.zhang
- `feature/ai-tools-drop-org-scope` — 24 天前 — Ubuntu
- `feature/ai-tool-grants-sync-prep` — 24 天前 — Ubuntu
- `feature/ai-tool-grants-frontend` — 24 天前 — Ubuntu
- `feature/ai-tool-grants-crud-api` — 24 天前 — Ubuntu
- `feature/ai-tool-grants-data-model` — 24 天前 — Ubuntu
- `feature/ai-tools-v23-frontend` — 23 天前 — Ubuntu
- `feature/ai-tools-v23-backend` — 23 天前 — Ubuntu
- `fix/site-attendance-partner-one-step-save` — 21 天前 — Ubuntu
- `fix/batch-import-work-city-hooks-rules` — 18 天前 — Ubuntu
- `feature/meeting-attendance-v12-acceptance-checklist` — 18 天前 — Ubuntu
- `feature/meeting-attendance-v12-l1-tests` — 18 天前 — Ubuntu
- `feature/meeting-attendance-whitelist-checkin` — 18 天前 — Ubuntu
- `docs/meeting-attendance-post-release-notes` — 17 天前 — Ubuntu
- `bugfix/series-attendee-preferences-pagination` — 17 天前 — Ubuntu
- `chore/remove-legacy-cutover-scripts` — 17 天前 — Ubuntu
- `chore/test-main-skill-i18n-update` — 17 天前 — Ubuntu
- `feature/meeting-attendance-legacy-cleanup` — 17 天前 — Ubuntu
- `feature/meeting-attendance-v12-polish-l3-round2` — 17 天前 — Ubuntu
- `feature/meeting-attendance-v12-polish-l3` — 17 天前 — Ubuntu
- `feature/iam-standards` — 15 天前 — chentao.jia
- `fix/ci-test-redis` — 14 天前 — Chentao Jia

## 6. 热点文件 (本周变更 ≥3 次)

- `.learnings/ERRORS/INDEX.md` — 10 次
- `.gitea/workflows/deploy-uat.yml` — 5 次
- `.gitea/workflows/quality-gates.yml` — 4 次
- `backend/src/core/observability/audit/audit.service.ts` — 4 次
- `.githooks/pre-commit` — 3 次
- `.learnings/ERRORS/ERR-20260509-001.md` — 3 次
- `frontend/src/locales/audit/en.ts` — 3 次
- `frontend/src/locales/audit/zh.ts` — 3 次

## 7. .learnings 新增 (27)

- `2026-05-02-prisma-migration-squash.md`
- `2026-05-03-dev-db-missing-itadmin.md`
- `2026-05-03-i18n-pre-existing-hardcoded-zh-in-approval.md`
- `2026-05-03-temporal-host-network-bypass.md`
- `2026-05-04-ai-review-runner-json-parse-bug.md`
- `2026-05-04-entra-ropc-it-setup.md`
- `2026-05-04-iam-role-mutation-cache-invalidate.md`
- `2026-05-06-dingtalk-tenure-suspension-double-loop.md`
- `2026-05-06-prod-to-staging-syncs-retrigger-uat-deploy.md`
- `2026-05-06-verify-env-rename-via-bak-history.md`
- `2026-05-07-audit-decorator-gaps.md`
- `2026-05-07-seed-chain-gaps.md`
- `2026-05-08-audit-entity-type-dual-style.md`
- `2026-05-08-claude-permission-allowlist-batch.md`
- `2026-05-08-coverage-survey-by-schema-name-misleads.md`
- `2026-05-08-decorator-coverage-via-mechanism-testing.md`
- `2026-05-08-dingtalk-tenure-confirm-source-with-hr.md`
- `2026-05-08-ffai-aixc-servers-nopasswd-sudo.md`
- `2026-05-08-node-version-drift-across-envs.md`
- `2026-05-08-test-app-interceptor-override.md`
- `2026-05-09-ci-flock-shared-test-containers.md`
- `2026-05-09-gitea-actions-run-display-number-vs-api-id.md`
- `2026-05-09-gitea-actions-runs-api-field-quirks.md`
- `2026-05-09-precommit-npx-binpath-policy.md`
- `ERRORS.md`
- `FEATURE_REQUESTS.md`
- `LEARNINGS.md`

---

_Generated by `scripts/ops/weekly-review.py`. Closure tracked in Gitea issue (label: `weekly-retro`)._
