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

4 hours ago

5.1.37 was tagged but its publish stopped on Linux (the release binaries outgrew their size budget), so its main packages never reached npm; everything listed for it ships in this release. (#10566)

Release binaries may be up to 182 MiB. The per-platform size budget moves from 160 MiB to 182 MiB after measuring what grew: the Bun 1.4.3 runtime adds 9.5 MB to every binary and the senpi update about 1.25 MB, so linux-x64 reached 173.4 MB. Nothing was bundled by mistake. (#10566)

5.1.36 was prepared but never published; everything listed for it ships in this release. (#10552)

The engine moves to senpi 2026.10.19: a hung extension handler no longer freezes a session, and queued input survives a crash. An extension handler that never settles on a lifecycle event is named in the session after 60 s and released after 20 min, or at once on Esc or the turn deadline. Input queued with a client id is written to the session file before it is queued and delivered exactly once. The mouse wheel scrolls the transcript again while a question prompt is waiting, Alt+Q restores queued messages on WSL, and the /btw panel no longer repeats a running eval's output in the scrollback. Anthropic requests of 4096+ characters to api.anthropic.com are now sent gzip-compressed, as Claude Code does. (senpi#3650, senpi#3549, senpi#3604, senpi#3628, senpi#3649, senpi#3643, #10552)

Goals keep going while they make progress, and long sessions open and stay light (senpi 2026.10.18-1). A goal no longer stops after a fixed 150 automatic continuations; it stops only after 60 in a row with no new tool effect, todo change or message from a person, and says why and that any message resumes it. Opening a very large session on a shared host no longer stalls the other sessions, a reopened session keeps only its latest compaction window in memory (four of the largest local transcripts went from 1441 MB to 216 MB of live heap), and reading a very long history over RPC pages instead of dropping the connection. A Claude subscription from CLAUDE_CODE_OAUTH_TOKEN or an ambient Claude Code login now shows as a connected subscription, and a host daemon inherits every credential variable the engine reads. Provider accounts can be ordered, and grep starts 5 to 14 rg processes where it used to start 63 to 87. (#10280, #10509) The engine also fixes ChatGPT browser sign-in dead-ending on "State mismatch." when another session holds the callback port (senpi #3627), and a compiled engine now finds the Claude Code binary shipped beside its executable instead of failing the lookup (senpi #3640).

A client re-attaching to a retained session gets the full task snapshot again, and can pull it on demand. The task RPC bridge listens for session_resumed, which senpi fires when the first client re-attaches to a still-open session, and re-emits the complete omo.task.updated snapshot instead of waiting for the next store change to alter its fingerprint; a new omo.task.list request answers the same payload for the parent session it names. (#10016, #10122)
Memory recall's search index takes a quarter of the memory it did, and a memory write no longer rebuilds it. Every session that recalls memory keeps a search index of the whole memory. It stored each note's words as a separate table, so a memory of 6,406 notes cost about 231 MB per session, and each memory write threw the index away and rebuilt it, taking 3 to 11 seconds. Words are now numbered once and each note keeps a compact list of numbers that survives a memory write, so the same memory costs 55 MB and a write updates the index in about 16 ms. The notes found and their order are unchanged. (#10510, #10512)

A background task child follows its session when another client replaces it. A raw RPC client that issues new_session, switch_session or fork on a daemon child's routing handle moves that session to a new durable id and transcript; the child now observes the session_replaced record, re-stamps its record's session path and durable id, appends a replaced task event, and reattaches to the new transcript instead of the abandoned one. When the replacement stops a turn the child was running, the child ends interrupted with the reason and a task_send action, and the parent is notified because it did not ask for that stop (a parent's own interrupt stays silent); this needs a senpi that names the cause on agent_end (senpi#3357), and an older host keeps the previous error. (#10018, #10112)
unspecified-low tries GLM 5.3 before GPT. A user with Claude and Z.ai (or OpenCode Go) but no Xiaomi or xAI provider used to fall from Sonnet 5.5 straight to GPT-6.1 Sol once Sonnet was unavailable. The chain now has glm-5.3 at high thinking right after Grok 4.7 and ahead of the GPT rungs, so the order for users who hold MiMo or Grok is unchanged. (#10306, #10311)

omo --help no longer moves your OpenCode config before you start a session. On a fresh install --help (and --list-models / --list-tips) loads the omo extension, and its startup migration moved ~/.config/opencode/oh-my-openagent.json into ~/.omo/migration-backup-*, so a 4.19.x OpenCode plugin fell back to its defaults. The migration now runs only on launches that can start a session, and --help still lists omo's own flags. Thanks to @bluet for the report and @twotnguyen for #10433. (#10428, #10454)

Built, tested and released on Bun 1.4.3. CI, the release workflows and the devcontainer move from Bun 1.4.2 to 1.4.3, the current stable release, which fixes CVE-2026-48618 (TLS host names) and idle garbage collection in workers. (#10432)

OpenCode edition: Sisyphus names GPT-6.1 Sol and GPT-6 Luna as themselves. On gpt-6.1-sol (and its -fast, dashed and Venice gpt-61-sol ids) and on gpt-6-luna, the Sisyphus and Sisyphus-Junior GPT prompts introduced the model as "a GPT-family model"; they now say "GPT-6.1 Sol" and "GPT-6 Luna". (#10291, #10292)

Memory session shutdown waits for the work it started in the memory directory. Shutdown now waits, within its existing drain budget, for an in-flight repo maintenance pass and for the status refreshes started at bind and settle, all of which run git inside the identity directory. Before, they could still hold files open after shutdown returned; on Windows the next delete of that directory failed with EBUSY/EFAULT, which is how the memory pressure-dream test failed intermittently in CI. (#10154, #10312)

Oh My OpenAgent loads on OpenCode 2. OpenCode 2 refused the plugin with Plugin must export a default definition with an id and an effect or setup function, because both entry points exported only the OpenCode 1.x shape. The server and TUI entries now also export an OpenCode 2 setup built with Plugin.define from @opencode/plugin, next to the OpenCode 1.x server and tui entries, which keep working as before. Each OpenCode 2 start shows a notice that points to OmO Native, with the install command and guide link. (#8485, #10439)

The frontend skill keeps coloured edge stripes off rounded cards, and a linter catches the ones that slip through. A card with a coloured stripe along one edge, its rounded corners bending the stripe, is one of the most recognizable marks of generated UI, and the skill only banned it when the stripe marked a selected or focused item. It now rules the stripe out before drafting, whether it decorates the card or marks state, and offers what to use instead: a tonal surface, a heading in the accent colour, a glyph, or spacing. The new check-accent-stripes.ts script finds the pattern in CSS, Tailwind classes, inline styles, and styled-components, and the skill's checklist runs it before visual QA. Focus rings, form validation, neutral dividers, and tables are left alone. (#10437)

A store extension's orderBy can only name columns its statement returns, and its text never reaches the SQL. orderBy used to be pasted into the gateway's ordered read as given, so a LIMIT, an OFFSET or a column the statement does not select failed as broken SQL (near "LIMIT": syntax error, no such column). Each comma-separated term must now be one of the statement's own output columns (matched case-insensitively, as SQLite does), optionally with COLLATE BINARY/NOCASE/RTRIM, ASC/DESC and NULLS FIRST/NULLS LAST. The ORDER BY is rebuilt from the matched column name and those fixed keywords. Anything else, including quoted or bracketed names, comments, look-alike Unicode letters and unknown columns, is refused with extension_schema_violation and a message that names the rule and the columns the statement does return; put a LIMIT in the statement itself. (#9626)

The standalone omo binary's omo setup carries your OpenCode model choices again. The release binary printed could not read the engine's model list (ENOENT ... '/package.json') and skipped the default model and agent/category picks, and it would have imported a user skill named like a bundled one over the bundled skill. Setup in the binary now reads the provider catalog and bundled skills it ships with; the npm install is unchanged. Thanks to @bluet for the report. (#10429, #10455)

Only you can stop computer use with the stop chord on macOS and Linux X11. A chord a program sends (the agent's own key presses, xdotool, another app posting key events) used to stop every session, and repeated, could keep computer use stopped; it is now ignored, while a press on a real keyboard still stops every running session at once. Wayland's shortcut portal cannot tell the two apart, and Windows follows in a separate change. (#10444, #10449)

On Windows every session can now arm the stop chord, and only a key press on a real keyboard triggers it. The chord used to be a RegisterHotKey registration, which only one process can hold: a second session's engine could not arm it, so its computer use refused input with StopPathUnavailable; and a chord a program sent (the agent's own key presses or any other app's SendInput) stopped computer use like a real press. A low-level keyboard hook now watches the chord in every session, ignores injected key events, and never swallows a key; one physical press stops every running session at once. (#10444, #10453)

Computer use works on arm64 Linux and Windows. Each OmO release now carries the desktop engine for Linux arm64 (glibc) and Windows arm64, built on native arm64 machines and checked with its self-test before upload. The compiled OmO binaries for those hosts include the engine, and an npm install downloads it on first use, where it used to report that no engine is built for the host. Musl Linux still has no engine. (#10440, #10442)

A memory-sync account can be recovered on a new device with a passkey. memory-core can enroll a dedicated recovery passkey and, on a fresh device, use it to rejoin the account: the device's native bridge derives the recovery keys from the passkey and keeps them in the main process, the device walks the served history from the recovery key's own record and pins it, and only a wrap that record vouches for is opened. A wrap the server made up is refused, whatever the server sends. Nothing syncs to a server yet. (#10412)

herdr agent prompt reaches OmO panes. herdr only types into a pane whose foreground process it can name, and the OmO engine runs as bun …/cli.js, so every OmO pane was refused with agent_not_ready. Under herdr, the interactive engine now starts with HERDR_AGENT=pi, the label herdr already shows for these panes. OmO drops it from the environment it hands to anything it starts. Thanks to @devswha for the report. (#10448, #10452)

A memory writer killed mid-commit no longer leaves the next writer stuck on a git lock, and a live commit's lock is never taken. When a memory writer dies holding a git index.lock or ref lock, the writer that takes over its memory-write lock now removes that lock, but only after proving the previous owner dead, seeing no other process still working in the repository (a killed writer's own git command can outlive it), and seeing no process holding the file open. When any of that cannot be proven, including when the open-file check is slow or never answers, the lock stays put and the write fails with an error that names each lock file, says why it was kept, and gives the way out: /memory unlock <path> re-checks that one lock, shows what it found, refuses while any live holder, repository user or memory writer is visible, and removes only that file after you confirm (--force skips the prompt in a non-interactive session, never a refusal). On Linux desktops and SSH logins where some of your own processes cannot be inspected, the automatic removal does not fire and this command is the way out; #10322 tracks making liveness independent of /proc. On Linux this check reads /proc directly, so recovery also works on minimal installs and containers without lsof. (#10177) (#10199)

Synced memory refuses a forged or reordered history on the device, the same way the server does. memory-core now checks every sync object, the hash chain linking them, and the device keyring folded from it, using the format the service ships. A device rejects a record signed by a key that was rotated out or revoked, a dropped or reordered entry, a recovery join from a removed recovery key, and a batch sealed for another account. It treats the server as untrusted: a device trusts an account history only if it starts from the root it pinned during its own pairing or recovery, so a history the server invents, or a different root that looks valid, is refused before any key is opened. A key wrap opens only from a record of that trusted history, and only through the device's own keyring. A missing or damaged pin is treated as no trust at all, and the device asks to re-pair or recover. A replayed batch, a swapped record body, an unsigned row in a vetoed epoch and a row with fields the format does not define are each refused and counted. Nothing syncs to a server yet. (#10178, #10298)

A memory that already exists on a device joins its synced space without losing anything. Each project's synced memory gets one identity that every device computes the same way from the repository, so two devices enabling sync offline land in one space. When local files meet the space's copy, nothing is deleted: body lines are only added, a list keeps every element from both sides, and a frontmatter value that differs keeps both whole values side by side, never spliced together and never a conflict note in the file. Leftover hub conflict copies are folded in and removed only after a read-back proves every line made it. Nothing syncs to a server yet. (#10206)

runtime_fallback moves to the next model when a Cursor pool is spent. cursor-opencode-provider reports a spent pool as capacity_limit, which the fallback classifier did not recognize, so the session ended on the error instead of trying the next rung of the chain. It is now treated like the resource_exhausted error it replaces. (#10170, #10224)

  • 6636298 Merge pull request #10566 from code-yeongyu/fix/release-binary-size-budget
  • ce54c09 docs(changelog): carry 5.1.37 into [Unreleased] for 5.1.38 and note the size budget (#10566)
  • e54e973 fix(release): raise the release binary size budget to 182 MiB, measured
  • 3772ec5 Merge pull request #10559 from code-yeongyu/release/v5.1.37-source-state
  • cc02820 docs(changelog): link #10552 from the 5.1.37 adoption lines
  • 5273cc1 Merge pull request #10542 from code-yeongyu/release/v5.1.36-source-state
  • fd3da87 Merge pull request #10434 from code-yeongyu/memsync/memcore-linux-skip-intrinsic
  • 29a2da5 Merge pull request #10412 from code-yeongyu/memsync/recovery
  • a77a19e Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • 1424efc Merge pull request #10122 from code-yeongyu/fix/rpc-seam-11-resumed-snapshot
  • 0c319f4 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 538b3af Merge pull request #10512 from code-yeongyu/fix/2929-bm25-compact-index
  • 48be40b Merge remote-tracking branch 'origin/dev' into fix/2929-bm25-compact-index
  • dd871d4 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 8d5d048 Merge pull request #10224 from MoerAI/fix/10170-cursor-capacity-limit-fallback
  • daac419 Merge pull request #10400 from code-yeongyu/fix/10394-test-posthog-optout
  • f5923ca Merge remote-tracking branch 'origin/dev' into pr-10224
  • 057f824 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 6df34b4 Merge pull request #10112 from code-yeongyu/fix/rpc-seam-10-session-replaced
  • bd3d37f Merge remote-tracking branch 'origin/dev' into fix/2929-bm25-compact-index
  • 5c42b7e docs(changelog): link #10512 from the recall index entry
  • 163f4b0 Merge pull request #10504 from code-yeongyu/fix/10503-launch-spec-umask
  • 78ec3dc Merge remote-tracking branch 'origin/dev' into fix/2929-bm25-compact-index
  • 626f0d6 Merge remote-tracking branch 'origin/dev' into pr-10224
  • 8593083 Merge pull request #10495 from code-yeongyu/fix/10491-ci-cancelled-signal-noise
  • beccb51 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 43a1995 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • edaf1eb Merge remote-tracking branch 'origin/dev' into refresh/10400-dev-merge-20261018
  • 82a5111 Merge origin/dev (4276e13, lead-ordered: #10524 Windows fix) into fix/10491-ci-cancelled-signal-noise
  • 57efe49 Merge remote-tracking branch 'origin/dev' into fix/10503-launch-spec-umask
  • 5d1d35e Merge pull request #10524 from code-yeongyu/fix/10523-herdr-hostcall-win32
  • 7436787 fix(ci): count in-flight newer signals and tidy notice wording
  • a0e707e Merge pull request #10311 from code-yeongyu/fix/10306-unspecified-low-glm
  • 4276e13 test(omo-native): the daemon-status host-call case is POSIX-only (#10523)
  • f51b775 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 6502e6d Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 3852b10 Merge origin/dev into glm-5.3 chain (dev re-merge 4, lane sol61-prompt-glm)
  • ddd6b56 Merge pull request #10454 from code-yeongyu/fix/10428-help-no-config-migration
  • 1d31e8f Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • 05198ed Merge origin/dev into glm-5.3 chain (dev re-merge 3, lane sol61-prompt-glm)
  • 88e7158 fix(ci): write a job summary in notice-skipped-signal on every path
  • 22750f7 Merge pull request #10432 from code-yeongyu/chore/bun-1.4.3
  • 2ee170a Merge origin/dev into glm-5.3 chain (dev re-merge 2, lane sol61-prompt-glm)
  • a927ddf Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • b9916c8 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • 2546f43 Merge origin/dev into glm-5.3 unspecified-low chain (dev re-merge, lane sol61-prompt-glm)
  • 64c23bb Merge pull request #10292 from code-yeongyu/fix/10291-gpt-6-1-sol-identity
  • c41db6e Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • 9a561a9 Merge origin/dev into fix/10291 (dev re-merge 2, lane sol61-prompt-glm)
  • 551b279 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 9cf48a6 Merge remote-tracking branch 'origin/dev' into lane-sol61glm-10292
  • f6c666b Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 08d06a5 Merge pull request #9613 from Dante-dan/fix/9489-deterministic-close-grace
  • d9b9f6a fix(ci): pin notice-skipped-signal runners to ubuntu-26.04
  • 254c93b Merge origin/dev into close-grace timers (dev re-merge 2, lane sol61-prompt-glm)
  • 8f5b030 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • c1a4298 Merge pull request #10312 from code-yeongyu/fix/10154-pressure-dream-teardown
  • 1d7eae9 fix(ci): record skipped cancelled signals instead of exiting silently
  • 392ef8f Merge origin/dev into fix/10312 (dev re-merge 3, lane sol61-prompt-glm)
  • fe93b85 docs(changes): credit dev's shared rmWhenReleased (#10445) in the shutdown-settle entry (review LOW 1)
  • f60dd15 perf(memory): size the recall dictionary by recent builds so alternating memories keep their index
  • fe0d610 Merge pull request #10423 from code-yeongyu/fix/10398-banner-color-temp-leak
  • a658a0c Merge pull request #10475 from code-yeongyu/fix/10474-atlas-retry-runaway
  • af10b01 perf(memory): compact recall BM25 index that survives a HEAD move (#10510)
  • b700e39 Merge remote-tracking branch 'origin/dev' into refresh/10400-dev-merge-20261018
  • 74f6647 Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • 69cf5f1 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • 25478d9 Merge pull request #10439 from code-yeongyu/fix/8485-opencode-v2-load
  • 63d04fc Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • 8113640 Merge remote-tracking branch 'origin/dev' into pr-10224
  • f949878 Merge origin/dev into fix/10312 (dev re-merge 2, lane sol61-prompt-glm)
  • 67fb8ce Merge remote-tracking branch 'origin/dev' into fix/10474-atlas-retry-runaway
  • 42b1790 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • cddc592 Merge remote-tracking branch 'origin/dev' into fix/10398-banner-color-temp-leak
  • 9af011a fix(ci): skip CLA/labels/review-claims jobs on cancelled PR Automation Signal runs
  • 0565bb4 Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • 9409058 Merge remote-tracking branch 'origin/dev' into fix/8485-opencode-v2-load
  • 4863a41 Merge pull request #10438 from code-yeongyu/fix/frontend-accent-stripe-lint-10437
  • a517e7c Merge origin/dev into close-grace timers (dev re-merge, lane sol61-prompt-glm)
  • a89a62a Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • defe9d6 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 38d8495 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 7c1207b Merge origin/dev into fix/10312 (dev re-merge, lane sol61-prompt-glm)
  • 239a55a Merge pull request #10425 from code-yeongyu/fix/10411-manifesto-pending-deterministic
  • f64a0e8 Merge pull request #10424 from code-yeongyu/fix/10413-adopt-deletion-budget
  • 394d282 Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • fb46adc Merge pull request #10452 from code-yeongyu/fix/10448-herdr-agent-hint
  • 69e37f7 Merge pull request #10451 from code-yeongyu/memsync/10445-teardown-release-wait
  • 0585acf Merge remote-tracking branch 'origin/dev' into fix/10474-atlas-retry-runaway
  • c1721da Merge remote-tracking branch 'origin/dev' into fix/10411-manifesto-pending-deterministic
  • f51c336 Merge remote-tracking branch 'origin/dev' into fix/10413-adopt-deletion-budget
  • 1ef9f1d Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • 226bee7 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 1dee4d6 Merge remote-tracking branch 'origin/dev' into fix/10398-banner-color-temp-leak
  • 3a4436b Merge remote-tracking branch 'origin/dev' into memsync/10445-teardown-release-wait
  • 137f81a Merge remote-tracking branch 'origin/dev' into memsync/memcore-linux-skip-intrinsic
  • 4543ef9 Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • 82b2295 Merge remote-tracking branch 'origin/dev' into refresh/10400
  • 775d90f Merge remote-tracking branch 'origin/dev' into fix/frontend-accent-stripe-lint-10437
  • 585aebf Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • b0d5924 Merge remote-tracking branch 'origin/dev' into fix/10154-pressure-dream-teardown
  • e49bdde Merge remote-tracking branch 'origin/dev' into fix/8485-opencode-v2-load
  • cd7226c Merge pull request #10370 from cynkai/fix/10265-doctor-test-env-isolation
  • 6169bb9 Merge remote-tracking branch 'origin/dev' into pr9613
  • 163e520 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • 6559d4b Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-11-resumed-snapshot
  • e5302fb Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 4322fc4 Merge remote-tracking branch 'origin/dev' into fix/10448-herdr-agent-hint
  • 0a98b02 test(atlas): name the leaked gate record precisely in the #10474 comments (review LOW)
  • 40bbb97 Merge remote-tracking branch 'origin/dev' into memsync/memcore-linux-skip-intrinsic
  • 915b3fb Merge remote-tracking branch 'origin/dev' into memsync/10445-teardown-release-wait
  • 1728e11 test(atlas): start the delayed-retry fake clock on real time and cap a runaway retry pass (#10474)
  • ea18975 Merge pull request #9626 from effortprogrammer/fix/gateway-extension-orderby-columns
  • 93236fb Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • 8bf3f7e Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • e3e94ab Merge remote-tracking branch 'origin/dev' into omo9626-allowlist
  • c986c87 Merge pull request #10455 from code-yeongyu/fix/10429-compiled-setup-model-catalog
  • b1613e4 fix(omo-native): every engine launch environment drops an inherited herdr hint marker (#10448)
  • 47c4484 Merge remote-tracking branch 'origin/dev' into fix/frontend-accent-stripe-lint-10437
  • c679183 Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • 3c6ef51 Merge remote-tracking branch 'origin/dev' into fix/10428-help-no-config-migration
  • 0d713a2 Merge remote-tracking branch 'origin/dev' into fix/10429-compiled-setup-model-catalog
  • 19db30f Merge pull request #10449 from code-yeongyu/fix/10444-physical-stop-chord
  • 3a6b301 Merge remote-tracking branch 'origin/dev' into fix/10444-physical-stop-chord
  • 92e2ae4 Merge remote-tracking branch 'origin/dev' into fix/10429-compiled-setup-model-catalog
  • 6a5b36a Merge pull request #10453 from code-yeongyu/fix/10444-windows-stop-hook
  • b85e386 Merge remote-tracking branch 'origin/dev' into fix/10444-physical-stop-chord
  • 660432e Merge remote-tracking branch 'origin/dev' into pr9613
  • 5d936e5 Merge remote-tracking branch 'origin/dev' into omo9626-allowlist
  • eaeafc2 Merge remote-tracking branch 'origin/dev' into fix/10429-compiled-setup-model-catalog
  • c211118 Merge remote-tracking branch 'origin/dev' into fix/10444-windows-stop-hook
  • b9d11ce Merge remote-tracking branch 'origin/dev' into chore/bun-1.4.3
  • a5140fd fix(omo-native): drop an inherited herdr hint marker before deciding (#10448)
  • 1160a18 Merge pull request #10442 from code-yeongyu/feat/desktop-engine-arm64
  • 2f7efa6 test(desktop-win32): prove the hook is removed on dispose and drive the physical path end to end; no worker leak on spawn failure (#10453 review)
  • 7e40846 Merge remote-tracking branch 'origin/dev' into feat/desktop-engine-arm64
  • 1ff5153 Merge remote-tracking branch 'origin/dev' into fix/10444-physical-stop-chord
  • 29d816e fix(desktop-x11): never cache a failed XTEST property read (#10449 review)
  • 36ed082 Merge pull request #10446 from code-yeongyu/fix/10443-foreground-confirm-guide
  • 63bcccb fix(omo-native): standalone omo setup reads the model catalog and bundled skills from the binary (#10429)
  • 6197d16 docs(changelog): note arm64 Linux and Windows desktop engines (#10442)
  • 9832d9b fix(desktop-x11): fail closed on undescribable devices and trust the XTEST Device property over names (#10449 review)
  • 9c598d9 test(desktop-x11): a device the server cannot describe must not stop input (#10449 review, RED)
  • 2aaaf73 fix(qa): refusal scenarios assert the audited refusal and the received confirm; prove real config untouched (#10446 review)
  • f52a71a fix(omo-native): release only the herdr hint the launcher set; require an interactive TTY (#10448)
  • 9d9fac4 style(test): drop a stray blank line in wiring-shutdown-settle
  • 6cdcaca Merge remote-tracking branch 'origin/dev' into fix/10154-pressure-dream-teardown
  • 126cb62 docs(computer-use): list the arm64 Linux and Windows engines
  • 1b0568e fix(gateway): allow only the statement's own result columns in a store-extension orderBy
  • 12453c9 Merge remote-tracking branch 'origin/dev' into pr9613
  • 966eac0 docs(changelog): physical-only stop chord on Windows for every session (#10444)
  • b1a9125 test(desktop-linux): the X11 QA expects an XTEST chord to be ignored and stops through the host relay (#10444)
  • 0041fce fix(frontend-skill): detect gradient edge stripes; narrow focus and tag exemptions
  • 77e9916 fix(desktop-win32): a low-level keyboard hook decides the stop chord; injected keys never stop input (#10444)
  • 4519f07 test(desktop-win32): Windows QA expects an injected stop chord to be ignored (#10444, RED)
  • 571292e docs(changelog): note the herdr agent hint (#10452)
  • 4460461 docs(changelog): physical-only stop chord on macOS and X11 (#10444)
  • 35483d7 docs(computer-use): the stop chord counts only a physical key press (#10444)
  • 8b38b8f fix(desktop-x11): ignore XTEST key events in the stop chord listener (#10444)
  • a998f6e fix(desktop-macos): only a physical key press triggers the stop chord (#10444)
  • 6e37d7a test(desktop-engine): stop treating arm64 Linux and Windows as engine-less
  • 96d2fdf fix(omo-native): name the engine for herdr so herdr agent prompt reaches OmO panes (#10448)
  • 03f5226 fix(qa): judge the live grant run by the engine's audited status
  • 3dcaa28 fix(qa): live grant driver targets its own dialog and runs outside full access
  • b47df01 docs(computer-use): explain the foreground-control confirm; add a live macOS grant QA driver (#10443)
  • d46302b build(omo-codex): refresh the installer bundle marker for bun-types 1.4.3 (#10430)
  • 9801e5d feat(release): build the desktop engine for linux-arm64 and win32-arm64
  • 32342a6 docs(changelog): link #10439
  • af7ae24 docs(changelog): note OpenCode 2 loading (#8485)
  • 3145624 feat(omo-opencode): load on OpenCode 2 and point to OmO Native
  • 400f6ae feat(frontend-skill): keep coloured edge stripes off rounded surfaces, with a linter
  • 0c5550f chore(ci): regenerate the per-package locks for bun-types 1.4.3 (#10430)
  • 2945ad5 Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • edd817c fix(sync): the recovery write hold is written before the join and released only after a reload proves the rotation (#10412 review r2)
  • 5d6b768 test(memory): skip the 7 host-scan rows on every Linux host, not only in one CI step (#10431)
  • 511ce50 chore(model): refresh capacity fallback integration
  • 81907a9 chore(ci): bump Bun to 1.4.3 (#10430)
  • a56c719 test(memory-core): keep the A3 chunking rationale to what was measured (#10413)
  • 0c9c26f test(web): read the no-JavaScript manifesto with page scripts disabled (#10411)
  • 1834f2f test(omo-native): seed a fresh setup cache so the banner test spawns no detached refresh (#10398)
  • b05a6c8 test(memory-core): run A3 adopt-deletion property cases in bounded chunks (#10413)
  • 8d37a98 fix(gateway): refuse a store-extension orderBy that is not a column list
  • 90eaba6 Merge pull request #10199 from code-yeongyu/memsync/10177-crash-consistency
  • fa3eda7 fix(sync): recovery disposes held keys and zeroes epoch keys on every exit, refuses a conflicting pin before any join, caps and type-checks served lists, and removal succeeds only once its rotation is stored (#10412 review r1)
  • 87ea530 test(sync): the recovery test world removes its state dirs after each file (temp-leak guard #9766)
  • 56b8d0b Merge current dev release into fix/10170-cursor-capacity-limit-fallback
  • df37076 Merge remote-tracking branch 'origin/dev' into fix/10394-test-posthog-optout
  • c918773 docs(changelog): passkey-PRF recovery for memory sync (#10412)
  • f5e5711 fix(sync): recovery candidates carry the enrolling record full wrap list; the reference bridge binds a later wrap by the enrollment key (todo 17, desktop #2897 review r4 H2)
  • d3a9d12 Merge remote-tracking branch 'origin/dev' into memsync/recovery
  • ac12ffb Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • ddf9e53 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • eca2017 Merge remote-tracking branch 'origin/dev' into memsync/10177-merge-dev
  • 96b2083 Merge pull request #10298 from code-yeongyu/memsync/client-crypto
  • fe703ae Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 02f2ecc Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • e98da44 Merge remote-tracking branch 'origin/dev' into memsync/10177-merge-dev
  • 6c11ebd Merge remote-tracking branch 'origin/dev' into memsync/client-crypto
  • ed7b251 Merge pull request #10206 from code-yeongyu/memsync/space-identity
  • 08cb23d fix(sync): recovery mints its bootstrap anchor with recoveryAnchor (todo 17, #10298 r5 branded anchors)
  • a1c2f5a test(sync): the recovery test world anchors its creator walk on its own principal (todo 17, #10298 r4 anchor shape)
  • 7d19133 fix(sync): recovery in two steps around a walk anchored at the enrolling record; enroll and remove on the pinned anchor (todo 17, review r3 option A)
  • 35c0a8e fix(sync): recovery takes chain-minted VerifiedWrap; open the bridge-sealed device wrap through its own local opener (todo 17)
  • 1ff0b96 feat(sync): passkey-PRF recovery client (todo 17)
  • 25799af Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • c139675 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 6206729 test(memory): cite #10391 on the Windows stranded-lock reclaim skip (#10199)
  • 9bce024 test(memory): skip the in-commit self-kill row on Windows; the staged-index blocker is product bug #10393 (#10199)
  • ee51e43 Merge origin/dev into memsync/space-identity (#10203 merged; base retargeted to dev)
  • e9e991c test(memory): skip the two stranded-lock reclaim rows on Windows, where the repo-in-use scan cannot answer (#10199)
  • a65c09f Merge remote-tracking branch 'origin/dev' into memsync/client-crypto
  • 04de239 test(memory): make the self-kill and stranded-lock takeover rows Windows-correct (#10199)
  • c6d56ae Merge remote-tracking branch 'origin/dev' into merge-dev-10370
  • 2aaae0f fix(memory): keep the exec drain comment harness-neutral (#10199)
  • 2671518 fix(memory): detach the mirror push with a bare exec so dash keeps no saved pipe fds (#10199)
  • 37c184c test(memory): run the mirror hook pipe test under every POSIX shell present, dash included (#10199)
  • b625a98 fix(memory): detach the background mirror push from git pipes (#10199)
  • 5c139c4 test(memory): a pipe-holding hook child must not keep the writer lock or delay a mirrored commit (#10199)
  • 6cca2b3 fix(memory): destroy git pipes only when the exit drain runs out (#10199)
  • 38146b7 fix(memory): settle a normally exited git after a bounded pipe drain (#10199)
  • 9ea29e7 test(memory): a hook child holding git pipes must not stall a finished git (#10199)
  • 21d2772 test(memory): move the skip-flag import out of another import block (#10199)
  • b72080c ci(memory): ubuntu also skips the two #10177 SIGKILL rows (same scan mechanism in the full suite); pending the lead OK (#10199)
  • 6daa8bf Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • a232f39 ci(memory): coverage for the 5 host-scan rows is macOS CI until #10322 (Boat cannot answer the scan either) (#10199)
  • d86d06e Merge pull request #10376 from code-yeongyu/release/v5.1.35-source-state
  • 9feb72f ci(memory): ubuntu CI skips the 5 host-scan rows its kernel cannot answer (run on macOS and in a namespace on Boat until #10322); those files get a budget above the 60 s scan bound (#10199)
  • 14e99ac test(omo-native): isolate the doctor suite from the caller's agent dir
  • 003bbc6 fix(memory): stop a timed-out git with SIGTERM first, settle on exit, give commits a 120 s budget, and report a timed-out commit by what landed (#10199 field incident)
  • 4b4c6c4 test(memory): a timed-out git gets SIGTERM before SIGKILL, and a commit that landed before its timeout is reported committed (#10199 field incident)
  • db0949e Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 283cc78 fix(memory): forfeit the dead-owner proof on a lost publish; run memory-core lock tests in a PID namespace on Linux CI with a fail-closed row for unanswerable scans; drop Bun.spawn from test support (#10199 r9)
  • 2d8a2f4 test(memory): a lost publish forfeits the dead-owner proof; a 0-byte HEAD.lock from a killed writer is reclaimed or refused, never left staged (#10199 r9)
  • 9a0f610 test(memory): prove shutdown awaits an in-flight reflection launch
  • a84eaef Merge origin/dev into fix/10170-cursor-capacity-limit-fallback
  • dfa8bb8 Merge origin/dev into fix/10170-cursor-capacity-limit-fallback
  • 34ff5a4 Merge origin/dev into fix/10170-cursor-capacity-limit-fallback
  • e3a0e8e Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 9da6e04 fix(memory): every repo write entry point settles a pending rollback, unstaging only the index and keeping later edits (#10199 review r8)
  • 6c828be test(memory): every write entry point settles a pending rollback, index only, keeping later edits (#10199 review r8)
  • d0bb417 fix(memory): a verified chain state refuses any function (todo 13, #10298)
  • 50f93ef Merge remote-tracking branch 'origin/dev' into pr9613
  • 3197527 fix(memory): a joined register line never vouches for a side value; one write rule for register adds (#10206 r10)
  • 676cd3f Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 5a7fec2 fix(memory): a minted chain state is deep-frozen; atVerifiedHead only moves forward (todo 13, #10298)
  • 43235ea fix(memory): roll back by what is actually staged, deferring the unstage past a locked index; refuse an unknown memory writer up front (#10199 review r7)
  • 7359f5f test(memory): a commit-time index.lock rollback, and an unknown writer refused up front (#10199 review r7)
  • c88e005 fix(memory): shutdown also races in-flight reflection launches, after the drain
  • 2c95c87 fix(memory): every value the chain verifier trusts is one it minted (todo 13, #10298)
  • 124a205 Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 87b482b fix(memory): roll back the index too when a kept ref lock failed the commit; unlock holds the memory-write lock and never reports an unknown writer as none (#10199 review r6)
  • fc79c4f test(memory): a stranded ref lock rollback, and a same-process or unreadable memory writer during unlock (#10199 review r6)
  • 7f8c63c test(routing): omo-native coverage and docs follow the unspecified-low GLM rung
  • f2f0a37 test(memory): run the pinned-root refusals under a real pin from the pin store (todo 13, #10298)
  • f900cc4 Merge origin/dev (4b471ae) into memsync/client-crypto (todo 13)
  • 8d1950a fix(memory): the creator anchor is the device's own principal, never a digest (todo 13, #10298)
  • 2432f94 Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • ee7201f fix(memory): take BigIntStats from the resilient fs module, keeping the memory-core fs boundary (#10177)
  • e672c68 Merge remote-tracking branch 'origin/dev' into fix/10306-unspecified-low-glm
  • 801eef1 Merge remote-tracking branch 'origin/dev' into fix/10154-pressure-dream-teardown
  • e7c3bbe Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • a89184e fix(memory): tell a re-taken lock apart by size and nanosecond times, not inode and mtime alone; restore through the resilient fs module (#10177)
  • 1cdb824 Merge remote-tracking branch 'origin/dev' into fix/10306-unspecified-low-glm
  • 028ed7f fix(memory): anchor every synced history in the root the device pinned (todo 13, #10298)
  • 5ec41b2 fix(memory): a write that fails behind a kept git lock puts back only its own files, so the retry after /memory unlock lands (#10177)
  • 22d4137 feat(memory): give a kept stranded git lock a way out: re-check one lock, refuse on a visible live holder, remove it only after confirmation (#10177)
  • 93e7fc8 Merge origin/dev (fa17331) into memsync/client-crypto (todo 13)
  • b725b56 fix(memory): refuse a served row that is not an object before reading it (todo 13, #10298)
  • a61edff fix(memory): a replayed adoption never brings back a register value a peer replaced (#10206 r9)
  • 7856aed Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 49acd05 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • f241d4c Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 4f05f95 fix(memory): treat the sync server as untrusted in client chain verification (todo 13, #10298)
  • a4b1612 test(memory): malicious-server RED tests for the review round 2 findings (todo 13, #10298)
  • 6321430 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 44b6f7d Merge remote-tracking branch 'origin/dev' into fix/10154-pressure-dream-teardown
  • c3207c2 fix(memory): shutdown also settles the footer restore a finished run starts
  • d7c9bb0 test(memory): bound the device-entry adoption rows (machine-id probe spawn under load) (#10206 r8)
  • 01e35d2 docs(changelog): link #10312
  • 9c818bc fix(memory): shutdown settles maintenance and status refreshes before returning
  • 6d3471f fix(memory): adoption captures through captureOnDevice, so a replay applies it once (#10206 r8)
  • 28386d4 docs(changelog): link #10311
  • ef3776a fix(routing): unspecified-low tries GLM 5.3 before GPT
  • 34406bf Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 98eefa5 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • a8e2e64 Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 70c3391 test(memory): cover the dead-owner proof handoff through both takeover paths (#10177)
  • 447e7e6 fix(memory): bound the whole /proc scan, keep the dead-owner proof only for its immediate successor, parse lsof pids strictly (#10177)
  • aa3ff17 test(memory): keep the vendored sync-format copy byte-exact on Windows (todo 13, #10298)
  • 72a90f5 Merge origin/dev (58363dc) into memsync/client-crypto (todo 13)
  • a80b41b Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 3a2738b Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 1f8ef87 Merge remote-tracking branch 'origin/dev' into fix/10291-gpt-6-1-sol-identity
  • ca2160d Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 17dacdb fix(agents): match GPT-6 tiers at a word boundary in the prompt identity
  • 097ab36 test(memory): a BOM main and side adopt end to end and the main keeps its BOM on write (#10206 r7)
  • d705bf5 Merge #10203 r6 (d58391c, BOM kept on write) into memsync/space-identity
  • f0914a8 docs(changelog): client-side sync verification (todo 13, #10298)
  • f300ba3 Merge #10203 r6 (4ddcbf6) into memsync/space-identity
  • 2841365 Merge remote-tracking branch 'origin/dev' into fix/10291-gpt-6-1-sol-identity
  • 1db230d fix(memory): adoption deletes a source only on a read-back of the committed item (#10206 r7)
  • 060cb1b Merge origin/dev (36c5b12) into memsync/client-crypto (todo 13)
  • 26cff26 test(memory): name the sync-v1 fixture loader as test support (todo 13)
  • afcfecf fix(memory): the client chain refuses exactly what the merged receiver refuses (todo 13)
  • 2274878 test(memory): re-vendor sync-format from omo-service main ab25c8a82a (#456) (todo 13)
  • bfbda33 test(memory): re-vendor sync-format and sync-v1 fixtures from omo-service main 3bedb0a (todo 13)
  • e17b870 fix(memory): open wraps through DeviceKeyring with the section 8.1 binding (todo 13)
  • c165a60 feat(memory): sync format, chain and keyring verification (todo 13)
  • 9b0e27e test(memory): vendor sync-format v1 and sync-v1 fixtures with a hash check (todo 13)
  • 74f7904 test(memory): five peer commits prove the takeover as well as twenty and keep the 30 s budget load-independent (#10177)
  • 7ea5a31 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • ddf379b Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • ed8f881 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • c7b02bc Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 3e41c9a Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 907490b Merge #10203 r6 (70560f0) into memsync/space-identity
  • 369ca93 Merge remote-tracking branch 'origin/dev' into fix/10291-gpt-6-1-sol-identity
  • efef633 docs(changelog): link #10292 in its Unreleased entry
  • f33e163 fix(agents): name GPT-6.1 Sol and GPT-6 Luna in the OpenCode GPT prompt identity
  • d9b97d8 docs(changelog): describe the repo-in-use check and unknown holder answers in stranded lock recovery (#10177)
  • 5441a94 fix(memory): bound the lsof wait so a wedged lsof reads as unknown, never as no holders (#10177)
  • 3e1cffb fix(memory): await lsof's own exit instead of racing a wall-clock timeout (#10177)
  • f3ebbc7 fix(memory): keep stranded git locks while any process works in the repo; bind the takeover proof to one acquisition (#10177)
  • 76c0487 Merge #10203 r6 (ea00e98) into memsync/space-identity
  • 6dffedb Merge #10203 r6 (0bde9bc, multiline fix) into memsync/space-identity
  • e16c02a docs(changelog): #10206 space identity and insert-only adoption
  • 6c59193 fix(memory): insert-only adoption on the register/set model; no conflict text in the body (#10206 r6)
  • 833e6b4 Merge #10203 r6 (e15e59e) into memsync/space-identity
  • 42e5067 Merge #10203 r4 (1c1e01b) into memsync/space-identity
  • 058d4af fix(memory): space join and manifest take loro types from the runtime loader
  • 2427cbf Merge #10203 r3 (e0e4cb1) into memsync/space-identity
  • e17a3e6 fix(memory): the deletion read-back is structure-free; a malformed T2 block stays text
  • cf35a30 fix(memory): a mid-body T2 block keeps its neighbours apart; the deletion read-back is independent and counts lines
  • bfbcafa Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 8540d89 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 48e8b8a fix(memory): delete an adopted source only after a read-back proves its facts survived; CRLF frontmatter
  • 0ac0a2f fix(memory): adoption keeps every frontmatter key and value; merge never rewrites or glues lines
  • 9bfbd03 docs(changelog): note stranded git lock recovery and the Linux holder check (#10177)
  • 954e8c5 Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 7e148e7 fix(memory): detect git lock holders via /proc on Linux, not lsof (#10177)
  • 7076ab4 Merge remote-tracking branch 'origin/memsync/crdt-item-model' into memsync/space-identity
  • c9f4ee4 fix(model-core): fall back on Cursor capacity_limit errors (fixes #10170)
  • b911b1b fix(memory): reclaim stranded git locks only from a proven-dead owner (#10177)
  • 9426457 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • c5fa0bd fix(memory): merge disjoint texts line-wise; near-copies by code point
  • 00a233f feat(memory): insert-only adoption and hub-trace T1/T2 folding (todo 5)
  • 59bdb3a fix(memory): read manifest roots directly; loro resolves untouched roots to empty
  • 14f4da9 feat(memory): space manifest, sticky binding resolution and space joins (todo 5)
  • ee4ee10 test(memory): use an unambiguous prefix-insert case in the merge table
  • 61948e2 feat(memory): space binding keys and insert-only merge (todo 5)
  • c0f03c5 test(memory): failing tests for space identity and lossless adoption (todo 5)
  • f4b8593 Merge remote-tracking branch 'origin/dev' into memsync/10177-crash-consistency
  • 24bba52 test(memory): disarm the in-commit self-kill once git exits so a missed window exits cleanly (#10177)
  • 48fc80a test(memory): give the raw auto-maintenance fixture the repo-local identity production sets at init (#10177)
  • be52b05 build: regenerate bundles on Linux after merging dev
  • bfc76b6 test(memory): arm the in-commit kill after git spawns and wait for the orphan before takeover (#10177)
  • 25b3a0f fix(memory): reclaim a stranded git lock only when no process holds it open (#10177)
  • 14c528f fix(memory): never let a commit start git's detached auto-maintenance, which prunes loose objects under live readers (Fixes #10177)
  • 31487b8 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • cdbf339 refactor(memory): split crash-consistency tests and loop driver under the 250-line ceiling (#10177)
  • e4af763 test(memory): route crash fixture through the fs resilient module and hide windows consoles (#10177)
  • c1ce817 fix(memory): sweep stranded git lock files so a killed writer never wedges or corrupts the repo (Fixes #10177)
  • 36bf134 test(memory): fsck --strict after SIGKILL takeover and an in-commit kill case (#10177)
  • 0079f38 build: regenerate bundles on Linux after merging dev
  • 8b7ed61 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 4ebd929 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 19ea243 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 8bbeba3 build: regenerate bundles on Linux after merging dev
  • 9378d3b Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 636bf7b build: regenerate bundles on Linux after merging dev
  • afa429b Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 667c6d3 Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • a93d8cd Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 13d73a1 Merge remote-tracking branch 'origin/dev' into rpcmac2/10122
  • 8bd270a Merge remote-tracking branch 'origin/dev' into rpcmac2/10112
  • 113cfd9 Merge remote-tracking branch 'origin/dev' into fix/rpc-seam-10-session-replaced
  • 6eff8b2 Merge branch 'dev' into fix/9489-deterministic-close-grace

Thank you to 1 community contributor:

  • @MoerAI:
    • chore(model): refresh capacity fallback integration
bun add -g omo-ai

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

NewReleases is sending notifications on new releases.