diff --git a/logs/backup.log b/logs/backup.log index 5bb0281..78e934b 100644 --- a/logs/backup.log +++ b/logs/backup.log @@ -423,3 +423,11 @@ To https://git.valavala.com/ai_member_only/ai_member_xiaoban 8f74b8e..5ace2cc master -> master [2026-05-25 08:10:01] 工作区备份成功:自动备份 2026-05-25 08:10:01 [2026-05-26 08:10:01] 开始备份工作区... +[master 48953c0] 自动备份 2026-05-26 08:10:01 + 2 files changed, 1 insertion(+), 4 deletions(-) + delete mode 100644 tmp_daily_summary.md +remote: . Processing 1 references +remote: Processed 1 references in total +To https://git.valavala.com/ai_member_only/ai_member_xiaoban + 5ace2cc..48953c0 master -> master +[2026-05-26 08:10:02] 工作区备份成功:自动备份 2026-05-26 08:10:01 diff --git a/memory/.dreams/events.jsonl b/memory/.dreams/events.jsonl index e27a703..c883303 100644 --- a/memory/.dreams/events.jsonl +++ b/memory/.dreams/events.jsonl @@ -1,2 +1,3 @@ {"type":"memory.recall.recorded","timestamp":"2026-05-24T02:48:04.923Z","query":"PostgreSQL online database password PG_DB_PASSWORD","resultCount":4,"results":[{"path":"memory/2026-05-24.md","startLine":1,"endLine":30,"score":1},{"path":"memory/2026-05-24.md","startLine":23,"endLine":52,"score":1},{"path":"memory/2026-03-01.md","startLine":1,"endLine":11,"score":1},{"path":"memory/2026-05-24.md","startLine":46,"endLine":61,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-25T05:47:41.388Z","query":"账号信息查询 account_id 14157 数据库","resultCount":4,"results":[{"path":"memory/2026-05-24.md","startLine":46,"endLine":71,"score":1},{"path":"memory/2026-05-24.md","startLine":85,"endLine":110,"score":1},{"path":"memory/2026-05-24.md","startLine":23,"endLine":52,"score":1},{"path":"memory/2026-05-24.md","startLine":1,"endLine":30,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-05-26T06:16:58.547Z","query":"账号 account 查询 query 数据库 23765","resultCount":4,"results":[{"path":"memory/2026-05-25.md","startLine":1,"endLine":26,"score":1},{"path":"memory/2026-05-24.md","startLine":46,"endLine":71,"score":1},{"path":"memory/2026-05-24.md","startLine":85,"endLine":110,"score":1},{"path":"memory/2026-05-24.md","startLine":23,"endLine":52,"score":1}]} diff --git a/memory/.dreams/short-term-recall.json b/memory/.dreams/short-term-recall.json index c60d40c..17306e2 100644 --- a/memory/.dreams/short-term-recall.json +++ b/memory/.dreams/short-term-recall.json @@ -1,6 +1,6 @@ { "version": 1, - "updatedAt": "2026-05-25T05:47:41.388Z", + "updatedAt": "2026-05-26T06:16:58.547Z", "entries": { "memory:memory/2026-05-24.md:1:30": { "key": "memory:memory/2026-05-24.md:1:30", @@ -42,20 +42,22 @@ "endLine": 52, "source": "memory", "snippet": "- 一周分布分析时排除 1-2 月(寒假)和 7-8 月(暑假)—— 因为寒暑假作息与平时差异大,混在一起会干扰时段分析 - 跨周趋势和明细表包含全部数据(含寒暑假) - 报告中区分标注数据范围 ### 触发方式 用户说「学习时间分析 [角色ID]」即可触发 ### 已测试角色 - 2343、2344:无完课记录(play_status=2,未完成) - 2840:276条记录,秋季集中型用户 - 25976:265条,246条在W16周一天完成(A2批量),疑似系统批量标记 - 2895:188条,长期稳定学习型用户,36周几乎不间断,非寒暑假晚上为主,寒暑假上午为主 ### 技术要点 - psycopg2 的 `%(param_name)s` 命名参数必须正确匹配,UNION ALL 多个子查询需要不同参数名 - PostgreSQL 返回的 `updated_at` 是 tz-aware datetime - `datetime.fromisocalendar(year, week, 1)` 获取某周周一的日期 ### 同步 - 已推送到 SkillHub(`studytime-analysis.xiaoban`) - 已 commit 到 Git 远程仓库 - 已通知 Cris(李若松) ### 增强: 报告开头加入角色基本信息 (2026-05-24) [刘庆逊提出] 在 studytime-analysis 输出中加入角色基本信息,包括: - 角色ID、账号ID、角色名字、性别、年龄、账号手机号后4位 **数据源(新增)**: - MySQL Onli", - "recallCount": 2, + "recallCount": 3, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-24T02:48:04.923Z", - "lastRecalledAt": "2026-05-25T05:47:41.388Z", + "lastRecalledAt": "2026-05-26T06:16:58.547Z", "queryHashes": [ "c2d15f7574fb", - "9aff8ec9594a" + "9aff8ec9594a", + "566b5958861e" ], "recallDays": [ "2026-05-24", - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "1-2", @@ -137,18 +139,20 @@ "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": 1, + "recallCount": 2, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-25T05:47:41.388Z", - "lastRecalledAt": "2026-05-25T05:47:41.388Z", + "lastRecalledAt": "2026-05-26T06:16:58.547Z", "queryHashes": [ - "9aff8ec9594a" + "9aff8ec9594a", + "566b5958861e" ], "recallDays": [ - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "studytime-analysis", @@ -168,18 +172,20 @@ "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": 1, + "recallCount": 2, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 2, "maxScore": 1, "firstRecalledAt": "2026-05-25T05:47:41.388Z", - "lastRecalledAt": "2026-05-25T05:47:41.388Z", + "lastRecalledAt": "2026-05-26T06:16:58.547Z", "queryHashes": [ - "9aff8ec9594a" + "9aff8ec9594a", + "566b5958861e" ], "recallDays": [ - "2026-05-25" + "2026-05-25", + "2026-05-26" ], "conceptTags": [ "fetch-chapter-info-map", @@ -191,6 +197,37 @@ "vala-user", "vala-app-character" ] + }, + "memory:memory/2026-05-25.md:1:26": { + "key": "memory:memory/2026-05-25.md:1:26", + "path": "memory/2026-05-25.md", + "startLine": 1, + "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": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-05-26T06:16:58.547Z", + "lastRecalledAt": "2026-05-26T06:16:58.547Z", + "queryHashes": [ + "566b5958861e" + ], + "recallDays": [ + "2026-05-26" + ], + "conceptTags": [ + "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" + ] } } } diff --git a/tmp_daily_summary.md b/tmp_daily_summary.md new file mode 100644 index 0000000..b8a872c --- /dev/null +++ b/tmp_daily_summary.md @@ -0,0 +1,3 @@ +=== 每日总结 20260527 === +## 昨日关键进展 +无昨日记忆记录