返回 DeepSeek-Reasonix
legacy-draft-retirement.md
根目录 / docs / legacy-draft-retirement.md
1 # Retired workspace drafts / 停用旧工作区草稿
2
3 Desktop no longer offers the previous workspace-draft workflow. This applies
4 equally to empty drafts, settings-only drafts, unsent content and unfinished
5 draft submissions. There is no project badge, draft page, recovery notice,
6 automatic migration or replay. New Conversation and navigation use formal
7 sessions directly, without waiting for or updating the old draft store.
8
9 Existing `desktop/drafts-v1.sqlite` files are left in place and are not read by
10 the normal application lifecycle. This is a product retirement, not a storage
11 rewrite: historical compatibility implementations remain available for fixture
12 verification, but are disconnected from the current application flow. Downgrade
13 to an older binary can still expose that binary's own draft behavior.
14
15 Already-created formal sessions and their chat history are retained. Current
16 formal-session input lives in `desktop/session-ui-v1.sqlite` and still saves
17 across switches/restarts. The shell exit callbacks now belong directly to that
18 input owner, preserving attachment completion, save-error exit veto and resumed
19 editing after a cancelled exit.
20
21 | Contract | Old data | Current behavior | Previous-version behavior |
22 | --- | --- | --- | --- |
23 | Draft SQLite | File retained unchanged | No lifecycle reads, migration, reconciliation or UI entry | Existing old reader/writer format unchanged |
24 | Formal input SQLite | Existing inputs retained | Normal save, conflict handling and exit barrier | Format unchanged |
25 | Session / workspace registry | Formal sessions and history retained | Normal creation and navigation | Format unchanged |
26 | Shell exit hooks | Historical callback names retained | Flush only formal input | Shell/renderer callback contract unchanged |
27
28 Regression coverage checks formal creation and saved-tab restore against a
29 corrupt historical draft database, dropping unfinished draft presentation while
30 retaining formal history, and formal input's attachment/save exit barrier.
31 Retirement also applies when saving reconciled tab preferences fails: the
32 fallback must not resurrect draft operation ownership, and an unpersisted
33 identity repair must not start a runtime.
34 Workspace-identity conflicts retain formal sessions for repair, including empty
35 ones. Saved-tab restore no longer runs the retired empty-session cleanup or
36 loads its draft-store evidence.
37 The old badge and draft-composer override assertions were removed because those
38 UI contracts are retired. Historical draft runtime fixtures use the same
39 `draft-op-` operation namespace as the old production writer.
40
41 ## 中文
42
43 旧工作区草稿全部停用,不再区分是否包含文字或设置。项目旁不再显示“旧版草稿”,
44 也没有独立草稿页面、恢复提示或自动迁移。旧的未发送内容和未完成草稿提交不再
45 恢复或重发。新建与切换会话直接走正式会话流程,不依赖旧草稿数据库是否可读。
46
47 旧数据库文件留在原处,当前应用生命周期不读取、不改写。兼容实现仍供历史夹具
48 验证使用,但已从当前产品流程断开。降级到旧客户端仍可能看到旧客户端自己的
49 草稿行为。已创建的正式会话及聊天记录不变;正式会话的新输入保存功能继续保留。
50
51 正常退出仍等待新版输入及附件保存,保存失败保留窗口;取消退出后继续编辑。
52 数据库、会话、工作区和 Shell 回调格式均未改变。
53
54 回归覆盖旧草稿库损坏时的新建和恢复、未完成草稿入口的移除、正式聊天记录保留,
55 以及新版输入与附件的退出保存。旧草稿徽标和编辑器覆盖逻辑的断言随功能停用移除;
56 历史运行时夹具使用与原生产代码一致的 `draft-op-` 操作标识。
57 标签页配置写回失败时也不恢复旧草稿操作;尚未保存成功的身份修复不得自动启动运行时。
58 工作区身份冲突时保留正式会话供修复,包括空会话;标签页恢复不再触发旧空会话清理,
59 也不再通过该清理流程读取旧草稿库。
60
60 lines MARKDOWN