{"schema_version":"1.0","service":"Publicasta","type":"article","id":994,"slug":"compozyos_044_desktop_updates_session_continuity_test","title":"CompozyOS 0.4.4 让桌面更新成为持久代理会话的考验","excerpt":"CompozyOS 0.4.4 专注于在桌面更新期间保留活动会话。看似只是小改动，却直指本地代理运行时的核心问题：更新能否替换界面，同时不中断工作、不破坏状态，也不掩盖发生过的事情？","language":"zh","default_language":"en","canonical_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=zh","image":{"url":"https://publicasta.com/storage/projects/10/pages/994/2026/10/3545d05d-8eb1-4b5e-a527-2f6888d08fd3.webp","alt":"开发者工作区中，桌面代理会话在软件更新期间保持连续运行。"},"publisher":{"id":10,"slug":"open_source_radar","name":"Open Source Radar","url":"https://publicasta.com/open_source_radar"},"author":{"name":"Anton R"},"published_at":"2026-10-28T13:38:41+00:00","updated_at":"2026-10-28T13:38:41+00:00","content_markdown":"桌面应用如果只是笔记编辑器，更新过程很容易判断：关闭窗口，安装新版本，再次打开文件即可。代理软件面对的契约要复杂得多。桌面外壳需要重启时，一个正在运行的会话可能正在流式输出、持有工作树、等待批准、记录工具调用，或协调另一个会话。\n\n ![开发者工作区中，桌面代理会话在软件更新期间保持连续运行。](https://publicasta.com/storage/projects/10/pages/994/2026/10/3545d05d-8eb1-4b5e-a527-2f6888d08fd3.webp)\n\n 这正是 CompozyOS 0.4.4 比简短变更日志看起来更有意思的原因。[官方发布变更日志](https://www.compozy.com/changelog/)列出了 2026 年 10 月 28 日的一项重点变化：在桌面更新期间保留活动会话。该项目是一个本地优先的运行时，用于持久代理会话、循环、自动化、权限管理以及多个控制界面。在这一背景下，更新行为并非表面问题，而是运行时可靠性模型的一部分。\n\n 实际建议很直接：在可丢弃或已备份的 CompozyOS 主目录中尝试 0.4.4，然后在会话处于活动状态时主动执行更新。不要把窗口被保留下来当作工作也被保留的证据。应分别检查守护进程、会话记录、轮次状态、排队输入、附件、工作树和提供商连接。\n\n ## 0.4.4 有哪些变化\n\n 发布页面目前用一句简短说明概括这项变化，而不是展开成一篇功能介绍：活动会话应当能够在桌面更新后继续存在。相关发布历史说明了为什么这是一条重要边界。CompozyOS 0.4.0 是首个稳定版本，0.4.1 修复了若干桌面和运行时恢复场景，0.4.2 处理了后台读取 Claude 使用量时可能触发钥匙串密钥请求的问题，而 0.4.4 则将目标转向桌面更新本身的连续性。\n\n 这一演进很重要，因为 CompozyOS 包含两个紧密相关的部分：桌面应用和本地守护进程。[桌面文档](https://www.compozy.com/docs/getting-started/desktop-app/)说明，桌面应用和 `compozy` 命令使用同一个本地守护进程、配置、工作区和会话历史。应用可以连接到已经正常运行的守护进程，也可以启动安装在 CompozyOS 主目录中的运行时；必要时，还能安装并启动随应用捆绑的运行时。退出应用并不应当停止守护进程。\n\n 因此，桌面更新至少可能有两种含义：\n\n - 替换图形外壳，同时让守护进程及其状态继续可用；\n- 替换同时包含应用和运行时的软件包，然后重启这套新组合，同时不丢失持久状态。\n\n 关键在于“活动”二字。启动后恢复一份旧会话列表，远不如保持正在进行的轮次完整。真正有用的实现必须保留足够的所有权和事件状态，使会话能够继续、重新连接，或明确报告中断。仅凭发布标题，我们无法得知每种提供商、操作系统、安装路径或故障模式下的具体表现。这正是用户应该测试的部分。\n\n ## 为什么桌面连续性是运行时问题\n\n 许多代理工具最初只是一个终端进程。进程掌握提示符、标准输入、输出流，通常还掌握运行模型客户端的子进程。关闭终端可能会终止一切。持久运行时改变了这种安排：工作由守护进程负责，而终端、浏览器、桌面外壳或其他客户端负责观察和控制。\n\n 这种设计带来了有用的分离：界面消失，并不一定意味着工作被取消。但它也让升级路径更复杂。只有当守护进程知道重启前发生了什么，并能在重启后重放或重建状态时，客户端重启才是安全的。\n\n 一次会话更新可能跨越多个边界：\n\n 1. 桌面进程可能关闭，或将控制权交给原生安装程序。\n2. 随软件打包的运行时可能被替换或重启。\n3. 守护进程可能仍在运行，也可能被要求停止，或者在启动后才被发现。\n4. 提供商进程可能继续运行、重新连接、失败，或拒绝恢复后的环境。\n5. 界面必须判断应显示实时输出、补上的会话记录、警告，还是一个确实已经停止的轮次。\n\n [CompozyOS 文档](https://www.compozy.com/docs/)将更广义的模型描述为由守护进程拥有的会话：即使工作在后台继续，会话事件仍可供检查。这是理解更新行为的正确抽象，但不能把它误解为每个外部副作用都会被检查点记录。命令行仍在运行时，转录记录可以已经持久化。工作树仍可保持连接，但提供商可能已经失去连接。排队的消息可以存储下来，但代理可能尚未收到它。\n\n 因此，“会话存活了”不应只意味着“这一行仍然可见”。它还应意味着，运行时能够告诉你哪些部分保留下来，哪些部分需要人工处理。\n\n ## 第一个测试：在空闲会话期间更新\n\n 从破坏性最低的情况开始。创建一个测试工作区，启动会话，发送一个能产生持久响应的提示，然后让会话保持空闲。记录会话标识符、工作区、选定的配置文件，以及 CompozyOS 主目录的位置。随后按照文档说明的更新路径执行桌面更新。\n\n 桌面指南提供了三个有用的命令：\n\n ```text\ncompozy update --check -o json\ncompozy update -o json\ncompozy update --cancel -o json\n```\n\n 文档说明，菜单栏或“设置”中的操作可以下载、安装并重启应用。文档还指出，在原生安装程序准备经过验证的软件包时，应用会保持打开；而应用关闭时，则可以把更新暂存到下一次启动。Linux 上，自动安装应用轨道更新仅限于 AppImage 路径。\n\n 更新完成后，不要只看第一个界面，而应检查以下所有项目：\n\n - 应用报告的版本符合预期；\n- 使用的仍是同一个 CompozyOS 主目录；\n- 工作区和会话标识符没有变化；\n- 之前的转录记录完整，顺序正确；\n- 选定的代理和配置文件仍与该会话关联；\n- 重连期间没有出现重复回合；\n- 守护进程运行正常，应用也已连接到它；\n- 会话可以接受新的提示。\n\n 这个测试能回答普通的持久化状态是否保留，但还不能回答产品能否应对工作进行期间的更新。\n\n ## 第二个测试：在回合运行时更新\n\n 更有价值的测试应使用一个能够持续足够长时间、便于观察的提示。长时间运行的本地命令、有界的测试套件，或一个会产生多个工具事件的受控任务，都比人为加入睡眠更合适。使用专为测试创建的仓库，并从其环境中移除敏感凭据。\n\n 开始这一回合，等待出现明确的工具或进度事件，然后从桌面外壳启动更新。在弄清结果之前，不要发送额外提示。根据具体实现，以下结果都可以接受：\n\n - 守护进程和提供商继续运行，桌面端重新连接到同一个活动回合；\n- 桌面端重启时回合完成，随后显示完整的转录记录；\n- 运行时暂停或取消回合，但准确记录这一事实，并允许恢复；\n- 安装程序拒绝继续，直到明确处理活动中的工作。\n\n 危险的结果是：会话看起来合理，却悄悄丢失工具结果、重复执行副作用，或显示最终答案，却没有产生该答案的事件历史。持久代理运行时需要的证据，不能只是一扇窗口成功重启。\n\n 使用一个副作用可以通过两次检查来核实的任务。例如，让测试代理写入一个名称唯一、内容包含随机数的文件，然后报告文件内容。更新后，对比文件、转录记录、工具结果和最终答案。如果操作执行了两次，测试应能把这一点显现出来。绝不要用生产部署、破坏性迁移、支付操作或真实凭据轮换来做这个实验。\n\n ## 第三个测试：排队输入和附件\n\n 活动会话不只是一次模型回合。操作员可能在代理忙碌时输入后续内容、将消息排队、引导回合，或附加文件。重连时，这些输入最容易暴露出脑裂状态。\n\n 创建一个小型测试附件，并发送一个让会话持续忙碌的提示。准备好后续消息，但在确认预期的排队行为之前不要点击发送。更新期间，观察草稿是否仍是草稿、排队消息是否仍在队列中，以及引导操作是否只交付一次而不是两次。\n\n 该项目公开的发布历史多次提到转录连续性、排队输入、会话消息、附件，以及从提供商断连中恢复。这些条目表明，维护者所理解的会话状态并不只是聊天记录。它们也说明，读者应测试当前版本，而不是根据单一标题推断全部行为。\n\n 一份实用的检查清单如下：\n\n - 未发送的文本仍保持未发送状态；\n- 排队输入只有一个投递状态；\n- 附件具有唯一的记录身份，并且仍然可读；\n- 引导消息不会变成重复的普通提示；\n- 提供商错误能够被看见，而不是被通用的重新连接转圈提示替代；\n- 会话的配置档案与工作区边界保持不变。\n\n 如果更新改变了会话在队列中的位置，应将其记录为产品行为。这种变化也许可以接受，但必须能够被观察到并得到文档说明。\n\n ## 0.4.4 无法证明什么\n\n 稳定的桌面更新并不等同于安全的执行边界。仓库将 CompozyOS 描述为本地优先的软件：Go 二进制文件和基于 SQLite 的存储会将运行时状态保留在操作员的机器上，除非外部提供商或扩展负责其中一部分边界。这有利于控制和检查，但也意味着机器、用户账户、提供商凭据、工作区文件以及已安装的扩展仍然属于信任模型的一部分。\n\n 该仓库标注为 [MIT 许可](https://github.com/compozy/compozy)，README 也表示欢迎贡献。许可证的开放性只能说明人们可以在许可证允许的范围内检查、修改和再分发代码。它并不保证每个版本都已成熟，也不保证每个集成都具备相同的安全属性，更不保证更新不会暴露迁移问题。\n\n 项目自身的迁移材料尤其值得关注。[迁移指南](https://github.com/compozy/compozy/blob/main/MIGRATION_GUIDE.md)描述了此前的一次修正：发行元数据错误地将构件标记为 BSL-1.1，尽管项目仍采用 MIT 许可证。指南还记录了较旧与较新产品线之间的兼容性边界。这提醒我们，跨越主要产品边界时应阅读迁移说明，而不是想当然地认为原地更新总是可逆的。\n\n 桌面操作指南还提出了另一项运维警告：替换运行时二进制文件后，如果重启或健康检查失败，替换版本可能已经迁移数据库。文档建议保留备份以便诊断，不要把旧二进制文件恢复到可能已经完成迁移的主目录上；如有必要，应将目标版本或更新的兼容版本重新安装到同一个主目录中。这类细节比精致的更新动画更重要。\n\n ## 现在适合谁尝试\n\n 对于已经需要让代理工作持续超出终端生命周期、并且能够提供独立测试主目录的开发者来说，CompozyOS 0.4.4 值得测试。对于围绕本地代理会话构建自动化的维护者，它同样有参考价值，因为更新路径本身就是自动化可用性故事的一部分。如果应用被用作长期运行守护进程的桌面前端，那么该版本直接针对的正是用户通常最担心的一类中断。\n\n 对于需要全托管控制平面、代理与主机之间严格隔离，或成熟企业变更管理流程的团队来说，它就不是那么显而易见的选择。这个项目的价值在于其本地运行时模型：会话、任务、循环、权限、审批和自动化共享由守护进程管理的状态模型。这可以省去大量胶合代码，但也会把更多责任集中到本地安装及其配置上。\n\n 一次合理的试用应具备三个条件：\n\n - 可丢弃的工作区，或经过验证的备份；\n- 测试提供商环境中不包含生产凭据；\n- 有足够的可观测性，以比较转录、文件系统、进程状态和更新日志。\n\n 保留上一版本以便对比，但不要轻率地将已迁移的主目录降级。在测试会改变运行时或数据库状态的路径前，先进行完整备份。\n\n ## 与其他方案的简要比较\n\n 如果需求只是“关闭终端后仍让命令继续运行”，终端复用器、系统服务或普通任务队列可能更容易理解。这些工具不具备 CompozyOS 面向代理的会话模型，但其运行行为较为熟悉，范围通常也足够有限，便于审计。\n\n 如果需求是用于远程开发的浏览器界面，托管式或自托管的开发平台可能提供更完善的身份、工作区和审计集成。但这也可能带来云依赖，以及不同的信任边界。CompozyOS 则强调带有明确网关界面的本地守护进程，因此取舍在于：掌控机器，同时承担维护这台机器的运维工作。\n\n 如果需求是与模型无关的代理运行器，编排库可以提供更底层的原语，并把持久化、审批和更新策略交给应用处理。当团队已经拥有可靠的平台层时，这或许是合适的选择。CompozyOS 针对的恰恰是相反的问题：团队不希望为每个代理 CLI 重新构建平台层。\n\n 因此，比较时应关注故障处理，而不是功能数量。要问的是：界面重启、提供商断开连接、主机重启、存在排队消息、数据库迁移已经执行，或子进程在工具调用进行到一半时退出时，各个方案会如何表现。\n\n ## 实用结论\n\n CompozyOS 0.4.4 是一次规模不大的发布，却隐含着一项重要测试。在桌面更新过程中保留活动会话，正是那种只有在失败时用户才会注意到的可靠性功能。它之所以有价值，是因为 CompozyOS 将自己定位为持久的本地运行时，而不是包裹一次性提示词的薄层窗口。\n\n 这个版本适合尝试，但还不足以让人把无人值守的生产任务交给一个刚更新的代理系统。先使用隔离的主目录。测试空闲会话、进行中的回合、排队输入、附件、工作树、提供商重新连接，以及更新中断后的恢复。保留对话记录和文件系统证据，并检查守护进程实际做了什么。\n\n 如果这些测试通过，0.4.4 会让桌面外壳不再那么像唯一的中断点。如果测试未通过，失败同样有价值：它会显示缺失环节究竟是安装程序协调、守护进程所有权、提供商恢复、数据库迁移，还是仅仅是误导性的 UI 状态。这种区分，才是衡量开源代理运行时的真正标准。","available_translations":[{"language":"ar","title":"CompozyOS 0.4.4 يجعل تحديثات سطح المكتب اختبارًا لجلسات الوكلاء المستمرة","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=ar","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=ar","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=ar","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=ar"},{"language":"de","title":"CompozyOS 0.4.4 macht Desktop-Updates zum Test für langlebige Agentensitzungen","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=de","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=de","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=de","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=de"},{"language":"en","title":"CompozyOS 0.4.4 makes desktop updates a test of durable agent sessions","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=en","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=en","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=en","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=en"},{"language":"es","title":"CompozyOS 0.4.4 convierte las actualizaciones de escritorio en una prueba para las sesiones persistentes de agentes","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=es","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=es","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=es","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=es"},{"language":"fr","title":"CompozyOS 0.4.4 fait des mises à jour du bureau un test de la durabilité des sessions d’agents","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=fr","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=fr","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=fr","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=fr"},{"language":"pl","title":"CompozyOS 0.4.4 sprawia, że aktualizacje pulpitu stają się testem trwałości sesji agentów","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=pl","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=pl","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=pl","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=pl"},{"language":"ru","title":"CompozyOS 0.4.4 превращает обновление рабочего стола в проверку устойчивости сессий агентов","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=ru","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=ru","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=ru","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=ru"},{"language":"zh","title":"CompozyOS 0.4.4 让桌面更新成为持久代理会话的考验","html_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=zh","markdown_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=zh","json_url":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=zh","api_url":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=zh"}],"_links":{"self":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=zh","api":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles/compozyos_044_desktop_updates_session_continuity_test?lang=zh","html":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=zh","canonical":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test?lang=zh","markdown":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.md?lang=zh","json":"https://publicasta.com/open_source_radar/compozyos_044_desktop_updates_session_continuity_test.json?lang=zh","channel":"https://publicasta.com/api/public/v1/channels/open_source_radar","channel_articles":"https://publicasta.com/api/public/v1/channels/open_source_radar/articles","search":"https://publicasta.com/api/public/v1/search","documentation":"https://publicasta.com/api-docs#reading-publicasta","openapi":"https://publicasta.com/api-docs/openapi.json","llms":"https://publicasta.com/llms.txt"}}