返回 DeepSeek-Reasonix
purge-topic-retirement.md
根目录 / docs / purge-topic-retirement.md
1 # Purged topic retirement / 永久删除后的条目退役
2
3 After archive, the canonical session still owns its sidebar topic. Previously,
4 emptying the trash removed that membership and presentation but left the topic
5 metadata behind. The sidebar then treated each leftover topic as a new empty
6 conversation. Opening it could create another session.
7
8 归档后,正式会话仍持有侧栏条目的归属信息。此前清空回收站会移除成员关系和展示信息,
9 却留下条目索引,导致侧栏将每个残留条目当成新的空会话;再次点击还可能创建新会话。
10
11 Purge completion now retains the topic ID and workspace ID in its existing
12 operation receipt before removing live presentation. Sidebar metadata reads
13 exclude topics owned only by deleted sessions; opening a stale placeholder also
14 rejects that identity. Surviving sessions and pending creations sharing the topic
15 keep it available. No conversation content is retained by this change.
16
17 现在永久删除会在现有操作记录中保留条目 ID 和工作区 ID,再移除正式展示信息。
18 侧栏排除仅属于已删除会话的残留条目,打开残留空条目也会被拒绝。
19 共享该条目的存活会话或待完成创建仍可正常显示。本次修改不会额外保留会话内容。
20
21 ## Compatibility / 兼容性
22
23 | Field or format / 字段或格式 | Old-data behavior / 旧数据 | New-reader behavior / 新版读取 | Previous-reader behavior / 旧版读取 | Conclusion / 结论 |
24 | --- | --- | --- | --- | --- |
25 | Registry v3 `Operation.WorkspaceID`, `Operation.Presentation.TopicID` | Fields already exist; old purge receipts may omit them / 字段已存在,旧删除记录可能缺失 | Retains minimal ownership on completion; reads exact committed operation evidence / 完成时保留最小归属,读取已提交记录中的精确证据 | Previous v3 code understands these fields but lacks the sidebar fix / 原 v3 能解析字段,但不具备侧栏修复 | No schema or RPC change; downgrade can reproduce the old UI bug / 不变更结构版本或 RPC,降级仍可能复现旧问题 |
26 | Deleted `desktop-manual-<hash>` session IDs | Manual creation persisted the same 32-hex suffix in `manual-<hash>` topic IDs / 手动创建的会话与条目使用相同的 32 位十六进制后缀 | Recovers exact ownership when old purge omitted presentation / 旧删除记录丢失展示信息时恢复精确归属 | Existing ID format unchanged / 不改变已有 ID | Old leftovers are hidden without rewriting user data / 无需重写用户数据即可隐藏旧残留 |
27 | Registry versions before v3 | Existing v3 migration boundary applies / 沿用已有 v3 迁移边界 | Existing upgrade and unknown-field preservation remain in force / 沿用升级与未知字段保留 | Existing older writers reject v3 / 更旧的写入方按原约定拒绝 v3 | No new downgrade boundary / 未新增降级边界 |
28
29 Old records without exact topic ownership are not guessed from titles or age.
30 Real sessions already created by earlier stale clicks are not automatically
31 deleted. This prevents removal of unrelated user-created empty conversations.
32
33 缺乏精确归属证据的旧记录不会按标题或时间猜测处理;此前点击残留条目已经创建出的
34 真实会话不会自动删除,以免误删用户主动创建的空会话。
35
36 ## Verification / 验证
37
38 - Reproduce four archived sessions followed by bulk trash purge in global and
39 project workspaces; assert no replacement rows or sessions after repeated
40 stale clicks, catalog warm-up, and cold restart with previous-writer records.
41 在全局及项目工作区复现四个会话归档后批量清空,验证反复点击、索引就绪、旧记录重启
42 均不会重新产生条目或会话。
43 - Preserve a surviving session sharing the topic and unrelated empty topics;
44 retire the topic after its final owner is purged.
45 保留共享条目的存活会话和无关空条目,最后一个所属会话删除后再退役。
46 - Verify purge receipt persistence, existing interrupted-purge recovery,
47 compatibility, and ordinary activation/listing with focused Go race tests.
48 验证删除记录持久化、中断恢复、兼容性,并对相关列表与打开流程执行 Go 竞态检测测试。
49
49 lines MARKDOWN