跳转至

旧版 T3 Code 的会话

在您首次启动 V2 时,T3 Code 会将 V1 数据库 state.sqlite 复制到相同数据目录下的 statev2.sqlite,并迁移该副本。您的会话会自动显示,完整的对话记录会根据需要导入。您无需运行导入命令。

V1 继续使用其原始数据库,而 V2 使用副本。数据库导入可以在 V1 处于打开状态时运行。再次打开 V2 会恢复您的 V2 历史记录。复制只会进行一次:之后任一版本中的对话和更改都不会同步到另一版本。设置、附件和工作区文件仍然共享。

V2 桌面应用使用独立的浏览器配置文件,因此浏览器 Cookie 和缓存不会从 V1 继承。您可能需要重新登录在应用内打开的网站。首次启动时,V2 桌面应用会从 V1 复制暂存的提示词、未发送的草稿、布局和主题。之后您在 V2 中所做的任何更改都只会保留在 V2 中。

迁移后的会话会保留其标题、项目、提供商和模型选择、权限和交互模式、分支或工作树、归档状态、结算状态、稍后提醒和置顶状态,以及关联的拉取请求。T3 Code 还会迁移用户和助手消息、它们的时间戳以及受支持的附件。大型历史记录可能会在服务器导入对话记录时分阶段显示。

迁移不会重建旧提供商的实时会话。它也不会将旧的运行记录、检查点和差异、工具活动、审批历史或提议的计划历史转换为新格式。即使会话文本存在,这些项目也可能在迁移后的时间线中缺失。

继续迁移后的会话

第一条新消息会启动一个全新的提供商会话。T3 Code 使用与提供商切换相同的交接预算来选择完整的用户和助手消息。被省略的文本仍保留在会话中,智能体可以检索到。迁移会保留其单独的 32,000 个字符恢复摘录;该摘录和交接内容都不会替代完整导入的对话记录。

在继续一个较长或重要的会话之前,请阅读最近的对话记录,并在您的下一条消息中包含智能体仍然需要的任何较早需求。当旧对话包含相互冲突的指令时,新建一个会话并粘贴简短的交接内容也是一个不错的选择。

保留恢复副本

T3 Code 目前没有导出整个会话的命令。在进行重大服务器更新之前,请停止服务器并将其 userdata 目录复制到安全位置。默认位置是 ~/.t3/userdata;使用 --base-dir <path> 启动的服务器则使用 <path>/userdata。

如果迁移后的对话记录未出现在应用中,请保持该副本不变。您无需针对该副本启动服务器即可检查旧记录:

sqlite3 -readonly /path/to/recovery-copy/state.sqlite

在 SQLite 提示符下,列出最近的旧版会话:

.headers on
.mode tabs
SELECT thread_id, title, updated_at
FROM projection_threads
ORDER BY updated_at DESC;

然后打印一条对话记录,将 <thread-id> 替换为第一个查询中的值:

SELECT role, text, created_at
FROM projection_thread_messages
WHERE thread_id = '<thread-id>'
  AND role IN ('user', 'assistant')
ORDER BY created_at, message_id;

只打开复制出的数据库。不要编辑它,也不要让更新或更旧版本的服务器指向您的恢复副本。如果受影响的环境是远程环境,请在运行该环境的机器上创建并检查副本。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 t3/t3code