From 71e7762814580d32c9cbfef03732961ed3785321 Mon Sep 17 00:00:00 2001 From: iomgaa Date: Tue, 11 Aug 2026 00:46:01 -0400 Subject: [PATCH] =?UTF-8?q?docs(migrations):=20=E6=92=A4=E6=8E=89=E4=B8=80?= =?UTF-8?q?=E5=BC=A0=E7=A9=BA=E5=A4=B4=E6=94=AF=E7=A5=A8=E2=80=94=E2=80=94?= =?UTF-8?q?=E9=82=A3=E4=B8=AA=E3=80=8C=E4=B8=8D=E6=8F=90=E4=BE=9B=E6=81=A2?= =?UTF-8?q?=E5=A4=8D=E7=9A=84=E5=86=85=E5=AD=98=E5=AE=9E=E7=8E=B0=E3=80=8D?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 0003 的否决方案那一节定过要给一个明确命名的、不提供恢复的存储实现,好让「我不要恢复」 成为一次看得见的选择。那个实现至今没写,polyloop.stores 里只有 JsonlRunStore,而 dissect 那份迁移文档一直在叫人去装配它。 调研 dissect 迁移面时撞出来的。对 dissect 不构成阻塞(它本来就要恢复能力),但一份指着 不存在的类的迁移指引,读的人会先怀疑自己装错了包。 Co-Authored-By: Claude Opus 5 (1M context) --- research-wiki/migrations/dissect.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/research-wiki/migrations/dissect.md b/research-wiki/migrations/dissect.md index 2591e0b..6f263a4 100644 --- a/research-wiki/migrations/dissect.md +++ b/research-wiki/migrations/dissect.md @@ -207,9 +207,14 @@ PolyLoop 的日志按运行标识分文件(`../design/0011-jsonl-run-store.md` 的六维主键第二次调用循环。迁移后这条路要改成调「接着跑」而不是「再跑一次」——按 `../design/0003` 的前置条件,用同一个运行标识第二次调「跑一次」会直接报错。 -**要选一个存储实现并给它一个目录。** 存储接缝是必填的,不传就装配不起来。dissect 如果暂时 -不要恢复能力,要显式装配那个明确命名的、不提供恢复的内存实现——「我不要恢复」是一次 -看得见的选择,不是一个可以忘记传的参数。 +**要选一个存储实现并给它一个目录。** 存储接缝是必填的,不传就装配不起来。dissect 要恢复 +能力,所以装 `JsonlRunStore`,给它一个目录。 + +**「不提供恢复的内存实现」现在不存在。** `../design/0003` 的否决方案那一节定过:存储接缝 +必填,另外给一个明确命名的、不提供恢复的实现,好让「我不要恢复」成为一次看得见的选择而不是 +一个可以忘记传的参数。那个实现至今没写,`polyloop.stores` 里只有 `JsonlRunStore`。这一条对 +dissect 不构成阻塞——它本来就要恢复——但**不要照着那句话去找一个不存在的类**。真需要它的 +那天再补,补的时候要连同契约套件一起过。 **模型绑定要从关键字参数还原。** dissect 现在给每次调用传五个关键字参数(账本、轮次、 阶段、题目、尝试序号)。库这边接的是一个字符串映射,所以适配器要做一次还原(把账本那个