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

3 hours ago

5.1.0 adds computer use to OmO Native as an experimental feature, and fixes Claude subscription logins across many sessions, GitHub Copilot tokens and hosts, goals that looped on a rejected login, and a long list of background task problems. omo update installs it, or run:

bun add -g omo-ai

Computer use (experimental)

  • Experimental: OmO Native agents can now drive your real desktop. They take screenshots, list windows, click, type, scroll, press keys, read the accessibility tree and use the clipboard, through a computer tool and a computer global in the eval kernels. Behaviour may still change, so please send feedback and bug reports.
  • Per OS:
    • macOS (arm64, x64): background input by default, so your frontmost app, focus and cursor stay put.
    • Windows x64: background input varies by app, and nothing can reach elevated apps.
    • Linux x64 on X11: XTEST/XSendEvent plus AT-SPI.
    • Linux x64 on Wayland: portals and libei, with no single-window capture.
    • No engine ships yet for Linux arm64 or Windows arm64.
  • Turning it on: it is on by default on supported hosts, but its code and native engine load only on first use, so sessions that never use it pay nothing at startup. The agent finds computer through tool search, or you run /computer on. /computer status shows the engine, the stop path and the OS permissions. Set computer.enabled: false to remove it entirely. macOS needs Screen Recording and Accessibility.
  • Scrolling: dx/dy are pixels on every OS (one wheel notch is 40 px), and a positive dy scrolls down everywhere, macOS included. (#9101, #9055)
  • Kill switch: Control+Option+Command+Escape on macOS, or Ctrl+Alt+Shift+Escape on Linux and Windows, stops all computer input at once, including typing already in progress. Input stays stopped until you run /computer resume; the agent cannot resume it.
  • Safety: screenshots need computer:read and input needs computer:exec. Before input, OmO checks the stop path, the screen lock, the OS permissions and that the target point is uncovered.
  • Known limits: some toolkits ignore synthetic background input; OmO then reports it instead of pretending it worked. X11 background input doesn't reach GTK, Qt or Chromium yet (#9108). Wayland's stop chord needs the GlobalShortcuts portal. Full guide: docs/guide/computer-use.md.

Added

  • omo app-server threads load the OmO plugin, so they get task, workpool, memory, lsp_* and the other OmO tools, and app-server daemon restart keeps it. (#9117, #9122, senpi#2313)
  • Durable scheduled prompts: the schedule_prompt tool stores a reminder, follow-up or recurring prompt, and schedule run fires it later, also for --print runs. (senpi#2216)
  • Sessions follow a moved or re-cloned repository: --session, --resume and /resume offer to move them here, keeping their history, goal, loops and monitors. (senpi#2181, senpi#2184)
  • models discover <provider> fills an OpenAI-compatible provider's model list in models.json from its /models endpoint, including the reasoning levels it advertises. (senpi#2196)
  • Eval kernels say when they hold a lot of memory, name the largest globals, and restart once past a ceiling (memory.noticeMb, memory.ceilingMb). (senpi#2261)
  • host status --all lists every RPC host endpoint, host gc clears the state of hosts that are provably gone, and host status shows memory_pressure. (senpi#2226, senpi#2245)
  • A native crash of an interactive or print session leaves one entry in process-crashes/crashes.jsonl on the next start. (senpi#2194)

Changed

  • OmO Native moves from senpi 2026.9.27 to senpi 2026.9.28-7; the engine fixes below come with it.
  • A parent no longer runs out of room for its task children: task.residency_max_children defaults to "unlimited". Set a number in omo.json to keep a bound. (#8999)
  • Memory extracts facts from one very long conversation entry (up to 512 KiB) in a bounded extra run instead of parking it forever, which can mean extra model calls. (#8984, contributed by @deadcode-walker in #8985)
  • After an account-wide usage limit, a task's fallback tries the next provider's models first and keeps the spent provider as the last resort; a limit on one model or family still moves to the next model in order. (#8296)
  • A fallback-chain model that keeps failing is skipped for a cooldown (60 s, doubling up to 30 minutes) by every session in the process, and a provider's Retry-After is honored. (senpi#2198)
  • GPT-6 Astra, Sol and Luna stay on the stated goal and report unrelated errors in the final message instead of chasing them. (senpi#2256)
  • OpenCode Go and Fireworks default to kimi-k3, since their old Kimi defaults left the catalogs. (senpi#2295, senpi#2175)

Fixed

Providers and logins

  • Claude subscription sessions no longer hit 401 OAuth access token has been revoked and end up "blocked until re-login" when several sessions run at once; they pick up the refreshed token instead. (#8762, senpi#2225, senpi#2281, senpi#2282)
  • /login into a blocked Claude account now replaces the revoked token instead of keeping it. (senpi#2222)
  • A Claude subscription turn no longer fails with "pre-replay buffer overflow" while Claude Code runs a background turn of its own. (senpi#2192)
  • GitHub Copilot recovers when GitHub revokes its cached token: the token is re-exchanged once and the request re-sent, so every model no longer fails with HTTP 403 until /login. (senpi#2297, senpi#2302)
  • GitHub Copilot Business and Enterprise accounts reach their own API host instead of failing with 421 Misdirected Request, for chat, /btw and web search. (#8662, senpi#2309, senpi#2310)
  • Copilot turns no longer fail with a bare HTTP 400 when more than 128 tools are exposed; the extras are left out and you're told how many. (senpi#2298)
  • Copilot models compact before Copilot's own prompt limit instead of failing the turn. (senpi#2299)
  • A Copilot 402, 403 or quota 429 says whether it's a quota or a refusal and includes the GitHub request id. (senpi#2297)
  • A goal stops on the first 401 or 403 a provider keeps returning and tells you what to do (for example Run /login github-copilot ...) instead of looping to the continuation cap; your next message resumes it. (senpi#2293)
  • The first message no longer fails on providers that only accept automatic tool choice, for example Kiro behind a proxy; compat.supportsForcedToolChoice: false skips the forced choice entirely. (#9096, senpi#2218, senpi#2224)
  • Devin SWE-2 lists only the lanes Devin serves (swe-2-medium, swe-2-high, swe-2-max), devin/swe-2-medium gets the SWE-2 prompt preset, and a config naming swe-2, swe-2-low or swe-2-high-lite gets a startup warning. (#9111, senpi#2306, senpi#2308)

Memory

  • Kibitzer and the other memory sidecars fall back to their category's builtin models when a pinned model refuses, instead of failing every wake. (#9111)
  • The Kibitzer failure notice names the model that failed and the omo.json setting to change. (#9111)
  • Memory reflection moves to the next model when one hits a spent usage or quota limit, instead of ending the run. (#8296, #6808)
  • Memory dreaming sees which skills and memory files you actually read again. (#8864, reported by @katamana, fixed by @MoerAI in #8865)

Tasks and subagents

  • Task children wait for a busy task host instead of failing with "Task runner failed to start." within 30 s. (#9067, senpi#2209)
  • A task child that kept working through a host hiccup or handoff is no longer left "suspended" until the parent restarts. (#9069)
  • A task waiting for a free slot on its fallback model shows as queued with its position, not as running. (#9069)
  • A task's status follows its child: a nudged child no longer shows as failed, and a child that wakes up on its own sends a task completion (resumed turn). (#9069)
  • A delegated task no longer hangs in running (and omo -p no longer stays open) when its first model fails and it moves to the next one.
  • A task child whose host restarted mid-turn continues its interrupted turn when the parent resumes. (#9003)
  • A suspended task child frees its concurrency slot, so task_send no longer answers lane_capacity after a few restarts. (#8973)
  • Task start failures say why the child couldn't start instead of only Task runner failed to start. (#8960)
  • A child whose host dies while it opens reports host_unreachable. (#9020)
  • A re-prompted child on a loaded host no longer prints Timeout waiting for response to prompt over the parent's screen. (#9093)
  • A task whose whole fallback chain failed says so in its transcript. (#8301, contributed by @MoerAI in #9022)
  • Live task progress, stats and transcripts keep updating after a child reconnects to its host. (#8983, contributed by @deadcode-walker in #8978)
  • DAG nodes finish when their child task finishes, also in projects reached through a symlink. (#8932, reported by @ayalcoh)
  • A cancel, a cleanup sweep or a reload during a model fallback no longer ends a revived run, loses a lane slot, or starts the next model beside a child that's still closing.

Task host

  • The shared host keeps opening sessions after a session's directory is deleted, instead of failing every new task child with ENOENT. (senpi#2206)
  • The shared host no longer refuses task children when its memory is high, and it leaves memory pressure once memory is actually freed. (#8960, senpi#2207, senpi#2261)
  • A transient task daemon idle-exits again while omo runs, and polling host status no longer keeps hosts alive. (#9041, senpi#2242, senpi#2227)
  • An old host generation exits after a handoff even when one of its sessions misbehaves, and a handoff no longer inherits the calling session's identity or model. (senpi#2285, senpi#2208)

Commands and sessions

  • /ulw-execute <plan> and every bundled skill name work as bare commands, like /skill:<name>. (#9042)
  • A bare /skill or /skill: opens the skill list instead of going to the model. (senpi#2249, senpi#2251)
  • /thinking works again, /sessions opens the session picker, and /help says how to change the thinking level and reopen a session. (senpi#1437)
  • Answering y to "Fork this session into current directory?" forks it instead of printing Aborted. (senpi#2180, senpi#1042 by @beengineer500)
  • Starting omo no longer empties an upstream pi install, and a ~/.pi/agent an earlier start drained gets its files copied back. (#8039, senpi#2215)
  • MCP tools register once per session instead of twice. (senpi#2177)
  • Unhandled errors go to the debug log instead of over the TUI, and a fatal crash prints one line with the log path. (senpi#2284)
  • ulw plan progress counts T1.2, F1-style task ids and blocked - [~] rows, and a plan with no countable tasks no longer triggers a 0/0 continuation. (#9019, #6233)
  • Session search in the coding-agent-sessions skill finds prompts from the middle of a session. (#9012)

Edits and eval

  • When the formatter rewrites a file after write, edit or apply_patch, the model always gets the "auto-formatted, re-read before exact-text edits" notice, also when diagnostics come back clean. (#9123)
  • The comment checker replaces a stale cached binary with the pinned release, and warns in the session when it can't run instead of going quiet. (#8850, contributed by @cynkai in #8877 and #8880)
  • new Bun.WebView() works in eval cells on Windows and Linux, and with backend: "chrome" on macOS, and no longer leaves Chrome running. (senpi#2248, senpi#2272)
  • Eval memory goes back to the machine without a reset, settled cells no longer pin their images in memory, and retired workers don't leave zombie processes. (senpi#2259, senpi#2260, senpi#2261, senpi#1962)
  • Eval cells that print a lot of output finish about 4x faster. (senpi#2262)

Install, update and doctor

  • omo update on a compiled binary picks the newest release on its own channel and the asset it was built as, and prints a command that replaces the running binary; the TUI update notice says omo update.

  • omo doctor treats a standalone omo binary as an OmO install instead of an unknown file to delete, and warns once when it and omo-ai are both on PATH.

  • On Windows, omo doctor and install --platform=native recognize a Bun-installed omo, and omo update uses bun add -g for a legacy Bun home install. (#8909)

  • The computer use engine for Intel Macs starts: it was built for macOS 10.12 and could not load its Swift libraries, and the release now runs its selftest under Rosetta. (#9139)

  • d859bc2 Merge pull request #9139 from code-yeongyu/fix/desktop-engine-standard-macos-runners

  • 36b7f51 docs(changelog): note the Intel Mac computer use engine fix in 5.1.0

  • 5f7d77d fix(release): build Darwin desktop engines on standard macOS runners and launchable on x64

  • 669f132 Merge pull request #9138 from code-yeongyu/release/v5.1.0-source-state

  • 1350587 Merge pull request #9137 from code-yeongyu/release/5.1.0-notes

  • 27e7162 docs(changelog): write the 5.1.0 release notes

  • 2eb2b26 Merge pull request #9122 from code-yeongyu/fix/9117-app-server-plugin

  • befd417 fix(omo-native): load the OmO plugin into omo app-server (fixes #9117)

  • e22d52c Merge pull request #9128 from code-yeongyu/docs/computer-use-experimental

  • 1e184df Merge remote-tracking branch 'origin/dev' into docs/computer-use-experimental

  • 045c2dd Merge pull request #9130 from code-yeongyu/fix/formatter-notice-clean-diagnostics

  • a398f3d docs(computer-use): say computer use is experimental on every user-facing surface (#9124)

  • ea4f66a Merge pull request #9118 from code-yeongyu/fix/9113-lazy-computer-use-runtime

  • 367f718 Merge remote-tracking branch 'origin/dev' into fix/9113-lazy-computer-use-runtime

  • 3eed4f9 Merge pull request #9132 from code-yeongyu/fix/8296-limit-fallback

  • 0fc4517 perf(computer-use): ship the prelude texts as a lazily read JSON asset (#9113)

  • 8da2055 perf(computer-use): load the implementation on first use, not at session start (#9113)

  • adcf553 fix(model-core): move usage and quota limits to the next fallback model (#8296)

  • 14a2da2 Merge pull request #9127 from code-yeongyu/fix/materialize-test-isolation

  • 8321aa2 Merge pull request #9120 from nahwan-kim/fix/formatter-text-content-blocks

  • e7ac99b test(package-layout): pack the exclusion guards from a fixture package, not the checkout (#9125)

  • 9cb164d test(shared-skills): materialize frontend refs into a private root, not the checkout (#9125)

  • 6e6aae1 Merge upstream dev to resolve formatter PR bundle conflict

  • 863dc58 Merge pull request #9114 from code-yeongyu/fix/kibitzer-sidecar-refusal-fallback

  • 37691f3 Merge pull request #9065 from code-yeongyu/fix/wayland-fallback-refuse-coordinate-input

  • c0561ed Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • ace1a11 Merge pull request #9074 from code-yeongyu/fix/8959-ax-click-owner

  • b4fc94a Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • cb6c584 Merge remote-tracking branch 'origin/dev' into fix/8959-ax-click-owner

  • 24a0557 Merge pull request #9098 from code-yeongyu/fix/9095-windows-foreground-pointer

  • 3d582da test(desktop-qa): scroll the pointer scenarios by 120 px, three notches under #9101's mapping (#9095)

  • 760aeed test(desktop-qa): return scroll-direction-foreground to --all (#9095)

  • 5531886 fix(desktop): Windows foreground pointer input waits for the compositor and a placed cursor (#9095)

  • 8e98b34 test(desktop-qa): drop the #9095 diagnostics, keep the pointer scenarios (RED)

  • 1c30047 test(desktop): temporary #9095 compositor-settle experiment (DwmFlush, sleep placement)

  • f4076ea test(desktop): temporary #9095 settle-variant experiment for foreground scroll

  • 87e0bb5 test(desktop-qa): keep Add-Type warnings off the pointer host's ready line (#9095)

  • 7719ec1 test(desktop): temporary #9095 timeline of foreground pointer delivery

  • b5c1eb8 test(desktop-qa): cover the target point for real and add #9062's same-rect shape (#9095)

  • 5724e6c test(desktop-qa): fix the pointer probe and trace routed mouse events (#9095)

  • 1e1ee81 test(desktop-qa): reproduce Windows foreground pointer misdelivery (#9095)

  • fe427ef Merge pull request #9105 from code-yeongyu/fix/9101-scroll-pixels

  • 00e8d76 Merge remote-tracking branch 'origin/dev' into fix/9101-scroll-pixels

  • 8fb1692 Merge pull request #9062 from code-yeongyu/fix/9055-scroll-direction

  • 6424050 Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • cb0a990 Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • 3c71148 Merge pull request #9081 from code-yeongyu/fix/doctor-standalone-binary

  • 8844d40 Merge remote-tracking branch 'origin/fix/9055-scroll-direction' into fix/9101-scroll-pixels

  • e37abb3 Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • 3eabfe3 test(audit): count the doctor changes.md entry in the command-string allowlist

  • 22dca92 fix(omo-native): recognize standalone omo binaries in doctor (fixes #9080)

  • e3d2409 Merge pull request #9103 from code-yeongyu/fix/9093-reattach-continuation-rejection

  • e2c6403 test(desktop-qa): read the X11 scroll view after an event-ordered pointer marker (#9101)

  • a66bc7f test(desktop-qa): assert the pixel distance of a 120 px scroll on Windows and X11 (#9101)

  • 51c59c5 fix(computer-use): scroll dx/dy are pixels on every OS, 40 px per wheel notch (#9101)

  • db8f80c Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • 736d190 Merge pull request #9089 from code-yeongyu/fix/9084-macos-restore-live-front

  • cca40a2 Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • c624307 Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • bc73a80 Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • 95d62df Merge pull request #9099 from code-yeongyu/fix/9097-macos-background-scroll-once

  • 9fc550d Merge remote-tracking branch 'origin/dev' into fix/9097-macos-background-scroll-once

  • 0c06d1b Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • 3f651fe fix(desktop-wayland): keep EisRegion dependency-free so the Linux QA fake EIS builds

  • e98a682 Merge pull request #9090 from code-yeongyu/fix/9069-host-session-liveness

  • c3fcebc Merge remote-tracking branch 'origin/dev' into fix/9097-macos-background-scroll-once

  • 3bffcaa Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • d6f563e Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • af1e49f fix(desktop): post a macOS background scroll through one route so it moves once

  • 41bde3e Merge pull request #9086 from code-yeongyu/fix/9069-queued-fallback-start

  • d563d6f test(desktop-qa): keep the Windows foreground scroll repro out of --all until #9095

  • 647d237 test(desktop-qa): add a SendInput wheel control to the foreground scroll scenario

  • a3f599f test(desktop-qa): catch a wheel delivered to the front window

  • bc67110 Merge pull request #9075 from code-yeongyu/fix/9067-busy-host-start

  • 948e334 test(desktop-qa): report the window under the cursor and window rects

  • 6450815 test(desktop-qa): log what the Windows scroll host receives

  • f73bfb8 test(desktop-qa): prove the semantic scroll direction on Windows and X11

  • ca2f53a test(desktop-wayland): live Screenshot-portal check against the compositor layout

  • 6077912 docs(desktop): describe libei-derived geometry for scale-less Wayland captures

  • 4fd70d5 fix(desktop-wayland): derive scale-less capture geometry from the libei layout

  • a7ef715 docs(changes): X11 ax.click resolves the element's window (#8959)

  • 2009d62 test(desktop): live X11 AX-owner checks for overlapped and same-title windows

  • 7b1595a fix(desktop): resolve an AX element's X11 owner by pid, title and geometry

  • b63deaa test(desktop-wayland): reproduce scale-less captures that ignore the libei layout

  • 33007de Merge remote-tracking branch 'origin/dev' into fix/8959-ax-click-owner

  • 8d16752 docs(desktop): state the scroll contract semantically, independent of natural scrolling

  • fae778a Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • ad402f4 Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • 2403c66 Merge pull request #9082 from code-yeongyu/fix/macos-foreground-point-owner

  • 81fb5ae Merge remote-tracking branch 'origin/dev' into fix/9055-scroll-direction

  • 03e881e test(desktop-wayland): pin that a Screenshot-portal fallback frame refuses coordinate input

  • 897b445 Merge remote-tracking branch 'origin/dev' into fix/wayland-fallback-refuse-coordinate-input

  • 15f8f5c Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • 529aca8 Merge remote-tracking branch 'origin/dev' into fix/macos-foreground-point-owner

  • 7b2dc64 Merge pull request #9088 from code-yeongyu/fix/windows-qa-pid-identity

  • 2290888 fix(desktop): leave an app the user switched to in front after a restore

  • ba5a3f1 Merge pull request #9085 from code-yeongyu/fix/9069-truthful-child-records

  • 74139cd Merge remote-tracking branch 'origin/dev' into fix/9084-macos-restore-live-front

  • 04b14c3 fix(desktop): restore the macOS app the user had in front

  • cfb1d05 fix(qa): keep Windows desktop QA teardown off recycled pids

  • 02962d2 Merge remote-tracking branch 'origin/dev' into fix/macos-foreground-point-owner

  • ece60b0 Merge pull request #9083 from code-yeongyu/fix/9076-musl-engine-host

  • 75e9de1 Merge remote-tracking branch 'origin/dev' into fix/macos-foreground-point-owner

  • 29d4546 Merge pull request #9078 from code-yeongyu/fix/compiled-update-hint

  • 9c1da5d Merge pull request #8969 from code-yeongyu/fix/wayland-input-capture-gaps-20260927-v2

  • f967a12 Merge pull request #9073 from code-yeongyu/fix/web-native-download-count

  • 66e663d Merge remote-tracking branch 'origin/dev' into fix/9076-musl-engine-host

  • bb4a285 fix(desktop): refuse macOS foreground pointer input on a covered point

  • 1383971 Merge pull request #9071 from code-yeongyu/fix/stats-omo-ai-package

  • b082067 fix(desktop-engine): name the musl host so musl Linux never fetches the glibc engine (#9076)

  • b0bea70 fix(omo-native): resolve compiled omo update by channel, flavor and destination (fixes #9077)

  • 4016c1e Merge pull request #9060 from code-yeongyu/fix/doctor-computer-use-not-installed

  • 37f5198 Merge remote-tracking branch 'origin/dev' into fix/wayland-input-capture-gaps-20260927-v2

  • ba8519b Merge remote-tracking branch 'origin/dev' into fix/8959-ax-click-owner

  • 9c66cb9 Merge pull request #9058 from MoerAI/fix/8843-preview-safe-handlers

  • 264d2ac Merge remote-tracking branch 'origin/dev' into fix/doctor-computer-use-not-installed

  • 4c04931 fix(desktop): send AX coordinate clicks to the element's own window

  • 713775c Merge pull request #9064 from code-yeongyu/fix/omob-desktop-engine

  • a3c1742 fix(web): count compiled release binaries in the download totals (fixes #9072)

  • 4e535d3 fix(stats): count omo-ai in the weekly download stats (fixes #9070)

  • af5d73e test(script): count the new omo doctor changelog mentions in the command audit

  • 2b8901e fix(desktop): refuse coordinate input on Wayland Screenshot-portal frames

  • b07f30b fix(omob): build the desktop engine the compiled binary embeds

  • 0b81915 Merge remote-tracking branch 'origin/dev' into fix/wayland-input-capture-gaps-20260927-v2

  • 3059a86 fix(desktop): scroll in the same direction on every OS

  • c133b73 Merge remote-tracking branch 'origin/dev' into fix/doctor-computer-use-not-installed

  • 1e53287 fix(omo-native): doctor reports a not-yet-installed computer-use engine as info

  • 14ec764 Merge pull request #9057 from code-yeongyu/fix/9056-macos-preserve-newer-focus

  • 0251eb2 fix(desktop): keep the user's newer front app after macOS background typing

  • 85c2d1d Merge pull request #9053 from code-yeongyu/fix/clipboard-engine-operations-20260927

  • 2fe068e Merge remote-tracking branch 'origin/dev' into fix/clipboard-engine-operations-20260927

  • d83d692 Merge pull request #9052 from code-yeongyu/fix/9048-computer-actions-activation

  • 72d65e1 Merge remote-tracking branch 'origin/dev' into fix/clipboard-engine-operations-20260927

  • ceee133 feat(desktop): implement clipboard.read and clipboard.write

  • 270c851 Merge pull request #9046 from code-yeongyu/fix/embed-probe-ebusy

  • 6cbef33 Merge pull request #8991 from code-yeongyu/fix/8940-computer-use-telemetry-followup

  • 608d9a8 Merge pull request #8993 from code-yeongyu/fix/x11-computer-use-gap-closure-20260927

  • 0812802 Merge commit 'acf85c552d09d43f0f22475638b7b2a435e71e8c' into HEAD

  • a474bdd Merge remote-tracking branch 'origin/dev' into fix/x11-computer-use-gap-closure-20260927

  • acf85c5 Merge pull request #9049 from code-yeongyu/fix/computer-tool-root-object-schema

  • c778629 Merge remote-tracking branch 'origin/dev' into fix/clipboard-engine-operations-20260927

  • 3f429c1 wip(desktop): clipboard backend methods and fake support (#9009)

  • 5b18045 Merge commit '0c76f2d9838a664884739877da1692aa754eab1a' into HEAD

  • 46cde1e Merge remote-tracking branch 'origin/dev' into fix/x11-computer-use-gap-closure-20260927

  • 715083a fix(build): leave a win32-busy embed-probe root to the OS instead of failing (#9045)

  • 3266640 refactor(build): move the embedded-payload probe and asset naming out of build-omo-binary

  • b0d1902 Merge pull request #9007 from code-yeongyu/fix/9004-windows-python-facade-timeouts

  • 795a7d3 fix(changes): restore the changes.md history dropped by the schema entry

  • 5e75432 Merge remote-tracking branch 'origin/dev' into fix/x11-computer-use-gap-closure-20260927

  • e10c6c8 Merge remote-tracking branch 'origin/dev' into fix/9004-windows-python-facade-timeouts

  • bbd79cd Revert "ci(desktop): TEMP measure Windows Python cold start (drop before merge)"

  • b9b535a Merge remote-tracking branch 'origin/dev' into fix/computer-tool-root-object-schema

  • d39903f fix(desktop): publish root-object schemas for the computer tools

  • 00a116a ci(desktop): TEMP measure Windows Python cold start (drop before merge)

  • 06b7d99 test(desktop): start the Python facade interpreter before test deadlines

  • 06592e0 Merge pull request #8982 from code-yeongyu/fix/windows-computer-use-gap-closure-rebased2-20260927

  • 5c2fd22 Merge remote-tracking branch 'origin/dev' into fix/9004-windows-python-facade-timeouts

  • 4ff52e5 Merge remote-tracking branch 'origin/dev' into fix/x11-computer-use-gap-closure-20260927

  • 9972932 fix(x11): restore the pointer only from emitted XTEST motion

  • 1cb9406 Merge remote-tracking branch 'origin/dev' into fix/x11-computer-use-gap-closure-20260927

  • 1f126e2 Merge remote-tracking branch 'origin/dev' into fix/windows-computer-use-gap-closure

  • 0c76f2d Merge pull request #9044 from code-yeongyu/fix/9042-bare-skill-commands

  • e89647d Merge pull request #9040 from code-yeongyu/fix/win-ci-git-survivor

  • 145b49a test(isolation-core): prove the survivor run settles before the survivor exits (#9039)

  • 6f65ada Merge pull request #8961 from code-yeongyu/ci/win-ci-integration

  • 8fd5baa Merge remote-tracking branch 'origin/fix/win-ci-worker-compile-teardown' into ci/win-ci-integration

  • 5ae2e1b Merge remote-tracking branch 'origin/fix/win-ci-isolation-nested-hang' into ci/win-ci-integration

  • 211696d Merge remote-tracking branch 'origin/fix/win-ci-comment-checker-probe' into ci/win-ci-integration

  • d306de7 Merge remote-tracking branch 'origin/fix/win-ci-parent-wake-empty-turn' into ci/win-ci-integration

  • f4691ea Merge remote-tracking branch 'origin/fix/win-ci-lsp-applyedit' into ci/win-ci-integration

  • 8a1323f Merge remote-tracking branch 'origin/fix/win-ci-session-client-deny' into ci/win-ci-integration

  • 239f1dc Merge remote-tracking branch 'origin/fix/win-ci-mailbox-caps' into ci/win-ci-integration

  • ba02302 Merge remote-tracking branch 'origin/fix/win-ci-kibitzer-wake-slot' into ci/win-ci-integration

  • 0bbc35b Merge pull request #9038 from code-yeongyu/fix/9036-task-depth-ancestry

  • 4a646d9 test(memory-core): give the sharing-violation waiters a circuit-breaker budget and surface their real error (#8953)

  • e5f0a82 fix(memory-core): a Windows sharing violation on the head wake ticket keeps its place instead of rejecting the waiter (#8953)

  • 1fa259e Merge pull request #9037 from code-yeongyu/fix/9035-omob-test-temp-dir-hold

  • a6f035d Merge pull request #9034 from code-yeongyu/fix/9030-team-lock-delete-pending

  • 3b3e8ef fix(team-core): acquire team locks without fsync and reclaim stale ones exactly once

  • 911293e test(lsp-core): synchronize unscoped applyEdit response

  • 20f9852 Merge pull request #9033 from code-yeongyu/fix/win-ci-cc-stdin-fake

  • 70cc979 test(script): leave a win32-busy omob fixture temp root to the OS (#9035)

  • 29e34bc Merge pull request #9021 from code-yeongyu/fix/open-session-transport-loss-reason

  • ee18a23 Merge pull request #9031 from code-yeongyu/fix/9029-cold-child-import-stall

  • 76967b6 Merge pull request #8877 from cynkai/fix/8850-comment-checker-versioned-cache

  • 5008865 Merge remote-tracking branch 'origin/dev' into fix/8850-comment-checker-versioned-cache

  • 6bf6df8 Merge pull request #9022 from MoerAI/fix/8301-runtime-fallback-exhausted

  • 6ee1c23 ci(compiled-worker): relocate the removeTree helper beside the worker test (#9025)

  • 1560b33 fix(comment-checker): show the could-not-run warning in the session

  • 6c86021 fix(comment-checker): report a checker that never starts instead of treating it as clean

  • 24c4ec5 fix(comment-checker): keep reporting a checker that exits before reading its input

  • 0780dac fix(comment-checker): disable the Native checker for the session when it cannot run

  • a18ad68 Merge commit '8c7cf899d906bd86b2d8e8ecc497b35b12092603' into fix/8850-comment-checker-versioned-cache

  • 8c7cf89 Merge pull request #8971 from code-yeongyu/fix/win-ci-foreign-owner

  • 77c0131 Merge pull request #8884 from effortprogrammer/fix/rpc-host-idle-settle

  • 9fa9108 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 735536c Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • ebd01f8 Merge pull request #9027 from code-yeongyu/fix/host-reopen-continuation

  • 0b3104a test(build): give the compiled-worker teardown the Windows image-release window (#9025)

  • dd0f8ac Merge pull request #9019 from MoerAI/fix/6233-plan-progress-task-ids

  • c9b4e66 docs(changes): name the OpenCode run command by its CLI name

  • 836a574 Merge remote-tracking branch 'origin/dev' into pr-9019-head

  • 01b387d docs(changes): record the boulder plan grammar, [~] and 0/0 stop

  • 3cf5f3c fix(omo-codex): count plans with the shared boulder task grammar in the Stop hook

  • ef32a16 fix(plan-format-validator): judge task rows with the progress counter's grammar

  • 3c47e98 fix(atlas): stop boulder continuation when the plan has no countable tasks

  • 03fd515 Merge pull request #9012 from MoerAI/fix/6468-agent-sessions-search

  • d66661e fix(boulder-state): count [~] rows as in-progress, not done

  • 520d173 refactor(boulder-state): move markdown fence scanning out of the plan parser

  • 171438f Merge pull request #9017 from MoerAI/fix/8909-bun-windows-doctor

  • e5978e3 Merge remote-tracking branch 'origin/dev' into fix/6468-agent-sessions-search

  • 12eac0a docs(coding-agent-sessions): explain the user_message match reason

  • 43e6084 docs(omo-native): record the Bun Windows doctor fix

  • e1fb2d7 fix(install-native): recognize Bun's Windows omo.exe through its .bunx sidecar

  • ed964d2 fix(omo-native): resolve Bun's relative .bunx target in doctor

  • c00ee3d Merge remote-tracking branch 'origin/dev' into fix/6233-plan-progress-task-ids

  • ab7f4e9 Merge pull request #9018 from code-yeongyu/fix/macos-foreground-click-key-window

  • c53dc9e Merge remote-tracking branch 'origin/dev' into fix/6468-agent-sessions-search

  • f7fab48 fix(coding-agent-sessions): search middle prompts in droid, kimi and aside transcripts

  • 8e54b35 perf(coding-agent-sessions): search the user prompts the scan already read

  • cfca1e4 fix(boulder-state): parse common task IDs (fixes #6233)

  • 7780b7b fix(desktop): make macOS foreground input land in the target window

  • b76fdd0 test(isolation-core): drive the baseline read retry with a typed timeout instead of a real stalled git (#8997)

  • 29e1012 fix(omo-native): recognize Bun Windows shims (fixes #8909)

  • d292f6b fix(coding-agent-sessions): search middle user events and reject old Python (fixes #6468)

  • 4d15029 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 3ffb964 Merge remote-tracking branch 'origin/dev' into fix/9004-windows-python-facade-timeouts

  • cd1e20c Merge pull request #9005 from code-yeongyu/fix/windows-start-failure-fixture

  • 233ac06 fix(desktop): release held Windows keys after focus changes

  • 2bd23aa Merge remote-tracking branch 'origin/dev' into fix/windows-computer-use-gap-closure

  • 6c9b9a3 Merge dev and verify Windows input recovery

  • 61320f8 Merge remote-tracking branch 'origin/dev' into fix/9004-windows-python-facade-timeouts

  • 7d73a7f test(background-agent): await the retry prompt instead of sleep-polling (#8951)

  • f881059 fix(background-agent): a parent wake retry no longer waits a second promptAsync hold (#8951)

  • 2a74ca5 Merge pull request #9006 from code-yeongyu/qa/canary-off-scenario

  • fd7aa4f fix(desktop): provision the Windows Python facade runtime

  • b6cfd61 fix(isolation-core): retry hardened baseline reads

  • 817fa31 fix(isolation-core): bound baseline git reads

  • d828579 fix(isolation-core): bound git command lifetimes

  • 0e97f94 test(opencode): probe every comment-checker download target in one process (#8979)

  • 54a2f91 test(desktop): measure Windows Python facade startup

  • 364bef2 test(qa): check the macOS canary off policy live

  • 63c9267 Merge pull request #9002 from code-yeongyu/fix/8945-canary-stop-integration-20260928

  • b1e101a Merge remote-tracking branch 'origin/dev' into fix/8945-canary-stop-integration-20260928

  • 208a000 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 1c1a38a Merge pull request #9001 from code-yeongyu/fix/8999-no-residency-cap-default

  • db87446 Merge remote-tracking branch 'origin/dev' into fix/8945-canary-stop-integration-20260928

  • 516b423 build: regenerate the bundles that embed the task settings defaults

  • 642cb7f fix(task): make task residency unlimited by default (#8999)

  • 231126b Merge pull request #9000 from code-yeongyu/fix/8973-suspended-children-lane-capacity

  • fe40285 fix(desktop): honor the macOS canary policy

  • be5795a Merge pull request #8992 from code-yeongyu/fix/8960-task-start-failure-reason

  • 89d6e0d Merge pull request #8996 from code-yeongyu/docs/computer-use-gap-sync

  • c5a8b0f Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • b883777 docs(computer-use): an in-progress type now stops at the stop chord

  • 3182929 Merge pull request #8987 from code-yeongyu/fix/8937-kill-switch-inflight-typing

  • c1dd1c3 Merge remote-tracking branch 'origin/dev' into fix/8937-kill-switch-inflight-typing

  • 2ca064a Merge remote-tracking branch 'upstream/dev' into fix/8850-comment-checker-versioned-cache

  • 50d719a docs(desktop): record X11 safety fixes

  • 2ef7149 fix(desktop): preserve current X11 input state

  • e61be11 fix(desktop): keep X11 offscreen frames targetable

  • 6d35ebf Merge pull request #8985 from code-yeongyu/feat/facts-oversized-admission

  • 3fb7945 Merge remote-tracking branch 'origin/dev' into fix/8937-kill-switch-inflight-typing

  • 82d968a Merge pull request #8989 from code-yeongyu/docs/computer-use-final-sync

  • f746cdf Merge dev into feat/facts-oversized-admission

  • e4b7263 docs(computer-use): name the telemetry events and track the click-order follow-up

  • 493d1d7 Merge pull request #8986 from code-yeongyu/feat/computer-use-telemetry

  • 8473b53 docs(memory): document the oversized facts budget as a visible behavior change

  • c994241 Merge dev into feat/facts-oversized-admission

  • 1273d54 Merge pull request #8978 from deadcode-walker/fix/task-progress-and-facts-bounds

  • 95393e5 fix(desktop): stop in-flight typing between characters when input is suspended

  • 0c4370e Merge upstream QA sandbox isolation changes

  • 6e8bbb9 fix(desktop): classify XAML hosts by window class

  • 63bd5c3 test(desktop): assert Win32 physical gaps and Return keys

  • c8cedb5 fix(desktop): preserve focus at restore time

  • b27066e fix(desktop): reset Win32 focus preservation per action

  • f423077 fix(desktop): detect XAML hosts by executable

  • ed09a92 test(desktop): cover negative Win32 monitor origins

  • 9db76a4 fix(desktop): harden Win32 input routing and cleanup

  • ce4ddad fix(desktop): make Win32 delivery decisions truthful

  • 9a163f4 fix(desktop): keep Win32 capture in physical pixels

  • 0f5806a Merge pull request #8976 from code-yeongyu/fix/8967-qa-sandbox-env

  • e2a1d66 Merge pull request #8952 from code-yeongyu/feat/web-computer-use-landing

  • 31e6fcb test(desktop): keep Wayland EIS recorder compatible

  • d3f1dd1 fix(desktop): preflight Wayland input and capture

  • 19f523c test(desktop): reproduce Wayland display selection gap

  • cb5ca49 test(desktop): reproduce Wayland input admission gaps

  • 6c9e0aa Merge pull request #8965 from code-yeongyu/fix/doctor-computer-use-windows

  • a17d736 fix(omo-native): run the doctor probe fixtures through the runtime on Windows

  • 943dabd Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • ec31da0 Merge pull request #8936 from code-yeongyu/fix/8925-macos-focus-guard

  • f1234f4 Merge pull request #8947 from code-yeongyu/feat/doctor-computer-use

  • 4703681 fix(docs): keep computer guide in parent lane

  • 61bc333 fix(web): make a live crafted state wait for its moment again on re-entry

  • 8842dea test(script): allow the omo doctor mention in the computer-use guide

  • 860c6d2 fix(omo-native): report the idle stop path as not armed instead of a warning

  • be3bba4 Merge dev into fix/8925-macos-focus-guard

  • 085144d fix(docs): keep doctor command audit stable

  • f1a9d25 docs(omo-native): document computer doctor checks

  • b925a90 feat(omo-native): diagnose computer use in doctor

  • a7a5b60 Merge pull request #8949 from code-yeongyu/feat/computer-use-skill-loop

  • b3ebff7 Merge dev into fix/8925-macos-focus-guard

  • f98562c feat(web): add computer use to the crafted section

  • 4fd217b Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 31f0646 Merge pull request #8946 from code-yeongyu/docs/computer-use-release

  • 57f76f0 Merge remote-tracking branch 'origin/dev' into fix/8925-macos-focus-guard

  • f8a6273 feat(computer-use): tell the model to stop on missing permissions and ask when stuck

  • 0be21fc docs(computer-use): document setup per OS, settings, safety, privacy and troubleshooting

  • 93da69d Merge pull request #8943 from code-yeongyu/test/computer-tool-search-qa

  • 93dd086 test(computer-use): prove tool_search discovery in the live QA

  • 6163eb5 Merge dev into fix/8925-macos-focus-guard

  • 153a921 Merge pull request #8935 from code-yeongyu/fix/8932-dag-host-session-fold

  • a91423e Merge dev into fix/8925-macos-focus-guard

  • e08d8c9 Merge pull request #8933 from code-yeongyu/feat/process-crash-telemetry

  • d48af60 docs(desktop): teach accepted focus behavior in the computer prelude

  • 7e10994 docs(computer): clarify focus and window stacking in tool reference

  • 2572c0c docs(computer): state the accepted macOS background-click invariant

  • f731c56 test(desktop): distinguish focus identity from background z-order

  • 3a75e7e fix(desktop): restore the visible macOS window by WindowServer order

  • de3fac1 test(qa): expect process_crashed in the native allowlist event set (#8931)

  • a3383d5 Merge pull request #8929 from code-yeongyu/fix/6396-comment-checker-stdin-epipe

  • 3aa4c32 fix(comment-checker): a checker that exits without reading stdin no longer crashes the host

  • 8a877f0 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • cf1694b Merge pull request #8928 from code-yeongyu/fix/web-skills-ticker-reduced-motion

  • ad3272e Merge pull request #8926 from code-yeongyu/feat/desktop-engine-acquire-wiring

  • a5642b3 fix(web): let the skills ticker grow to its full list under reduced motion

  • 5859e33 Merge pull request #8922 from code-yeongyu/feat/desktop-qa-harness

  • 44e3ca1 feat(computer-use): acquire the engine for the running omo release when none is installed

  • acd35ad fix(desktop): keep Linux fake EIS socket under UNIX path limit

  • ff96b23 ci(desktop): install the workspace before the Linux QA run

  • 3827272 test(desktop): exercise Linux computer QA in PR CI

  • 8e46d4d docs(desktop): explain OmO Native computer use and engine modes

  • 40c2935 feat(desktop): locate the OmO engine for bunshin capabilities

  • 0abdada test(desktop): enforce exact Cargo pins in the desktop gate

  • 7c80e2c test(desktop): drive macOS QA through the OmO component

  • aff4b70 test(desktop): port isolated Linux X11 and Wayland QA

  • 2bf933c test(desktop): port Windows live QA and sabotage workflow

  • 33e8703 Merge pull request #8923 from code-yeongyu/feat/desktop-engine-delivery

  • cba6cd2 test(desktop): check executable modes only on POSIX

  • 6794052 refactor(test): extract release workflow block reader

  • 6c9dd09 test(release): run the engine asset checks on Windows runners

  • 48e2f14 test(release): guard desktop engine build and staging order

  • de68009 fix(ci): retain staged desktop engine across native checks

  • 4bb8ee5 fix(ci): install macOS desktop engine cross target

  • 37edc69 build(release): ship desktop engines with OmO assets and CI proof

  • a619f42 feat(desktop): acquire checksum-verified engines from OmO releases

  • 9c4215c build(desktop): stage available Rust engines in compiled payloads

  • 93f6719 fix(desktop): locate the engine in the extracted OmO runtime first

  • 4139d61 Merge pull request #8917 from code-yeongyu/feat/computer-use-component

  • 46e9426 build(omo-codex): regenerate the installer bundle for the computer config schema

  • 7f0efec Merge pull request #8915 from code-yeongyu/feat/computer-use-packages

  • 137c09a test(desktop-tool): build the expected audit path with path.join

  • 2bb4b02 fix(desktop): register the desktop workspaces with the root suite and keep prelude.py LF

  • d707711 refactor(desktop): extensionless relative imports, like every omo package

  • 0790681 feat(desktop): bring the computer-use TypeScript packages into omo

  • 2c622c7 Merge pull request #8920 from code-yeongyu/fix/8919-conflict-markers

  • 1af54ce fix(ci): drop twelve orphaned diff3 markers and fail the root suite on any committed marker

  • 571ee17 Merge pull request #8918 from MoerAI/fix/8777-npm-package-dir

  • 863a845 fix(omo-native): keep package dirs that name the launched engine

  • fa3077b Merge pull request #8865 from MoerAI/fix/8864-memory-ledgers

  • 569105a docs(changelog): record the memory usage ledger fix (#8864)

  • ed9edc2 fix(omo-native): discard inherited package dirs (fixes #8777)

  • bdbd9b1 Merge pull request #8912 from code-yeongyu/feat/computer-use-engine

  • 1f5a5af test(ci): cover desktop-engine.yml in the job summary contract

  • accf613 feat(desktop): bring the computer-use engine into omo as a Rust workspace

  • 987bb26 Merge remote-tracking branch 'origin/dev' into fix/rpc-host-idle-settle

  • a83dba4 Merge remote-tracking branch 'fork/fix/rpc-host-idle-settle' into fix/rpc-host-idle-settle

  • f09d3d4 Merge remote-tracking branch 'origin/dev' into fix/rpc-host-idle-settle

  • dc18b3e Merge remote-tracking branch 'effortprogrammer/fix/rpc-host-idle-settle' into pr8884-rpc-host-idle-settle

  • a8ba6aa Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 50ba391 Merge remote-tracking branch 'upstream/dev' into fix/8850-comment-checker-versioned-cache

  • 2012754 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 9ef8ccb Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • 30240f0 Merge remote-tracking branch 'origin/dev' into pr8884-rpc-host-idle-settle

  • eae2b08 Merge remote-tracking branch 'origin/dev' into fix/rpc-host-idle-settle

  • 7dcc8d9 docs: runtime fallback forgets the closed rung's daemon session

  • 876f820 Merge remote-tracking branch 'origin/dev' into fix/rpc-host-idle-settle

  • 5a380a9 docs: a live parent's daemon child is no longer reclaimed between fallback rungs

  • 3990d4f fix(comment-checker): apply the pinned-release cache check to the OpenCode edition

  • 807045d fix(comment-checker): stop reusing a stale checker from the shared cache

Thank you to 1 community contributor:

  • @nahwan-kim:
    • Merge upstream dev to resolve formatter PR bundle conflict
bun add -g omo-ai

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

NewReleases is sending notifications on new releases.