From 52147cd30468a1172656e872cb01c229b847644f Mon Sep 17 00:00:00 2001 From: --git_token Date: Tue, 2 Jun 2026 08:10:01 +0800 Subject: [PATCH] auto backup 2026-06-02 08:10:01 --- USER.md | 8 +- data/last_wechat_sync_id | 2 +- memory/.dreams/events.jsonl | 6 + memory/.dreams/short-term-recall.json | 243 +++++++++++++++--- .../ai_descriptions_wechat_2026-05-31.json | 17 ++ .../wechat_cluster_context_2026-05-31.json | 50 ++++ .../飞书反馈_2026-06-01.xlsx | Bin 0 -> 6245 bytes 7 files changed, 289 insertions(+), 37 deletions(-) create mode 100644 output/daily_feedback/ai_descriptions_wechat_2026-05-31.json create mode 100644 output/daily_feedback/wechat_cluster_context_2026-05-31.json create mode 100644 output/daily_feedback/飞书反馈_2026-06-01.xlsx diff --git a/USER.md b/USER.md index c635270..4a46290 100644 --- a/USER.md +++ b/USER.md @@ -19,6 +19,7 @@ | 技术负责人 | 张昆鹏 | `7f5cd711` | | 第一业务负责人 | 刘新玉 | `7gc796ga` | | 业务负责人 | 刘庆逊 | `cb2815b4` | +| 业务负责人 | 毋益飞 | `eggbg21g` | | 技术负责人群组| AI_member | `oc_5c9f0e631266b9ef6e05a95daa80fbda`| @@ -38,6 +39,7 @@ | 李若松 | `4aagb443` | 技术负责人,拥有最高权限 | | 张昆鹏 | `7f5cd711` | 技术负责人,拥有最高权限 | | 刘庆逊 | `cb2815b4` | 业务负责人,拥有最高权限 | +| 毋益飞 | `eggbg21g` | 业务负责人,无技术风险的需求无需审批 | ### 第二级:受限权限用户 @@ -49,11 +51,7 @@ ### 第三级:其他用户 -当权限列表以外的用户提出数据查询需求时: - -1. **不直接返回数据** -2. 立即通知业务负责人(通过飞书消息),说明查询用户信息和具体查询需求 -3. 等待业务负责人确认允许查看的数据范围后,再回复查询用户 +权限列表以外的用户提出数据查询需求时,**默认允许查看数据**,正常响应即可。 ## 敏感操作审批规则 diff --git a/data/last_wechat_sync_id b/data/last_wechat_sync_id index 0b90508..a2c153c 100644 --- a/data/last_wechat_sync_id +++ b/data/last_wechat_sync_id @@ -1 +1 @@ -1883 +1916 diff --git a/memory/.dreams/events.jsonl b/memory/.dreams/events.jsonl index 57dc251..8cdd3f0 100644 --- a/memory/.dreams/events.jsonl +++ b/memory/.dreams/events.jsonl @@ -24,3 +24,9 @@ {"type":"memory.recall.recorded","timestamp":"2026-05-27T02:15:55.251Z","query":"小葵小葵群 chat_id 反馈同步","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-27T02:50:23.510Z","query":"pycache python 缓存 导入错误","resultCount":3,"results":[{"path":"memory/2026-05-27.md","startLine":22,"endLine":32,"score":1},{"path":"memory/2026-05-27.md","startLine":1,"endLine":27,"score":1},{"path":"memory/2026-04-10.md","startLine":20,"endLine":52,"score":1}]} {"type":"memory.recall.recorded","timestamp":"2026-05-28T02:10:48.034Z","query":"小葵小葵群 反馈发送 分发 chat_id","resultCount":1,"results":[{"path":"memory/2026-04-18.md","startLine":1,"endLine":5,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T02:51:24.899Z","query":"微信反馈 五月 数据查询","resultCount":5,"results":[{"path":"memory/2026-05-26.md","startLine":1,"endLine":24,"score":1},{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-27.md","startLine":22,"endLine":43,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T02:53:47.536Z","query":"允许查看 查看范围 刘新玉 权限","resultCount":4,"results":[{"path":"memory/2026-04-30.md","startLine":116,"endLine":142,"score":1},{"path":"memory/2026-04-30.md","startLine":134,"endLine":166,"score":1},{"path":"memory/2026-05-22.md","startLine":107,"endLine":135,"score":1},{"path":"memory/2026-05-07.md","startLine":189,"endLine":209,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T02:56:57.688Z","query":"飞书用户反馈问题汇总 微信用户反馈问题汇总 wiki space_id node_token 知识库","resultCount":5,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-26.md","startLine":1,"endLine":24,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1},{"path":"memory/2026-05-26.md","startLine":21,"endLine":41,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T02:57:11.517Z","query":"飞书用户反馈问题汇总 微信用户反馈问题汇总 space_id 知识空间","resultCount":4,"results":[{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-26.md","startLine":1,"endLine":24,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T04:05:41.997Z","query":"刘新玉 毋益飞 微信反馈 权限确认","resultCount":6,"results":[{"path":"memory/2026-05-07.md","startLine":189,"endLine":209,"score":1},{"path":"memory/2026-05-26.md","startLine":1,"endLine":24,"score":1},{"path":"memory/2026-05-25.md","startLine":21,"endLine":42,"score":1},{"path":"memory/2026-05-25.md","startLine":38,"endLine":44,"score":1},{"path":"memory/2026-05-27.md","startLine":22,"endLine":43,"score":1},{"path":"memory/2026-05-22.md","startLine":129,"endLine":158,"score":1}]} +{"type":"memory.recall.recorded","timestamp":"2026-06-01T14:02:36.057Z","query":"毋益飞 user_id","resultCount":1,"results":[{"path":"memory/2026-05-07.md","startLine":109,"endLine":148,"score":1}]} diff --git a/memory/.dreams/short-term-recall.json b/memory/.dreams/short-term-recall.json index 6244d95..e4cadbb 100644 --- a/memory/.dreams/short-term-recall.json +++ b/memory/.dreams/short-term-recall.json @@ -1,6 +1,6 @@ { "version": 1, - "updatedAt": "2026-05-28T02:10:48.034Z", + "updatedAt": "2026-06-01T14:02:36.057Z", "entries": { "memory:memory/2026-04-18.md:1:5": { "key": "memory:memory/2026-04-18.md:1:5", @@ -92,13 +92,13 @@ "endLine": 142, "source": "memory", "snippet": "问题:很多消息有关联但没有 `quote_message_id`(飞书 API 的 `root_id`/`parent_id` 未采集) **推断规则(按优先级)**: 1. **@提及匹配**:消息中 @了某人 → 关联到被@者最近一条消息 2. **同发送者聚类**:同一人在 2 分钟窗口内连续发多条 → 认为是对同一目标消息的回复 3. **最近不同发送者**:关联到最近一条不同发送者的消息(30 分钟内) 已测试效果:上午 NPC HUD 问题链成功串联,下午 iOS 问题链准确分组。部分跨话题误判仍需 AI 语义辅助(策略3,待后续评估)。 #### 触发方式 - 手动:「同步飞书反馈」「整理反馈对话链」 - 定时:每天 10:00 crontab 自动执行 ## 步骤4:问题归纳功能开发 [刘新玉] - 2026-04-30 18:38 完成 ### 步骤4 包含两部分 1. **问题描述**:在{端}{环节}内({课程}),{角色/组件}出现了{现象} 2. **当前问题排查结论**:从对话最后 1-2 条提取,匹配规则: - \"日志上传/排查/查\" → \"日志已上传,排查中\" - \"确认/确实\" → \"已确认,待修复\" - \"已修复/已解决\" → \"已修复\" - \"不是 bug/设计如此\" → \"非问题,设计如此\" - 无明确结论 → \"暂未排查到根因\" ### 归纳格式 ```markdown ### 问题 N", - "recallCount": 8, + "recallCount": 9, "dailyCount": 0, "groundedCount": 0, - "totalScore": 8, + "totalScore": 9, "maxScore": 1, "firstRecalledAt": "2026-05-06T13:30:08.593Z", - "lastRecalledAt": "2026-05-22T02:16:39.747Z", + "lastRecalledAt": "2026-06-01T02:53:47.536Z", "queryHashes": [ "f865295b9ac7", "cd9c89262c30", @@ -107,14 +107,16 @@ "70caeba05281", "2f315a9f8529", "f23f51c6129c", - "015553fc9cb1" + "015553fc9cb1", + "1d207685e7a8" ], "recallDays": [ "2026-05-06", "2026-05-07", "2026-05-11", "2026-05-21", - "2026-05-22" + "2026-05-22", + "2026-06-01" ], "conceptTags": [ "quote-message-id", @@ -134,25 +136,27 @@ "endLine": 166, "source": "memory", "snippet": "- \"日志上传/排查/查\" → \"日志已上传,排查中\" - \"确认/确实\" → \"已确认,待修复\" - \"已修复/已解决\" → \"已修复\" - \"不是 bug/设计如此\" → \"非问题,设计如此\" - 无明确结论 → \"暂未排查到根因\" ### 归纳格式 ```markdown ### 问题 N > **在{端}端{环节}内({课程}),{角色/组件}出现了{现象}** | 发言人 | 要点 | |--------|------| | 报告人 | 🚩 报告:... | | ... | ... | | 最终人 | ✅ 结论/待排查 | ``` ### 维度提取规则 | 维度 | 优先级/来源 | |------|------------| | 端 | iOS > iPad > pad端 > Android > 移动端 > PC(正则匹配,忽略大小写) | | 环节 | 关卡内/知识巩固/单元挑战/听力挑战/阅读挑战/口语挑战/写作挑战/单元强化/瓦拉学院/报告(从消息文本匹配) | | 课程 | 匹配数字编号(如 11-2、L1 3-2) | | 角色/组件 | NPC/HUD/音频/组件/数据/Loading/加载/日志(从消息文本匹配) | | 现象 | 从消息中提取要害描述,截断在 35 字符以内 | ### 现象提取逻辑 1. 优先从包含 \"Bug的表现是这样的:\"、\"问题是\"、\"发现\"、\"出现\" 等关键词的消息中截取描述句 2. 提取的句子去除 URL、图片标记、疑问句 3. 截断到 35 字符防止过长 ### Bug 修复记录", - "recallCount": 6, + "recallCount": 7, "dailyCount": 0, "groundedCount": 0, - "totalScore": 6, + "totalScore": 7, "maxScore": 1, "firstRecalledAt": "2026-05-06T13:30:08.593Z", - "lastRecalledAt": "2026-05-22T02:16:39.747Z", + "lastRecalledAt": "2026-06-01T02:53:47.536Z", "queryHashes": [ "f865295b9ac7", "cd9c89262c30", "ac7fd0b52a4e", "49c0959dc960", "f23f51c6129c", - "015553fc9cb1" + "015553fc9cb1", + "1d207685e7a8" ], "recallDays": [ "2026-05-06", "2026-05-07", - "2026-05-22" + "2026-05-22", + "2026-06-01" ], "conceptTags": [ "日志上传/排查/查", @@ -738,18 +742,21 @@ "endLine": 209, "source": "memory", "snippet": "| 每分钟 | `sync_feishu_feedback_dispatch_p0.sh` | 7(仅P0) | P0问题实时分发到群 | | 每天 10:00 | `sync_feishu_feedback_wrapper.sh` | 7(全部) | 全量分发到群 | ### 完整数据流 ``` 群消息 → 每1分钟入MySQL → 每1分钟刷新表格 → 每1分钟归纳+分类 → P0实时发群 / 每天10:00全量发群 ``` ### 关键技术细节 - **拆分方式**:`sync_feishu_feedback.py` 新增 `--steps` 参数(如 `--steps 1-3`、`--steps 4-6`、`--steps 7`) - **分发模式**:新增 `--dispatch-mode` 参数,`p0` 只发P0级,`all` 发全部 - **电子表格**:`TVivwmzqXiW3YakDUzucFMRenvf`(\"内容测试问题反馈\") - **归纳子文档父节点**:`RaL6whoYMijyYHkSlWrc7OLLnBy`(space_id: 7612229802338045122) - **分发目标群**:`oc_4171a2188f2554522a4309f2d7c27753`(「小葵小葵」群) - **分发Bot**:xiaokui(`/root/.openclaw/credentials/xiaokui`) - **新 wrapper 脚本**: - `scripts/sync_feishu_feedback_realtime.sh`(步骤1-", - "recallCount": 1, + "recallCount": 3, "dailyCount": 0, "groundedCount": 0, - "totalScore": 1, + "totalScore": 3, "maxScore": 1, "firstRecalledAt": "2026-05-22T02:16:39.747Z", - "lastRecalledAt": "2026-05-22T02:16:39.747Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", "queryHashes": [ - "015553fc9cb1" + "015553fc9cb1", + "1d207685e7a8", + "35e4329ea912" ], "recallDays": [ - "2026-05-22" + "2026-05-22", + "2026-06-01" ], "conceptTags": [ "sync-feishu-feedback-wrapper.sh", @@ -893,20 +900,25 @@ "endLine": 42, "source": "memory", "snippet": "- `update_summary_doc_as_children()` 默认 title_prefix 从 `\"\"` 改为 `\"飞书-\"` - `create_child_doc()` 日期提取兼容 `飞书-` / `微信-` 前缀 - `dispatch_summary_to_chat()` 消息标题和链接同步更新 - `get_today_doc_obj_token()`、`--apply-ai` 路径、步骤7分发 的标题格式全部更新 ### 补跑历史数据 - 飞书 5/22(3条)、5/23(1条)AI归纳回写成功 + 自动分发到群聊 - 飞书 5/24:当天无飞书群新数据,跳过 - 微信 5/22(23条)、5/23(13条)、5/24(29条)AI归纳回写成功 + 自动分发 ### 知识库文档重命名 - 13个飞书历史文档(5/6-5/23)从 `{date} 问题反馈` 重命名为 `飞书-{date} 用户反馈问题归纳` ## 新增逻辑:飞书/微信文档标题渠道区分 - [刘新玉需求] 飞书文档标题加 `飞书-` 前缀以便与微信区分 - 飞书格式:`飞书-{date} 用户反馈问题归纳` - 微信格式:保持 `微信-{date} 问题反馈`(由 `sync_wechat_feedback.py` 传入 `title_prefix=\"微信-\"`) - `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼", - "recallCount": 2, + "recallCount": 6, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-26T03:40:13.634Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", "queryHashes": [ "1e9d4a024a31", - "442660038a9b" + "442660038a9b", + "b36cfa790039", + "bc1ed8fedd00", + "927d0719ac4d", + "35e4329ea912" ], "recallDays": [ "2026-05-25", - "2026-05-26" + "2026-05-26", + "2026-06-01" ], "conceptTags": [ "update-summary-doc-as-children", @@ -926,20 +938,25 @@ "endLine": 44, "source": "memory", "snippet": "- `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼容两种前缀(strip `飞书-` 或 `微信-` 再解析) ## 注意事项 - 今天(5/25)的反馈数据将在明天 10:00 正常走全流程 - `ai_summarize_feedback.py` 中 `apply_descriptions` 修复后需注意:微信渠道需要 `--date` 参数,飞书渠道 `--date` 可选", - "recallCount": 2, + "recallCount": 6, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-26T03:40:13.634Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", "queryHashes": [ "1e9d4a024a31", - "442660038a9b" + "442660038a9b", + "b36cfa790039", + "bc1ed8fedd00", + "927d0719ac4d", + "35e4329ea912" ], "recallDays": [ "2026-05-25", - "2026-05-26" + "2026-05-26", + "2026-06-01" ], "conceptTags": [ "update-summary-doc-as-children", @@ -959,20 +976,25 @@ "endLine": 158, "source": "memory", "snippet": "- 步骤2:姓氏 + 1个中文字符模式匹配,排除内容词白名单(文件/资源/游戏/动画/设计等50+词) - 替换为\"相关人员\" ### 修复效果(簇 #7) | 修复前 | 修复后 | |--------|--------| | \"角色江涛的spine动画中,眼睛设计应为睁开但实际显示为闭眼。\" | \"Spine动画中角色眼睛呈现闭眼状态,与设计不符。\" | ## 刘新玉 - 反馈流程完整概览(5/22 12:00) ### 全链路三层架构 ``` 采集层 → 每5分钟(飞书群同步) / 每分钟(微信群导出+P0检测) 汇总层 → 每天 10:00(飞书) 10:02(微信) 聚类+归纳+写入知识库 AI层 → 每天 10:05(飞书) 10:07(微信) DeepSeek生成描述+回写+分发群聊 ``` ### 时间线 | 时间 | 飞书 | 微信 | |------|------|------| | 10:00 | sync_feishu_feedback (占位符,不分发) | — | | 10:02 | — | sync_wechat_feedback (占位符,不分发) | | 10:05 | ai_summarize_feedback (回写+分发) | — | | 10:07 | — | ai_summarize_feedback --channel wechat (回写+分发) | ## 刘新玉 - 微信反馈同步系统搭建(5/22 下午) ### 背景 刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 M", - "recallCount": 2, + "recallCount": 6, "dailyCount": 0, "groundedCount": 0, - "totalScore": 2, + "totalScore": 6, "maxScore": 1, "firstRecalledAt": "2026-05-25T07:11:25.527Z", - "lastRecalledAt": "2026-05-26T03:40:13.634Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", "queryHashes": [ "1e9d4a024a31", - "442660038a9b" + "442660038a9b", + "b36cfa790039", + "bc1ed8fedd00", + "927d0719ac4d", + "35e4329ea912" ], "recallDays": [ "2026-05-25", - "2026-05-26" + "2026-05-26", + "2026-06-01" ], "conceptTags": [ "文件/资源/游戏/动画/设计等50", @@ -1077,6 +1099,165 @@ "vala-llm/user-feedback", "yyyy-mm-dd" ] + }, + "memory:memory/2026-05-26.md:1:24": { + "key": "memory:memory/2026-05-26.md:1:24", + "path": "memory/2026-05-26.md", + "startLine": 1, + "endLine": 24, + "source": "memory", + "snippet": "# 2026-05-26 工作日志 ## 刘新玉 - 微信/飞书问题汇总分发排查与修复 ### 问题 刘新玉询问是否向\"小葵小葵\"群发送了昨天(5/25)的问题汇总。 ### 排查结果 - **飞书 5/25**:「内容测试问题反馈」群昨天无新消息,飞书 crontab 10:00 输出 `✅ 无新数据,无需同步`,无需分发 - **微信 5/25**:数据库有 17 条消息,但大部分是单条消息,仅 1 个有效簇(≥2条),AI 归纳为\"无明确问题\",属于无效反馈 ### 修复的 Bug(均在本次会话中修复) **Bug 1:`sync_wechat_feedback.py` 文档标题不匹配** - 文件:`scripts/sync_wechat_feedback.py` - 问题:`--apply-ai` 路径搜索子文档时标题为 `微信-{date} 问题反馈`,但实际创建的是 `微信-{date} 用户反馈问题归纳`,导致创建后找不到文档 - 修复:两处标题改为 `微信-{date} 用户反馈问题归纳`(apply-ai 路径 + 步骤7分发路径) **Bug 2:`dispatch_summary_to_chat` 标题前缀** - 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` - 问题:title 硬编码 `飞书-{day_label}`,微信调用时 day_label 已含 `微信-` 前缀,导致出现 `飞书-微信-{date}` 双重前缀 - 修复:检测 day_labe", + "recallCount": 4, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 4, + "maxScore": 1, + "firstRecalledAt": "2026-06-01T02:51:24.899Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", + "queryHashes": [ + "b36cfa790039", + "bc1ed8fedd00", + "927d0719ac4d", + "35e4329ea912" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "微信/飞书问题汇总分发排查与修复", + "5/25", + "sync-wechat-feedback.py", + "scripts/sync-wechat-feedback.py", + "apply-ai", + "dispatch-summary-to-chat", + "day-label", + "飞书-微信" + ] + }, + "memory:memory/2026-05-27.md:22:43": { + "key": "memory:memory/2026-05-27.md:22:43", + "path": "memory/2026-05-27.md", + "startLine": 22, + "endLine": 43, + "source": "memory", + "snippet": "| 微信 | `--skip-dispatch` → 不分发 | `--apply-ai` → 替换占位符+分发 | 微信依赖 AI 归纳成功才能分发,飞书双重分发(占位符+AI)。 ### 5月26日反馈概况 - 飞书:17条消息,3个问题簇(2个有效:录音识别率低、飞船音乐不保存) - 微信:27条消息,14个问题簇(4个有效:飞船音乐、录音识别、音频无法播放、AI回复无关语句) ### 后续注意 - 删除/修改 `ai_summarize_feedback.py` 后需清理 `__pycache__`,否则缓存版本可能落后于源码 ## P0 实时检测去重修复 [刘新玉反馈] ### 问题 微信 `detect_p0_wechat.py` 每分钟扫描最近120分钟消息,同一个问题因讨论线程持续生长,`sort_threads` 聚类每次产生不同消息集合,导致: - 不同次的聚类有不同的 `cluster_signature`(基于 `sorted(message_ids)` MD5) - 去重完全失效,同一问题被重复推送(今天2个真实问题各推了3次 = 6次) ### 修复 在 `detect_p0_wechat.py` 和 `detect_p0_realtime.py` 中增加**内容语义去重**: 1. 新增 `cluster_content_fingerprint()`:拼接簇内前5条有意义消息作为内容指纹 + 发送人集合 + 小时粒度时间窗口 2. 新增 `is_duplicate_p0()`:基于内容相似度(Jaccard)+ 发送人重叠 + 时间窗口", + "recallCount": 2, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 2, + "maxScore": 1, + "firstRecalledAt": "2026-06-01T02:51:24.899Z", + "lastRecalledAt": "2026-06-01T04:05:41.997Z", + "queryHashes": [ + "b36cfa790039", + "35e4329ea912" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "skip-dispatch", + "apply-ai", + "删除/修改", + "ai-summarize-feedback.py", + "detect-p0-wechat.py", + "sort-threads", + "cluster-signature", + "message-ids" + ] + }, + "memory:memory/2026-05-22.md:107:135": { + "key": "memory:memory/2026-05-22.md:107:135", + "path": "memory/2026-05-22.md", + "startLine": 107, + "endLine": 135, + "source": "memory", + "snippet": "- 修改:`infer_missing_references()`、`extract_conclusion()`、`summarize_cluster()`、`sort_threads()` ## 刘新玉 - 分发文档链接修复(5/22 11:20) ### 问题 分发到小葵小葵群的文档链接硬编码为总文档 `RaL6whoYMijyYHkSlWrc7OLLnBy`,而非当天子文档 ### 修复 - `dispatch_summary_to_chat()` 新增 `doc_url` 参数 - `--apply-ai` 流程:从 `list_child_nodes()` 返回的 `nodes[title][\"node_token\"]` 构造链接 - `main()` 分发循环:同上,对每个 day 查 `list_child_nodes()` 获取对应 node_token - 链接格式:`https://makee-interactive.feishu.cn/wiki/{node_token}` ## 刘新玉 - AI 描述人名脱敏(5/22 11:30) ### 问题 问题描述中包含员工姓名\"江涛\" ### 修复(两层防护) 1. **System Prompt** 新增规则6:严禁出现员工姓名,用\"某角色/某员工\"替代 2. **`strip_names(description, cluster_data)` 后处理**: - 步骤1:从 cluster 提取发送者姓名,精确替换 - 步骤2:姓氏 + 1个中文字符模式匹配,排除内容词白名单(文件/资源", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-06-01T02:53:47.536Z", + "lastRecalledAt": "2026-06-01T02:53:47.536Z", + "queryHashes": [ + "1d207685e7a8" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "infer-missing-references", + "extract-conclusion", + "summarize-cluster", + "sort-threads", + "5/22", + "dispatch-summary-to-chat", + "doc-url", + "apply-ai" + ] + }, + "memory:memory/2026-05-26.md:21:41": { + "key": "memory:memory/2026-05-26.md:21:41", + "path": "memory/2026-05-26.md", + "startLine": 21, + "endLine": 41, + "source": "memory", + "snippet": "- 问题:title 硬编码 `飞书-{day_label}`,微信调用时 day_label 已含 `微信-` 前缀,导致出现 `飞书-微信-{date}` 双重前缀 - 修复:检测 day_label 是否已含前缀,已含则复用,否则加 `飞书-` **Bug 3:姓名脱敏正则误伤** - 文件:`scripts/ai_summarize_feedback.py` - 问题:`strip_names()` 中 `[姓][一-鿿]` 匹配过于宽泛,致 `程序`→`相关人员`、`常完`→`相关人员`,破坏正常描述 - 修复:content_words 排除词扩充(程序、方式、正常、完成、加载、原生等) **Bug 4:过滤后空消息仍发送** - 文件:`skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` - 问题:`dispatch_summary_to_chat` 过滤 `- 无明确问题` 后,若只剩标题无实质条目,仍会发送空消息 - 修复:增加 `has_items` 检查,无 `- ` 开头的内容行则不发送 ### 操作记录 - 手动补跑微信 5/25 apply-ai 回写知识库 - 撤回小葵小葵群中两条无效消息(`om_x100b6e653633aca4b268daf5d0579e7`、`om_x100b6e65e7cb90b8b3d97c2a9fc5f07`) ### 刘新玉指令(12:03) - 确认记住今天的变动 - 明确规则:微信反馈中\"无明确问题\"的簇不分发到小葵小葵群", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-06-01T02:56:57.688Z", + "lastRecalledAt": "2026-06-01T02:56:57.688Z", + "queryHashes": [ + "bc1ed8fedd00" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "day-label", + "飞书-微信", + "scripts/ai-summarize-feedback.py", + "strip-names", + "一-鿿", + "content-words", + "dispatch-summary-to-chat", + "has-items" + ] + }, + "memory:memory/2026-05-07.md:109:148": { + "key": "memory:memory/2026-05-07.md:109:148", + "path": "memory/2026-05-07.md", + "startLine": 109, + "endLine": 148, + "source": "memory", + "snippet": "- **待解决**:需要确认\"小葵小葵\"群里加的是哪个应用,或者把小研Bot加进去 ### 脚本修改 - `sync_feishu_feedback.py` 新增 `dispatch_to_group()` 函数 - 新增 `--dispatch` 参数控制是否执行步骤7 - 新增 `--dispatch-chat-id` 参数指定目标群(默认 oc_4171a2188f2554522a4309f2d7c27753) ### 关键配置 - 目标群 chat_id: `oc_4171a2188f2554522a4309f2d7c27753` - 毋益飞 user_id: `eggbg21g` - SKILL.md 已从\"五步流程\"更新为\"七步流程\" --- ## 当日待跟进事项 1. 「小葵小葵」群Bot发消息报错问题 → 需确认群内有哪个Bot应用,或引入小研Bot --- ## 步骤7格式调整 [刘新玉] - 2026-05-07 11:40 ### 最终消息格式(已确认并更新到脚本和SKILL.md) ``` 📋 2026-04-28 用户反馈问题归纳 **⚠️ P0级核心问题(需优先处理)** @毋益飞 1. **Loading/加载类** - 在iOS 端关卡内(3-2),Loading 耗时约 10 秒... **⚡ P1级重要问题** 1. **关卡/内容类** - 【偶现】在移动端关卡内(11-2),NPC 头上的 HUD... 📄 详细反馈文档:https://makee-interactive.feishu.cn/wiki/", + "recallCount": 1, + "dailyCount": 0, + "groundedCount": 0, + "totalScore": 1, + "maxScore": 1, + "firstRecalledAt": "2026-06-01T14:02:36.057Z", + "lastRecalledAt": "2026-06-01T14:02:36.057Z", + "queryHashes": [ + "7b5d134ca9ff" + ], + "recallDays": [ + "2026-06-01" + ], + "conceptTags": [ + "sync-feishu-feedback.py", + "dispatch-to-group", + "dispatch-chat-id", + "chat-id", + "user-id", + "skill.md", + "已确认并更新到脚本和skill.md", + "loading/加载类" + ] } } } diff --git a/output/daily_feedback/ai_descriptions_wechat_2026-05-31.json b/output/daily_feedback/ai_descriptions_wechat_2026-05-31.json new file mode 100644 index 0000000..ba454b6 --- /dev/null +++ b/output/daily_feedback/ai_descriptions_wechat_2026-05-31.json @@ -0,0 +1,17 @@ +{ + "date": "2026-05-31", + "descriptions": [ + { + "index": 1, + "description": "课相关人员频无法播放,无声音。" + }, + { + "index": 2, + "description": "相关人员反馈用户15502629787出现音频问题。" + }, + { + "index": 3, + "description": "无明确问题" + } + ] +} \ No newline at end of file diff --git a/output/daily_feedback/wechat_cluster_context_2026-05-31.json b/output/daily_feedback/wechat_cluster_context_2026-05-31.json new file mode 100644 index 0000000..039b118 --- /dev/null +++ b/output/daily_feedback/wechat_cluster_context_2026-05-31.json @@ -0,0 +1,50 @@ +{ + "date": "2026-05-31", + "clusters": [ + { + "index": 1, + "cluster_id": "5820125627658730459", + "message_count": 1, + "messages": [ + { + "sender": "瓦拉英语-萌萌老师(早10晚7)", + "content": "[聊天记录] 🎀Jessie🎀和瓦拉英语-萌萌班主任(早10晚7)\n🎀Jessie🎀: [视频]\n🎀Jessie🎀: [图片]\n🎀Jessie🎀: 老师 这节课音频有问题 没声音", + "msg_type": "link", + "time": "2026-05-31 13:04:08", + "message_id": "5820125627658730459", + "quote_message_id": "" + } + ] + }, + { + "index": 2, + "cluster_id": "4838074914100408311", + "message_count": 1, + "messages": [ + { + "sender": "瓦拉英语-萌萌老师(早10晚7)", + "content": "15502629787 音频问题", + "msg_type": "text", + "time": "2026-05-31 13:04:08", + "message_id": "4838074914100408311", + "quote_message_id": "" + } + ] + }, + { + "index": 3, + "cluster_id": "8853679905072290693", + "message_count": 1, + "messages": [ + { + "sender": "kevin", + "content": "重新开始也不行是么", + "msg_type": "text", + "time": "2026-05-31 13:54:48", + "message_id": "8853679905072290693", + "quote_message_id": "" + } + ] + } + ] +} \ No newline at end of file diff --git a/output/daily_feedback/飞书反馈_2026-06-01.xlsx b/output/daily_feedback/飞书反馈_2026-06-01.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5499619082fd1f1e66dfbe53247a6e36723696d5 GIT binary patch literal 6245 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 literal 0 HcmV?d00001