@@ -20,7 +20,9 @@ import type { ObjectType } from "./registry";
2020import { VIEW_MEMORY_PREFIX , readViewMemory , useViewMemory , viewMemoryKey , writeViewMemory } from "./useViewMemory" ;
2121
2222const SESSION_KEYS = [ "raw" , "tritrack" , "proof" , "cardflow" , "preview" ] as const ;
23- const NOTE_KEYS = [ "raw" , "cardflow" ] as const ;
23+ // 与注册表真源 `registry.ts` 的 `FROZEN_VIEW_KEYS.note` **逐字同步**(`evidence` = 批 8 T8 新增的
24+ // 「带证据三轨」视图键);漏掉它 ⇒ 该视图的记忆持久化路径在本件下**零覆盖**(批 8 T31 补)。
25+ const NOTE_KEYS = [ "raw" , "cardflow" , "evidence" ] as const ;
2426
2527/** 记录键集合的内存 `Storage` 桩(M5 要「全程键集合」这个观测面)。 */
2628function memoryStorage ( seed : Record < string , string > = { } ) : { storage : Storage ; keys : ( ) => string [ ] } {
@@ -122,6 +124,28 @@ describe("M1 初始值取记忆(有则取之、无则默认);写后重挂
122124 } ) ;
123125} ) ;
124126
127+ describe ( "M1 补 · 笔记第三视图键 `evidence`(批 8 T8 新增)的记忆路径" , ( ) => {
128+ it ( "`evidence` 是合法存值:读接受 → 挂载取回 → 写后重挂载恢复原键" , ( ) => {
129+ // 反向对照:夹具若漏了这个键,`readViewMemory` 会把它当垃圾值 ⇒ 头一条断言当场红
130+ const seeded = memoryStorage ( { "view:default:note" : "evidence" } ) ;
131+ expect ( readViewMemory ( "note" , NOTE_KEYS , seeded . storage ) , "`evidence` 必须被 `NOTE_KEYS` 接受" ) . toBe ( "evidence" ) ;
132+ expect ( shownKey ( noteProbe ( seeded . storage ) ) ) . toBe ( "evidence" ) ;
133+
134+ // 写入那半段 = hook 的 setter 调用的同一个 `writeViewMemory`(见文件头「诚实边界」)
135+ const written = memoryStorage ( ) ;
136+ writeViewMemory ( "note" , "evidence" , written . storage ) ;
137+ expect ( shownKey ( noteProbe ( written . storage ) ) ) . toBe ( "evidence" ) ;
138+ expect ( written . storage . getItem ( "view:default:note" ) ) . toBe ( "evidence" ) ;
139+
140+ // 夹具口径守卫:三键与注册表真源逐字相同(`evidence` 必须在场)
141+ expect ( NOTE_KEYS , "`NOTE_KEYS` 必须与 `FROZEN_VIEW_KEYS.note` 逐字相同(含批 8 T8 新增的 `evidence`)" ) . toEqual ( [
142+ "raw" ,
143+ "cardflow" ,
144+ "evidence" ,
145+ ] ) ;
146+ } ) ;
147+ } ) ;
148+
125149describe ( "M2 两类互不串(键带 objectType)" , ( ) => {
126150 it ( "写 session 不影响 note,反之亦然;两个键各自独立落盘" , ( ) => {
127151 const s = memoryStorage ( ) ;
0 commit comments