更新 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 命令。 |
在主机上运行:
将 <client-version> 替换为通知中显示的版本。该命令在重启后台服务前会询问您;如果选择不重启,请在准备好后运行 t3 service restart。对于您手动启动的服务器,请停止它,然后使用您常用的选项(如 --host 或 --tailscale-serve)重新启动。
如果您使用 npx 运行服务器,而不是已安装的 t3,则主机上无需更新任何内容:停止服务器,然后使用相同的子命令和选项,以 npx t3@<client-version> 方式重新启动它。
如果更新失败¶
请保持客户端打开,直到它重新连接或报告失败。服务更新失败时可能会回滚到之前的版本。如果更新仍然失败:
- 重试所提供的操作一次。
- 确认您更新的是服务器的机器,而不仅仅是您正在使用的设备。
- 对于命令行服务器,请停止它,然后重新启动通知中显示的确切版本。
同一时间只能有一个服务器使用同一个 T3 主目录。如果启动时报告另一个服务器拥有该目录,请先停止该服务器再重试,或者使用单独的主目录并与正在运行的服务器配对。
macOS 应用在 Alpha 更新后未重新打开¶
更新较旧的 T3 Code (Alpha) 安装可能会将其替换为 T3 Code (Beta),但不会重新打开应用。请从“应用程序”(Applications)文件夹中打开 T3 Code (Beta),或运行:
如果旧的 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