github code-yeongyu/oh-my-openagent v5.1.30

4 hours ago

ulw-research reads sources in your own browser instead of fetching them. The Phase 0 brief now decides Collection: search-only | browser by one rule (search-only only when a result snippet settles every axis), and the web workers read every candidate through the browser skill's attached engine: one named session per worker, one tab per source, several tabs side by side while comparing, with a full-page screenshot per top source. webfetch is reserved for raw files, hosts the browser cannot open go to ultimate-browsing with their provenance, and a team member's brief names the browser skill to read since members cannot carry load_skills. ultimate-browsing no longer presents itself as the research browsing lane, and the browser skill no longer sends plain page reading elsewhere. (#9958, #9959)

Your first real prompt starts onboarding, not opening a session. First-run context now rides along with the first prompt you actually send, without a separate model turn. The agent answers your request first, then offers the tour. Background, preview and headless sessions no longer use up onboarding, the TUI shows a static welcome until you ask something, and a failed or aborted first turn frees onboarding to try again. --onboard still starts the tour right away in the TUI, and in RPC it applies to the first real prompt. (#9905, #9907)

Custom category models keep their own reasoning settings when background work starts or resumes. A category with a model override or a models chain no longer inherits the builtin category's variant. Reasoning is resolved against the model actually selected before dispatch, with reasoning taking precedence over reasoningEffort and the legacy variant, and a resumed task keeps that model's generation settings. Builtin categories keep their existing defaults. Thanks to @MoerAI, @willowite and @pointfish6660. (#8510, #9013)

Groundwork for OmO accounts: omo login, omo whoami and omo logout ship ahead of the account service, which hasn't launched yet. Until it does, omo login checks the service first and stops at once with a one-line error naming the service address, instead of opening a browser or waiting, and omo whoami reports that you aren't signed in. When the service launches, sign-in will use a browser flow or a headless device-code flow (--device or --no-browser), keep credentials and device keys only in the operating system's credential store (Keychain on macOS, Secret Service on Linux, Credential Manager on Windows) with no plaintext fallback, and keep a sign-in through connection and browser-launch failures. (#9829, #9811, #9831, #9833)

A child stopped during parent teardown no longer briefly reports a failure of its own. An unexpected exit is now held for a two-second confirmation window. If the owning manager survives, a genuine failure is reported; if the owner exits first, recovery records the interrupted work as lost without replaying it. Recovery also revisits children it had deferred to another live owner once that owner has exited, so those records no longer stay stranded. (#9715, #9884)

One task call can submit more than 16 child tasks. The per-call batch cap is gone from both validation and execution. Global, provider and model concurrency limits still decide how many children run at once; the rest queue and start as slots free up. Synchronous batch results still come back in input order. (#9854, #9859)

unspecified-low uses GPT-6.1 Sol at medium reasoning on the OpenAI lanes. The default chain adds gpt-6.1-sol for OpenAI API and ChatGPT Subscription ahead of the older GPT fallback. GPT-5.6 Terra is replaced by GPT-5.6 Sol at medium reasoning, which keeps a supported fallback for GitHub Copilot, OpenCode and catalogs without 6.1 Sol. Other categories keep their defaults. (#9844, #9845)

Windows hook commands and plugin updates no longer open extra console windows. Claude-compatible hooks and helper probes now hide their child consoles, so a GUI-launched session doesn't get a terminal flash or a focus-stealing window on every hook. The shared Bun spawn path applies the same setting, and OmO's Codex plugin hides consoles for background updates, version checks and manual-update commands. (#7144, #9837, #9840, #9841, #9838, #9839)

OpenCode session tools can find sessions across projects, not just the current server directory. Session listing and cross-session search use the paginated global session endpoint when it's available, keep their project and date filters, and fall back to the existing session list when it isn't. Search still caps how many sessions it scans. Thanks to @MoerAI. (#5810, #9023)

Computer use can inspect and select macOS menu-bar commands by their menu path. win.menu.items(path?) lists titles, paths, enabled and checked states, submenus and shortcuts, and win.menu.select(path) invokes one unambiguous, enabled leaf command. Selection re-checks the target window and command right before dispatch and restores the keyboard context afterwards. Ambiguous labels, disabled items and submenu-only targets are refused, and on macOS an app with several windows is refused rather than risking the wrong one. The API is cross-platform, but native support in this release is macOS only. (#9875, #9881, #9886)

Setting a macOS popup now picks the option instead of reporting an ignored write as success. el.setValue(text) opens the popup's menu, selects the exact matching option and verifies the result. Missing, ambiguous and disabled options are refused with the available choices. A menu the call opened is closed again whether selection succeeds or fails, while one that was already open is left alone. Pull-down popups aren't supported yet. (#9852)

Computer use can write ISO-8601 values to macOS date and time controls. el.setValue(text) now writes a native date and reads it back to verify. A date-only value keeps the current time of day, local date-times use the system time zone, and values with Z or a numeric offset name an exact instant. Malformed input, and local times that daylight saving skips or repeats, are refused rather than quietly shifted. (#9853)

Computer-use timeout messages show where the desktop engine stopped answering. A failed startup probe now names its handshake phase: neither reply yet, engine.hello answered while capabilities are pending, or capabilities answered while engine.hello is pending. A stalled engine is easier to diagnose when every timeout no longer looks the same. Thanks to @MoerAI. (#9720, #9742, #9916)

Foreground computer use now needs your explicit OK. Before the model can type, click in the foreground or raise a window, its computer code calls desktop.control.acquire({ reason }), and OmO asks you to confirm with that reason. Only an explicit yes grants control; declining, letting the 45-second prompt time out, a headless run or a read-only run all leave it ungranted. The grant ends when the model releases it, when the run ends or fails, on the stop chord, or when the session closes, and resuming never restores it. One session's grant is never taken over by another. Background delivery is unchanged and stays the default. (#9899, #9908)

Thread bindings accept WhatsApp as a native platform. thread_bind and the session-gateway store now accept whatsapp instead of refusing a connector's first message, and existing bindings are kept as the store upgrades. This is the core binding support a WhatsApp connector needs; it doesn't install or link one by itself. (#9871)

Workflow node IDs are checked before their results are stored. Empty IDs, . and .., path separators, colons and NUL bytes are rejected with invalid_node_id instead of being used to build result paths, and the result store refuses unsafe paths too. An existing run whose node IDs contain those characters can't resume its saved results after upgrading: rename the nodes and restart the run. Thanks to @DeryFerd. (#9869)

Mass-ulw joins adjacent all-to-all waves through one review node. The planning guide now puts a single verification node between two complete waves instead of drawing every producer-to-consumer edge. A finding reruns only the producer it names, and a consumer that needs just one branch waits on that branch's review alone. (#9866)

omo.dev download stats are set to refresh hourly. The downloads worker now schedules its rollup at 17 minutes past each hour, so the public stats update regularly once the worker runs with its analytics credential. Nothing changes in your local install. (#9827)

omo runs on senpi 2026.10.11, and a task shard stops soon after the session that owns it exits. Task shards are now started with senpi's caller-lifetime ownership, so a multi-GB p-* shard host no longer stays resident for the full idle window after its owning session quits; peers and running turns still keep it alive. The engine also waits for its host child to really exit before releasing a stopped host, and required compaction no longer wedges on an unsafe newest message. Long sessions stop rewriting the prompt cache every turn: context reduction holds a stable prefix between large steps and survives restarts. OpenAI models behind a Responses-compatible gateway no longer fail every turn with Invalid value: 'allowed_tools'. The footer shows a reasoning model's level as effort <level> next to the key that changes it (shift+tab by default) when the footer has room. Reloading a session no longer keeps the previous extension runner in memory, and the runtime snapshot a first launch builds leaves out dependency development trees and redundant TypeScript sources. Full engine notes: senpi 2026.10.10-12 and senpi 2026.10.11. (code-yeongyu/senpi#3044, code-yeongyu/senpi#3054, code-yeongyu/senpi#3060, code-yeongyu/senpi#900, code-yeongyu/senpi#3080, code-yeongyu/senpi#3090, code-yeongyu/senpi#3066, code-yeongyu/senpi#3083, #9876, #9976)

Suspended children no longer linger in the task list: each one resumes or ends on its own. A child that was parked while it could not run is now revived as soon as it can be, or ends within a bounded recovery window with one final result, so it never sits in the task list as suspended. Messages sent to it meanwhile are queued and delivered in order when it resumes; if it can't resume, the parent is told in that one result how many messages were not delivered, and task_output then shows error rather than the original status. (#9861, #9868)

  • f2d6a8f docs(changelog): cite #9976
  • 60570cc docs(changes): record the Linux bundle check for the 2026.10.11 adoption
  • 4c7b3f8 Merge pull request #9971 from code-yeongyu/fix/login-service-preflight
  • 03d7e46 Merge pull request #9969 from code-yeongyu/docs/changelog-9899-host-confirm
  • 82aa6c7 test(cli): drive the login preflight through the real launcher instead of module mocks
  • c5bf9b2 fix(cli): name the unreachable or unavailable OmO accounts origin, drop the test-only seam, regenerate the launcher bundle
  • f88d616 Merge pull request #9960 from code-yeongyu/feat/ulw-research-browser-companion
  • 8e3b7cb Merge pull request #7260 from code-yeongyu/fix/bip-7190
  • c5e3394 fix(cli): omo login checks the account service before opening a browser
  • f3514d4 Merge pull request #7266 from code-yeongyu/fix/bip-7227
  • d4657c4 docs(changelog): describe the shipped host confirmation for foreground computer use (#9899, #9908)
  • 53abd39 Merge origin/dev into feat/ulw-research-browser-companion
  • c66300f Merge pull request #9908 from code-yeongyu/feat/cu-b5b-control-host
  • 8ecb96d fix(model-core): cover current Opus 5 context aliases
  • 27a0d68 fix(tui-sidebar): share disabled agent normalization with registration
  • f7da5df Merge remote-tracking branch 'origin/dev' into repair/7266-sync
  • 7a9c1d8 Merge origin/dev into fix/bip-7190
  • 6d5c083 Merge pull request #9923 from code-yeongyu/fix/9877-cwd-fixtures
  • 6679c97 Merge pull request #9043 from code-yeongyu/docs/thinking-and-resume-paths
  • b127b5a Merge remote-tracking branch 'origin/dev' into feat/cu-b5b-control-host
  • c81529f Merge origin/dev into feat/ulw-research-browser-companion
  • ae4cc3d Merge pull request #9959 from code-yeongyu/docs/ulw-research-browser-default
  • 5338385 Merge pull request #9594 from tahakotil/fix-lsp-unsupported-pull-order-9476
  • 11c9541 Merge remote-tracking branch 'origin/dev' into fix/9877-cwd-fixtures
  • 8b2a260 docs(skills): ultimate-browsing owns only the hosts the browser cannot open; trim ulw-research (#9958 review)
  • 769b62b Merge pull request #8403 from code-yeongyu/fix/8402-general-agent-fallback
  • 04caae7 docs(changelog): ulw-research reads sources in the user's browser (#9958)
  • 784275d docs(skills): read research sources in the user's browser, not through fetch (#9958)
  • ff61ab9 Merge pull request #9909 from code-yeongyu/fix/9733-windows-shell-prefix
  • 4e85b31 Merge pull request #9952 from code-yeongyu/docs/changelog-unreleased-20261011
  • 241c0f0 Merge remote-tracking branch 'origin/dev' into fix/9877-cwd-fixtures
  • 1a5554d Merge origin/dev into fix-lsp-unsupported-pull-order-9476
  • a7d227b Merge remote-tracking branch 'origin/dev' into fix/9733-windows-shell-prefix
  • 8f03f45 Merge remote-tracking branch 'origin/dev' into feat/cu-b5b-control-host
  • cd689cd docs(changelog): fold #9916 into the computer-use probe entry
  • 9c7839d Merge pull request #9916 from code-yeongyu/fix/9742-probe-phase-followup
  • fc8fcb3 Merge remote-tracking branch 'origin/dev' into feat/cu-b5b-control-host
  • 6ba06cb docs(changelog): state the foreground-control refusal and fix the login entry
  • 71ae010 docs(changelog): add missing Unreleased release notes since v5.1.29
  • c719a40 Merge pull request #9906 from code-yeongyu/test/9766-stage3-part4b
  • ef57ab1 Merge pull request #9907 from code-yeongyu/fix/onboarding-first-prompt-2197
  • f101b9a test(runtime-fallback): drop two #8402 tests that bypass normalization
  • c5ca13f docs(readme): scope /efforts to models with effort grades
  • 8dc1856 Merge remote-tracking branch 'origin/dev' into docs/thinking-and-resume-paths
  • 44ced9e Merge remote-tracking branch 'origin/dev' into feat/cu-b5b-control-host
  • 6eb8bbd Merge pull request #9902 from code-yeongyu/docs/9861-release-note
  • 7464555 Merge pull request #9013 from MoerAI/fix/8510-user-model-variant
  • b51b698 Merge origin/dev into fix/9742-probe-phase-followup
  • aa18dcc test(runtime-fallback): exercise general normalization
  • 31668ae Merge remote-tracking branch 'origin/dev' into takeover/8403
  • 8be8527 Merge origin/dev into fix/9733-windows-shell-prefix
  • fe10da9 Merge remote-tracking branch 'origin/dev' into docs/9861-release-note
  • 9f5df4c Merge origin/dev into fix/onboarding-first-prompt-2197
  • 10125ee fix(opencode): preserve builtin fallback variants and loaded reasoning precedence
  • f13fdf2 Merge remote-tracking branch 'up/dev' into fix-lsp-unsupported-pull-order-9476
  • a45b4a2 Merge origin/dev into fix/8510-user-model-variant
  • 862f28c Merge remote-tracking branch 'origin/dev' into test/9766-stage3-part4b
  • 2ffb66a Merge remote-tracking branch 'origin/dev' into feat/cu-b5b-control-host
  • 0deecd9 Merge pull request #9899 from code-yeongyu/feat/cu-b5a-control-grant
  • a1abfef docs(changes): record shell probe review fix (#9733)
  • d975085 test(opencode): lock configured shell forwarding (#9733)
  • 7198b42 fix(opencode): skip unusable shell file probes (#9733)
  • 4fbb1d5 Merge pull request #9914 from code-yeongyu/test/bundle-budget-20261011
  • 6927c33 fix(delegate-task): preserve reasoning through resume
  • 0853968 Merge origin/dev into fix/8510-user-model-variant
  • a6afdb5 Merge remote-tracking branch 'origin/dev' into fix/onboarding-first-prompt-2197
  • 0762ead Merge remote-tracking branch 'origin/dev' into docs/9861-release-note
  • 5c95ea1 fix(onboarding): restore tour help and document process scope
  • 2d94e03 Merge pull request #9893 from code-yeongyu/test/9892-no-raw-tls-client-guard
  • 9cbd499 Merge remote-tracking branch 'origin/dev' into docs/9861-release-note
  • a1e4c84 Merge commit '608c0e55ad5e5a5d9de92d56ad7a9c74149b8474' into feat/cu-b5b-control-host
  • 466e82a Merge remote-tracking branch 'origin/dev' into feat/cu-b5a-control-grant
  • b123d15 Merge remote-tracking branch 'origin/dev' into test/9766-stage3-part4b
  • 631b9f3 fix(computer-use): drop the dead probe phase and name both waits (#9742 follow-up)
  • c4df528 Merge commit '7ce8fe5d023118e261cad5837ee064d7ef52ac8e' into feat/cu-b5b-control-host
  • 703fdc5 Merge remote-tracking branch 'origin/dev' into fix/onboarding-first-prompt-2197
  • 0a70fd4 fix(onboarding): preserve context and process tour state on retries
  • 7ce8fe5 fix(desktop): menus session test gets its own control slot; regenerate bundles after merging dev (#9651)
  • ab214e7 Merge pull request #9742 from MoerAI/fix/9720-probe-clock-independence
  • 5470cf4 Merge remote-tracking branch 'origin/dev' into fix/9733-windows-shell-prefix
  • 3478c7e Merge remote-tracking branch 'origin/dev' into test/9766-stage3-part4b
  • a8126d2 Merge remote-tracking branch 'origin/dev' into feat/cu-b5a-control-grant
  • d07e113 Merge pull request #9886 from code-yeongyu/feat/cu-b2b-macos-menus
  • 875434b Merge remote-tracking branch 'origin/dev' into docs/9861-release-note
  • fa752e5 Merge remote-tracking branch 'origin/dev' into test/9766-stage3-part4b
  • 13c2d3d Merge remote-tracking branch 'origin/dev' into test/9892-no-raw-tls-client-guard
  • c95dadd Merge pull request #9884 from code-yeongyu/fix/9715-reconcile-diagnostics
  • 8b69700 Merge remote-tracking branch 'origin/dev' into test/9892-no-raw-tls-client-guard
  • dcd3b9a fix(test): recognize cast globalThis Bun access in TLS guard
  • 762682b Merge remote-tracking branch 'origin/dev' into carry/9720-probe-phase
  • 9ec592c docs(changes): record #9733
  • fb3a087 Merge remote-tracking branch 'origin/dev' into fix/9733-windows-shell-prefix
  • b58c24b fix(opencode): prefix commands for the shell OpenCode actually runs (#9733)
  • 0d44415 merge: sync dev into onboarding first-prompt fix
  • 646c2bd Merge remote-tracking branch 'origin/dev' into feat/cu-b5a-control-grant
  • 7e72d98 test(desktop): macOS QA approves only the foreground-control confirm; trim changes.md blank line (#9651 review L1/L4)
  • d0b3cfc Merge commit '0bf1d6eb69a5aa38ab1d911032aa4928e404e252' into feat/cu-b5b-control-host
  • 0bf1d6e docs(desktop): reference states raiseWindow always needs the grant, stricter than upstream (#9651)
  • be7b41c docs(desktop): win.raise() always needs the grant; fix the contradictory prelude line (#9651)
  • 8d7455a Merge remote-tracking branch 'origin/dev' into feat/cu-b2b-macos-menus
  • e06f62f Merge pull request #9881 from code-yeongyu/feat/cu-b2a-menu-methods
  • b3ef086 test(desktop): macOS interactive QA acquires the grant for its foreground click (#9651)
  • 0740421 Merge commit 'f9e63cdc0262ae2ae7085b28e9be4bde2dae44b7' into feat/cu-b5b-control-host
  • 8172029 Merge remote-tracking branch 'origin/feat/cu-b2a-menu-methods' into feat/cu-b2b-macos-menus
  • 0f7ee50 docs: remove the diff3 base markers left by the changes.md union resolutions (#9651)
  • f9e63cd fix(desktop): B5a CI - QA harnesses take the grant, telemetry doc, stray merge marker (#9651)
  • 157d8e8 fix(onboarding): compact first-prompt state and regenerate plugin
  • d7e5a3a fix(test): detect import-equals and Bun assignment acquisitions
  • a1996fd Merge remote-tracking branch 'origin/dev' into test/9892-no-raw-tls-client-guard
  • 7d0362a fix(test): use compiler AST for raw TLS client guard
  • 22ef172 test(computer-use): drive the hello-answered phase test with an in-process engine (#9720)
  • ca954bb Merge commit 'f69d6bc07d62fdc6f93ca904072e4a44c6f2ea5e' into feat/cu-b5b-control-host
  • 250a9ea Merge commit '185b957d835dd5d3d3fb7cddf850763dec651120' into feat/cu-b5b-control-host
  • 185b957 Merge remote-tracking branch 'origin/dev' into feat/cu-b5a-control-grant
  • fec5e7f fix(onboarding): defer first-run context until a real user prompt
  • d889684 docs(onboarding): distinguish first-prompt context from explicit tour
  • a1789d2 Merge remote-tracking branch 'origin/dev' into fix/9715-reconcile-diagnostics
  • 3930b07 Merge remote-tracking branch 'origin/dev' into fix/9715-reconcile-diagnostics
  • 4895aa3 Merge remote-tracking branch 'origin/dev' into feat/cu-b2a-menu-methods
  • d47f5a0 Merge pull request #9023 from MoerAI/fix/5810-global-session-list
  • 19c1dd9 Merge remote-tracking branch 'origin/feat/cu-b2a-menu-methods' into feat/cu-b2b-macos-menus
  • 3ed5b89 docs(changelog): describe the suspended-children fix for the release notes (#9861)
  • 0acefdc Merge pull request #9868 from code-yeongyu/fix/9861-no-user-visible-suspended
  • 92a32bd fix(desktop): code that throws before its first await no longer leaks an unhandled rejection (#9651)
  • d534463 Merge branch 'dev' into feat/cu-b2a-menu-methods
  • 00a3d4e Merge remote-tracking branch 'origin/dev' into test/9892-no-raw-tls-client-guard
  • 16975c0 docs(desktop): B5b round-3 lows - 8 s acquire floor stated, docs and test (#9651)
  • 6c33aa1 fix(desktop): a dropped or failed revoke is sent again; acquire says when the run is too short (#9651)
  • 1c3939d fix(desktop): B5b review - run settles at its deadline, revoke only a live grant, confirm within the run budget (#9651)
  • daded47 fix(desktop): confirm ends before the run budget; revoke only a live grant (#9651)
  • 6ea8ced fix(desktop): B5b review fixes - plain revoke-then-throw, confirm timeout to the host, wiring under the LOC cap (#9651)
  • b0cd196 fix(desktop): B5b ComputerHostContext ui slice and closedService revokeControl for typecheck (#9651)
  • 7c373c7 docs(desktop): B5b changes.md entry for the host control flow (#9651)
  • 48be766 Merge remote-tracking branch 'origin/dev' into HEAD
  • 65b3698 feat(desktop): B5b prelude control facade — computer.control in JS/Python, declarations, docs, regenerated assets (#9651)
  • 19148cc feat(desktop): B5b control tier tables — acquire/release exec, state read (#9651)
  • 244e84c feat(desktop): B5b host control — facade, confirm flow, revocation wiring, error mapping (#9651)
  • 14ce1a0 Merge remote-tracking branch 'origin/dev' into fix/9861-no-user-visible-suspended
  • 6f87244 Merge remote-tracking branch 'origin/dev' into fix/9715-reconcile-diagnostics
  • 68a3ce7 fix(computer-use): name the stalled phase in probe timeouts; probe test waits on completion (#9720)
  • 04c6b85 Merge remote-tracking branch 'origin/dev' into carry/9720-probe-phase
  • 8babb98 Merge pull request #9896 from code-yeongyu/fix/9890-seed-subprocess-signals
  • da47e8f Merge remote-tracking branch 'origin/feat/cu-b5a-control-grant' into feat/cu-b5b-control-host
  • 6da6439 test(desktop): B5b host control RED — facade, confirm, revocation tests plus stubs (#9651)
  • aa40aec Merge remote-tracking branch 'origin/dev' into test/9892-no-raw-tls-client-guard
  • 6f20a8e fix(desktop): read the stop epoch before the suspension check in control.grant (#9899 review r2)
  • e4330a8 Merge remote-tracking branch 'origin/dev' into feat/cu-b2a-menu-methods
  • 8af6eb3 Merge remote-tracking branch 'origin/dev' into fix/9861-no-user-visible-suspended
  • 168f018 Merge remote-tracking branch 'origin/dev' into fix/9890-seed-subprocess-signals
  • c334a6a Merge pull request #9871 from code-yeongyu/wa/108-binding-platform
  • 69c1a00 fix(desktop): no grant during a stop, admission checks the stop epoch, drop the dead generation fence (#9899 review)
  • 517b634 test(desktop): make the B5a session tests deterministic with the injected slot (#9651)
  • 1c1aec7 refactor: move the TLS guard to script/ as test-only tooling
  • ddf24aa fix: fail CI when a known built runtime is missing or unlisted
  • 1240994 Merge remote-tracking branch 'origin/dev' into fix/9861-no-user-visible-suspended
  • 78df21d Merge remote-tracking branch 'origin/dev' into HEAD
  • eca1884 Merge remote-tracking branch 'origin/dev' into wa/108-binding-platform
  • 2c14e63 fix: satisfy the Opus review round for the TLS guard
  • 033bde4 Merge remote-tracking branch 'origin/dev' into fix/9890-seed-subprocess-signals
  • 48b9fbf fix(desktop): inject the control slot so parallel tests never share it (#9651 B5a)
  • c26b9d7 fix: evaluate the TLS guard allowlist per exact call site
  • bc6c120 refactor: extract the TLS guard evaluation seam
  • 97954d5 Merge remote-tracking branch 'origin/dev' into fix/9715-reconcile-diagnostics
  • 63709f7 Merge remote-tracking branch 'origin/dev' into feat/cu-b2a-menu-methods
  • 9627875 test(desktop): collect the grant and revoke audits without skipping notifications (#9651 B5a)
  • 459663e Merge pull request #9875 from code-yeongyu/feat/cu-b1-menu-path-matcher
  • 803ba8c fix(desktop): B5a compiles, gate before grant, generated schema and descriptor (#9651)
  • 337733b fix(session-manager): filter dates before the limit and page directory lists to the end (#5810)
  • 1e3742f feat(desktop): raiseWindow needs the control grant too (#9651 B5a)
  • 73f0976 feat(desktop): B5a error-code amendment mirrors and docs (#9651)
  • 1aaff29 feat(desktop): implement the B5a control grant (#9651)
  • 924877e test(desktop): failing B5a control-grant tests with stubs (#9651)
  • a7d092f Merge remote-tracking branch 'origin/dev' into fix/9861-no-user-visible-suspended
  • 3e6c34a Merge remote-tracking branch 'origin/dev' into feat/cu-b1-menu-path-matcher
  • fe49641 Merge origin/dev into fix/5810-global-session-list
  • 85d34c1 fix(qa): forward the teardown path through the QA residency registries (#9861)
  • 710f639 Merge origin/dev into fix/9861-no-user-visible-suspended
  • 09bc5d2 test(desktop): sync the lazy-runtime prelude pins and run the Python harness in UTF-8 mode (#9881 CI)
  • 9316672 fix(desktop): name the foreground grant in the multi-window menu refusal (#9886, #9888)
  • 8832d63 fix(desktop): menu-specific multi-window refusal and a two-window wait (#9886 review r2)
  • 8945741 Merge branch 'dev' into feat/cu-b1-menu-path-matcher
  • 62bc14c Merge pull request #9869 from DeryFerd/fix/dag-node-id-path-traversal
  • 2e13e4f fix(desktop): menu select refuses multi-window apps and walks in the key context (#9886 review)
  • e8ce50d test(desktop): wait for the menu fixture to record the pressed command (#9651 B2b)
  • 1f71f96 test(qa): report the final record and events when reconcile_lost_terminates_orphan fails
  • b668e3f Merge branch 'dev' into wa/108-binding-platform
  • 83ed942 test(desktop): give the menu fixture an app menu and a truly disabled item (#9651 B2b)
  • 411949f fix(desktop): compile the menu submenu-choice test seam only for tests (#9651 B2b)
  • dfb1a21 fix(desktop): return the rendered menu shortcut without double-wrapping (#9651 B2b)
  • 8814e8d test(gateway): release the store worker on a failed migration before reading the file
  • 3e5ee1f Merge branch 'dev' into fix/dag-node-id-path-traversal
  • a811e4d Merge branch 'dev' into feat/cu-b1-menu-path-matcher
  • 888f25b Merge pull request #9878 from code-yeongyu/ci/merge-group-triggers
  • 7ff356b Merge remote-tracking branch 'origin/feat/cu-b2a-menu-methods' into feat/cu-b2b-macos-menus
  • cba9d51 Merge remote-tracking branch 'origin/dev' into feat/cu-b1-menu-path-matcher
  • 43384f9 feat(desktop): macOS menu-bar backend for computer use (#9651 B2b)
  • b01ad83 fix(desktop): a stop racing cancellation in the menu walk reports Suspended (#9881 review r2)
  • 5aae431 test(desktop): a stop racing cancellation mid menu walk reports Suspended (#9881 review r2)
  • a06367f Merge remote-tracking branch 'origin/dev' into sync-9869-1791645525943
  • da898f2 test(desktop): pin the key-focus guard around a menu selection (#9881 review)
  • 63e3322 test(desktop): macOS menu unit tests and backend wiring stubs (#9651 B2b)
  • beb4d84 Merge branch 'dev' into ci/merge-group-triggers
  • 81141f3 Merge pull request #9866 from code-yeongyu/docs/mass-ulw-review-node-join
  • ce5b73b Merge remote-tracking branch 'origin/dev' into feat/cu-b1-menu-path-matcher
  • 3e45398 fix(desktop): menu select stops mid-walk, restores key focus, audits refusals (#9881 review)
  • 25ea9a3 test(desktop): a refused menu selection still releases held input (#9651 B2a)
  • 083fd1f test(desktop): forward menu calls through the session test decorator (#9651 B2a)
  • 7bcaa49 Merge branch 'dev' into ci/merge-group-triggers
  • 50237ea test(desktop): give the audit sweep a menu; drop needless borrows (#9651 B2a)
  • 7785963 Merge branch 'dev' into wa/108-binding-platform
  • ffca224 Merge branch 'dev' into docs/mass-ulw-review-node-join
  • 78d4592 Merge pull request #9859 from code-yeongyu/issue/9854-batch-cap
  • eba5995 Merge remote-tracking branch 'origin/dev' into feat/cu-b1-menu-path-matcher
  • f68235a fix(desktop): clippy and menu-test correctness for #9651 B2a
  • e9480da fix(ci): use portable review gate import URLs
  • 628661d feat(desktop): cross-platform menu methods on the fake backend (#9651 B2a)
  • fb4e461 test(desktop): menu items/select contract tests against stubs (#9651 B2a)
  • ddacd37 Merge branch 'dev' into wa/108-binding-platform
  • 2d8fa72 Merge branch 'dev' into docs/mass-ulw-review-node-join
  • 68e3b40 docs(AGENTS): update buildTaskExecute code-map entry for uncapped batches
  • 8cfc539 Merge pull request #9860 from Altairpaca/fix/9805-materialize-submodule-retry
  • 3333ced test(ci): pin the queued-ref parser's anchors
  • 406c27d docs: resolve the changes.md merge conflict left in the dev merge (refs #9873)
  • de1ec14 fix(thread): run foreign_key_check in TypeScript before the v7 bump
  • c027eaa fix(desktop-core): keep require_enabled for path walks (#9875 review)
  • 3e59ed6 Merge branch 'dev' into fix/9861-no-user-visible-suspended
  • f0a7606 feat(desktop-core): shared menu-path matching (#9651)
  • 65c2f61 Merge branch 'dev' into docs/mass-ulw-review-node-join
  • 3e687cd test(desktop-core): port oh-my-pi's menu-path matching tests (#9651)
  • 80c8050 Merge branch 'dev' into fix/dag-node-id-path-traversal
  • 3d4ac60 fix(thread): v7 rebuild with foreign_keys off; preserve sqlite_sequence
  • 17d3302 feat(thread): whatsapp as a binding platform (schema v7)
  • 43c0c2a Merge branch 'dev' into fix/9805-materialize-submodule-retry
  • 1abeb9d Merge pull request #9853 from code-yeongyu/fix/cu-a2-macos-date-setvalue
  • af407c0 Merge branch 'dev' into fix/9805-materialize-submodule-retry
  • 505769f Merge remote-tracking branch 'origin/dev' into fix/cu-a2-macos-date-setvalue
  • a371c14 Merge pull request #9852 from code-yeongyu/fix/cu-a1-macos-popup-setvalue
  • 76e8d43 docs(mass-ulw): join all-to-all adjacent waves through one review node
  • 588f2ee Merge branch 'dev' into fix/9805-materialize-submodule-retry
  • 59bc89a Merge remote-tracking branch 'origin/dev' into fix/cu-a1-macos-popup-setvalue
  • d9fdb9d Merge pull request #9858 from code-yeongyu/fix/9857-release-staging-fail-fast
  • 05190c5 Merge remote-tracking branch 'origin/dev' into fix/cu-a1-macos-popup-setvalue
  • 4e88b83 fix(build): retry pinned shared-skills submodule fetches
  • 94e517e fix(release): check the compiled desktop engine before the plugin build (#9857)
  • 99d1d0e Merge pull request #9848 from code-yeongyu/test/9766-stage3-part3
  • d578592 refactor(desktop-macos): import SECONDS_PER_DAY from the civil module (#9853 review)
  • 6f8e966 docs(changes): drop a stray diff3 base section left by the rebase
  • a8b2947 docs(changes): drop a stray diff3 base section left by the rebase
  • 74deaa6 test(desktop-macos): drive a real NSDatePicker; drop the write-path seam
  • 8b741c8 fix(desktop-macos): write ISO-8601 dates to AX date controls as CFDate
  • b99183b test(desktop-macos): port ISO-8601 date-write tests for AX date controls
  • 0220c85 Merge branch 'dev' into test/9766-stage3-part3
  • 3c38ddf fix(desktop-macos): wait for a chosen popup menu to close (#9852 review)
  • 2c03219 fix(desktop-macos): choose popup-button options through setValue (#9651)
  • a3fc47f Merge origin/dev into fix/5810-global-session-list
  • 41f35ab Merge origin/dev into fix/8510-user-model-variant
  • 762839e Merge pull request #9845 from code-yeongyu/fix/unspecified-low-gpt-6.1-sol
  • 92ffc45 test(#9766): stage 3 part 3: cleanup in shared-skills and team-core tests; drop 6 owners from the report-only list
  • 562d7ca Merge pull request #9847 from code-yeongyu/test/9766-stage3-part2
  • 9a2ce45 Merge branch 'dev' into fix-lsp-unsupported-pull-order-9476
  • 51dfb41 test(#9766): stage 3 part 2: per-test cleanup in isolation-core, boulder-state and openclaw; drop 7 owners from the report-only list
  • 36fd207 Merge pull request #9843 from code-yeongyu/test/9766-stage3-small-owners
  • c7b2352 Merge branch 'dev' into test/9766-stage3-small-owners
  • 98c61cb Merge pull request #9841 from code-yeongyu/fix/9840-bun-spawn-windows-hide
  • f79136a test(#9766): stage 3: fix the two leaking small-owner tests; drop 10 small owners from the report-only list
  • 84fb909 Merge remote-tracking branch 'origin/dev' into fix/9840-bun-spawn-windows-hide
  • d5b8ce5 Merge pull request #9837 from code-yeongyu/fix/7144-hook-windows-hide
  • f1ddcbb Merge remote-tracking branch 'origin/dev' into fix/7144-hook-windows-hide
  • f5899f9 Merge pull request #9842 from code-yeongyu/fix/9766-windows-psscriptpolicytest
  • 7273384 Merge branch 'dev' into fix/9766-windows-psscriptpolicytest
  • 2b4c4f5 Merge pull request #9839 from code-yeongyu/fix/9838-codex-windows-hide
  • 117577c test(#9766): ignore PowerShell's execution-policy probe files in the temp-leak guard
  • 37d4ab7 build: regenerate omo, omo-task and codex install bundles for #9840 (linux/amd64, node 24)
  • fe6718b fix(utils): pass windowsHide on the Bun spawn path; gate Bun.spawn calls (#9840)
  • 1fc1f97 docs(changes): note the lazycodex plugin console-window fix (#9838)
  • 4456ffc build: regenerate omo-task and codex install bundles for #7144 (linux/amd64, node 24)
  • af0d723 fix(omo-codex): spawn plugin-script children with windowsHide; gate plugin/scripts (#9838)
  • 134f90d fix(utils): hide sg and where probe consoles; gate every utils child_process call on windowsHide (#7144)
  • 6543d81 fix(utils): spawn hook commands with windowsHide on Windows (#7144)
  • acdc869 Merge pull request #9835 from code-yeongyu/docs/9833-logout-changes-wording
  • c1c2b2a docs(changes): state the final logout warning rule in the #9833 entries
  • 3c649f3 Merge pull request #9833 from code-yeongyu/fix/9829-login-r2-followups
  • fd7f029 fix(cli): warn on logout unless the server revoked the device (#9833)
  • 6ff3f3d fix(cli): settle logout refresh failures and crash recovery
  • f45cb29 fix(cli): recover sign-in from TLS and opener failures
  • 2475261 Merge pull request #9831 from code-yeongyu/feat/9829-omo-login
  • 4c4d255 fix(cli): preserve credentials across uncertain refresh outcomes
  • ef86489 test(cli): categorize the login round-trip test's launcher path in the command audit (#9829)
  • 9d364d2 feat(cli): add OS-keystore login and logout (#9829)
  • 6e4d842 Merge pull request #9827 from code-yeongyu/feat/get-worker-rollup-cron
  • cdde1c7 Merge pull request #9828 from code-yeongyu/release/v5.1.29-source-state
  • a4b8b3c feat(get-worker): run the downloads rollup hourly at :17 on the Sisyphus Labs account
  • 02b98aa fix(omo-native): take the computer-use probe test off a 1 s wall clock (fixes #9720)
  • df70966 test(lsp-core): correct the harness realpath comment (#9476)
  • 15e44a1 test(lsp-core): realpath the apply-edit harness workspace root (#9476)
  • 6cce84f fix(lsp-core): re-resolve push diagnostics after an unsupported pull response (#9476)
  • 4fe3d46 Merge remote-tracking branch 'origin/dev' into fix/5810-global-session-list
  • e753795 Merge remote-tracking branch 'origin/dev' into fix/8510-user-model-variant
  • c77a283 docs(readme): name the thinking-level and session-resume paths
  • 274a6bb fix(session-manager): enumerate global sessions (fixes #5810)
  • 8bb682c fix(delegate-task): avoid inheriting category variants (fixes #8510)
  • c92d170 fix(runtime-fallback): add general to AGENT_NAMES so fallback chains resolve (#8402)
  • f7e65e8 Merge branch 'dev' into fix/bip-7227
  • 9e8a929 Merge branch 'dev' into fix/bip-7190
  • 2f2589b fix(model-core): widen claude-5 allowlist for -fast variant (review fix)
  • d6a4cf2 fix(tui-sidebar): exclude disabled agents from idle roster
  • e09ad60 fix(model-core): add claude-opus-5 to GA 1M allowlist

Thank you to 2 community contributors:

  • @MoerAI:
    • Merge origin/dev into fix/5810-global-session-list
    • fix(session-manager): filter dates before the limit and page directory lists to the end (#5810)
  • @tahakotil:
    • Merge remote-tracking branch 'up/dev' into fix-lsp-unsupported-pull-order-9476
bun add -g omo-ai

Don't miss a new oh-my-openagent release

NewReleases is sending notifications on new releases.