diff --git a/logs/backup.log b/logs/backup.log index a5c45d8..997c608 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -629,3 +629,4 @@ remote: Processed 1 references in total To https://git.valavala.com/ai_member_only/ai_member_xiaoban 3703b73..2b86823 master -> master [2026-06-17 08:10:02] 工作区备份成功:自动备份 2026-06-17 08:10:01 +[2026-06-18 08:10:01] 开始备份工作区... diff --git a/memory/.dreams/events.jsonl b/memory/.dreams/events.jsonl index 2e63403..039aab2 100644 --- a/memory/.dreams/events.jsonl +++ b/memory/.dreams/events.jsonl @@ -99,3 +99,4 @@ {"type":"memory.recall.recorded","timestamp":"2026-06-17T13:38:57.629Z","query":"订单查询 SQL 手机号 用户订单","resultCount":6,"results":[{"path":"memory/2026-05-28.md","startLine":551,"endLine":580,"score":1},{"path":"memory/2026-05-28.md","startLine":530,"endLine":557,"score":1},{"path":"memory/2026-05-28.md","startLine":147,"endLine":179,"score":1},{"path":"memory/2026-05-28.md","startLine":480,"endLine":512,"score":1},{"path":"memory/2026-05-28.md","startLine":313,"endLine":345,"score":1},{"path":"memory/2026-05-28.md","startLine":504,"endLine":536,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-06-17T13:45:52.647Z","query":"makee交易系统 交易系统权限","resultCount":3,"results":[{"path":"memory/2026-05-28.md","startLine":504,"endLine":536,"score":1},{"path":"memory/2026-05-28.md","startLine":337,"endLine":366,"score":1},{"path":"memory/2026-05-28.md","startLine":530,"endLine":557,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-06-17T13:46:02.081Z","query":"makee 系统 后台 管理 权限 登录","resultCount":2,"results":[{"path":"memory/2026-05-28.md","startLine":551,"endLine":580,"score":1},{"path":"memory/2026-05-28.md","startLine":504,"endLine":536,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-18T00:09:26.923Z","query":"bi_vala_order 订单表 order database","resultCount":5,"results":[{"path":"memory/2026-05-24.md","startLine":106,"endLine":126,"score":1},{"path":"memory/2026-05-25.md","startLine":1,"endLine":26,"score":1},{"path":"memory/2026-05-24.md","startLine":85,"endLine":110,"score":1},{"path":"memory/2026-06-17.md","startLine":20,"endLine":30,"score":1},{"path":"memory/2026-05-24.md","startLine":46,"endLine":71,"score":1}]} diff --git a/memory/.dreams/short-term-recall.json b/memory/.dreams/short-term-recall.json index 09a1ce1..01e796c 100644 --- a/memory/.dreams/short-term-recall.json +++ b/memory/.dreams/short-term-recall.json @@ -1,6 +1,6 @@ { "version": 1, - "updatedAt": "2026-06-17T13:46:02.081Z", + "updatedAt": "2026-06-18T00:09:26.923Z", "entries": { "memory:memory/2026-05-24.md:1:30": { "key": "memory:memory/2026-05-24.md:1:30", @@ -176,13 +176,13 @@ "endLine": 71, "source": "memory", "snippet": "### 增强: 报告开头加入角色基本信息 (2026-05-24) [刘庆逊提出] 在 studytime-analysis 输出中加入角色基本信息,包括: - 角色ID、账号ID、角色名字、性别、年龄、账号手机号后4位 **数据源(新增)**: - MySQL Online `vala_user` 库 - `vala_app_character` 表:id, account_id, nickname, gender(0=女/1=男), birthday(varchar \"YYYY-MM-DD\") - `vala_app_account` 表:id, tel(已脱敏如 186****1625) - 手机号已脱敏,直接取后4位;年龄从 birthday 计算 **修改文件**: - `skills/studytime-analysis/scripts/studytime_analysis.py`:新增 MySQL 连接函数 `get_mysql_connection()` 和 `fetch_role_info(role_id)`,更新 `format_report()` 输出基本角色信息 - 已验证 2895 正常运行输出 - 已同步 SkillHub + Git ### Unit 显示修复: 季度名称 → 全局单元编号 (2026-05-24) [刘庆逊提出] HTML 报告中 Unit 列显示错误——显示的是季度名称(如\"小镇时光\"\"钢铁之心\")而非单元数字(0-48)。 **根因分析**: - `vala_game_chapter`(MySQL)无 `unit_", - "recallCount": 26, + "recallCount": 27, "dailyCount": 0, "groundedCount": 0, - "totalScore": 26, + "totalScore": 27, "maxScore": 1, "firstRecalledAt": "2026-05-25T05:47:41.388Z", - "lastRecalledAt": "2026-06-17T09:59:49.133Z", + "lastRecalledAt": "2026-06-18T00:09:26.923Z", "queryHashes": [ "9aff8ec9594a", "566b5958861e", @@ -209,7 +209,8 @@ "6d1afbed352e", "a87866c0fa75", "54487377b5d1", - "ee73b9da86b6" + "ee73b9da86b6", + "ee468f64688e" ], "recallDays": [ "2026-05-25", @@ -222,7 +223,8 @@ "2026-06-10", "2026-06-12", "2026-06-16", - "2026-06-17" + "2026-06-17", + "2026-06-18" ], "conceptTags": [ "studytime-analysis", @@ -242,13 +244,13 @@ "endLine": 110, "source": "memory", "snippet": "- `skills/studytime-analysis/scripts/studytime_analysis.py` — 重写 `fetch_chapter_info_map()`,新增全局 unit_index 计算;HTML 模板更新为 Level/Unit/Lesson 三列 - 已为角色 32009(zyl)重新生成 HTML 并发送 - 已同步 Git + SkillHub ## 新建技能: studycourse-analysis (2026-05-24) [刘庆逊提出] 创建角色上课情况分析技能,从四维度分析角色学习数据。 ### 技能结构 - `skills/studycourse-analysis/SKILL.md` — 技能定义 - `skills/studycourse-analysis/scripts/studycourse_analysis.py` — Python 分析脚本 ### 四步分析 1. **基础信息**:角色姓名/年龄/账号ID/手机号后4位/注册时间/购买渠道/设备/首末次完课 2. **完课耗时**:平均值/中位数、异常检测(<10min / >20min)、前后半段趋势 3. **中互动正确率**:Perfect/Good/Oops/Pass/Failed 占比和趋势 4. **知识巩固**:完成率、正确率得分分布 ### 数据源 | 类型 | 库 | 表 | 用途 | |------|-----|-----|------| | MySQL vala_user | vala_app_character | 角色信息、pu", - "recallCount": 18, + "recallCount": 19, "dailyCount": 0, "groundedCount": 0, - "totalScore": 18, + "totalScore": 19, "maxScore": 1, "firstRecalledAt": "2026-05-25T05:47:41.388Z", - "lastRecalledAt": "2026-06-10T02:23:42.004Z", + "lastRecalledAt": "2026-06-18T00:09:26.923Z", "queryHashes": [ "9aff8ec9594a", "566b5958861e", @@ -267,7 +269,8 @@ "eda50fbbb56d", "cf2a036061cf", "b2c23ece6608", - "206acd60d69d" + "206acd60d69d", + "ee468f64688e" ], "recallDays": [ "2026-05-25", @@ -278,7 +281,8 @@ "2026-06-02", "2026-06-04", "2026-06-09", - "2026-06-10" + "2026-06-10", + "2026-06-18" ], "conceptTags": [ "fetch-chapter-info-map", @@ -298,20 +302,22 @@ "endLine": 26, "source": "memory", "snippet": "# 2026-05-25 工作日志 ## user-info 技能重写 [刘庆逊提出] 修复 `user-info` 技能,使其匹配线上实际数据库结构。 ### 问题 旧脚本引用的表(`bi_vala_app_account`、`account_login`、`account_detail_info`、`bi_vala_order`、`bi_level_unit_lesson`)在线上数据库均不存在。 ### 修复内容 - **scripts/query_user_info.py** 完整重写: - 表名改为实际线上表:`vala_user.vala_app_account`、`vala_user.vala_app_character`、`vala_order.vala_seasonal_ticket`、PG `user_chapter_play_record_0~7` - 手机号查询通过 `tel LIKE '前缀%后缀'` 脱敏匹配 - Chapter → Level/Unit/Lesson 映射复用 studytime-analysis 的 `fetch_chapter_info_map()` 逻辑 - 订单数据改用 `vala_seasonal_ticket`(赛季通票),因线上无标准订单表 - 设备/地域信息标注为暂不可用(线上无对应表) - PG 时区处理:`created_at` 为 tz-aware,统一转 naive 比较 - **SKILL.md** 更新至 v2.0.0,补充数据覆盖说明 - **references/dat", - "recallCount": 2, + "recallCount": 3, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-26T06:16:58.547Z", - "lastRecalledAt": "2026-05-27T11:20:45.799Z", + "lastRecalledAt": "2026-06-18T00:09:26.923Z", "queryHashes": [ "566b5958861e", - "ef1f12a9b060" + "ef1f12a9b060", + "ee468f64688e" ], "recallDays": [ "2026-05-26", - "2026-05-27" + "2026-05-27", + "2026-06-18" ], "conceptTags": [ "user-info", @@ -331,24 +337,26 @@ "endLine": 126, "source": "memory", "snippet": "| MySQL vala_user | vala_app_character | 角色信息、purchase_season_package | | MySQL vala_user | vala_app_account | 下载渠道、手机号、注册时间 | | MySQL vala | vala_game_chapter + season_package | 章节映射 | | PostgreSQL vala | user_course_detail | 课程激活/到期时间 | | PostgreSQL vala | user_login_app_info | 设备信息 | | PostgreSQL vala | user_chapter_play_record_0~7 | 完课记录(play_status=1) | | PostgreSQL vala | user_component_play_record_0~7 | 中互动记录(play_result) | | PostgreSQL vala | user_chapter_settlement_data_0~7 | 巩固数据(settlement_data JSON) | ### 关键发现 - **设备信息**来自 `user_login_app_info`(device_name/model/type/os_info/city) - **购买渠道**来自 `vala_app_account.download_channel` + `key_from` - **巩固判断**:`settlement_data.practiceS", - "recallCount": 4, + "recallCount": 5, "dailyCount": 0, "groundedCount": 0, - "totalScore": 4, + "totalScore": 5, "maxScore": 1, "firstRecalledAt": "2026-05-27T13:30:03.421Z", - "lastRecalledAt": "2026-06-04T03:24:12.941Z", + "lastRecalledAt": "2026-06-18T00:09:26.923Z", "queryHashes": [ "71463fe40be2", "c6c7ff4ed75d", "2d6e2b982050", - "c4fd4a35d234" + "c4fd4a35d234", + "ee468f64688e" ], "recallDays": [ "2026-05-27", "2026-05-28", "2026-06-02", - "2026-06-04" + "2026-06-04", + "2026-06-18" ], "conceptTags": [ "vala-user", @@ -2342,6 +2350,37 @@ "审批", "5f96bf7e" ] + }, + "memory:memory/2026-06-17.md:20:30": { + "key": "memory:memory/2026-06-17.md:20:30", + "path": "memory/2026-06-17.md", + "startLine": 20, + "endLine": 30, + "source": "memory", + "snippet": "- 发现核心 bug:`pick_valid_order()` 只取最新一笔有效订单,未做 GSV 聚合 - **根因:** 18621578529(account_id=13147)有 2 笔有效订单(P785... GSV=1,999 + 3734... GSV=1,599),汇总只收了最新那笔 1,599,丢了 1,999 - **影响范围:** 13 个账户各 2 笔有效订单,漏 GSV ¥23,185 - **修复(v2.1):** - 新增 `aggregate_valid_orders()` 函数:同一账户多笔有效订单 GSV/GMV/退款累加 - 订单号取未退款那笔(多笔未退款取最新),产品列多单用 `+` 拼接 - Step 4 线索绑单仍用 `pick_valid_order()` 不变 - 已更新 `sales_leads_full_refresh.py` + `skills/full-data-refresh/SKILL.md` - **数据源确认:** 大麦和小溪查的是同一个 PG `vala_bi.bi_vala_order`,数据一致 - **MySQL Makee 交易系统:** 大麦有 read_only 权限但 vala/vala_user/vala_order 库中无订单表,无法直接对比交易系统后台", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-06-18T00:09:26.923Z", + "lastRecalledAt": "2026-06-18T00:09:26.923Z", + "queryHashes": [ + "ee468f64688e" + ], + "recallDays": [ + "2026-06-18" + ], + "conceptTags": [ + "pick-valid-order", + "account-id", + "v2.1", + "aggregate-valid-orders", + "gsv/gmv/退款累加", + "sales-leads-full-refresh.py", + "vala-bi.bi-vala-order", + "read-only" + ] } } } diff --git a/tmp_daily_summary.md b/tmp_daily_summary.md deleted file mode 100644 index 4a2c9aa..0000000 --- a/tmp_daily_summary.md +++ /dev/null @@ -1,6 +0,0 @@ -=== 每日总结 20260618 === -## 昨日关键进展 -- **16:47** 导出完成:音频768条、互动组件514条、课程巩固19条、单元挑战14条、单元总结6条,总计1321条 -## 财务核对群 — GSV 差异排查与修复 [陈逸鸫] -- **修复(v2.1):** - - 新增 `aggregate_valid_orders()` 函数:同一账户多笔有效订单 GSV/GMV/退款累加