# 累积基线变更 + 待验证清单（2026-04-15 ~ 2026-05-02）

| 字段 | 值 |
|------|-----|
| 日期 | 2026-05-04 |
| 类型 | 累积基线提交（多主题合流） |
| 覆盖时间 | 2026-04-15 ~ 2026-05-02 |
| 文件总数 | 129（不含 `apps/etl/connectors/feiqiu/.env` API_TOKEN secret 与 `tmp/`） |
| commit 范围 | 单个累积基线 commit（参照 `2a7a5d6 feat: 2026-04-15~04-20 累积变更基线`） |

## 0. 背景

经历 Cursor 时代的多次会话累积，4 月 15 日之后未做完整 push 收尾。本次反向迁回 Claude Code 后做单轨化 + 推送收尾时发现 124 个未提交业务变更，但**已存在 8 个审计记录 + 7 个数据库变更文档**（散落在 `docs/audit/changes/` 和 `docs/database/changes/` 中 untracked）。审计步骤已在前序会话完成，本次仅做**累积基线 commit + 推送**。

**关键原则**：每个主题的"功能完整性 + 上线验证"**几乎都没有收口**，本文档列出待逐一处理的验证清单，作为后续工作起点。

## 1. 已存在的审计记录索引

| 审计记录 | 主题 |
|---|---|
| `docs/audit/changes/2026-04-20__ai-module-complete.md` | AI 模块完成（8 个千问 APP） |
| `docs/audit/changes/2026-04-21__admin-web-ai-management-suite.md` | admin-web AI 管理套件 |
| `docs/audit/changes/2026-04-21__app2-finance-prewarm-all-filters.md` | App2 财务预热全过滤器 |
| `docs/audit/changes/2026-04-21__board-finance-ai-insights-verify.png` | board-finance AI 洞察验证截图 |
| `docs/audit/changes/2026-04-22__app2_prompt_v5_1_and_miniprogram_ai_insight.md` | App2 prompt v5.1 + 小程序 AI 接入 |
| `docs/audit/changes/2026-04-30__admin_web_ai_app_type_alignment.md` | admin-web AI AppType 联合类型对齐 |
| `docs/audit/changes/2026-04-30__backend_dashscope_tokens_used_extraction.md` | DashScope tokens_used 提取修复 |
| `docs/audit/changes/2026-05-01__backend_app3_full_detail_prompt.md` | App3 线索完整详情 prompt |

## 2. 已存在的数据库变更文档

| 数据库变更文档 | 主题 |
|---|---|
| `docs/database/changes/2026-05-01__runtime_context_sandbox.md` | Runtime Context 沙箱设计 |
| `docs/database/changes/2026-05-02__sandbox_admin_web_manual_checklist.md` | 沙箱 admin-web 手工验证清单 |
| `docs/database/changes/2026-05-02__sandbox_admin_web_playwright_report.md` | 沙箱 admin-web Playwright 报告 |
| `docs/database/changes/2026-05-02__sandbox_admin_web_verify_report.md` | 沙箱 admin-web 验证报告 |
| `docs/database/changes/2026-05-02__sandbox_complete_refactor.md` | 沙箱完整重构 |
| `docs/database/changes/2026-05-02__sandbox_e2e_verify_report.md` | 沙箱 e2e 验证报告 |
| `docs/database/changes/2026-05-02__sandbox_no_future_data_plan.md` | 沙箱避免未来数据策略 |

## 3. 各主题待验证清单（核心）

> **每个主题都标注实际未完成 / 待验证项。以下为后续逐一处理的工作起点。**

### 3.1 AI 模块重构（8 个千问 APP 拆分）

**变更**：删除旧 `apps/backend/app/ai/apps/app[1-8]_*.py`（9 个），改为 `apps/backend/app/ai/prompts/app[1-8]_*_prompt.py` 模块化。`dispatcher.py` 重构调用链路。

**待验证**：

- [ ] 8 个 APP 在生产环境的实际调用链路完整性（`chat / finance / clue / analysis / tactics / note / customer / consolidate`）
- [ ] `app2a_finance_area_prompt.py` 区域财务派生 APP 是否独立稳定
- [ ] `dispatcher.py` 重构后的熔断 / 限流 / 预算追踪行为是否与重构前一致
- [ ] `cache_service.py` AI 对话缓存是否仍按 `cache_type` 正确分桶
- [ ] `references.py` 新增的引用聚合层是否被所有 prompt builder 正确使用
- [ ] `event_bus.py` 新增事件总线在生产中的实际订阅者数量
- [ ] `ws/ai_events.py` WebSocket 事件推送的浏览器侧消费稳定性

### 3.2 admin-web AI 管理套件 + AppType 对齐

**变更**：6 个 admin-web AI 页面（`AIDashboard / AIOperations / AIRunLogs / AITriggers / RuntimeContext / TriggerManager`）+ `adminAI.ts` API 封装 + `adminAiAppTypes.test.ts` 单元测试。

**待验证**：

- [ ] AITriggers 页面在 admin-web 主菜单的入口路由是否注册
- [ ] AppType 联合类型（`adminAiAppTypes.test.ts` 验证 8 个 AppType 命名一致性）是否通过 `pnpm test`
- [ ] AIDashboard 实时 WebSocket 订阅在 admin-web 浏览器端的连通性
- [ ] AIRunLogs 分页 + 筛选条件在大数据量（>10k 条）下的性能
- [ ] TriggerManager 触发器编辑 / 启停的端到端流程

### 3.3 App2 财务洞察 prompt v3 → v5.1 演进

**变更**：`app2_finance_prompt.py` 升级到 v5.1；存档 8 份 prompt 版本（`docs/ai/app2_finance_system_prompt_*`）+ A/B 测试脚本（`scripts/ab_test_app2_prompt.py` 等 5 个）。

**待验证**：

- [ ] v5.1 vs v5 vs v4 在真实门店数据上的店长视角评分（参考 `analyze_store_manager_quality.py`）
- [ ] 12 条产出齐整率 + 三色灯分布稳定性（`ab_test_app2_prompt.py`）
- [ ] 客单价环比是否从原字段引用、不做推测（`analyze_ab_content_quality.py` 板块 A）
- [ ] 储值卡余额变化是否引用权威字段（板块 C）
- [ ] 旺淡倍率 + 同周/期均基线是否在 seq 9-10 中体现（板块 E）

### 3.4 App3 线索完整详情 prompt

**变更**：`app3_clue_prompt.py` 新增完整详情构造逻辑。

**待验证**：

- [ ] 与 App3 dispatcher 调用链路联调
- [ ] 线索数据 fetcher 字段完整性（`data_fetchers/` 多个文件改动）

### 3.5 Runtime Context 沙箱（5-1 ~ 5-2 主线工作）

**变更**：跨前后端 + 数据库的完整沙箱设计：
- 后端：`runtime_context.py` schema/service + `admin_runtime_context.py` `xcx_runtime_clock.py` 两个新 router
- admin-web：`RuntimeContext.tsx` 页面 + `runtimeContext.ts` API
- 小程序：`runtime-clock.ts` 工具
- 数据库：`db/zqyy_app/migrations/20260501__runtime_context_sandbox.sql`
- 验证工具：`tools/db/verify_admin_web_sandbox.py`

**待验证**：

- [ ] 7 份 `docs/database/changes/2026-05-0[12]__sandbox_*.md` 中描述的验证步骤是否全部执行
- [ ] sandbox 时间漂移在小程序端的实际表现（`runtime-clock.ts` 在多端时区切换下的稳定性）
- [ ] admin-web RuntimeContext 页面的"未来数据"防护策略（参考 `sandbox_no_future_data_plan.md`）
- [ ] e2e 测试报告中 Playwright 截图与手工 checklist 的一致性
- [ ] `xcx_runtime_clock.py` 小程序时间同步 API 在生产灰度环境的实际行为

### 3.6 AI 触发器 + app2 prewarm 数据库

**变更**：
- `db/zqyy_app/migrations/20260420_ai_trigger_jobs_and_app2_prewarm.sql`
- `db/zqyy_app/migrations/20260421_app2_prewarm_cron_reschedule.sql`
- `docs/database/BD_manual_ai_trigger_jobs_register.md`
- `apps/backend/app/services/trigger_scheduler.py` 调整

**待验证**：

- [ ] cron 重调度后的 prewarm 命中率（`apps/backend/app/services/trigger_scheduler.py`）
- [ ] AI 触发器 jobs 表的实际数据量
- [ ] 21 日 cron reschedule 是否影响其他既有触发器

### 3.7 飞球 DWS 修复 + RLS 业务日上界视图

**变更**：
- `apps/etl/connectors/feiqiu/tasks/dws/finance_area_daily.py` 区域财务汇总
- `apps/etl/connectors/feiqiu/tasks/dws/task_engine.py` 任务引擎
- `db/etl_feiqiu/migrations/20260502__rls_views_business_date_upper_bound.sql` RLS 视图加业务日上界
- `scripts/ops/gen_rls_business_date_migration.py` 视图迁移生成器

**待验证**：

- [ ] RLS 业务日上界视图覆盖的 N 个视图是否全部通过 `pg_get_viewdef` 重建
- [ ] `finance_area_daily` 在 area 维度的会员分桶是否与 DWS 权威规范一致
- [ ] task_engine 改动后的幂等性（按 `apps/etl/connectors/feiqiu/CLAUDE.md` DWS 幂等规则）

### 3.8 admin-web 沙箱验证产物

**变更**：3 份 `2026-05-02__sandbox_admin_web_*.md` 报告 + 验证工具 `tools/db/verify_admin_web_sandbox.py`。

**待验证**：

- [ ] verify_admin_web_sandbox.py 在最新数据下重跑结果
- [ ] manual checklist 的所有项是否在生产环境复现

### 3.9 部署文档

**变更**：
- `docs/deployment/LAUNCH-CHECKLIST.md` 修改
- `docs/deployment/SERVER-ACCESS.md` 新增

**待验证**：

- [ ] 实际部署链路与 SERVER-ACCESS 中描述的服务器是否一致（注意：`SERVER-ACCESS.md` 可能含敏感连接信息，入仓前应复扫）

## 4. 后续处理优先级建议

| 优先级 | 主题 | 原因 |
|---|---|---|
| P0 | 3.1 AI 模块重构验证 | 8 APP 是核心业务，重构面广 |
| P0 | 3.5 Runtime Context 沙箱 | 跨前后端 + DB，5-1~5-2 主线工作未收口 |
| P1 | 3.7 飞球 DWS + RLS 业务日上界 | 数据正确性，影响所有下游 |
| P1 | 3.6 AI 触发器 prewarm | cron 改动需观察是否漏触发 |
| P2 | 3.3 App2 prompt v5.1 | A/B 测试脚本已就绪，需要跑评分 |
| P2 | 3.2 admin-web AI 管理套件 | 工具页面，问题影响面有限 |
| P3 | 3.4 / 3.8 / 3.9 | 较为独立的小主题 |

## 5. 不入仓项

- `apps/etl/connectors/feiqiu/.env`：飞球上游 SaaS API_TOKEN（modified 但保留为本地修改）
- `tmp/`：临时分析产物（已加入 `.gitignore`）

## 6. 操作记录

```
git add -A
git restore --staged apps/etl/connectors/feiqiu/.env  # 排除 secret
git commit -m "feat: 2026-04-15~05-02 累积变更基线 — AI 重构 + Runtime Context + DWS 修复"
git push origin dev
```

后续按 §4 优先级逐一展开主题验证 + 收口。
