T3 Code 非官方中文翻译不是官方产品,也不是 T3 Tools 官方文档。源提交 d2c25950b4d9英文原文GitHub 源文件
Skip to content

来自旧版 T3 Code 的对话线程 ​

首次启动 V2 时,T3 Code 会把 V1 数据库 state.sqlite 复制为同一数据目录中的 statev2.sqlite,并迁移这份副本。你的对话线程(thread)会自动出现,完整记录会按需导入。你不必运行导入命令(command)。

V1 继续使用原来的数据库,V2 使用这份副本。数据库导入可以在 V1 处于打开状态时进行。再次打开 V2 会接上你的 V2 历史。复制只进行一次:之后任一版本里的对话和更改都不会同步到另一版本。设置、附件(attachment)和工作区文件仍然共用。

V2 桌面应用使用单独的浏览器配置文件,因此浏览器 Cookie 和缓存不会从 V1 沿用过来。对于在应用内打开的网站,你可能需要重新登录。V2 桌面应用在首次启动时,会从 V1 复制已暂存的提示、未发送的草稿、布局和主题。此后你在 V2 里所做的更改都留在 V2。

迁移后的对话线程会保留标题、项目(project)、提供方(provider)与模型选择、权限模式(permission mode)与交互模式(interaction mode)、分支或工作树(worktree)、归档状态、结算状态、延后与置顶状态,以及关联的拉取请求(pull request)。T3 Code 还会带来用户与助手的消息、它们的时间戳,以及受支持的附件。在服务器导入记录的过程中,较长的历史可能会分阶段显示出来。

迁移不会重建旧提供方当时的活动会话(session)。它也不会把旧的运行记录、检查点(checkpoint)与差异、工具活动、批准历史或提议计划的历史转换成新格式。即便对话文本还在,这些内容也可能不会出现在迁移后的时间线里。

继续已迁移的对话线程 ​

第一条新消息会开始一个全新的提供方会话。T3 Code 使用与切换提供方相同的交接预算,选取完整的用户与助手消息。被省略的文本仍留在对话线程里,智能体可以取回。迁移还会另外保留自己的一段 32,000 字符恢复摘录;无论是这段摘录还是交接,都不会取代已经完整导入的记录。

在继续一条较长或重要的对话线程之前,先读一遍最近的记录,并把智能体仍然需要的较早要求写进你的下一条消息。如果旧对话里含有相互冲突的指示,另开一条对话线程并粘贴一段简短交接,也是一个好选择。

保留一份恢复副本 ​

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

如果应用里缺少某份已迁移的记录,请保持该副本不被改动。你可以查看旧记录,而不必对着它启动服务器:

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

在 SQLite 提示符处,列出最近的旧版对话线程:

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

然后打印一份记录,把 <thread-id> 替换成第一条查询中的值:

sql
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;

只打开那份复制出来的数据库。不要编辑它,也不要把较新或较旧的服务器指向你的恢复副本。如果受影响的环境(environment)在远程,请在运行该环境的那台机器上制作并查看这份副本。

非官方译文 · 源提交 d2c25950b4d9 · 不代表 T3 Tools