文档订正:远程状态认知纠错(refs/remotes 写入不落盘)+ 交接清单过期基线
T-8/T-9 提交时两次依据 git branch -r / branch -vv 判定「远程分支不见了」并向用户报警, 两次均为误报。本次深挖确认根因,并订正此前写入的错误表述。 - docs/memory/MEMORY.md 交接清单第 7 问重写: 本仓 .git/refs/remotes/** 写入不落盘 —— git update-ref refs/remotes/origin/X 返回 0、 reflog 也建了,但松散引用消失,且会把整个 refs/remotes/origin/ 目录删掉(含手工放进的文件); git fetch 报告 [new branch] ... -> origin/risk-control-agent 后同样不落盘。 故此前记的「stale tracking ref,git fetch 即恢复」是错的,fetch 并不修复。 对照证据:写 refs/heads/** 完全正常;同一 git(2.55.0.windows.3)在 /tmp 新建仓库里写 refs/remotes/** 完全正常 → 只此仓库特有;已排除外部进程删目录(marker 静置存活)、 重解析点(lstat FILE_ATTRIBUTE_REPARSE_POINT=False)、hooks / commondir / 浅克隆。 补绕过方案:packed-refs 是可靠存储,手工追加 <sha> refs/remotes/origin/<name> 后 git branch -r 立即正常(还原=删掉该行)。 补影响面:提交 / fetch 抓对象 / push 均不受影响(git push --dry-run 实测 fffb78a..d0097d6 成功),仅影响本地显示与上游跟踪。 顺手订正验证条目里过期的「516 passed / 3 skipped」→ 697,及第 73 行同款旧表述。 - docs/memory/2026-09-10.md 追加排查记录:7 条可复现证据 + 三步对照实验 + 绕过方案 + 影响面。
This commit is contained in:
@@ -388,3 +388,45 @@ T-11(`core_tools` 与 `sum_trades_on_date` 汇总去重 · 依赖 T-8 已解
|
|||||||
skill `design-doc-selfcheck` → **v1.2.0**:新增 **「二补 · 格式契约最低三问」** + **铁律 6(格式契约铁律)**:
|
skill `design-doc-selfcheck` → **v1.2.0**:新增 **「二补 · 格式契约最低三问」** + **铁律 6(格式契约铁律)**:
|
||||||
**凡 `str(Decimal)` 直接出网的字段,先问「这个字段的展示位数写在哪」—— 没答案就是契约缺位;
|
**凡 `str(Decimal)` 直接出网的字段,先问「这个字段的展示位数写在哪」—— 没答案就是契约缺位;
|
||||||
存储精度 ≠ 展示精度;多条产出路径必须共用一个格式出口 + 写逐字节相等断言。**
|
存储精度 ≠ 展示精度;多条产出路径必须共用一个格式出口 + 写逐字节相等断言。**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 深夜 · 收尾:**`refs/remotes` 写入不落盘**根因排查(推翻此前「stale ref」结论)
|
||||||
|
|
||||||
|
**背景**:提交 T-8/T-9 时两次依据 `git branch -r` / `git branch -vv` 判定「远程分支不见了」并报警,
|
||||||
|
两次均**误报**(用户被迫去仓库核实两次)。用户指令:「你先改问题……改完确认没问题再提交」→ 先做根因排查。
|
||||||
|
|
||||||
|
### 已确认事实(可复现)
|
||||||
|
|
||||||
|
| # | 事实 | 证据 |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| 1 | **远程健在** | `git ls-remote --heads origin` → `refs/heads/risk-control-agent` = `fffb78a`;另有 6 个分支 |
|
||||||
|
| 2 | **fetch 抓取正常,引用不落盘** | `git fetch origin` 报 `* [new branch] risk-control-agent -> origin/risk-control-agent`,`FETCH_HEAD` 写对;`.git/refs/remotes/` 仍为空 |
|
||||||
|
| 3 | **写 remotes 会删整个 `origin` 目录** | `git update-ref refs/remotes/origin/X <sha>` → **EXIT=0**、reflog 建了,但松散引用消失,**连手工 `echo >` 进去的文件一起被删** |
|
||||||
|
| 4 | **只 remotes namespace 有问题** | 写 `refs/heads/tmpX` 时,放在 `refs/remotes/origin/` 的 marker **存活**;写 remotes 才触发删除 |
|
||||||
|
| 5 | **只此仓库特有** | 同一 git(`2.55.0.windows.3`)在 `/tmp` 新建仓库写 `refs/remotes/origin/probeX` **完全正常** |
|
||||||
|
| 6 | **排除外部进程** | marker 静置 6 秒 + 跑只读 git 命令均存活,**只有写 remotes 的那一下才被删** |
|
||||||
|
| 7 | **排除目录属性** | Python `lstat` 查 `refs/remotes`:**非重解析点**(`FILE_ATTRIBUTE_REPARSE_POINT = False`);无 hooks、无 commondir、非浅克隆 |
|
||||||
|
|
||||||
|
**根因未定位**(倾向 git 写 remotes 引用时被本地环境干预)。**此前的记录写「stale ref,`git fetch` 即恢复」是错的** —— fetch 并不修复。
|
||||||
|
|
||||||
|
### ✅ 绕过方案(已验证)
|
||||||
|
|
||||||
|
`.git/packed-refs` 是**可靠存储**(`origin/dev`、`origin/main` 一直从这里读到)。
|
||||||
|
手工追加 `fffb78a11c7d4e05f2aae53c76ceec3ad5d7d33c refs/remotes/origin/risk-control-agent` 后:
|
||||||
|
`git branch -r` 立即显示 `origin/risk-control-agent`、`git rev-parse` 可解析。还原 = 删掉该行。
|
||||||
|
|
||||||
|
### 影响面(重要)
|
||||||
|
|
||||||
|
- **不受影响**:提交(`refs/heads/**` 正常)、`git fetch` 抓对象、**push**
|
||||||
|
(`git push --dry-run origin risk-control-agent:refs/heads/risk-control-agent` 实测 `fffb78a..d0097d6` 成功)。
|
||||||
|
- **受影响**:仅本地「显示 / 上游跟踪」——`git branch -r`、`git branch -vv`、`git pull`(无参) 的默认上游推断。
|
||||||
|
|
||||||
|
### 状态
|
||||||
|
|
||||||
|
本地 HEAD `d0097d6`(T-9)· 领先远程 `fffb78a` **9 个提交** · 工作区干净 · 探针与临时文件已全部清理。
|
||||||
|
|
||||||
|
### 文档回写
|
||||||
|
|
||||||
|
`.workbuddy/memory/MEMORY.md`(远程铁律条**重写**,含 7 条证据 + 绕过方案)·
|
||||||
|
`docs/memory/MEMORY.md`(交接清单**第 7 问重写** + 顺手订正验证条目里过期的「516 passed」→ **697** + 第 73 行旧表述订正)· 本条。
|
||||||
|
|||||||
+10
-3
@@ -70,7 +70,7 @@
|
|||||||
|
|
||||||
**下一步开发(见 TODO):** **模块侧交付完毕(2026-09-07:全量 pytest 482 绿 + 接口实调验收通过——suitability/check 阻断+放行、simulate/trade 阻断、三条鉴权边界 401/403/403 契约零偏差;`risk-m1~m4` tag 齐)。合并 main 已移交合并执行人,操作手册《docs/项目框架设计/合并注意事项-风控模块并入main.md》(含基底锁定/20 冲突裁决/14 静默文件/三硬伤/合并后必测,实测数据编制)。模块侧开放项:chat 链路 risk_suitability_log.actor_id 落 SYSTEM 待评估 / 前端 React 多 Agent 入口(`web/` 未 init,归属待拍板)。**演示走查按 `docs/项目框架设计/演示SOP-风控模块.md`(debug 头通道仍有效;JWT 通道签发用 `scripts/dev/issue_dev_token.py`;演示库已按 AL-08 expires_at 新口径重灌)。知识库入库:`python scripts/kb/build_kb.py`(先启 Ollama;**Milvus 数据路径必须纯英文**——faiss 不支持中文路径,本机 .env 已配 C:/Users/YUAN/.jinrong/milvus/)。
|
**下一步开发(见 TODO):** **模块侧交付完毕(2026-09-07:全量 pytest 482 绿 + 接口实调验收通过——suitability/check 阻断+放行、simulate/trade 阻断、三条鉴权边界 401/403/403 契约零偏差;`risk-m1~m4` tag 齐)。合并 main 已移交合并执行人,操作手册《docs/项目框架设计/合并注意事项-风控模块并入main.md》(含基底锁定/20 冲突裁决/14 静默文件/三硬伤/合并后必测,实测数据编制)。模块侧开放项:chat 链路 risk_suitability_log.actor_id 落 SYSTEM 待评估 / 前端 React 多 Agent 入口(`web/` 未 init,归属待拍板)。**演示走查按 `docs/项目框架设计/演示SOP-风控模块.md`(debug 头通道仍有效;JWT 通道签发用 `scripts/dev/issue_dev_token.py`;演示库已按 AL-08 expires_at 新口径重灌)。知识库入库:`python scripts/kb/build_kb.py`(先启 Ollama;**Milvus 数据路径必须纯英文**——faiss 不支持中文路径,本机 .env 已配 C:/Users/YUAN/.jinrong/milvus/)。
|
||||||
|
|
||||||
**另(2026-09-10 待办)**:① **基金转换线**第 5 步进行中(**T-0~T-9 已完成、697 绿,下一步 = T-10(批次维护 · 回归风险最大)/ T-11(汇总去重)**;设计 + 开发计划均已闭环,入口 项目根 `交接文档.md` §B);② ~~架构改进线收尾~~ —— **2026-09-10 已闭环结项**:§7.2 七项手工冒烟补跑 **7/7 PASS**、冒烟残留按 SOP §2 重灌双库清除、全量 **510 passed** 复绿;**「`037ce7e` 未 push」的旧表述已作废**(实测 `git ls-remote`:远程 `risk-control-agent` = `fffb78a` = 本地 HEAD,`037ce7e` 在其祖先链上,早已推送;本地 `git branch -vv` 显示 `origin/risk-control-agent: gone` 只是远程跟踪引用失效,`git fetch` 即恢复,非远程分支被删)。入口 **项目根 `交接文档.md` §C**。
|
**另(2026-09-10 待办)**:① **基金转换线**第 5 步进行中(**T-0~T-9 已完成、697 绿,下一步 = T-10(批次维护 · 回归风险最大)/ T-11(汇总去重)**;设计 + 开发计划均已闭环,入口 项目根 `交接文档.md` §B);② ~~架构改进线收尾~~ —— **2026-09-10 已闭环结项**:§7.2 七项手工冒烟补跑 **7/7 PASS**、冒烟残留按 SOP §2 重灌双库清除、全量 **510 passed** 复绿;**「`037ce7e` 未 push」的旧表述已作废**(实测 `git ls-remote`:远程 `risk-control-agent` = `fffb78a` = 本地 HEAD,`037ce7e` 在其祖先链上,早已推送;本地 `git branch -vv` 显示 `origin/risk-control-agent: gone` 是本仓 `refs/remotes/**` 写入不落盘所致(见交接清单第 7 问,**不是**「`git fetch` 即恢复」的普通 stale ref),非远程分支被删)。入口 **项目根 `交接文档.md` §C**。
|
||||||
|
|
||||||
**禁止(改代码前必记):** Core 正式 C1~C5 不可被画像覆盖 · 审计表只 INSERT · 代理人草稿不外发 · 仅 R-02 可阻断交易 · 四 Agent 不互调 LLM。
|
**禁止(改代码前必记):** Core 正式 C1~C5 不可被画像覆盖 · 审计表只 INSERT · 代理人草稿不外发 · 仅 R-02 可阻断交易 · 四 Agent 不互调 LLM。
|
||||||
|
|
||||||
@@ -199,8 +199,15 @@ RBAC 联调账号:scripts/dev/rbac-seed-reference.md
|
|||||||
2. 改动属于 api / service / tool / repository 哪一层?
|
2. 改动属于 api / service / tool / repository 哪一层?
|
||||||
3. 是否需 customer_id 归属与 JWT RBAC?
|
3. 是否需 customer_id 归属与 JWT RBAC?
|
||||||
4. Core 是模拟库只读还是 agent 库读写?
|
4. Core 是模拟库只读还是 agent 库读写?
|
||||||
5. 如何验证?(`python -m pytest` 全量(当前 **516 passed / 3 skipped**,基线 510)· uvicorn 启动 + /health · SQL / sync 脚本 · 对照 REQUIREMENTS 验收列)
|
5. 如何验证?(`python -m pytest` 全量(当前 **697 passed / 3 skipped**,基线 510)· uvicorn 启动 + /health · SQL / sync 脚本 · 对照 REQUIREMENTS 验收列)
|
||||||
6. **当前有哪两条并行线?**(① 风控/架构改进线:**已结项**(510 基线绿、§7.2 七项冒烟 7/7 PASS、`037ce7e` 已核实早已推送);② **基金转换线**:设计闭环,**第 5 步进行中 —— T-0~T-9 已完成(697 passed),下一步 = T-10 / T-11**)——动代码前先确认自己属于哪条线,别混淆前置条件。
|
6. **当前有哪两条并行线?**(① 风控/架构改进线:**已结项**(510 基线绿、§7.2 七项冒烟 7/7 PASS、`037ce7e` 已核实早已推送);② **基金转换线**:设计闭环,**第 5 步进行中 —— T-0~T-9 已完成(697 passed),下一步 = T-10 / T-11**)——动代码前先确认自己属于哪条线,别混淆前置条件。
|
||||||
7. **远程分支到底还在不在?**(**在**。`git ls-remote --heads origin` 实测 `refs/heads/risk-control-agent` = `fffb78a`。⚠️ **判断远程存亡只能用 `git ls-remote`**;本仓本地远程跟踪引用会失效(`git branch -r` 只剩 `dev`/`main`、`git branch -vv` 显示 `gone`),那是 stale ref,`git fetch` 即恢复 —— 2026-09-10 **同日误报两次**,勿再踩。)
|
7. **远程分支到底还在不在?**(**在**。`git ls-remote --heads origin` 实测 `refs/heads/risk-control-agent` = `fffb78a`。⚠️ **判断远程存亡只能用 `git ls-remote`** —— 2026-09-10 **同日误报两次**,勿再踩。)
|
||||||
|
**本仓特有异常(2026-09-10 深挖确认,别误判为 stale ref)**:`.git/refs/remotes/**` **写入不落盘** ——
|
||||||
|
`git update-ref refs/remotes/origin/X <sha>` 返回 0,但松散引用消失,**且整个 `refs/remotes/origin/` 目录被删**
|
||||||
|
(含手工放进去的文件);`git fetch` 报 `[new branch] ... -> origin/risk-control-agent` 后同样不落盘。
|
||||||
|
**`git fetch` 并不能"恢复"**(此前这么记是错的)。
|
||||||
|
对照证据:写 `refs/heads/**` 完全正常;同一 git 在 `/tmp` 新建仓库里写 `refs/remotes/**` 完全正常 → 只此仓库特有。
|
||||||
|
**✅ 绕过**:`.git/packed-refs` 可靠 —— 手工追加 `<sha> refs/remotes/origin/<name>` 后 `git branch -r` 立即正常。
|
||||||
|
**不影响**提交 / fetch 抓对象 / push(`--dry-run` 实测 `fffb78a..d0097d6` 成功),**只影响本地显示与跟踪**。
|
||||||
|
|
||||||
大任务:FRAMEWORK/FLOW 与实现状态不符时先更新 memory 再编码(用户确认跳过除外)。
|
大任务:FRAMEWORK/FLOW 与实现状态不符时先更新 memory 再编码(用户确认跳过除外)。
|
||||||
|
|||||||
Reference in New Issue
Block a user