wecom-fullstack
0c2e57a4cf
fix(cma): 工作台跨实体污染治本 — 全局键拆账套 + 缺列收口 + 预警归属兜底
任务 dama-workbench-entity-isolation-fullstack-20260922(DAMA 诊断 / 项目Bot batch5 §B / 任总 2026-09-22「都批」)
B1 现金基线拆账套(零 DDL)
- cash_forecast_engine: 键 cash.current_balance → cash.current_balance.<entity_id>;
读只读本账套键、不做旧键回退;set_* 签名 entity_id 必传(漏传 TypeError)
- cash.py: POST /balance 挂 get_entity_id;网银流水联动写回带账套
B3(a) alignment_config 拆账套(零 DDL)
- alignment.py: GET/POST /config、GET /tree 只读 alignment_config.<entity_id>;未配置=configured:false
B3(b) 预警 KPI 归属兜底
- bot_bridge_v2: 去掉 kpi_id or 1 兜底;本账套无 KPI 定义 → 跳过建预警 + OperationLog 留痕
(kpi_alerts.kpi_id NOT NULL ⇒ 方案A 置 NULL 不可行,走方案B 跳过+审计)
B2 缺列五表分表处置
- notification_logs: 经 alert_id → kpi_alerts.entity_id join 归属(无父键行不返回)
- notification_channels / okr_templates: 集团共享口径写入 docstring(有意不过滤)
- system_configs: 由 B1/B3(a) 拆键覆盖;kpi_data_quality_logs 沿用 batch5 的 join 收口
P0 语义收敛
- tenant.py: current_tenant 收敛为项目Bot A2A 状态记录,GET 仅 it/ceo;POST 补 operation_logs 审计
证据:新增/改写用例 22 条;全量 1370 passed(基线 1348)
2026-09-22 11:06:02 +08:00
..
2026-09-14 17:39:53 +08:00
2026-09-11 17:25:24 +08:00
2026-09-15 18:12:05 +08:00
2026-08-28 09:59:07 +08:00
2026-09-16 06:53:28 +08:00
2026-08-31 15:33:07 +08:00
2026-08-31 15:33:07 +08:00
2026-08-31 15:33:07 +08:00
2026-07-12 17:46:08 +08:00
2026-07-12 17:46:08 +08:00
2026-08-31 15:33:07 +08:00
2026-07-12 17:46:08 +08:00
2026-08-31 15:33:07 +08:00
2026-08-31 07:44:00 +08:00
2026-05-28 17:32:22 +08:00
2026-09-19 10:05:11 +08:00
2026-07-12 17:46:08 +08:00
2026-09-14 16:41:15 +08:00
2026-09-16 23:46:48 +08:00
2026-09-11 19:33:52 +08:00
2026-08-10 23:56:14 +08:00
2026-08-31 17:05:21 +08:00
2026-09-12 23:34:35 +08:00
2026-09-12 23:34:35 +08:00
2026-08-30 12:05:36 +08:00
2026-07-12 17:46:08 +08:00
2026-08-31 15:33:07 +08:00
2026-08-31 15:33:07 +08:00
2026-08-27 15:51:19 +08:00
2026-09-03 18:15:05 +08:00
2026-05-28 17:32:22 +08:00
2026-09-16 14:39:54 +08:00
2026-07-14 16:02:33 +08:00
2026-07-14 16:02:33 +08:00
2026-06-05 07:51:20 +08:00
2026-07-14 16:02:33 +08:00
2026-08-31 15:33:07 +08:00
2026-06-05 07:51:20 +08:00
2026-07-12 17:46:08 +08:00
2026-08-31 15:33:07 +08:00
2026-09-12 23:34:35 +08:00
2026-09-11 17:25:24 +08:00
2026-08-28 09:59:07 +08:00
2026-07-12 17:46:08 +08:00
2026-07-29 18:16:37 +08:00
2026-09-18 00:34:04 +08:00
2026-09-12 23:34:35 +08:00
2026-09-12 23:34:35 +08:00
2026-09-16 01:17:09 +08:00
2026-09-14 17:25:49 +08:00
2026-09-19 10:05:11 +08:00
2026-07-14 16:02:33 +08:00
2026-07-14 16:02:33 +08:00
2026-09-14 18:21:33 +08:00
2026-09-18 00:34:04 +08:00
2026-09-14 19:05:16 +08:00
2026-09-14 17:19:49 +08:00
2026-07-22 17:43:59 +08:00
2026-09-22 11:06:02 +08:00
2026-08-27 15:51:19 +08:00
2026-09-12 23:34:35 +08:00
2026-09-15 18:12:05 +08:00
2026-07-14 16:02:33 +08:00
2026-09-18 00:34:04 +08:00
2026-08-27 10:59:56 +08:00
2026-07-14 17:32:22 +08:00
2026-07-21 23:41:40 +08:00
2026-09-11 19:33:52 +08:00
2026-08-04 15:35:15 +08:00
2026-08-30 19:16:19 +08:00
2026-09-12 01:03:31 +08:00
2026-08-30 12:05:36 +08:00
2026-07-12 17:46:08 +08:00
2026-06-05 07:51:20 +08:00
2026-07-12 17:46:08 +08:00
2026-07-16 16:39:24 +08:00
2026-08-28 07:18:54 +08:00
2026-07-12 17:46:08 +08:00
2026-09-12 23:34:35 +08:00
2026-07-12 17:46:08 +08:00
2026-07-21 17:30:50 +08:00
2026-07-12 17:46:08 +08:00
2026-08-11 00:11:25 +08:00
2026-07-13 09:52:06 +08:00
2026-07-21 17:22:43 +08:00
2026-08-19 22:58:10 +08:00
2026-07-14 16:02:33 +08:00
2026-07-14 16:02:33 +08:00
2026-09-16 14:59:02 +08:00
2026-09-18 06:04:48 +08:00
2026-09-15 20:02:56 +08:00
2026-09-03 18:41:44 +08:00
2026-07-14 16:02:33 +08:00
2026-09-08 13:43:20 +08:00
2026-09-12 20:35:20 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 18:44:39 +08:00
2026-09-14 17:39:53 +08:00
2026-09-13 07:38:58 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-15 18:12:05 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-16 01:17:09 +08:00
2026-09-14 17:39:53 +08:00
2026-09-16 00:38:01 +08:00
2026-09-14 17:39:53 +08:00
2026-09-11 17:25:24 +08:00
2026-09-06 16:47:25 +08:00