跳转至

更新 T3 Code

您使用的应用与运行代理的服务器可以位于不同的机器上。当服务器落后于您的 Web 或桌面应用时,侧边栏底部的更新按钮以及设置 → 环境会提供更新选项。

立即全部更新

侧边栏底部的更新按钮一步即可更新所有已连接的机器。它先更新过时的提供程序,然后更新落后的服务器,最后更新您正在使用的桌面应用。服务器会更新到您的桌面应用正在安装的版本,或您的 Web 应用的版本。后台服务会保持其当前的发布渠道。远程桌面应用会从其自身的渠道安装最新版本。将鼠标悬停在按钮上可查看它将更新的内容。

运行期间,按钮会变宽以显示进度。它会指出一台耗时比平时更长的机器,并为失败的服务器提供重试选项。点击可查看每台机器。桌面应用会在每台服务器都开始自身重启后,经过短暂倒计时再重启。选择稍后可继续工作,并在准备好后从更新按钮重新启动。仍在重启的服务器会自行完成重启,桌面应用重启后按钮仍会显示该服务器。

每台服务器都会在重启前检查其是否能安装该版本。如果某台服务器尚无法获取该版本,其更新将失败,服务器会继续运行,您可以重试。确认对话框会列出它跳过的每台机器及原因,例如机器离线或需要手动更新。对于这些情况,请使用设置 → 环境。

如果桌面应用以旧版本重启,T3 Code 会提示您更新未生效。即使其他设备请求,它也不会自行重新安装该版本。请在该机器上使用更新按钮重试。

确认对话框会统计重启将中断的运行中线程数,以及之后有多少线程可以恢复。请参阅下方的重启后继续线程。

在 Stable 和 Nightly 之间切换

在桌面应用中,更改设置 → 关于 → 更新轨道。T3 Code 会显示它将移动的每台已连接机器以及跳过的机器,然后一步完成移动。远程服务器会在新轨道上安装最新版本。远程桌面应用会在新轨道上重新安装。本应用最后重新安装。您的线程、设置和数据都会保留。

后台服务无法远程移动到较旧的版本。当 Stable 版本比其 Nightly 版本更旧时,请在该机器上运行 t3 update --channel stable --allow-downgrade。

如果某台机器的数据库已包含目标版本不支持的更改,或 T3 Code 无法确认其是否支持,则该机器的切换会被阻止。对话框会说明原因:当某台机器的版本过旧而无法检查时,先在其当前轨道上更新该机器;或者等待目标轨道包含这些更改。运行桌面应用的 Mac 必须在该 Mac 上切换。

即使切换未完成,每台机器也会保留新轨道,但它只能通过切换来移到该轨道。更新轨道会显示仍有多少台机器运行其他轨道。查看会打开同一个对话框并重新检查。

更新前须知

服务器更新会重启连接,并可能中断正在运行的代理和终端命令。已保存的线程、设置和项目文件会保留。

设置 → 维护 → 重启后继续线程 默认开启。它会在更新、崩溃或机器重启后恢复受支持的活动线程。更改会保存到支持此设置的已连接环境;请先更新较旧的服务器。如果受支持的环境曾离线或具有不同的值,请在它连接后使用设置中的全部应用。T3 Code 必须在该机器上重新启动;此设置不会启用自动启动。

终端命令仍可能被中断,没有保存提供程序恢复状态的线程需要一条新消息。一个线程若在结束自身回合后,正在等待子代理、后台任务,或代理表示正在等待的命令或监视器,那么当这些工作停止时,它会被唤醒并被告知。其他后台 shell 和监视器(例如开发服务器及其看门狗)不会唤醒它;线程会在您发送下一条消息时得知它们的情况。当线程等待您的批准、回答或密钥,或处于已归档、已休眠或已结束状态时,它不会被恢复。连续自动恢复三次后,线程会等待您的下一条消息。

来自先前编排系统的更新会保留对话记录,但无法将所有类型的运行时历史都带入新版本。在继续重要的旧线程之前,请阅读旧版 T3 Code 中的线程。

当版本不匹配时

客户端和服务器必须使用相同的编排协议。如果它们不一致,连接将被拒绝,而不是半升级状态下运行:

  • 比服务器更新版本的应用会在连接前被阻止,并显示通知,告知您更新通知中所指明机器上的 T3 Code。
  • 比您的应用更新版本的服务器会以一条更新消息拒绝连接。

更新通知所指明的那一侧,然后重新连接。

更新已连接的服务器

提供的操作取决于服务器的运行方式:

操作 做法
更新服务器 在安装并重新连接期间保持客户端打开。受支持的后台服务可在远程更新。对于桌面托管的服务器,此操作还会关闭并重新启动主机上的桌面应用。
更新桌面应用 更新运行服务器的机器上的桌面应用,然后在需要时重新打开它。
复制更新命令 在指定主机上运行该命令,以更新检测到的全局 npm 安装,然后使用您常用的选项重启服务器。
复制重启命令 停止命令行服务器所在主机上的服务,并使用复制的命令重新启动,保留您常用的子命令和选项。此操作不会更新已安装的 t3 命令。

在主机上运行:

t3 update <client-version>

将 <client-version> 替换为通知中显示的版本。该命令在重启后台服务前会询问您;如果选择不重启,请在准备好后运行 t3 service restart。对于您手动启动的服务器,请停止它,然后使用您常用的选项(如 --host 或 --tailscale-serve)重新启动。

如果您使用 npx 运行服务器,而不是已安装的 t3,则主机上无需更新任何内容:停止服务器,然后使用相同的子命令和选项,以 npx t3@<client-version> 方式重新启动它。

如果更新失败

请保持客户端打开,直到它重新连接或报告失败。服务更新失败时可能会回滚到之前的版本。如果更新仍然失败:

  1. 重试所提供的操作一次。
  2. 确认您更新的是服务器的机器,而不仅仅是您正在使用的设备。
  3. 对于命令行服务器,请停止它,然后重新启动通知中显示的确切版本。

同一时间只能有一个服务器使用同一个 T3 主目录。如果启动时报告另一个服务器拥有该目录,请先停止该服务器再重试,或者使用单独的主目录并与正在运行的服务器配对。

macOS 应用在 Alpha 更新后未重新打开

更新较旧的 T3 Code (Alpha) 安装可能会将其替换为 T3 Code (Beta),但不会重新打开应用。请从“应用程序”(Applications)文件夹中打开 T3 Code (Beta),或运行:

open "/Applications/T3 Code (Beta).app"

如果旧的 Dock 快捷方式无法再打开应用,请将其移除,然后从“应用程序”(Applications)文件夹中重新添加 Beta 应用。

如果桌面应用无法启动

如果桌面应用的服务器在启动时持续失败,T3 Code 会显示一个“T3 Code could not start”窗口,而不是打开应用。如果有较新的版本可用,请选择 更新 进行安装。如果没有,该窗口会提供指向您电脑上最后成功启动的版本的链接。下载并安装该版本以恢复。使用 复制详细信息 将错误包含在错误报告中。

注册表和代理

每台服务器都会通过其自身的 npm 检查 T3 Code 版本以及通过 npm 安装的提供方,因此这些检查会使用 npm 配置的注册表、身份验证和代理设置。通过 Homebrew 或 pnpm 安装的提供方则会通过这些工具进行检查。 请在服务器所在的机器上配置 npm。如果无法访问该注册表,版本会显示为不可用;T3 Code 不会转而尝试公共注册表。 没有 npm 的机器会直接检查公共 npm 注册表。

更新提供方

设置 → 提供方 会显示所选环境的提供方更新。全部更新 会一次更新所有已连接环境中的每个过时提供方。将鼠标悬停在它上面即可查看它将更新哪些提供方。如果某个提供方的任何已启用且过时的实例只提供手动更新命令,或者其实例使用不同的更新命令(例如两个实例运行不同的 CLI 安装),则该提供方会被排除在外。请手动更新这些提供方,或将提供方的每个实例指向同一个 CLI。

提供方 CLI 更新成功后,T3 Code 会使用该提供方自身的配置,为其每个已启用实例刷新模型发现。已连接的客户端会自动收到刷新后的目录。必须启用提供方更新检查才能下载最新的 T3 Code 模型目录。

提供方更新不会重启正在进行的对话。现有会话可以继续使用之前的 CLI,直到该会话结束。如果发现失败,请检查提供方状态并再次刷新。

移动端更新

要从手机更新环境,请打开 设置 → 环境 并选择该环境。检查更新 会查找该环境当前发布频道上的最新版本。在环境更新并重新连接期间,请保持应用打开。无法远程更新的主机则会改为显示在机器上进行更新的说明。

同一页面还允许您刷新提供方状态和更新受支持的提供方。这些控制需要已连接的环境以及操作该环境的权限。提供方更新检查和重启续传偏好位于 设置 → 维护 中。如果提供方更新检查已禁用,请先在那里启用,再刷新以查找较新的版本。该设置同时控制 T3 Code 是否下载模型目录更新,因此如果关闭它,新模型可能不会出现,直到您启用它并刷新提供方状态。

像往常一样安装 App Store 或 Google Play 的版本。移动应用还可以在后台下载更新,并在您下次离开应用时应用这些更新。它会在重启前保存草稿和排队的消息。如果您长时间保持应用打开,它可能会要求立即安装;选择 稍后 会将更新排队等待下一个合适的时机。

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