Files
dsh_ai1net_server/.workbuddy/memory/2026-10-15.md
T
admin 470a0bb5ce 记忆:核实并发线已自行提交(技能仓 50db906)
补记:那条线今天落 3 条(dec7d9c 删 humanizer-zh / db52965 去AI味判据用英文 /
50db906 每份产出文档开头必须有图),技能仓 HEAD == origin/master。
印证「点名单文件提交、不用 -A」的处理是对的。
2026-10-15 13:59:47 +08:00

111 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 2026-10-15 工作日志
## 排查「为什么不会自动创建接续会话」
**用户问**:「为什么现在 不会自动创作接续会话了, 日志达到上限了吗」
**结论:日志没到上限,机制也没坏。真因是「接续会话」这条链只有"叫"没有"自动建"——
建会话得由**会话里的模型**去做,而本机历史上从未建过。**
### 一、日志水位(实测,⛔ 非推测)
- 本会话 `23715e76-a2fd-4d42-8656-21ca3bde10f5` 在 **10-14 的日志 = 5 190 834 B(≈4.95 MiB)**。
- 软档 `SOFT_BYTES = 5 MiB`(5 242 880 B)⇒ **差 52 KB**;
- 硬档 `HARD_BYTES = 8 MiB`(8 388 608 B)⇒ **差 3.14 MiB**。
- **10-15 已按天换成新文件**(52 893 B)⇒ 同一会话跨天**从 0 重来**。
- `dsh log` 自诊断:🟢 低于软档(523 B 的 warning.log 只含两条无关告警:
`CHANNEL_DISCONNECTED`、`PHASE_PLANNING`)。
### 二、机制状态(体检脚本,⛔ 非目测)
`session-rules-check.py --ws <本区>` ⇒ **fail 0 / warn 1 / ok 14**
唯一 warn = `[C] 此刻无活会话(按需创建属正常)` ⇒ **钩子全在册、在跑,机制没坏。**
三条触发线(均已接线,见两处常量块):
1、**日志**(`session-log-guard.py`)—— 软 **5 MiB**(开始写交接材料);硬 **8 MiB**(回收;回收不成 ⇒ 停手 + 建接续会话)。
2、**上下文 token**(`stop-dialog-guard.py`)—— 120 000(轻提示)/220 000(建议收口)/300 000 `BUDGET_FORCE`(强制收口:先落盘、出接续包、再开新会话)。
3、**工具调用**(同上)—— 软 200 `BUDGET_TOOLS`;硬 250 `BUDGET_TOOLS_HARD`(停手 + 建接续会话)。
### 三、真正的答案(源码级)
`session-log-guard.py` 硬档的处置文案**逐字**:
> ③ **建接续会话**(走一次性 automation —— 自动化是**唯一**能开新会话的通道);
> ⚠️ **钩子开不了新会话** ⇒ 这四步必须由**你自己**做完;本钩子只负责"叫"。
⇒ **「自动创建接续会话」本机从来不存在。** 钩子只负责"叫",建会话要**会话里的模型**去建一条
一次性 automation(那是唯一通道)。
宿主库佐证(只读查):`automations` 表里名字/提示含「接续」「交接」的 ⇒ **命中 0 条**
⇒ **历史上从未建过接续会话**。
### 四、两个真的短板(据实报)
1、**日志线基本"叫不动"**:宿主日志**按天分目录**(`logs/<日期>/sdk/conversations/`),
同一会话跨天换新文件 ⇒ 单日要涨到 8 MiB 才触发硬档;本会话 10-14 跑了一整天只到 **4.95 MiB**。
2、**昨天到过三级、但没有建接续会话**:`.budget-alert-level` 里写着
`23715e76-…→ 3`(2026-10-14 11:09)⇒ token ≥300 K **或** 工具调用 ≥250 次已命中;
而那条线(`stop-dialog-guard.py`)的处置也只是**提示我收口**,**同样不自动建**。
⇒ **这是执行缺失(该建没建),不是机制缺失。**
### 五、🔴 两处记忆订正(实测推翻旧记)
1、**「工具调用软 200/硬 250 尚未接线」= 过期结论**。
实测 `stop-dialog-guard.py` 已有 `BUDGET_TOOLS = 200`(一级)/`BUDGET_TOOLS_HARD = 250`(三级),
并在 `t >= BUDGET_FORCE or ncalls >= BUDGET_TOOLS_HARD` 的分支里生效 ⇒ **已接线**。
2、**「宿主库 187 条 ACTIVE `once` 排期 + 7 条 ACTIVE `recurring`」= 与实测不符**。
实测:`deleted_at IS NULL AND status='ACTIVE'` ⇒ **recurring 4 条、once 0 条**
(4 条为:AI变现日报 ×2、WorkBuddy 日志定时清理、决策线体检)。
⇒ 那条"遗留待清理"要么已被清掉,要么当初口径就不是"ACTIVE"(待下次核实时一并查清)。
### 六、沉淀
- 🔴 **「自动」这个词要先证伪再采信**:本轮用户问"为什么不再自动建接续会话了",
查源码才发现**根本没有"自动建"这条实现** —— 钩子只叫、建会话要模型动手。
⇒ 判据:**凡涉及"某机制会不会自动做 X",先 grep 出 X 的实现方,看它到底是谁在触发。**
- 🔴 **日志按天分目录 ⇒ 单日阈值要按"单日增量"重算**:设 8 MiB 硬档前,先确认宿主会不会跨天重置。
---
## 第二件:用户选 B 方案 —— 把「必须建接续会话 + 报 id」钉进钩子文案
**用户指令**:「b方案」(我给的 A/B/C 三选一里,B = 只改规则文字,不加自测判据)。
**改了什么**(技能仓提交 `80ddf12`,推送 `2f65609..80ddf12`,1 文件 +4 −2):
`session-mechanism/scripts/hooks/session-log-guard.py` 日志硬档(8 MiB)的处置文案 ——
1、③ 由「**建**接续会话」改为「🔴 **必须建**接续会话」,并加「**建完把 automation id 写进给用户的最后一条回复**」。
2、④ 告知语补上 id:「已登记自动接续(automation id `xxx`),约 N 分钟后自动开新会话,不需要你操作」。
**为什么这句非有不可**(实测缺口,⛔ 不是想当然):2026-10-14 本会话已到**三级告警**
(`.budget-alert-level` 记 `23715e76…→ 3`),而接续会话**一封都没建** —— 宿主库里名字/提示含
「接续」「交接」的排期命中 **0 条**。根因是钩子只负责"叫"(源码明写「钩子开不了新会话」),
建会话要**会话里的模型**走一次性 automation;少了「必须建 + 报 id」,叫完仍可能没人建。
**⛔ 没动架构文档**:`references/architecture.md` §③ 讲的是接续会话的**命名规范**(标题怎么起),
与本处「是否必须建」**互补、不冲突** ⇒ 属"别处已覆盖",改它才是半改。
**验收**:全量自测 **PASS 110 / FAIL 0**(确认没有判据锚定改的那两句 —— 今天已因"判据锚点过期"栽过两次)。
## ⚠️ 提交时发现:有另一个会话在并发改同一批文件
`git status` 里除了我这处,还躺着**别人的改动**(我一律没碰):
- `humanizer-zh/` **整包被删**(LICENSE / README.md / SKILL.md 三个 `D`);
- `product-planning/SKILL.md` 的「判据来源」被改写成「**只有 `humanizer` 一份**,`humanizer-zh` 已整包删除、不再引用」,
并把门槛改成「中文自动评分没可信来源 ⇒ 改人工五维评分 ≥45/50」;
- 我操作期间**又新增** 4 项:`product-planning/references/stage-discovery/SKILL.md`、
`session-mechanism/SKILL.md`、`session-mechanism/references/collab-detail.md`、
`session-mechanism/references/作业规矩/04-去AI味和说话方式.md`、`改包纪律.md`。
⇒ 判读:另一条线正在做「**去 AI 味**」相关改造(连 `04-去AI味和说话方式.md` 都动了)。
**判据**:提交时**只 `git add` 自己改的那一个文件**,⛔ 不 `git add -A`
(否则把别人半拉的改动一起带进提交)。
- 🔴 **沉淀:技能仓是被多会话共写的** ⇒ 提交动作一律**点名单文件加入**,⛔ 不用 `-A`。
且"剩余未提交"从 5 项涨到 9 项这件事本身就是信号 —— **看到它变多,就说明有别人在并发改,别顺手带上。**
**事后核实(13:5x)**:那条线**已自行提交**,技能仓现为 `50db906`(HEAD == origin/master,工作区干净)。
它今天共落 3 条:`dec7d9c`(删 humanizer-zh,只留英文版 humanizer)、
`db52965`(去 AI 味判据一律改用英文目录)、`50db906`(每份产出文档开头必须有图)。
⇒ 我提交时"点名单文件、不用 `-A`"是对的:既没抢它的活,也没把半拉子改动带进我的提交。