|
|
c446920c9e
|
feat(backend): F1-6 sprint2 #5 累计 GMV 加入 sandbox_replay (门店级)
Sprint 2 收尾指标:门店级累计 GMV(与 #1-#4 会员级粒度不同),新建
sandbox_replay/finance_replay.py 模块。无原 fdw_queries.get_total_gmv
函数(0 现有调用方),不写 thin wrapper(spec §5.5 决策原则)。
数据源 dws_finance_daily_summary.gross_amount(门店日度财务汇总,daily 累计)。
SQL 模式 SUM(gross_amount) WHERE stat_date <= ctx.business_date,与 #1-#4
取最新单行不同,是多行累计 SUM。SQL 层 COALESCE(SUM(...), 0) 兜底,无数据
返回 Decimal('0')(开店前累计 GMV = 0,业务语义)。
口径 gross_amount = table_fee + goods + assistant_pd + assistant_cx,**不含
electricity_money**(与会员级 items_sum 略有差异,docstring 明确防止交叉验证)。
双口径数值验证 PASS(直接 Python,site=2790685415443269 朗朗桌球):
- 4a live(today=2026-05-05): ¥5,725,837.51
- 4b sandbox=2026-04-20: ¥5,653,063.37(差异 ¥72,774,即 4-21~4-27 七天合计)
新增防御性回归测试 test_get_total_gmv_no_member_ids_param 阻断未来误加
member_id 参数(门店级粒度强约束)。
unit test sprint1+sprint2 累计 28/28 PASS,无回归。
Sprint 2 收尾(4 项迁移 + #3 推迟 Sprint 3 等 ETL 配合)。
详见 docs/audit/changes/2026-05-06__f1_6_sprint2_total_gmv.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-06 01:32:14 +08:00 |
|
|
|
7b1cfadc2e
|
feat(backend): F1-6 sprint2 #4 储值卡余额迁移 sandbox_replay (SCD2 时光机)
新建 sandbox_replay/balance_replay.py 模块,迁移 fdw_queries.get_member_balance,
fdw_queries 改 thin wrapper 保持 5 处现有调用(chat/coach/customer x2/task_manager)
透明兼容。
数据源 dim_member_card_account 是 SCD2 维度表(原生支持时光机),sandbox 改造
关键是替换 scd2_is_current=1 过滤为 scd2_start_time + scd2_end_time 时间过滤
(ref_date+1day 边界 = 当天结束时仍 active 的版本,timestamptz 比较稳定)。
双口径 UI 走查 PASS(member=2799207363643141 葛先生,SCD2 历史余额变化样本):
- 4a live(today=2026-05-05): 储值余额 ¥6,602
- 4b sandbox=2026-04-20: 储值余额 ¥18,080(差异 1.1w+,时光机效果显著)
unit test sprint1+sprint2 累计 24/24 PASS,无回归。
附带本次 sprint 2 触发的架构级登记:
- 新建 docs/_overview/architecture-evolution-backlog.md(DWD 孤立 + Core 中间件 +
库重组,长远架构演进 backlog)
- F1-6-tasks.md 登记 #3 累计交易笔数推迟 Sprint 3(ETL 配合新增
total_open_table_count,因现有 total_visit_count 实算 COUNT(settle_type IN (1,3))
含商城订单,不符 Neo "开台次数"业务语义)
- sandbox-replay-engine-spec §5.5 thin wrapper 决策原则(已在 #2 commit)
详见 docs/audit/changes/2026-05-06__f1_6_sprint2_member_balance.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-06 01:26:18 +08:00 |
|
|
|
32716bc71a
|
feat(backend): F1-6 sprint2 #2 累计消费总额加入 sandbox_replay
新增指标(无 fdw_queries 原查询 + 0 现有调用方 + 无 thin wrapper),沿用
sprint 1/sprint2 #1 模式 @trace_service + @runtime_aware decorator + 显式
stat_date <= ctx.business_date 上界 + dws_member_consumption_summary
.total_consume_amount 字段 items_sum 口径。
双口径数值验证 PASS(member=2799207087163141 黄先生,直接 Python 调用):
- 4a live(today=2026-05-05): get_total_consume_amount=1252.65
- 4b sandbox=2026-04-20: get_total_consume_amount=999.99(walkthrough 测试快照)
unit test sprint1+sprint2 累计 19/19 PASS,无回归。
记录 thin wrapper 决策原则到 spec §5.5(迁移辅助层,非常态架构;
fdw_queries 长远退化纯 ETL 物理访问层,清理放收尾 sprint)。
注:#3 累计交易笔数因 spec §4 字段未明确(dws_order_summary vs
total_visit_count)暂停,等 Neo 决断后继续。
详见 docs/audit/changes/2026-05-06__f1_6_sprint2_total_consume_amount.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-06 00:52:08 +08:00 |
|
|
|
d418621951
|
feat(backend): F1-6 sprint2 #1 60d 消费迁移到 sandbox_replay
迁移 fdw_queries.get_consumption_60d 到 sandbox_replay.consumption_replay,
沿用 sprint 1 模式: @trace_service + @runtime_aware decorator + 显式
stat_date <= ctx.business_date 上界(与视图过滤双保险),fdw_queries 改
thin wrapper 保持 customer_service 2 处调用兼容。
双口径走查 PASS(member=2799207087163141 黄先生):
- 4a live(today=2026-05-05): 小程序 stat 卡条 60天消费 ¥115(consume_amount_60d=115.36)
- 4b sandbox=2026-04-20: 小程序 stat 卡条 60天消费 ¥89(walkthrough 测试快照 88.88)
unit test sprint1+sprint2 累计 15/15 PASS,无回归。
详见 docs/audit/changes/2026-05-06__f1_6_sprint2_consumption_60d.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-06 00:27:13 +08:00 |
|
|
|
5d4da0ae8c
|
docs(spec): F1-5b D1-D4 P20 SPEC 同步 + audit dashboard 刷新 (W1)
F1-5b 大量代码改动落地后,同步 P20 SPEC 反映现状,防止文档与代码偏差。
D1 §6 与 ETL 影子衔接:
- 新增 §6.1 "F1-5b 收益":app 视图业务日上界裁剪范围 + 后端读取层
+ 写入层 sandbox 隔离 + 业务架构边界(zqyy_app 永不建 RLS) + 跨连接器扩展性
D2 §10 跨模块覆盖矩阵更新:
- §10.1 后端服务层:5 个 ? 项核实更新为 X 或 —,各项补 commit 引用
* task_generator / coach_service / customer_service / dispatcher / admin_service
- §10.2 AI 提示词:app8_consolidate ? 标"F1-5b 范围外,Wave 2 / F1-6 audit"
- §10.3 小程序页面:新增 coach-service-records 行(MP-5);board-* 系列
? → —(后端走 board_service);customer-detail 备注补 MP-3 + MP-4
D3 §11 已知遗漏:
- §11.1 设计共识:新增 zqyy_app 永不建 RLS(A4) + batch_id 命名规约(A5)
- §11.2 已知 hack:补 F1-5b T3 间接覆盖说明
- 新增 §11.3 F1-5b 已收口的 11 项遗留 hack ✓
- 新增 §11.4 推迟到 F1-6 沙箱时光机阶段 B 的 4 项 ⏳
- 新增 §11.5 推迟到 F1-7+ 阶段 C 的 3 项 ⏳
D4 §15 变更记录 + §15.1 收益总结 + §12 任务清单:
- §15 新增 4 行(F1-5a 走查 / F1-5b Wave A / Wave B / 沙箱时光机 spec)
- 新增 §15.1 F1-5b 收益总结:7 大类已落地 + 业务价值 + 未落地指引
- §12 任务清单:T11/T12/T13 F1-5b 三批次摘要 + T18/T19 F1-6/F1-7+ 排期
- audit dashboard 自动刷新(scripts/audit/gen_audit_dashboard.py)
扫描 165 条审计记录(含本次 F1-5b 全部 commit)
无代码改动,纯文档同步。F1-6 启动可直接引用 sandbox-replay-engine-spec
+ P20 SPEC §11.4/§11.5 排期登记。
审计:docs/audit/changes/2026-05-05__wave1_f1_5b_d1234_spec_sync.md
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-05 22:21:24 +08:00 |
|
|
|
95a4500c75
|
chore(ops): reload 卡死三层预防 + F1-5a 完整走查报告
reload 卡死三层预防(走查中遭遇 uvicorn graceful shutdown 死等触发):
- Layer 1 (apps/backend/start_uvicorn.py 新): 把 reload-excludes
封装在 Python 字符串内,ps1 命令行只有字面路径,根治 PowerShell
PSNativeCommandArgumentPassing 在不同 profile 下 wildcard 展开
行为差异(数组 splatting 和 --% 都不稳)。同时显式设
timeout-graceful-shutdown=5,5 秒强杀防死等
- Layer 2 (scripts/ops/backend-watchdog.ps1 新): 自主 socket 探针
(TcpClient + 手写 HTTP/1.1 GET,Connection: close)规避 .NET
HttpClient pool 复用 + 系统代理误报;3s × 3 = 9s 触发重启;
进程链 kill 至 pwsh 后端窗口(关闭原窗口);3 次/小时上限自停
- Layer 3 (scripts/ops/start-admin.ps1): 启动时拉起 watchdog,
菜单 [4] 仅重启后端选项,主菜单退出时一并 kill 看门狗
CLAUDE.md: 新增"后端 reload 卡死预防(强制)"章节,
分级文件风险表 + SOP + 启动菜单速查
走查报告(应查尽查严肃版):
- 后端 6 个改造点 PASS(P1-P4 + GUC + ai_run_logs runtime 字段)
- admin-web 7 页 Playwright 实地走查 → 5 项 UI 不完整登记 F1-5b
- 小程序看板 tab 7 页 weixin-devtools-mcp 实地 + DB 数据核对 →
board-finance 5/6 项上界裁剪吻合;board-customer 业务日生效;
board-coach 月度聚合表设计盲区;5 项 sandbox 覆盖盲区登记 F1-5b
- 8 张走查截图归档 docs/audit/changes/screenshots/2026-05-05_f1_5a_walkthrough/
audit_dashboard 刷新到 153 条审计
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-05 11:53:08 +08:00 |
|
|
|
caf179a5da
|
feat: 2026-04-15~05-02 累积变更基线 — AI 重构 + Runtime Context + DWS 修复
涵盖(每条对应已存的审计记录):
- AI 模块拆分:apps/backend/app/ai/apps -> prompts/(8 个 APP + app2a 派生)
audit: 2026-04-20__ai-module-complete.md
- admin-web AI 管理套件:AIDashboard / AIOperations / AIRunLogs / AITriggers / TriggerManager
audit: 2026-04-21__admin-web-ai-management-suite.md
- App2 财务洞察 prompt v3 -> v5.1 + 小程序 AI 接入(chat / board-finance)
audit: 2026-04-22__app2_prompt_v5_1_and_miniprogram_ai_insight.md
- App2 prewarm 全过滤器 + AI 触发器 cron reschedule
audit: 2026-04-21__app2-finance-prewarm-all-filters.md
migration: 20260420_ai_trigger_jobs_and_app2_prewarm.sql / 20260421_app2_prewarm_cron_reschedule.sql
- AppType 联合类型对齐 + adminAiAppTypes.test.ts
audit: 2026-04-30__admin_web_ai_app_type_alignment.md
- DashScope tokens_used 提取修复
audit: 2026-04-30__backend_dashscope_tokens_used_extraction.md
- App3 线索完整详情 prompt
audit: 2026-05-01__backend_app3_full_detail_prompt.md
- Runtime Context 沙箱(5-1~5-2 主线):
- 后端 schema/service + admin_runtime_context / xcx_runtime_clock 两个 router
- admin-web RuntimeContext.tsx + miniprogram runtime-clock.ts
- migration: 20260501__runtime_context_sandbox.sql
- tools/db/verify_admin_web_sandbox.py + verify_sandbox_end_to_end.py
- database/changes: 7 份 sandbox_* 验证报告
- 飞球 DWS 修复:finance_area_daily 区域汇总 + task_engine 调整
+ RLS 视图业务日上界(migration 20260502 + scripts/ops/gen_rls_business_date_migration.py)
合规:
- .gitignore 启用 tmp/ 排除
- 不入仓:apps/etl/connectors/feiqiu/.env(API_TOKEN secret,本地修改保留)
待验证清单:
- docs/audit/changes/2026-05-04__cumulative_baseline_pending_verification.md
每个主题的功能完整性 / 上线验证几乎都未收口,按优先级 P0~P3 逐一处理
|
2026-05-04 02:30:19 +08:00 |
|
|
|
d269ee6401
|
docs(ai): app2a v1.2 system prompt + 多 APP 派生设计 v2 + 审计 + A/B 脚本
1. docs/ai/app2a_finance_area_system_prompt_20260422_v1.md (新建 · v1.2 生产版):
- 基于 app2_finance V5.1 派生
- 板块 C 改"业态收入结构" · 板块 E 改"业态定位与对比"
- 新增 H7 硬约束:业态特征引用必须紧跟 payload 真实数据
- H6 扩展区域级 6 类字段缺失降级(储值卡/分渠道现金流/现金流出/会员占比/按星期/日异常)
- 经 3 次修正:v1"稀疏" → v1.1 纠正为业务真实 0/非 0 → v1.2 纠正为字段存在/整块缺失
- 已同步百炼控制台 APP ID 0ae965029bc54706bcff44f511ac716b
2. docs/ai/app2_finance_multi_app_design.md (新建 · v2 定稿):
- 6 章 + 3 附录 · Q1-Q7 全部决策 · 6 阶段 28 项 checklist
- 72 组合数据源支持度三档梳理(必须 / 业务级全店 / 字段存在 vs 整块缺失)
- 2 套 prompt 拼接方案 · 2 个派生百炼 APP 策略
3. docs/audit/changes/2026-04-23__app2a_finance_area_integrated.md (新建):
- 完整审计记录 · 13 高风险文件逐项注解
- 数据库变更 + 风险与回滚 + 验证方式 + 合规检查
4. docs/audit/audit_dashboard.md (刷新 · 135 条记录)
5. scripts/ab_test_app2a_area.py (新建):
- 8 业态 × 3 轮 = 24 次采样评估含金量
- 自动检测 H1/H2/H3/H7 硬约束通过率 + seq11 三色灯分布
6. scripts/ab_to_cache.py (新建):
- 复用 A/B 结果直接写 ai_cache · 绕开百炼预算验证 UI 端到端
A/B 实测 24/24 成功 · 12 条齐整率 100% · H1/H3/H7 100% · 达生产级。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-22 21:56:46 +08:00 |
|
|
|
b44096600d
|
chore(cleanup): 清理历史会话遗留未跟踪产物 — gitignore 追加 + 文件归位
- .gitignore: 追加 .playwright-mcp/ 与 apps/miniprogram/.font_patch_tmp/ 两条忽略规则
- apps/miniprogram/scripts/: 新建目录, 迁入 TDesign BOM 修复脚本 inspect-wechat-font.ps1 及其检查报告
- 根目录 excel_analysis_report.txt / sheet_structure.txt 归位 tmp/, 修正 root-file 风险标签
- 审计记录 2026-04-20__legacy-untracked-cleanup-review.md, 含实际执行段与回滚路径
- audit_dashboard.md 由 gen_audit_dashboard.py 刷新至 130 条
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-20 06:48:27 +08:00 |
|
|
|
95dd1fa6b9
|
chore(audit): 修正审计文件命名 — 单下划线补为双下划线
2026-03-24_fix_cfg_skill_type_missing_records.md
→ 2026-03-24__fix_cfg_skill_type_missing_records.md
该文件源自 audit-gap-recovery 阶段 1 补追的 96 份 D 类孤本之一,原命名采用单
下划线分隔日期与 slug,与 gen_audit_dashboard.py 期望的双下划线格式不符而被
脚本忽略。补齐下划线后 dashboard 记录数从 128 升至 129,与主目录 md 文件
数一致。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-20 06:39:13 +08:00 |
|
|
|
ec8f7d4e03
|
chore(audit): 清理 changes/changes/ 嵌套误产物目录 — audit-gap-recovery 收尾
按 docs/specs/audit-gap-recovery/tasks.md 阶段 2/4 完成:
阶段 2(B 类内容漂移,1 份)
决策:保留主目录版 2026-04-06__v1-cleanup-ddl-consolidation.md。
两版仅差 1 行路径(第 128 行):
- 主目录版:cd c:/NeoZQYY && python tools/db/gen_consolidated_ddl.py
- 嵌套版: cd c:/Project/NeoZQYY && ...
主目录版是 2026-04-06 审计当天原始写法(与 v1 整理 commit 779b2f6 同期),
忠于历史真相;嵌套版是开发机迁移后批量路径替换过的版本,舍弃。
差异过小,不单独备份。
阶段 4(删除嵌套目录)
- rm -rf docs/audit/changes/changes/(本地删除,目录本就被 .gitignore 屏蔽,
无 git 历史需清理)
- .gitignore 移除 docs/audit/changes/changes/ 临时屏蔽规则(嵌套目录已不复存在)
- 刷新 docs/audit/audit_dashboard.md,当前 128 条记录
(主目录 129 份 md 中有 1 份 2026-03-24_fix_cfg_skill_type_missing_records.md
因单下划线命名异常被 dashboard 脚本忽略,后续可重命名)
验证
- ls docs/audit/changes/*.md | wc -l = 129(原 33 + D 补追 96 = 129 ✓)
- ls docs/audit/changes/changes/ 返回 "No such file"(✓)
- git log --oneline -- "docs/audit/changes/" 有本次补追 + 清理 commit(✓)
audit-gap-recovery PRD 至此全部 4 阶段执行完毕。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-20 06:38:11 +08:00 |
|
|
|
80bda9b991
|
chore(audit): 2026-04-20 历史批次预审 + 文档同步 + .gitignore 修正
- 新增 docs/audit/changes/2026-04-20__historical-batch-pre-audit.md
157 文件分批盘点审计(7 条主线 + 10 项高/中风险 + 2 份迁移 SQL DDL 清单)
- 补追 docs/audit/changes/2026-04-15__meituan-settle-core-sync.md
原审计产物因 .gitignore 屏蔽长期未入仓,本次一并追回
- 刷新 docs/audit/audit_dashboard.md(33 条审计记录)
- .gitignore 白名单放行 docs/audit/changes/*.md 与 audit_dashboard.md
同时屏蔽 changes/changes/ 嵌套误产物目录
- 新增 docs/specs/audit-gap-recovery/tasks.md
扫描嵌套目录发现 96 份 D 类孤本(从未入过 git history),
生成独立 PRD 供单开任务清理与补追
- 文档同步(高风险项):
- apps/backend/docs/API-REFERENCE.md (+69)
- apps/miniprogram/README.md (+50)
- apps/etl/connectors/feiqiu/docs/architecture/data_flow.md (+52/-2)
- apps/etl/connectors/feiqiu/docs/architecture/system_overview.md (+5/-3)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-04-20 06:32:58 +08:00 |
|
|
|
79d3c2e97e
|
开发机迁移
|
2026-04-10 06:24:13 +08:00 |
|
|
|
f65c1d038b
|
chore: 审计记录 + 修复 repo_root.py 仓库根检测
- 审计记录:2026-04-06__v1-cleanup-ddl-consolidation.md
- 刷新审计一览表(125 条记录)
- 修复 repo_root.py:.kiro 已删除后改用 pyproject.toml + CLAUDE.md 检测
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-06 01:05:06 +08:00 |
|
|
|
6f8f12314f
|
feat: 累积功能变更 — 聊天集成、租户管理、小程序更新、ETL 增强、迁移脚本
包含多个会话的累积代码变更:
- backend: AI 聊天服务、触发器调度、认证增强、WebSocket、调度器最小间隔
- admin-web: ETL 状态页、任务管理、调度配置、登录优化
- miniprogram: 看板页面、聊天集成、UI 组件、导航更新
- etl: DWS 新任务(finance_area_daily/board_cache)、连接器增强
- tenant-admin: 项目初始化
- db: 19 个迁移脚本(etl_feiqiu 11 + zqyy_app 8)
- packages/shared: 枚举和工具函数更新
- tools: 数据库工具、报表生成、健康检查
- docs: PRD/架构/部署/合约文档更新
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
2026-04-06 00:03:48 +08:00 |
|
|
|
beb88d5bea
|
feat: chat integration, tenant admin spec, backend chat service, miniprogram updates, DEMO moved to tmp, XCX-TEST removed, migrations & docs
|
2026-03-20 09:02:10 +08:00 |
|
|
|
79f9a0e1da
|
feat: batch update - gift card breakdown spec, backend APIs, miniprogram pages, ETL finance recharge, docs & migrations
|
2026-03-20 01:43:48 +08:00 |
|
|
|
72bb11b34f
|
1
|
2026-03-15 10:15:02 +08:00 |
|
|
|
6e20987d2f
|
微信小程序页面迁移校验之前 P5任务处理之前
|
2026-03-09 01:19:21 +08:00 |
|
|
|
b25308c3f4
|
feat: P1-P3 全栈集成 — 数据库基础 + DWS 扩展 + 小程序鉴权 + 工程化体系
## P1 数据库基础
- zqyy_app: 创建 auth/biz schema、FDW 连接 etl_feiqiu
- etl_feiqiu: 创建 app schema RLS 视图、商品库存预警表
- 清理 assistant_abolish 残留数据
## P2 ETL/DWS 扩展
- 新增 DWS 助教订单贡献度表 (dws.assistant_order_contribution)
- 新增 assistant_order_contribution_task 任务及 RLS 视图
- member_consumption 增加充值字段、assistant_daily 增加处罚字段
- 更新 ODS/DWD/DWS 任务文档及业务规则文档
- 更新 consistency_checker、flow_runner、task_registry 等核心模块
## P3 小程序鉴权系统
- 新增 xcx_auth 路由/schema(微信登录 + JWT)
- 新增 wechat/role/matching/application 服务层
- zqyy_app 鉴权表迁移 + 角色权限种子数据
- auth/dependencies.py 支持小程序 JWT 鉴权
## 文档与审计
- 新增 DOCUMENTATION-MAP 文档导航
- 新增 7 份 BD_Manual 数据库变更文档
- 更新 DDL 基线快照(etl_feiqiu 6 schema + zqyy_app auth)
- 新增全栈集成审计记录、部署检查清单更新
- 新增 BACKLOG 路线图、FDW→Core 迁移计划
## Kiro 工程化
- 新增 5 个 Spec(P1/P2/P3/全栈集成/核心业务)
- 新增审计自动化脚本(agent_on_stop/build_audit_context/compliance_prescan)
- 新增 6 个 Hook(合规检查/会话日志/提交审计等)
- 新增 doc-map steering 文件
## 运维与测试
- 新增 ops 脚本:迁移验证/API 健康检查/ETL 监控/集成报告
- 新增属性测试:test_dws_contribution / test_auth_system
- 清理过期 export 报告文件
- 更新 .gitignore 排除规则
|
2026-02-26 08:03:53 +08:00 |
|
|
|
4eac07da47
|
在准备环境前提交次全部更改。
|
2026-02-19 08:35:13 +08:00 |
|