Skip to content

v0.11.0 — memory_move 跨层移动 + 脉络引导

Choose a tag to compare

@Max-Null Max-Null released this 20 Sep 17:14
· 28 commits to main since this release

Added

  • memory_move 工具(迭代设计 §3.2):把一条记忆移到另一层——global、self(当前工作区),或相对祖先(.. / ../..)。两个方向共用一个操作:向上提到祖先层或 global,向下把误放高层的降回它真正属于的工作区(global 里那 11 条 DSH/SSiD 生态经验正等着这一步)。记录保持 id,返回值报告移动后源层是否仍看得见它——约束从「禁止方向」换成「让后果可见」,因为移动的本意就是改变谁能看见。
  • GUIDANCE 补脉络引导(迭代设计 §3.1):记结论时一并记下它是怎么来的——为什么成立、什么场景把它逼出来。没有出处的结论像一把没有来历的尺子:看起来天经地义,而天经地义的东西最容易被机械套用。

内部

  • 抽出 locateWithKey():定位记录并带上它所在的层——locateRecord 只返回表,而移动必须知道来源层。
  • MemoryChange 增加 moved 事件(带 from / to)。
  • test/memory-move.spec.ts 7 例。测试隔离教训:造工作区的用例必须在自己的 mkdtemp 根下建树,绝不能往 tmpdir() 写记忆——那是所有 spec 的共同祖先,写一条进去,别的用例的工作区链就会走上去把它读进来,表现为一堆毫不相干的断言凭空多出一条记录。那不是泄漏,是祖先链在正常工作。