docs(desktop): record why the legacy item key space has no outline identity

The sweep for the record-identity defect found a second producer of user item
ids: the windowed legacy store keys them `he:<entryId>`, in a different key
space from the snapshot protocol's record ids. Those tabs never install a
snapshot, so they never have an outline and the rail stays in its loaded-turn
mode; returning no identity is correct there, and guessing one could match the
wrong turn.
This commit is contained in:
SivanCola committed 2026-09-14 18:20:14 +08:00
1 parent 4b832fbdd5
commit 06f6de5dc7
1 file changed
+6 -1
+6 -1
View File
@@ -25,7 +25,12 @@ export function recordIdOf(item: LoadedTurnNode): string | undefined {
if (item.id.startsWith(RECORD_ITEM_PREFIX)) return item.id.slice(RECORD_ITEM_PREFIX.length);
// A committed row already carries the outline's own form.
if (item.id.startsWith("m:")) return item.id;
return item.messageId ? `m:${item.messageId}` : undefined;
if (item.messageId) return `m:${item.messageId}`;
// `he:<entryId>` belongs to the windowed legacy store, whose ids live in a
// different key space and which never has an outline: a tab on that path
// never installs a snapshot, so the rail stays in its loaded-turn mode.
// Reporting no identity is correct — guessing one could match the wrong turn.
return undefined;
}
/** Mounted user turns indexed by both stable identities they can be found by. */