chore(工作区): 纳入版本控制基线(回收 411 MB 过程产物)
回收 411 MB(470 M → 58.8 M),全部经回收站,可恢复: - 待清理/(146.2 M,含 relay 分片 128 M 与 42 项过程目录) - tmp/(32.4 M,按接续棒命名的过程临时区) - .workbuddy/tmp/(39.5 M) - 4 份 workbuddy.db 冗余副本(101 M,09-23 事故的坏副本 / 抢救产物) - tmp/im16/gw/centrifugo 二进制(63.9 M,可重下)+ 缓存残留 入库范围:常驻规则(CODEBUDDY.md / README.md / state.py)、在途接续入口与 接续包、docs/、交付物/、交接单/、归档/、scripts/、.codebuddy/、 .workbuddy/memory/;共 398 件,其中 >60 KB 的 26 件全为文档。 排除(.gitignore):tmp/、待清理/、运行态日志与缓存、*.db 与 DB 备份整目录、 打包二进制(*.tar.gz / *.tgz)、记忆修复前备份。
This commit is contained in:
commit
ce8e6ceed9
396 files changed
+66045
No files matched your search
@@ -0,0 +1,120 @@
|
||||
# 会话同步包 · 决策方法(`6cd67b31`)
|
||||
|
||||
- 生成:2026-09-13 07:35 | 生成会话:`15ee0d4f`(本会话)
|
||||
- 用途:用户要求「把之前叫做 **决策方法** 的那个会话信息同步到这个会话,好继续执行」
|
||||
- 结论先行:**目标会话已锁定,但它的原文在本机读不到**(见 §2 三条硬证据);下文是**可用证据复原**出的工作线与未闭环项,逐条标了置信度。
|
||||
|
||||
---
|
||||
|
||||
## 1. 身份卡(置信度:高)
|
||||
|
||||
| 项 | 值 | 证据 |
|
||||
|---|---|---|
|
||||
| 会话 id | `6cd67b31-78a5-48ea-ae31-5a16618844f4` | `edge-sync.log` |
|
||||
| **标题** | **「决策方法」**(`isUserDefined=true` ← **用户亲手改的名**) | `§3.4 RENAME: cid=6cd67b31… title="决策方法" isUserDefined=true` |
|
||||
| 自动标题(首条消息) | 「把本工作区中所有会话 关于如何改造dsh服务优化功能交互,UI界面的所有我的有效决策以及AI的有效决策,如何确认最优解,整一个思考决策的方法skill」 | `[EB_SYNC_ADDED] sid=6cd67b31…` |
|
||||
| 创建 | 2026-09-12 **09:32:13** | `[CREATE_ENTER]` @ `2026-09-12T01:32:13.651Z`(UTC) |
|
||||
| 最后活动 | 2026-09-12 **22:52:40**(生命周期约 13.3 小时) | `§3.4.1 ACTIVITY lastActivityAtMs=1789224760457` |
|
||||
| 工作目录 | `D:\AI技能\aliyun-dsh-server`(**迁移前的 D 盘路径**) | `[CREATE_ENTER] cwd=…` |
|
||||
| 交叉印证 | 「| `6cd67b31` | **决策方法** | 09-12 09:32 | 14:42 | **本会话** |」 | `.workbuddy/memory/2026-09-12.md:1110` |
|
||||
|
||||
> ⚠️ **易混会话(请确认没找错)**:另有一个**自动命名**含「决策方法」的会话 —— `b58f0293`(09-12 22:55 被自动改名「**参考决策方法逐条判断处理**」,最后活动 09-13 00:09)。它走的是**「逐条判断处理待办」**这条线,09-13 已由 `a2665dd3` 接手继续。**本包按用户「亲手命名过」的口径,锁定 `6cd67b31`。** 若你要的是 `b58f0293`,说一句我立刻换。
|
||||
|
||||
---
|
||||
|
||||
## 2. 「原文读不到」的三条硬证据(置信度:高)
|
||||
|
||||
1. **转录目录里没有它** —— `~/.workbuddy/projects/d-AI技能-aliyun-dsh-server/` 只有 5 份 jsonl,**最晚一份停在 09-12 07:00**(`b2817961`),`6cd67b31` 无文件。
|
||||
2. **元数据库未收录** —— `~/.workbuddy/workbuddy.db` 的 `sessions` 表**最新行停在 09-12 07:00**(桌面版该库已静态化),`6cd67b31` 不在表里;其标题/改名/活动只能从 `edge-sync.log` 取。
|
||||
3. **本机无任何内容副本** —— 全 `~/.workbuddy` 检索 `6cd67b31`:**除日志外 0 个文件命中**(会话正文只在云端 EdgeSync)。
|
||||
|
||||
⇒ **所以本包不能承诺「原文搬过来了」**;下面是**共享日志 + 文档库 + 实测**三条腿复原的结果。
|
||||
|
||||
---
|
||||
|
||||
## 3. 工作线复原(按活动时间对齐;每条标置信度)
|
||||
|
||||
### 3.1 它建了什么(全部仍在生效)
|
||||
|
||||
| # | 产物 | 时间 | 置信度 |
|
||||
|---|---|---|---|
|
||||
| 1 | **技能 `dsh-decision-method`**:U1–U19(用户有效决策)/ A1–A14(AI 有效推理)/ X1–X8(反例→规则)/ §4.1 判定矩阵 / §4.2 确认最优解十问 / §4.3 验收分级 L1–L5 / **§4.4 技术实现裁决顺序 8 条** | 09:32 起 | 高 |
|
||||
| 2 | 用 `scripts/extract-user-voice.py` 抽出**180 条用户真实发言**回补核对 → **U1–U12 里 11 条找到原话**,补上 **U13–U19** | 12:00–12:25 | 高 |
|
||||
| 3 | **技能 `dsh-feature-first`**(谁定什么 / 9 类白名单 / 只上抛 3 类)+ **§3.6 拆包上抛** | 11:16–11:35 / 14:40 诊断后 | 高 |
|
||||
| 4 | **「提问闸门」设计**(`PreToolUse` + matcher `^AskUserQuestion$` + `type:prompt`)——今日实测**该条目仍在活动配置里** | 11:54–12:10 | 高 |
|
||||
| 5 | **边界判据定稿**:「只问**超过现有判断方法边界**的问题」→ 落进**用户级 `MEMORY.md` / 工作区 `MEMORY.md` / `dsh-feature-first §3 头`三处**(md5 `24bbff24…`) | 11:58–12:10 | 高 |
|
||||
| 6 | **整体评估报告**:必看规则文档分层 A/B/C/D + 并发**不支持自动不冲突** + 自动决策**不能保证**(量化 20 次提问:75% 该问 / 15% 不该问 / 10% 重复问) | 15:00–15:20 | 高 |
|
||||
| 7 | **A14「删除前三问」**(用户原话:「这也是决策方法——删除东西前要先看看」) | 17:31–17:55 | 中高 |
|
||||
| 8 | **`SOUL.md` 固定姿势第 5 条「一口气做完,不中途汇报」** + **40+ 回合实测基线(每回合 0–72 次调用、无固定上限)+ 三种已实证错误停法** | 22:26–23:05 | 高(现 SOUL 文本含该基线) |
|
||||
|
||||
### 3.2 它的关键结论(现在还在被引用)
|
||||
|
||||
- **主对话没有硬回合上限**(`maxTurns` 只作用于子代理)⇒「做一部分就停」是**行为问题**,不是机制限制。
|
||||
- **工作区 `MEMORY.md` 是唯一「每会话必注入」的通道**(前 200 行自动加载)⇒ 体积必须受控(当时 11.5 KB ≈ 82% 上限,已报警)。
|
||||
- **技能是「按需触发」,不能算送达** ⇒ 凡「动作前必须生效」的规则必须写进 `CODEBUDDY.md`(今天代码库里这条已成文)。
|
||||
|
||||
### 3.3 ⚠️ 它当时查错的一件事(今天是新证据)
|
||||
|
||||
它 15:19–15:45 得出的「WorkBuddy 项目指令文件 = `CODEBUDDY.md`、层级如何、改完需重启」**结论正确**;
|
||||
但它 11:54 把「提问闸门」写进的是 **`E:\ProgramData\.workbuddy\settings.json`** —— 这个**才是活动配置**(`CODEBUDDY_CONFIG_DIR=E:\ProgramData\.workbuddy`)。
|
||||
而 **2026-09-13 上午两个会话去「修 hooks 路径」时,改的却是 `C:\Users\Administrator\.workbuddy\settings.json`(迁移遗留副本,**不是**活动配置)⇒ 两次都白改**。详见 §4.3。
|
||||
|
||||
---
|
||||
|
||||
## 4. 它对当前状态的影响 / 本次同步时新查出的事实
|
||||
|
||||
### 4.1 它留的待办,现在的状态
|
||||
|
||||
| 它当时的待办 | 现状 | 判据 |
|
||||
|---|---|---|
|
||||
| ① 已有会话贴规则 | 已不再需要(规则已进 `CODEBUDDY.md` + 用户级 `MEMORY.md`,每会话自动注入) | ✅ |
|
||||
| ② 消灭「重复问」(§3.6) | 已落 `dsh-feature-first §3.6` | ✅ |
|
||||
| ③ 工作区 `MEMORY.md` 瘦身 | **75 行 / 11,062 B**(上限是 200 行)⇒ 行数安全 | ✅(字节仍偏大,观察项) |
|
||||
| ④ 重启后走 `/hooks` 审核验证 hook | **桌面版没有 `/hooks` 面板**(用户 09-12 17:45 实测)⇒ 改走「宿主日志取证」 | 🔄 **见 §4.2** |
|
||||
| ⑤ `docs-sync-check.sh` 排除 `.doing-*` | 已做(脚本第 47/48/81/89 行都有) | ✅ |
|
||||
| 档案 77 §八 遗留①(崩溃熔断可无限重来 + 无告警) | 未开档 | ⏳ |
|
||||
|
||||
### 4.2 ★本次同步新查出:钩子「能调用,但拦不住」(未闭环)
|
||||
|
||||
**证据链(全部来自宿主日志,可复跑)**:
|
||||
|
||||
1. 配置在 `E:\ProgramData\.workbuddy\settings.json`(`CODEBUDDY_CONFIG_DIR` 指向它)—— 其中 `Write|Edit` 与 `SessionStart` 两条命令**原本指向 D 盘旧路径**。
|
||||
2. 宿主日志里能看到它**确实在用那条命令**:
|
||||
`[HookExecutor] spawn … timeout=10000ms cmd=python "D:/AI技能/…/lock-guard-hook.py"`
|
||||
→ 紧跟 `[HookExecutor] abnormal exit pid=… code=2`(脚本不存在)⇒ **宿主 fail-closed 拒写**(这就是今天「所有 Write/Edit 被拒」的真根因)。
|
||||
3. 已把**活动配置**的两条命令改成 E 绝对路径(含解释器),**未动结构、未动提问闸门条目**;备份 `settings.json.bak-20260913-lockpathfix-0725`;改后 **D: 残留 = 0**。
|
||||
4. 07:30:01 应用重启后,宿主日志出现**新命令**:`[HookExecutor] spawn … cmd="E:/…python.exe" "E:/…lock-guard-hook.py"`,**无 abnormal exit**。
|
||||
5. **但受保护路径 + 无锁的写入仍然成功了**(`dsh-server-docs/_gate_probe_A.md`),且 `.workbuddy/lock-hook.log` **没有 `PreToolUse-deny` 行**。
|
||||
6. 同一命令 + 合成载荷手工跑**能正确 deny 并写日志**(07:31:26 有日志行)⇒ 脚本逻辑本身没问题。
|
||||
7. 源码里载荷契约是 `{hook_event_name, tool_name, tool_input}`(`codebuddy.js` `convertToSdkInput`)——与脚本预期一致。
|
||||
|
||||
⇒ **判定**:钩子进程**跑通了但是走了「放行」分支**(脚本对读不懂/不匹配的载荷是 fail-open);**要定位就得采一次真实载荷**(给脚本加一行「原样落盘 stdin」的诊断,脚本改动即时生效、无需重启)。
|
||||
|
||||
### 4.3 ★另一处必须记下的事故:改错配置文件(白改两次)
|
||||
|
||||
- 今天 06:55 与 07:11 两次「修 hooks 绝对路径」,改的都是 `C:\Users\Administrator\.workbuddy\settings.json`;
|
||||
- **活动配置是 `E:\ProgramData\.workbuddy\settings.json`**(09-12 18:03 之后**再没被改过**)⇒ 两次都不生效;
|
||||
- 于是「06:47 会话改完仍报旧路径」被误读成「hook 是会话启动时快照、新开会话即生效」——**真实解释是改错文件**。(顺带解释了 06:53–07:05 的临时目录联接为什么"一建就好":它把 D 盘旧路径接上了。)
|
||||
|
||||
---
|
||||
|
||||
## 5. 并行会话(**单列,勿与本会话混淆**)
|
||||
|
||||
| 会话 | 名称 | 今天的角色 | 现状 |
|
||||
|---|---|---|---|
|
||||
| `a2665dd3` | 继续参考决策方法逐条判断处理 | 逐条处理「未闭环」项 | **07:32 起持有全局执行锁(锁名 `未闭环-0732`)**,07:33 在写 `_probe_after_restart.txt`(它也在验钩子) |
|
||||
| `3c12a818` | 继续检测用户回到dsh页面 | 档案 77 浏览器实测(10/10 全绿) | 已收口 |
|
||||
| `48a9c14c` | 同步方案规划到会话 | 承接 `ca58e09f`(方案规划) | 07:19 建 |
|
||||
|
||||
> 共享日志(`.workbuddy/memory/2026-09-12.md`,3474 行)是**多会话混写**的:本包 §3 的段落归属按「时间窗 + 内容主题」对齐,标了置信度;**未标高的请勿当事实引用**。
|
||||
|
||||
---
|
||||
|
||||
## 6. 若确要它的一手原文
|
||||
|
||||
| 路径 | 可行性 |
|
||||
|---|---|
|
||||
| `conversation_search` | 本机近期会话**命中率极低**(09-12 实测 2 次 0 命中) |
|
||||
| 云端 EdgeSync | 本机**没有出口**(不是网络问题,是桌面版不落盘) |
|
||||
| 间接源(已做) | 共享日志 + 文档库 + 只读实测 —— **本包即此路线** |
|
||||
| 唯一真解法 | 会话还在跑时**手动导出/复制**;已结束的会话本机拿不到 |
|
||||
@@ -0,0 +1,139 @@
|
||||
# 会话同步包:「方案规划」(最新那个)
|
||||
|
||||
> 用途:把用户侧栏里那个名为「方案规划」的会话,其上下文同步进当前会话。
|
||||
> 生成:2026-09-13 07:2x | 生成者:会话 `48a9c14c`(标题「同步方案规划到会话」)
|
||||
> 取数方式:**全部只读**(未改文档库 / 未动代码仓 / 未碰服务器)
|
||||
|
||||
---
|
||||
|
||||
## 0. 一句话结论
|
||||
|
||||
| 项 | 结论 |
|
||||
|---|---|
|
||||
| 用户说的「方案规划」 | **两个会话同名**,按用户指定「找最新的那个」→ **`ba6c2de4-0332-4a5a-a539-9f122481016b`** |
|
||||
| 它是什么 | 2026-09-12 **17:32 创建、19:17 结束**(≈1h45m)的一条**推进线**:项目现状盘点 → 文档库刷新 → AnySearch 放弃 + R9 收尾 → 服务器同步 + guard 提速 + op-lock 加固 → 清理残留 |
|
||||
| 原文能否读到 | ⛔ **本机读不到**(转录在云端 EdgeSync;本地索引目录 09-12 07:00 起停更)。**但本次已用 edge-sync 元数据 + 工作区共享日志把工作线完整复原** ↓ |
|
||||
| 另一个同名会话 | `ca58e09f`(09-11 23:52 → 09-12 16:54)——**「交接单」机制的诞生地**,本机留有开头转录 |
|
||||
|
||||
---
|
||||
|
||||
## 1. 身份卡(证据:`~/.workbuddy/logs/2026-09-12/edge-sync.log`)
|
||||
|
||||
| 项 | `ba6c2de4`(最新 · 本次同步对象) | `ca58e09f`(旧 · 对照) |
|
||||
|---|---|---|
|
||||
| 会话 id | `ba6c2de4-0332-4a5a-a539-9f122481016b` | `ca58e09f-6c19-4e01-b02c-dca47be05de8` |
|
||||
| 工作目录 | `D:/AI技能/aliyun-dsh-server`(**旧路径**) | 同 |
|
||||
| 创建 | 09-12 **17:32:39** | 09-11 **23:52:47** |
|
||||
| 原始标题 | 「看看dsh项目最新状态」(系统按首条 prompt 生成) | 「方案规划 执行任务时间太久,考虑这个会话处理任务规划,另一个任务执行」 |
|
||||
| 改名为「方案规划」 | **17:32:56** 与 **18:32:29**(均 `isUserDefined=true`) | 09-12 **06:49** 与 **07:14**(用户改) |
|
||||
| 最后活动 | 09-12 **19:17:49** | 09-12 **16:54:31** |
|
||||
| 活动点 | **9 个**(17:32 / 17:38 / 17:48 / 18:32 / 18:57 / 18:59 / 19:14 / 19:15 / 19:17) | **31 个**(09-11 23:52 → 09-12 16:54) |
|
||||
| 本机转录(`.jsonl`) | ⛔ **无** | ✅ 有(1.19 MB / 208 行 / 10 条消息),但**只覆盖开头 09-11 23:52–09-12 00:04** |
|
||||
| `changes-index` 变更明细 | ⛔ 无 | ✅ 有:**3 次变更、8 个文件** |
|
||||
| `sessions` 表(workbuddy.db) | ⛔ 不在表内(该表 09-11 后已静态化) | ✅ 在表内(`title=custom_title=方案规划`,`status=completed`) |
|
||||
|
||||
### `ca58e09f` 的产出(确切可知,来自 changes-index)
|
||||
|
||||
建立 **`dsh-server-docs/交接单/` 机制**(规划与执行分离的载体)+ 首批两份单子:
|
||||
`交接单/README.md`、`T01-档案16阶段3-4-实例内我的技能.md`、`T02-文档库收尾-编号消歧与INDEX瘦身.md`、`INDEX.md`、`2026-09-11.md`、`MEMORY.md`、`2026-09-12.md`
|
||||
|
||||
> 它开头转录里的原话摘要(可读部分):定位=**纯规划**、交接载体=文档库文件、首批=档案 16 阶段 3/4 + 文档库收尾;交接单固定 **8 段**;明确「规划会话只产出单子,执行会话不需要读当天上下文」;并当场抓出两个执行必踩的坑(T01 的 `--dump-config` 验收口径已被档案 18 v3 证伪;T02 的字母后缀消歧必须同改 2 个脚本 6 处正则)。
|
||||
|
||||
---
|
||||
|
||||
## 2. 为什么本机拿不到最新会话的原文(三条硬证据)
|
||||
|
||||
1. `~/.workbuddy/projects/d-AI技能-aliyun-dsh-server/` 最后一份 `.jsonl` **mtime = 09-12 07:00**,此后新建的会话一个都没有。
|
||||
2. 按会话 id 组织的本机索引目录**集体停更**:`changes-index/`(09-12 06:59)、`artifact-index/`(09-12 07:00)、`file-history/`(09-11 23:57)、`file-tree-manifests/`(09-12 07:00)。
|
||||
3. `edge-sync.log` 里**只有 push 痕迹、没有 pull 痕迹**(全文只出现一个 `workbuddy.cn/cf-publish/api/publish` endpoint)⇒ 数据**单向推送**到云端,本机无回拉接口。
|
||||
|
||||
⇒ 复原只能靠「edge-sync 元数据 + 工作区共享日志 `.workbuddy/memory/*.md` + 文档库/服务端只读实测」三条腿。
|
||||
|
||||
---
|
||||
|
||||
## 3. 内容复原:「方案规划」(ba6c2de4) 那条推进线
|
||||
|
||||
> 归属判据:`ba6c2de4` 的 9 个活动点与 `2026-09-12.md` 中下列段落的**时间戳逐一对齐**(17:32 / 18:32 / 18:57 / 19:14 / 19:17)。同窗另有并行会话,个别交接细节可能属他人,已在必要处标注。
|
||||
|
||||
### ① 17:32 只读现状盘点(用户:「看看dsh项目最新状态」)
|
||||
|
||||
- 文档库 HEAD = `ae5c437`;未提交 5 项:`DEPLOY-本部署.md`、`README.md`、`skills/dsh-change-workflow/SKILL.md` + 新增 `scripts/docs-consistency.py`、`skills/dsh-knowledge-upkeep/`
|
||||
- 代码库 HEAD = `0e141a4`;未提交 **17 项**(`plugin-compat.ts` / `security-scan.ts` / `orchestrator.ts` / `proxy.ts` 等 10 改 + 7 新增);**本机领先服务器两个提交**
|
||||
- 三把锁全空;档案最大编号 **73**;空号 37 / 38 / 48 / 63(37·38 已用 a/b 消歧)
|
||||
- 交接单在库 = **T01、T03**;T02 / T04 / T05 已归档
|
||||
- **报出 2 处滞后(只报告未修)**:`BRIEF.md` 最后人工核对停在 15:05、§3/§4 未含档案 69–73 且仍标 T04 为待办;`交接单/README.md §一` **T04/T05 行列错位**
|
||||
- 环境坑修正:本机 Bash 的 PATH 需 `usr/bin` **+ `mingw64/bin`**(`git.exe` 只在后者)→ 已据此改项目根 `CODEBUDDY.md §7`
|
||||
|
||||
### ② 18:35–18:45 文档库状态刷新(用户:「确认需要就处理」· 持全局执行锁)
|
||||
|
||||
修 3 处滞后(都是"首读文件与实际不符"):
|
||||
|
||||
- `BRIEF.md §4 最近动作`:补 **档案 69–73**(原先停在 68)
|
||||
- `BRIEF.md §3`:AnySearch 行 → **⚠️ 阻塞·止损态**
|
||||
- `03-路线图与待办.md`:新增 **AnySearch 待决(业务)** 行;已完成清单补档案 69 / 70 / 71
|
||||
|
||||
**有意跳过** 3 处(已被并行会话在 18:00–18:35 改好,抢锁之前)⇒ 自此立下规矩「**抢锁前先重读文件**」。
|
||||
|
||||
- 四件套:`docs-audit` **0** | `docs-manifest` ✓(97 份 / 631,531 字符)| `docs-consistency` **0** | `docs-sync-check` **一致 126 / 不一致 6 / 仅本地 0 / 仅服务器 0**(无幽灵文件)
|
||||
- 判定 `skills/dsh-change-workflow/SKILL.md` 被整文件 CRLF→LF 为**技能更新的副产物、非事故**(真实改动仅 15 行)
|
||||
- 本机未提交从 5 项 → **11 项**;**未 commit / 未 scp**
|
||||
|
||||
### ③ 18:46–19:00 AnySearch 放弃 + R9 红线收尾(用户两轮指令)
|
||||
|
||||
- **① R9(用户明令)**:核对另一并行会话已落地的项目根 `CODEBUDDY.md` 版本后,把**仍在教人删锁的 4 处**全部改掉 —— `交接单/README.md §三` 第 13/11 条、`scripts/handoff-guard.sh` ×2、`dsh-server-docs/CODEBUDDY.md` + `dsh-change-workflow` 技能两副本;判例留痕于**档案 73 §十一**
|
||||
- **② AnySearch 彻底放弃**:造临时 admin session → `DELETE /api/plugins/business/%40anysearch%2Fanysearch-dsh` → **200 `{"ok":true}`**(`audit_log` id **175**);顺手补上档案 71 预检覆盖不到的**存量体检**盲区 —— `dsh-univer-office` → `ok`(保留);`@liustack/modlens` → `unknown` + 有 `plugin_incident`(172/173)→ **一并下架**(`audit_log` id **176**,备份至 `/opt/dsh/backups/plugin-pool-20260912/`)
|
||||
- 候选池当时仅剩 1 条;**全程未重启服务、未中断在线用户**
|
||||
|
||||
### ④ 19:00–19:15 服务器同步 + 对账提速 5 倍 + 锁归属加固(用户:「必须处理」)
|
||||
|
||||
- **同步 R9 到生产**:`tar` 打包 11 个文件(绕开中文路径 scp 不可靠)→ scp → 服务器解包 → **按基线恢复权限**(md 600 / 4 个脚本 755)→ **`chown root:root`**(tar 解包会带成数字 uid)
|
||||
- **guard 信息模式"像挂死"的真因 = 慢**:Git-Bash 下 `find | while read` 逐文件 spawn `md5sum`,132 文件耗时 **2 分 15 秒**;改为**一次 Python 算完** → **26 秒(提速 5 倍)**
|
||||
- ⚠️ 改动中**自己引入又修掉一个 bug**:`os.path.relpath` 在 Windows 上会规范化「文件名末尾带点」→ 静默漏文件 → 制造「仅服务器 1」的**假差异**;正解 = 手工拼相对路径 + 读盘失败时用 `\\?\` 拼未规范化绝对路径
|
||||
- **op-lock 归属加固**:claim 未传会话名会记成 `unknown-session`(导致自己挡自己);`release` 增**归属校验**(此前无校验 = 一条**绕过 R9 的后门**);五态实测(含"冒充别人 release → 拒绝、锁未被删")
|
||||
- 验收:四件套 `audit 0 / manifest ✓ / consistency 0` + `ME=… PUSH=1 handoff-guard.sh` **退出码 0**;对账 **一致 131**;技能两副本 md5 一致
|
||||
|
||||
### ⑤ 19:16–19:20 清理文档库备份残留(用户:「清理」)
|
||||
|
||||
- 清掉 audit【3】明列的 2 个残留:`INDEX.md.bak-20260911111003.`(**文件名末尾带点**)、`skills/dsh-change-workflow/SKILL.md.bak-20260911-2055`
|
||||
- ⚠️ 删前关键判断:两者**不在 git HEAD 中**(删了无法从 git 恢复)→ 先备份到 `.workbuddy/backups/cleanup-20260912/`(逐字节校验)
|
||||
- Windows 技术点:带末尾点的文件名 `open` / `os.remove` 均 ENOENT → 必须 `\\?\` + 未规范化绝对路径
|
||||
- 验证:`docs-audit.py`【3】残留 **2 → 0**;对账 **一致 129 / 仅本地 0 / 仅服务器 0**
|
||||
|
||||
### 它明确"未做"的事(留给后续)
|
||||
|
||||
- **未 commit、未 scp**(红线:提交/推送须用户明说)
|
||||
- 项目根残留清单 4 类(21 个 `_*` 临时文件 / 2 个 `CODEBUDDY.md.bak` / 1 个技能 `.bak` / 服务器 27 个 `.bak-*`)——「待用户定」
|
||||
- 8 项待用户拍板/给窗口:档案 65 部署窗口、档案 64 §8.3 铺普通用户、档案 73 钩子启用、档案 42 三项、业务技能是否投放、Cookie 域收窄
|
||||
|
||||
---
|
||||
|
||||
## 4. 同期并行会话(同窗但**不属于**本次同步对象,避免误读)
|
||||
|
||||
09-12 17:32–19:20 之间还有别的工作线在同一份共享日志里追加:
|
||||
|
||||
- 「17:45 纠正:桌面版**没有** `/hooks` 面板」+ 新增 hook 自证日志
|
||||
- 「17:5x 待办盘点(只读)」「18:0x 逐条裁决并处理待办」「18:1x 澄清两问」「18:2x 代码仓三方同步(`da3e0f9`)」「18:3x 两项方案变更(子代理 approval 源码取证 → 档案 42 闭环)」
|
||||
- 「18:5x 新增红线 R9」的**首次落地**(备份 `CODEBUDDY.md.bak-r9-184717`)——由另一会话先行完成,`ba6c2de4` 是核对后补齐其余 4 处
|
||||
|
||||
---
|
||||
|
||||
## 5. 与当前状态对接(2026-09-13 07:2x 只读实测)
|
||||
|
||||
| 项 | 现值 |
|
||||
|---|---|
|
||||
| **当前全局执行锁** | ⚠️ **被占用** —— `交接单/.exec-lock/OWNER` = `stale-ledger-fix-0717`(09-13 **07:17** 起),同时占用 `.doing-T03` |
|
||||
| 服务器侧 op-lock | ✓ 空闲 |
|
||||
| 在库待执行单 | **T03**(进行中,锁在别人手上)、**T01**(决策点 1 已定 = A 扩展 `business-plugins`) |
|
||||
| 候选池 | `dsh-plugin-mcn-suite @0.3.9`(09-13 00:02)+ `dsh-univer-office @0.2.15` |
|
||||
| 待定窗口 | 档案 65 部署(需 `systemctl restart dshs` → 断在线用户)|档案 64 §8.3 |
|
||||
| 本会话能做什么 | 按 R9 / §6:**抢不到锁 = 不碰「文档 / 代码 / 服务器」**;只读随时可做 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 若要「真·原文」
|
||||
|
||||
本机拿不到 ⇒ 三条可行路径:
|
||||
|
||||
1. **用户侧**:在桌面版 UI 打开该会话,手动复制/导出关键对话(最快最准)。
|
||||
2. **定向复原**:用户告诉我该会话里**具体想追的问题**(如"当时 AnySearch 为什么放弃""guard 提速怎么改的"),我按主题从日志/文档库定向复原。
|
||||
3. **本包 + 文档库**:本包已覆盖该会话的工作主线与全部结论;细节的单一来源在 `dsh-server-docs/` 对应档案(70 / 73 / 64 / BRIEF / 03-路线图)。
|
||||
Reference in new issue
Block a user