跳到主內容

Theme / v5.1.61

Oh My OpenAgent

AI 代理編排系統

基礎觀念

v5.1.61:裝置服務、記憶同步修復與 thread chain 無上限

整理 Oh My OpenAgent v5.1.61 的變更:senpi 2026.11.3-3 平台句、macOS computer use 保持顯示器喚醒、device service 自動設定與註冊修復、記憶同步金鑰輪替與 batch_id 修復、Stop 後背景工作恢復,及 thread chain 移除隱藏上限。含互動測驗與檢查清單。

概述

上游於 2026-11-05 發布 v5.1.61(release published 時間:2026-11-05T19:01:35Z;本站 2026-11-06 查核)。本版基於 senpi 2026.11.3-3,官方 release notes 涵蓋多個主題:

  1. senpi 2026.11.3-3 平台句:Claude Opus 與 Fable 取回完整 system prompt、Anthropic Subscription 登入修復、usage limit 阻擋至重置、macOS Terminal.app 的 Shift+Enter(#12311)。
  2. macOS computer use 保持顯示器喚醒:持有 PreventUserIdleDisplaySleep power assertion,並回報螢幕鎖定/睡眠狀態(#11530,issue #11466 的一部分)。
  3. 裝置服務(device service):每個互動 omo 啟動自動設定(#12257)、agent dir 註冊修復(#12482/#12380)。
  4. 記憶同步(memory sync)修復:撤銷裝置後金鑰輪替(#12302)、batch_id 修復(#12292)。
  5. Stop/背景工作恢復(#12343/#12268)。
  6. sandbox 相關修復:bwrap probe 逾時(#12378)、trust-userns(#12079)。
  7. Changed:thread chain 無上限(#12331)、tools runs: "brain"(#12324)、OmO Native bundle 縮小(#12291)。
  8. desktop first-run “Understanding you” 修復(#12509)。

第一節:senpi 2026.11.3-3 平台句(#12311)

官方原文逐字:“Runs on senpi 2026.11.3-3: Claude Opus and Fable get their full system prompt back (the pre-diet wording; every other model keeps the slimmer prompt), Anthropic Subscription no longer refuses a working Claude login as blocked when an older omo process is still running or when Claude Code can’t read its login behind a locked keychain, a usage limit with an ISO reset time blocks that account until the reset instead of retrying every minute, a goal waits for the first limited account to come back instead of spending turns, and Shift+Enter inserts a newline in macOS Terminal.app.”

拆解重點:

  • 完整 system prompt 回歸:Claude Opus 與 Fable 取回完整 system prompt(“the pre-diet wording”,即「減脂」之前的措辭);其他模型維持精簡版 prompt。
  • Anthropic Subscription 登入修復:在兩種情境下不再把可用的 Claude login 誤判為 blocked——舊的 omo process 還在執行時,或 Claude Code 因 keychain 鎖定而讀不到登入資訊時。
  • usage limit 阻擋至重置:帶有 ISO 重置時間的 usage limit 會把該帳號阻擋到重置時刻為止,不再每分鐘重試;goal 則會等待第一個受限帳號回來,而不是消耗回合。
  • macOS Terminal.app:Shift+Enter 插入換行(newline)。

第二節:engine socket compact message updates(#12215)

官方原文:“the engine socket can now send compact message updates (compact_message_updates_v1) with event_resync recovery, so long streamed turns cost less to relay. It stays off unless SENPI_ENGINE_SOCKET_COMPACT_UPDATES=1 is set.”

重點整理:

  • engine socket 新增緊湊訊息更新格式 compact_message_updates_v1,附 event_resync 恢復機制,長串流回合的轉送(relay)成本下降。
  • 預設關閉:除非設定 SENPI_ENGINE_SOCKET_COMPACT_UPDATES=1,否則不啟用。
  • 此項是 senpi issue #4272 的一部分(#12215)。

第三節:macOS computer use 保持顯示器喚醒(#11530)

官方原文:“macOS computer use keeps the display awake while it operates, and says when the screen is locked or asleep.”

行為細節(皆出自 release notes 原文):

  • power assertion:engine 從第一個請求(capabilities、control.state、stopPath.* 除外)開始持有 PreventUserIdleDisplaySleep power assertion——在 pmset -g assertions 中顯示為 “OmO computer use is operating the desktop”——直到最後一個請求後 60 秒;session.close、斷線與 stop 會立即釋放。
  • 睡眠狀態回報:capabilities.displayAsleep 回報 session 的所有顯示器何時進入睡眠,omo doctor 在 display 行印出此資訊。
  • 失敗訊息附成因:CaptureFailed、InputFailed 或 Timeout 訊息在可能的成因下以 “(the screen is locked)” 或 “(the display is asleep)” 結尾。
  • 其他平台不變。

第四節:裝置服務(device service)

每個互動 omo 啟動自動設定(#12257)

官方原文:“Every interactive omo start now sets up this device’s OmO device service in the background once you are signed in, so your other signed-in devices can see and command its sessions. It never delays the start and speaks up only when it stops on something you can fix.”

重點整理:

  • 登入後,每次互動式 omo 啟動都會在背景設定本機的 OmO device service,讓其他已登入裝置能看到並指揮本機 session。
  • 不延遲啟動,且只在卡在你能修復的問題上時才出聲。
  • 以 omo.json 的 "device_service": { "enabled": false } 關閉;或保留開啟但以 omo remote control off 阻止其他裝置控制本機(omo remote control 顯示設定)。
  • 此項是 issue #12051 的一部分。

agent dir 註冊修復(#12482)

官方 Fixed 條目原文:“The engine now registers its agent dir with the device service even when the service’s state directory appears right after the engine started (for example, when the device service is installed or started at the same moment).”

成因與修復:新武裝(armed)的 directory watch 可能漏掉最初幾毫秒建立的條目,導致註冊方從未注意到服務、其他裝置列不出 session;每次 watch 武裝後會在路徑穩定(settle)後再檢查一次。

服務重啟後重新註冊(#12380)

官方 Fixed 條目原文:“Your other signed-in devices now see this device’s sessions after the OmO device service starts or restarts.”

行為細節:每個 omo engine(終端機內的,以及 desktop app 啟動的)都保留自己的 agent directory 註冊,並在服務回來或裝置重新登入時重新註冊;它從不把 engine 佔住不關,且在 "device_service": { "enabled": false } 時保持關閉。(#12380,修 #12379)

第五節:記憶同步(memory sync)修復

撤銷裝置後金鑰輪替(#12302)

官方 Fixed 條目原文:“Revoking a memory-sync device, omo logout, or signing out on the desktop no longer freezes every other device’s pushes.”

行為細節:

  • 剩餘裝置會輪替(rotate)帳號記憶金鑰(account memory key),把被移除的裝置排除在外;該裝置再也讀不到移除後寫入的筆記。
  • 金鑰變更待定期間,status 顯示同步為 blocked,而不是宣稱已同步。
  • (issue #12280)

batch_id 修復(#12292)

官方 Fixed 條目原文:“Memory sync replicates between devices again. The client refused every batch row from GET /v1/sync/entries that carried the batch_id the service contract declares, so two devices paired but no edit reached the other.”

行為細節:

  • 兩台裝置可以配對,但任何編輯都到不了對方——帳號恢復、以及第一批之後配對裝置,也以同樣方式失敗。
  • 修復:格式正確(well-formed)的 batch row 上的 batch_id 現在被接受;null 或格式錯誤的、keyring row 上的 batch_id,以及任何其他多餘欄位,仍被拒絕(#12277)。

第六節:Stop/背景工作恢復(#12343/#12268)

官方 Fixed 條目原文:“A session whose Stop was released but whose background children stayed paused, refusing every new task with ‘Task admission is held by your Stop’, is released by the next message you send.”

重點整理:

  • 卡死情境:Stop 已釋放但背景 children 停在 paused、以 “Task admission is held by your Stop” 拒絕每個新 task;/resume 與新 prompt 之前無效,因為 session 已不持有 Stop,只有 /reload 或重啟能解開(#12342)。(#12343)
  • 背景 children 恢復:被 Stop 暫停的背景 task children,在你 Stop 後輸入即恢復。之前 run 的 Resume 會漏掉它們,因為 Stop 自己的 run fences 抬高了 session 的 pause sequence,它們一停就是數小時,而 task widget 卻顯示為 running 或 starting(#12249)。(#12268)
  • 無法恢復的收斂:run 的 Resume 無法恢復的 paused child 會重試幾次,然後以錯誤結束並通知 parent,而不是永遠停在 paused;transcript 保留給 task_output。(#12268)
  • widget 顯示:task widget 把 paused child 顯示為 paused(沒有執行中的時鐘),/task-kill 會提供 paused children。(#12268)

第七節:sandbox 相關修復(#12378/#12079)

bwrap probe 逾時不再關閉 sandbox(#12378)

官方 Fixed 條目原文:“A reflection sandbox probe that timed out once (for example on a busy machine) no longer turns the sandbox off until restart.”

行為細節:

  • reflection 下次執行會再檢查,bwrap 一旦回應即恢復 sandboxed 執行。
  • bwrap 確定無法建立 sandbox 的機器仍只檢查一次(#12376)。
  • bwrap 暫時不可用而回落(fall back)到 unsandboxed 執行的 reflection run,會以 degraded sandbox 記錄一次、sandbox 回來時再記錄一次,不再無聲通過。

sandbox 內 trust-userns(#12079)

官方 Fixed 條目原文:“Memory reflection children started inside the Linux bubblewrap sandbox no longer exit at startup with unsafe trust ancestor.”

行為細節:

  • 在 sandbox 的 user namespace 內,root-owned 目錄會顯示 overflow uid;engine trust stage 現在只在 launcher 從 sandbox 外驗證過「這個確切 inode 為 root-owned」時接受它;屬於其他使用者的目錄仍被拒絕。
  • sandbox child 取得自己的私有 TMPDIR;唯讀的 trust directory 回落到私有暫存目錄。
  • omo 無法驗證的手工 user namespace,改以具名拒絕 trust-userns-unattested 附下一步說明,而不是 stack trace。
  • (senpi #5334)

第八節:Changed——thread chain 無上限、runs: “brain”、bundle 縮小

thread chain 無上限(#12331)

官方 Changed 條目原文:“Thread tools no longer refuse a chain of messages at its fifth hop, at 64 messages, or when it comes back to a session it passed (A to B to A): a chain has no hidden count limit.”

行為細節:

  • message chain 在第五跳、64 則訊息、或回到曾經過的 session(A→B→A)時不再被拒——chain 沒有隱藏的數量上限。
  • 超過 7 天 root 生命週期後仍被接續的 chain,以新的 root 送達,而不是被拒絕。
  • session 仍不能傳訊給自己。
  • (issue #12320 的一部分)

tools 宣告 runs: “brain”(#12324)

官方 Changed 條目原文:“Thread tools and subagent, workflow, workpool and team tools declare that they run on the loop side of a split session (runs: \"brain\"); sessions that are not split behave exactly as before.”

重點整理:thread tools 與 subagent、workflow、workpool、team tools 宣告自己在 split session 的 loop side 執行(runs: "brain");未 split 的 session 行為完全不變。(issue #12320 的一部分)

OmO Native bundle 縮小(#12291)

官方 Changed 條目原文:“The OmO Native extension’s main bundle is about 27.9 KB smaller: the two ultrawork directive variants store their shared text once instead of twice. Both directives are unchanged.”

重點整理:兩個 ultrawork directive 變體把共用文字只存一份(而非兩份),main bundle 約縮小 27.9 KB;兩個 directive 本身不變。

第九節:desktop first-run “Understanding you” 修復(#12509)

官方 Fixed 條目原文:“In the desktop’s first-run setup, ‘Understanding you’ no longer stops with ‘No retained scan with this id’ after About you brings anything in.”

行為細節:套用 onboarding scan 後,scan 會保留給 understanding 使用直到 scan 過期;scan 仍只套用一次。(#12509,修 #12508)

互動測驗

隨堂測驗

v5.1.61 中,macOS computer use 如何在操作期間保持顯示器喚醒?

💡 想先看個提示?

注意 release notes 提到的 pmset -g assertions 中的字樣。

隨堂測驗

關於 v5.1.61 的記憶同步修復,下列哪項描述正確?

💡 想先看個提示?

金鑰輪替的目的是把被移除的裝置排除在外。

隨堂測驗

v5.1.61 之後,Stop 已釋放但背景 children 停在 paused 的 session,如何解開?

💡 想先看個提示?

#12343 的修復正是讓「下一則訊息」生效。

隨堂測驗

關於 v5.1.61 的 thread tools chain 行為,下列哪項正確?

💡 想先看個提示?

Changed 條目明確列出三個不再拒絕的情境。

動手升級檢查清單

升級 :動手檢查清單

逐項勾選,確認你已完成升級必要的步驟(進度會保存在此瀏覽器)

0 / 8

小結

v5.1.61 圍繞「多裝置場景真正可用」與「多項可靠性收斂」兩條線:senpi 2026.11.3-3 帶回 Claude Opus/Fable 的完整 system prompt 並修復 Anthropic Subscription 登入與 usage limit 處理(#12311);macOS computer use 以 power assertion 保持顯示器喚醒並回報鎖定/睡眠成因(#11530);device service 從「每次互動啟動自動設定」(#12257)到 watch 重檢查與重新註冊(#12482/#12380)補齊跨裝置可見性;記憶同步修復金鑰輪替與 batch_id(#12302/#12292)讓裝置間複製恢復;Stop 後的背景工作改由下一則訊息恢復(#12343/#12268);sandbox probe 逾時不再永久關閉 sandbox、trust-userns 具名拒絕(#12378/#12079);thread chain 移除隱藏上限、tools 宣告 runs: "brain"、bundle 縮小約 27.9 KB(#12331/#12324/#12291);desktop first-run 的 “Understanding you” 不再卡住(#12509)。所有描述皆以官方 release notes 原文為準。