oh-my-openagent

AI

oh-my-openagent release notes.

Latest v4.19.4 · by oh-my-openagentWritten in TypeScriptWebsitecode-yeongyu/oh-my-openagentRSS

Release activity

Release activity — 57 releases across 34 days since Jul 10, 2026. Each cell is one day; darker means more releases that day. Nothing is recorded before Jul 10, 2026. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on Jul 12, 2026No releases on Jul 19, 20261 release on Jul 26, 2026No releases on Aug 2, 20261 release on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 20263 releases on Aug 30, 20262 releases on Sep 6, 2026
Monday1 release on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 2026No releases on Aug 3, 20264 releases on Aug 10, 20262 releases on Aug 17, 20262 releases on Aug 24, 20261 release on Aug 31, 20263 releases on Sep 7, 2026
Tuesday2 releases on Jul 14, 2026No releases on Jul 21, 20261 release on Jul 28, 2026No releases on Aug 4, 20261 release on Aug 11, 20261 release on Aug 18, 20261 release on Aug 25, 2026No releases on Sep 1, 2026
WednesdayNo releases on Jul 15, 20261 release on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 20261 release on Aug 12, 20262 releases on Aug 19, 20261 release on Aug 26, 20263 releases on Sep 2, 2026
Thursday1 release on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 20261 release on Aug 20, 20262 releases on Aug 27, 20265 releases on Sep 3, 2026
Friday1 release on Jul 10, 20261 release on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 20262 releases on Aug 21, 20262 releases on Aug 28, 20262 releases on Sep 4, 2026
Saturday1 release on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 20261 release on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 20262 releases on Aug 22, 20261 release on Aug 29, 20261 release on Sep 5, 2026

57 releases since Jul 10, 2026, busiest day 5

Changelog

v5.0.0-beta.48

Pre-release
Added 1
  • Document the Memorian recall gate behind the Aha moment notice
Fixed 3
  • Force BUN_BE_BUN environment variable when spawning the packaged daemon
  • Fix facts child completion determinism
  • Fix Windows flake determinism

From oh-my-openagent

  • a470d3d9d Merge pull request #7927 from code-yeongyu/release/v5.0.0-beta.48-source-state
  • bcbdb3980 Merge pull request #7922 from code-yeongyu/fix/facts-child-completion-7921-20260907
  • 41f4da121 Merge pull request #7917 from code-yeongyu/fix/windows-flake-determinism
  • 3726c9ecb Merge pull request #7916 from code-yeongyu/fix/lsp-daemon-packaged-spawn-bun-env
  • bdc1f2177 Merge pull request #7918 from code-yeongyu/docs/memorian-aha-moment
  • 21643b549 docs(memory): document the Memorian recall gate behind the Aha moment notice
  • b9fb35461 test(hooks): cross the legacy truncate/write boundary in-process
  • c6fda841c test(team-mode): observe fallback wakes through injected dispatch timing
  • 51385f235 test(lsp-daemon): keep the fixture path free of legacy command strings
  • 78b925c5e style(lsp-daemon): sort the injected child_process import names
  • 3386d8f38 fix(lsp-daemon): force BUN_BE_BUN when spawning the packaged daemon
  • 27e70dcff test(lsp-daemon): observe the packaged daemon spawn options

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • docs(memory): document the Memorian recall gate behind the Aha moment notice
    • Merge pull request #7927 from code-yeongyu/release/v5.0.0-beta.48-source-state
View originalPermalink
How v5.0.0-beta.48 went

v5.0.0-beta.47

Pre-release
Added 2
  • Memorian now reads eval cells and long shell commands of any length to harvest terms for memory queries
  • Every judge run now writes outcome.json and run directories are pruned after 7 days or 30 days when nudged, failed or dropped
Changed 6
  • Late-judge salvage now delivers nudges that were accepted before the judge deadline instead of dropping them
  • Tool-call-launched judges now get a 90 second deadline instead of 45 seconds
  • Judges that run out of time with zero accepted nudges are marked as dropped with cause deadline instead of shown as failures
  • Same-model retry budget is capped at one when fallbacks exist to allow multi-rung chains to be exercised within the 90 second deadline
  • Gate entry, nudged/empty result, failure record and outcome.json now name the actual rung that produced the verdict instead of the launch primary
  • Memorian recollections now render as aha moments in the agent's voice instead of appearing as muted third-party bookkeeping
Fixed 4
  • Journal flush now runs first during shutdown before other pre-drain awaits, fixing memory loss where sessions would lose their journal on shutdown or during hot-reloads
  • Judge and facts child now use the quick-category fallback chain with fallbackModels instead of only the primary model, allowing recovery from provider errors like 503 overload
  • DAG runs paused during desktop host shutdown are now properly resumed when the successor host takes over using lease watch and recovery
  • Cross-process state lock implemented for mutating CLI commands to prevent lost updates and silent shared scope issues

From oh-my-openagent

OMO 5.0.0-beta.47

✦ Aha moment! this is the memory release. nothing your agent learned gets dropped on shutdown anymore, Memorian keeps recalling straight through a 503, and every recollection now lands on screen as an aha moment. enjoy them.

engine unchanged: senpi 2026.9.7, same as beta.46. this one is all omo side, and most of it is the memory subsystem. i went looking for why memory felt thinner than the number of sessions said it should, and found it.

🧠 memory

the journal you wrote this session actually gets flushed now. (#7899, closes #7889) the shutdown drain has a fixed 1.5 s budget, and the only durable step in it, journal-flush, ran last. before it, the drain awaited the Memorian judge, the gate and the facts children, and whenever one of those was sitting inside a provider retry chain the budget was gone before the flush was even attempted. i measured it on one host: 199 starvation events across 78 sessions, journal-flush skipped in 191 of them, and 183 came from ordinary omo.jsonc hot-reloads. one shared-config edit was silently dropping the journal of every open session at once. that is not a shutdown edge case, that is memory loss during normal use. the flush now runs first, before any pre-drain await, same deadline, no budget increase. and if it still gets skipped or aborted, you get memory shutdown drain skipped the journal flush at error level instead of a warning that nobody greps for.

Memorian reads your eval cells and your long shell commands now. (#7895) the lexical planner never read eval code, and it threw away any shell command over 120 characters whole. if you live in eval, the judge basically never fired for you. it now harvests terms from eval code and summary arguments and from commands of any length, and reserves two newest-first, path-preferring query slots for tool terms, so one filename in a cell can surface a memory even when your prompt already owns both default slots.

  • late-judge salvage: nudges the judge already accepted before its deadline are delivered instead of dropped. tool-call-launched judges get a 90 s deadline (was 45 s, judge p90 was 44 s, you can see why).
  • a deadline is not a failure anymore. a judge that runs out of time with zero accepted nudges is dropped (cause deadline), so the red "Memorian gate failed - deadline" notice is gone for that case. 44 zero-token deadline aborts in 36 h on one host were rendering as failures. real provider breakage still shows as child_failed.
  • run retention: every judge run writes outcome.json. run dirs are pruned after 7 days, 30 when nudged, failed or dropped, throttled hourly.

the judge and the facts child ride your quick-category fallback chain. (#7907 fixes #7904, #7911) both children were launched with only the primary model of quick and modelFallback: false. one 503 server_is_overloaded on that rung and the run was over, with the rungs you configured sitting unused in an array. they now receive the category's own chain (selectedModel + fallbackModels) and senpi rotates rungs mid-turn the same way it does for task subagents and the main session. a run fails only when the whole chain is exhausted. when fallbacks exist the same-model retry budget is capped at one, otherwise a two-rung chain could never be exercised inside the 90 s deadline. the beyond-category ladder stays refused: the judge is still pinned to quick, it just gets to use all of quick.

and the record tells the truth about which model answered. (#7911) the gate entry, the nudged/empty result, the failure record and outcome.json now name the rung that actually produced the verdict, not the launch primary.

recollections look like recollections. (#7906) a Memorian nudge used to read like third-party bookkeeping: Memorian nudged · <hint>, muted, with a via steer line. it now renders as ✦ Aha moment! / just remembered: <hint> (also remembered: for a second one) in the agent's own voice. the delivery route stays in the record for forensics but is gone from the screen, and the "hint, not current state" caveat moved to the expanded view. this is the one you will notice first.

known memory issue, not fixed in this release: #7912. the reflection scheduler never reclaims an active.lock whose launcher is dead when a retired run dir with the same id shadows it, so pending.json grows without bound and reflection/dream runs stop launching. if your runtime/reflection/active.lock names a dead pid, delete it once. the proper fix is tracked there.

🔁 DAG runs survive a desktop host restart (#7905)

a DAG run paused for its host's shutdown stayed paused forever if the successor host resumed the session while the predecessor was still exiting. that is the normal shape of an OmO Desktop RPC restart, so every desktop-hosted run that lived through a restart was stuck, and the desktop's "will be claimed and resumed automatically" prompt was lying. attach now arms a lease watch on the previous holder pid and re-runs recovery (claim, reconcile, reschedule) the moment it exits, in the same session, no second session_start. detach, pauseForShutdown and dispose cancel the watches.

🔒 ulw-loop toolkit: no lost updates, no silent shared scope (#7908, #7913)
  • cross-process state lock. every mutating CLI command (create-goals, record-evidence, checkpoint, ...) takes an O_EXCL lock file carrying pid + a per-acquisition token. stale locks are reclaimed only when the owner pid is dead, release unlinks only its own token, and a waiter that cannot acquire fails closed with ULW_LOOP_LOCK_TIMEOUT instead of proceeding unlocked. before this, three parallel record-evidence calls landed 1 of 3 criteria in 4 of 4 rounds while every process exited 0 with ok: true.
  • fail-closed session scope. without --session-id and without a session env key the CLI fell back to the cwd-global .omo/ulw-loop/ root. from an eval kernel, which does not carry PI_SESSION_ID, the same session could read a stranger's plan. it refuses now, and the ulw-loop pointer omo-senpi injects carries --session-id so eval calls land in the right scope.
  • locked legacy-plan migration. the aggregate-objective migration no longer runs from inside a read. an unlocked read of a legacy plan fails with ULW_LOOP_MIGRATION_REQUIRED and names the recovery (run any mutating command once).
🎯 workflow pointers stop putting words in your mouth (#7910, for #7890)

skill-pointers matched workflow names anywhere in any input and injected "The user asked for ...". in a multi-session setup, a relayed status line or a quoted advisory that named a workflow re-armed the pointer in the recipient, and the ultrawork trigger had no word boundary. inline and fenced code plus already-injected pointer blocks are masked before the keyword test, the pointer text is conditional ("if the user of this session is asking to run X ... otherwise ignore"), and ultrawork / ulw match on word boundaries only. ulw-loop still arms, ulwfoo does not.

🪟 windows
  • OpenClaw's reply-listener daemon is identified through Win32_Process (PowerShell addressed via SystemRoot, not PATH), so it can be detected and stopped instead of being orphaned on the first status check. (#7885, thank you @LilMGenius)
known issues
  • #7914: lsp-daemon's spawnDaemonProcess launches the daemon through the compiled omo binary without BUN_BE_BUN=1, so an ensureDaemonRunning retry can boot a phantom agent session instead of a daemon. present on dev and in this release, fix in progress. if you see short sessions you did not start, omo doctor lists orphaned engines.
  • #7912: reflection reservation not reclaimed after a dead launcher (see memory above).
  • #7902: DAG reconcile fails never-started nodes as task_lost instead of re-admitting them.
npm i -g omo-ai@beta
bunx oh-my-openagent@5.0.0-beta.47 install
bunx lazycodex-ai@5.0.0-beta.47 install

try it and tell me what breaks. i will be here.


  • b885f13f8 Merge pull request #7915 from code-yeongyu/release/v5.0.0-beta.47-source-state
  • f52d0cb85 Merge pull request #7911 from code-yeongyu/fix/memory-child-chain-provenance
  • df30a8e51 Merge pull request #7913 from code-yeongyu/fix/ulw-loop-lock-ownership
  • af000e465 fix(ulw-loop): track held locks per async continuation and record tokens in lock fixtures
  • 306aa832c fix(ulw-loop): refuse the legacy aggregate-objective migration on read paths
  • 39c168e47 fix(ulw-loop): never reclaim a live owner's lock and release only an owned lock
  • c55d97dc2 Merge remote-tracking branch 'origin/dev' into fix/memory-child-chain-provenance
  • 04282b3f8 Merge pull request #7910 from code-yeongyu/fix/skill-pointer-intent-honesty
  • f0dbd3110 Merge branch 'lane/facts-chain' into fix/memory-child-chain-provenance
  • a67cb3815 Merge branch 'lane/provenance' into fix/memory-child-chain-provenance
  • eb4f0b75c Merge pull request #7908 from code-yeongyu/fix/ulw-loop-state-integrity
  • 4714a3ab3 Merge pull request #7907 from code-yeongyu/fix/memorian-judge-quick-chain-fallback
  • d4345c5d5 docs(ulw-loop): document the session-scope requirement and the cross-process state lock
  • 30b7168d3 fix(ulw-loop): refuse unscoped state instead of falling back to the shared root
  • 2449a155d fix(ulw-loop): serialize state mutations with a cross-process lock
  • b21052132 Merge pull request #7906 from code-yeongyu/feat/memorian-aha-moment
  • 5e49066b9 Merge pull request #7905 from code-yeongyu/fix/dag-recovery-desktop-resume-20260907
  • b78afb5c2 feat(memory-core): reserve recall query slots for tool-argument terms
  • 767069606 Merge pull request #7899 from code-yeongyu/fix/shutdown-drain-journal-starvation
  • 6d404434b Merge pull request #7885 from LilMGenius/fix/windows-reply-listener-daemon-identity
  • ef2dfcc66 test(openclaw-core): identify the reply-listener daemon against real child processes
  • 2fbe86904 fix(openclaw): identify the reply-listener daemon on Windows

Thank you to 2 community contributors:

  • @LilMGenius:
    • fix(openclaw): identify the reply-listener daemon on Windows
  • @sisyphus-dev-ai:
    • test(openclaw-core): identify the reply-listener daemon against real child processes
    • feat(memory-core): reserve recall query slots for tool-argument terms
    • Merge pull request #7915 from code-yeongyu/release/v5.0.0-beta.47-source-state
View originalPermalink
How v5.0.0-beta.47 went

v5.0.0-beta.46

Pre-release
Changed 1
  • Engine updated from senpi 2026.9.6 to senpi 2026.9.7
Fixed 12
  • Context overflow is now recoverable even with auto-compaction disabled; compaction.enabled=false now switches off only proactive threshold compaction while still allowing one-shot compact-and-retry recovery when the provider rejects a turn as context overflow
  • RPC set_auto_compaction is now session-scoped and no longer rewrites the persisted global compaction.enabled setting
  • Context windows in the catalog now show the real prompt budget instead of incorrect totals, with 128 catalog rows across OpenAI, OpenAI Codex, Azure, Bedrock, Copilot, OpenRouter, Vercel, OpenGateway, Cloudflare and OpenCode updated to provider input caps of 922,000 / 272,000
  • Permission system external-directory check now resolves paths per component with lstat/readlink instead of realpathSync to prevent session freeze on autofs triggers
  • Missing sidecar in codemode now surfaces a clear error instead of hanging
  • Skill packages are now de-duplicated in codemode

From oh-my-openagent

OMO 5.0.0-beta.46 — engine update: senpi 2026.9.7

The engine moves from senpi 2026.9.6 to 2026.9.7 (#7886). This one carries the three fixes for the defects that were silently killing long sessions.

Fixed (via senpi 2026.9.7)
  • Context overflow is recoverable again, even with auto-compaction off. compaction.enabled=false now switches off only proactive threshold compaction; a turn the provider rejects as a context overflow still gets its one-shot compact-and-retry recovery instead of leaving the session with no way forward. A goal no longer re-prompts a context the provider just rejected; the next user message resumes it (code-yeongyu/senpi#1425, #1422).
  • The RPC set_auto_compaction is session-scoped: it no longer rewrites the persisted global compaction.enabled, so one OmO Desktop thread toggling auto-compaction cannot disable it for every other session on the machine. The desktop toggle keeps working (it reads the following get_state); the interactive /settings toggle still persists (#1425).
  • Context windows in the catalog now show the real prompt budget. OpenAI rejects a request with context_too_large once the prompt alone exceeds window minus max output, so the old 1,050,000 / 400,000 totals let sessions run past the point where compaction could still help — that is why sessions were dying around 916k. 128 catalog rows across OpenAI, OpenAI Codex, Azure, Bedrock, Copilot, OpenRouter, Vercel, OpenGateway, Cloudflare and OpenCode now carry the provider input caps (922,000 / 272,000); your UI footer shows a smaller denominator by design, and user modelOverrides still win (#1427, #1422).
  • No more whole-session freeze on a path token. The permission system's external-directory check resolved paths with realpathSync, which under Bun opens every directory it walks and blocks forever on an autofs trigger such as macOS /home; it now resolves per component with lstat/readlink (#1419).
  • Codemode: a missing sidecar now surfaces a clear error instead of a hang (#1426); skill packages are de-duplicated (#1424); fallback decision logs and the teardown test harness were hardened (#1416, #1417).
Also since beta.45 (omo)
  • test(background-agent): stop the unreachable-server stale sweep from expiring on the wall clock (#7891, @LilMGenius)
  • fix(omo-senpi): make DAG owner-scope snapshot keys posix on Windows (#7893)
  • #7869 fix(senpi-task): scope DAG recovery to the session and immediate fork source
  • #7882 fix(postinstall): bound the opencode version probe
  • #7881 fix(omo-senpi): keep one omo-senpi package entry and isolate the local launcher
  • #7877 ci: fail the build job when committed schema artifacts are stale
  • #7873 fix(schema): regenerate omo.schema.json after memory.tool_exposure was removed
  • #7854 test(background-agent): pin the stale sweep against an unreachable server end to end
  • #7851 fix(background-agent): finalize a stale task whose session is gone and cannot be aborted
  • #7850 fix(background-agent): stop reading an unreachable server as a live session
npm i -g omo-ai@beta
bunx oh-my-openagent@5.0.0-beta.46 install
bunx lazycodex-ai@5.0.0-beta.46 install

Verified on a clean Linux box right after publish: both Codex install paths exit 0 with 26 skills, and published omo-ai reports omo 5.0.0-0.beta.46 (engine: senpi 2026.9.7).

View originalPermalink
How v5.0.0-beta.46 went

v5.0.0-beta.45

Pre-release
Changed 1
  • Engine updated from senpi 2026.9.5-3 to senpi 2026.9.6
Fixed 10
  • Long sessions no longer get stuck above the compaction threshold when a retained tool result holds an image block
  • Well-formed image blocks in tool results are now retained during deterministic compaction fallback while malformed blocks remain rejected
  • Fallback decision logs for no_chain and candidates_exhausted are now written to fallback.log
  • Fallback activation is atomic and fails closed, preventing a fallback model that cannot admit the live context from hopping through unrelated providers
  • Claude SDK OAuth early terminal results and replay failure attribution are now preserved
  • Senpi compaction is re-enabled on Claude SDK OAuth lanes when compaction.model is configured

From oh-my-openagent

OMO 5.0.0-beta.45 — engine update: senpi 2026.9.6

A small follow-up to the beta.44 install hotfix: the engine moves from senpi 2026.9.5-3 to 2026.9.6, which carries the compaction and fallback fixes below. No omo-side code changes besides the pin (#7852).

Fixed (via senpi 2026.9.6)
  • Long sessions no longer get stuck above the compaction threshold when a retained tool result holds an image. The deterministic compaction fallback rejected any prepared suffix whose tool results carried an image block (unsafe-retained-content), so after a summarization timeout the session could not compact at all — the "deterministic compaction fallback cannot retain the prepared suffix" loop reported in #6871. Well-formed image blocks are now retained; malformed blocks stay rejected; each candidate's rejection reason is recorded in the diagnostics (code-yeongyu/senpi#1412, reported and reproduced by @ayden94).
  • Fallback decision logs are back. After the atomic fallback-admission change, no_chain / candidates_exhausted stopped being written to fallback.log; they are logged again (code-yeongyu/senpi#1415).
  • Fallback activation is atomic and fails closed: model-select hooks and context admission complete before anything is persisted or announced, and a fallback model that cannot admit the live context no longer hops through unrelated providers (code-yeongyu/senpi#1413, #1411).
  • Claude SDK OAuth: early terminal results and replay failure attribution are preserved (code-yeongyu/senpi#1400, #1401); senpi compaction is re-enabled on those lanes when compaction.model is configured (#1405).
  • Eval cells survive a stop. The JS kernel handles interrupts cooperatively with a bounded stop, so a stopped or timed-out cell no longer resets the kernel and wipes top-level state, and `Bun.## OMO 5.0.0-beta.45 — engine update: senpi 2026.9.6

A small follow-up to the beta.44 install hotfix: the engine moves from senpi 2026.9.5-3 to 2026.9.6, which carries the compaction and fallback fixes below. No omo-side code changes besides the pin (#7852).

Fixed (via senpi 2026.9.6)
  • Long sessions no longer get stuck above the compaction threshold when a retained tool result holds an image. The deterministic compaction fallback rejected any prepared suffix whose tool results carried an image block (unsafe-retained-content), so after a summarization timeout the session could not compact at all — the "deterministic compaction fallback cannot retain the prepared suffix" loop reported in #6871. Well-formed image blocks are now retained; malformed blocks stay rejected; each candidate's rejection reason is recorded in the diagnostics (code-yeongyu/senpi#1412, reported and reproduced by @ayden94).
  • Fallback decision logs are back. After the atomic fallback-admission change, no_chain / candidates_exhausted stopped being written to fallback.log; they are logged again (code-yeongyu/senpi#1415).
  • Fallback activation is atomic and fails closed: model-select hooks and context admission complete before anything is persisted or announced, and a fallback model that cannot admit the live context no longer hops through unrelated providers (code-yeongyu/senpi#1413, #1411).
  • Claude SDK OAuth: early terminal results and replay failure attribution are preserved (code-yeongyu/senpi#1400, #1401); senpi compaction is re-enabled on those lanes when compaction.model is configured (#1405). inside a cell no longer reads the TUI's stdin (#1406, docs #1408); inline skill references preserved (#1404); the shared-host RPC session admission cap is removed (#1409).
npm i -g omo-ai@beta
bunx oh-my-openagent@5.0.0-beta.45 install
bunx lazycodex-ai@5.0.0-beta.45 install

Both published packages were installed into a fresh CODEX_HOME on a clean Linux box (bun 1.4.0 / node 24.18.1) right after publish — through bunx <pkg>@5.0.0-beta.45 install --platform=codex --no-tui --codex-autonomous and through installMarketplaceLocally directly: exit 0, sync:skills clean, 26 skills synced, no OMO SOT warning. npm i -g omo-ai@5.0.0-0.beta.45 then omo --version on that box prints omo 5.0.0-0.beta.45 (engine: senpi 2026.9.6). An independent macOS/arm64 isolated-HOME install of both packages passed as well.

View originalPermalink
How v5.0.0-beta.45 went

v5.0.0-beta.44

Pre-release
Added 2
  • Pre-publish payload verifier refuses payloads missing required files and validates both npm 11 and npm 12 pack output shapes
  • Regression test runs sync-skills inside a reproduction of the cache layout to catch future import path issues
Changed 4
  • Published-package smoke job now actually installs both payloads through installMarketplaceLocally instead of dry-running
  • Payload verifier spawns npm through a shell on Windows to allow the gate to run locally
  • Memory reflection payload is bounded and routed around context-window overflow
  • Memorian nudges are now triggered and delivered at tool-call boundaries
Fixed 7
  • Codex plugin installation from npm now works correctly by including the canonical ultrawork directive file in the published tarball
  • lazycodex-ai package now ships the required shared-skills runtime export target in its files list
  • Restored shared-skills imports in sync-skills.mjs to use package specifiers instead of checkout-relative paths that break after plugin flattening into the cache layout
  • Remove the skipped OMO SOT seed/migration warning by no longer spawning a migration script that was removed from the payload
  • Failed Codex install now provides the correct retry command instead of ending with a success banner
  • Compaction-timeout admission overlap prevented in omo-opencode
  • Repeated senpi runtime access errors are now suppressed

From oh-my-openagent

OMO 5.0.0-beta.44 — hotfix: Codex install works again

beta.43 could not install its Codex plugin from npm. This release fixes both published packages and adds the guards that would have caught it before publish. Engine: senpi 2026.9.5-3 (beta.43 shipped 2026.9.5; #7819).

The install failure, fixed
  • oh-my-openagent@5.0.0-beta.43 died at npm run sync:skills because the published tarball did not carry packages/prompts-core/prompts/ultrawork/codex.md, the canonical ultrawork directive the Codex cache install reads. The root files allowlist now ships it (#7835, thanks @LilMGenius) and the pre-publish payload verifier refuses a payload without it (#7836).
  • lazycodex-ai@5.0.0-beta.43 died at the same step because the curated lazycodex files list lacked packages/shared-skills/skill-source-filter.mjs. The list is fixed and the verifier now requires every shared-skills runtime export target (#7813).
  • Both packages would have failed again on dev — the shared-skills imports in sync-skills.mjs had been changed (#7814) to checkout-relative paths that do not exist once the installer flattens plugin/ into <CODEX_HOME>/plugins/cache/<marketplace>/omo/<version>. Restored to the package specifier the installer's file: link resolves, with a regression test that runs sync-skills inside a reproduction of that cache layout (#7848).
  • The skipped OMO SOT seed/migration warning is gone: the installer no longer spawns a migration script that was removed from the payload (#7837).
  • A failed Codex half now tells you how to retry it (bunx oh-my-openagent install --platform=codex) instead of ending on a success banner (#7845).
Release-pipeline hardening
  • The published-package smoke job actually installs both payloads through installMarketplaceLocally instead of dry-running (#7839).
  • The payload verifier reads both npm 11 and npm 12 npm pack --json shapes (#7840) and spawns npm through a shell on Windows so the gate can run locally there (#7844).
Also since beta.43
  • Memory: the reflection payload is bounded and routed around context-window overflow (#7842); memorian nudges are triggered and delivered at tool-call boundaries (#7843, #7846).
  • ulw-loop footer refresh, x-search abort, and batch progress state (#7822); Luna / Luna Fast aligned with their 1M context (#7826); compaction-timeout admission overlap prevented in omo-opencode (#7824); repeated senpi runtime access errors suppressed (#7834); LSP push-diagnostics fallback tests synchronized (#7812); category docs aligned with the shipped chains (#7821).
npm i -g omo-ai@beta
bunx oh-my-openagent@5.0.0-beta.44 install
bunx lazycodex-ai@5.0.0-beta.44 install

Both published packages were installed into a fresh CODEX_HOME on a clean Linux box (bun 1.4.0 / node 24) right after publish, through bunx <pkg>@5.0.0-beta.44 install --platform=codex --no-tui --codex-autonomous and through installMarketplaceLocally directly: exit 0, sync:skills clean, 26 skills synced, no skipped OMO SOT seed/migration line. An independent macOS/arm64 isolated-HOME install of both packages passed as well. Details on #7835.

View originalPermalink
How v5.0.0-beta.44 went

v5.0.0-beta.43

Pre-release
Added 4
  • Export the single facts record validator from memory-core
  • Route visual and writing categories through Fable 5.1
  • Add GPT-6 Astra prompt appends and Astra defaults for omo-opencode
  • Route categories through GPT-6 Astra high
Changed 5
  • Register claude-fable-5-1 everywhere the Fable 5.1 routing needs it
  • Move deep routing mandate to category descriptions
  • Make background the standard spawn in the GPT-5.5 prompt family and task tool description
  • Use max Astra tier for ultrabrain
  • Consolidate memory tool surface
Fixed 5
  • Add a body-preserving frontmatter field writer to memory
  • Restore the root-cause clause in the deep Astra prompt append
  • Sweep remaining task examples and delegate schema to background-by-default
  • Cap GitHub Copilot GPT-6 reasoning tiers at high like GPT-5
  • Refresh Fable 5.1 routing assertions for categories

From oh-my-openagent

  • 3460be2bc Merge pull request #7811 from code-yeongyu/release/v5.0.0-beta.43-source-state
  • a2130f695 Merge pull request #7807 from code-yeongyu/fix/omo-dev-green-20260905
  • 93a5e8830 Merge pull request #7808 from code-yeongyu/fix/memorian-judge-completion-policy
  • 2bf127ddb Merge pull request #7806 from code-yeongyu/fix/ci-model-core-requirements
  • 8181c28f3 fix(model-core,telemetry): register claude-fable-5-1 everywhere the Fable 5.1 routing needs it
  • a722ee320 Merge pull request #7804 from code-yeongyu/fix/memory-notice-wiring-test-drift
  • fd1d0dbbc Merge pull request #7800 from code-yeongyu/fix/ulw-monitor-routing
  • 23074f20d Merge pull request #7803 from code-yeongyu/feat/facts-in-process
  • 983755a64 feat(memory-core): export the single facts record validator
  • 021aaf8cf Merge pull request #7799 from code-yeongyu/fix/visual-design-deep-category-guidance
  • f0d9ae7fc move deep routing mandate to category descriptions
  • c01d126bc refine visual and deep category guidance
  • fd6f996c8 Merge pull request #7798 from code-yeongyu/feat/fable-5-1-visual-writing-routing
  • 6c75efe35 test(omo-opencode): route visual-engineering config to Fable 5.1
  • 8606cedaa test(prometheus): preserve Fable 5.1 effort variant
  • a7d3c58dc test(omo-opencode): align Fable 5.1 default assertions
  • b85662db0 fix(categories): refresh Fable 5.1 routing assertions
  • 516254643 fix(categories): update Fable 5.1 compatibility fixtures
  • 79d666ad0 docs(categories): document Fable 5.1 routing chains
  • 2988839da test(categories): align mirrors with Fable 5.1 routing
  • 2d03a69b3 feat(categories): route visual and writing through Fable 5.1
  • e416cf2a6 test(model-core): pin Fable 5.1 category routing
  • 9d39e8605 Merge pull request #7797 from code-yeongyu/fix/async-first-remaining-task-examples
  • b1f08ffd8 test(evidence): record the async-first sweep renders
  • 1badc489e fix(omo-opencode,delegate-core,prompts-core): sweep the remaining task examples and the delegate schema to background-by-default
  • 3bd08b366 Merge pull request #7795 from code-yeongyu/feat/gpt-6-astra-async-first
  • 004aed716 test(evidence): add the fan-out regression sample to the async-first backtest
  • b1c7bd39c test(evidence): record the gpt-6-astra async-first live backtest
  • 8d0586ca6 fix(omo-opencode): make background the standard spawn in the GPT-5.5 prompt family and the task tool description
  • 143868ad0 Merge pull request #7796 from code-yeongyu/feat/gpt-6-astra-momus
  • e857acb19 test(evidence): record the momus Astra resolution proof and cleanup receipt
  • 04d7f2b1c Merge pull request #7762 from code-yeongyu/fix/skill-frontmatter-body-preserving
  • 1594610fd test(evidence): record the momus GPT-6 Astra RED and GREEN runs
  • 25fa01c3a Merge pull request #7794 from code-yeongyu/refactor/memory-tool-surface-consolidation
  • 6fd53f2cf refactor: consolidate memory tool surface
  • 0c5b1afa9 docs: pin momus to the GPT-6 Astra chain
  • 2d2ad3ce5 fix(memory): add a body-preserving frontmatter field writer
  • 7c839408e Merge pull request #7793 from code-yeongyu/fix/astra-deep-root-cause
  • 273880b26 fix(categories): restore the root-cause clause in the deep Astra prompt append
  • 058b15b75 Merge pull request #7792 from code-yeongyu/feat/gpt-6-astra-category-prompts
  • a9dc2ad56 docs(evidence): record the GPT-6 Astra category prompt verification run
  • cfee1670d refine: tighten the Astra ultrabrain/deep appends, update docs and changelog, follow Astra defaults in remaining omo-opencode tests
  • 21a28c8c2 feat(omo-opencode): GPT-6 Astra prompt appends, Astra defaults, and an either-flagship gate for the category twins
  • 0e048206e Merge pull request #7791 from code-yeongyu/fix/js-first-eval-docs
  • 8b8b1743c docs: present eval examples with JavaScript first
  • f31055b2b Merge pull request #7789 from code-yeongyu/docs/gpt-6-astra
  • 41717a68a Merge pull request #7790 from code-yeongyu/feat/gpt-6-astra-routing
  • c9de902e4 fix(model-core): cap GitHub Copilot GPT-6 reasoning tiers at high like GPT-5
  • 544d7288c test(evidence): document Astra max Copilot resolution
  • b893cfee1 test(evidence): fix resolution proof imports
  • 41ec745e3 test(model-core): clarify Astra max category assertions
  • 9e6dfcf28 test(evidence): record GPT-6 Astra routing RED and GREEN
  • 5aa6a3e2c test(model-core): align Copilot Astra tier expectations
  • d356a5497 docs: pin the ultrabrain default to GPT-6 Astra max
  • 8d2f9d67d fix(model-core): use max Astra tier for ultrabrain
  • 33286fda7 test(model-core): cover Astra fast alias diagnostics
  • 0fe0ac98f feat(model-core): route categories through GPT-6 Astra high
  • 047014595 docs: mirror the built-in agent chains without vercel or quotio rungs
  • 32aedf541 docs: describe GPT-6 Astra as the recommended GPT flagship and category default
  • d4c627165 test(model-core): add failing GPT-6 Astra routing assertions
  • 18e514f0f Merge pull request #7766 from code-yeongyu/feat/memorian-in-process
  • ad075253a ci(diagnostic): on a stale sidecar check, print the runner's rebuild divergence (temporary)
  • 3ec09ec1e ci(diagnostic): print the runner-built omo-task.js divergence on the bundle check
  • 07e30350b Merge pull request #7776 from code-yeongyu/fix/dag-runtime-within-budget
  • 0a5dab201 Merge pull request #7780 from code-yeongyu/fix/ci-test-timeout-per-file
  • 5905fa6aa Merge origin/dev into feat/memorian-in-process
  • f1e09b4c5 wip: package.json multi-file scripts carry the budget
  • 1dbbcb3ec wip: move pinned invocations + quarantine single source
  • 89957ad93 Merge pull request #7782 from code-yeongyu/fix/dag-lock-wait
  • 40e49d530 Merge pull request #7784 from code-yeongyu/fix/publish-readiness-test-windows
  • 13e09782d test(publish): stub npm and sleep as bash functions, not PATH executables
  • 928aa8571 Merge pull request #7781 from code-yeongyu/fix/publish-readiness-budget
  • 546bb50cc Merge origin/dev into feat/memorian-in-process
  • 4c3b6a586 Merge pull request #7779 from code-yeongyu/fix/publish-stale-stamp-reuse
  • 2d3eca4c2 fix(publish): wait for npm propagation as long as npm says it can take
  • 481f32a44 test(publish): pin the head-equality reuse guard as a resumability contract
  • e06646bd3 fix(publish): refuse to reuse a release commit that is not the base head
  • 638c0c474 Merge remote-tracking branch 'origin/dev' into feat/memorian-in-process
  • 62bb5e581 test(memory-core): isolate pending payload validation
  • c8e94749c fix(memory): validate pending recall payloads
  • b634ca135 fix(memory-core): escape recalled memory paths
  • 86b261b6b fix(memory-core): harden sync secret redaction
  • c1387c55e fix(memory-core): mask every secret occurrence in sync redaction
  • a5e61e578 fix(memory): reject secret-bearing and delimiter-breaking nudge hints
  • 88dd16bec docs(memory): update memorian gate rows for the in-process judge

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7811 from code-yeongyu/release/v5.0.0-beta.43-source-state
View originalPermalink
How v5.0.0-beta.43 went

v5.0.0-beta.42

Pre-release
Changed 2
  • Terminal monitors and background Bash sessions are recorded per session with a single startup notification
  • @code-yeongyu/senpi updated to 2026.9.4-3
Fixed 18
  • Anthropic native tool search no longer returns 400 errors by fixing the tool_reference field name and gating BM25 server tool injection to supported models
  • Korean and non-ASCII characters in memory slugs, git paths, and recall query planning are now preserved with compatibility for directories written by older builds
  • GitHub releases are created as full releases and the Latest badge is determined from the highest published semver rather than tag order
  • Windows SQLite handle leak no longer stalls the harness by replacing prepare() calls with exec() in credential readers
  • Conditional x-search skill ships without startup logging
  • Bun skill guidance in ultrawork directive is gated instead of unconditional

From oh-my-openagent

omo 5.0.0-beta.42

beta.41 was never published: its first release attempt failed the CI gate and the retry re-selected the stale stamp commit, so the number was skipped rather than shipping a tree that lacked the engine bump. This release carries everything intended for beta.41.

Engine: @code-yeongyu/senpi 2026.9.4-3 (beta.40 shipped 2026.9.3-2 — this beta moves the engine across 2026.9.4, 2026.9.4-2 and 2026.9.4-3).

Highlights
Anthropic native tool search no longer 400s

The headline engine fix. Native tool search sent tool_reference blocks under a name field instead of the API's tool_name, and the BM25 server tool was injected on every anthropic-messages endpoint — including gateways, proxies and Kimi-coding hosts that reject it. Either one returned 400 tools.N.tool_search_tool_bm25_20251119.name: Input should be 'tool_search_tool_bm25' (or an opaque invalid-request error), after which the adapter disabled native search for the rest of the session. Injection is now gated to models that actually support tool search (Opus/Sonnet 4.5+ and the Fable line), and the reference field matches the wire contract. (senpi #1354)

Korean and non-ASCII memory finally round-trips

Memory slugs, git paths and recall query planning keep Korean/non-Latin letters instead of mangling them, with compatibility for directories written by older builds. (#7739, #7741)

Release plumbing corrected

Every GitHub release is created as a full release, and the Latest badge is decided from the highest published semver rather than tag order. (#7743, #7761)

Windows: a leaked SQLite handle no longer stalls the harness

node:sqlite's DatabaseSync.close() does not finalize outstanding statements on Bun 1.4, so one prepare() left the store's file handle open until GC. POSIX hides this (unlink ignores open handles) but Windows keeps the file locked, and the next open of the same store blocks — sibling-harness detection could stall for tens of seconds. Every prepare() in the credential readers and their tests is gone, replaced by exec() with a row-sink function, and a contract test now asserts that no file handle survives close(). (#7775)

Fixed
  • omo-senpi: the conditional x-search skill ships and no longer logs at startup (#7745); Bun skill guidance in the ultrawork directive is gated instead of unconditional (#7754); the senpi hooks-state lock is granted to every memory sandbox (#7756); unsupported isolation traversal fails closed instead of looking complete (#7769)
  • lsp-core: a diagnostic pull that times out now awaits its cancellation write, so $/cancelRequest is not lost on Windows (#7773)
  • senpi-task: PATH senpi executables that do not match the running engine are rejected (#7758); lead tasklist tools are deferred to tool_search (#7737)
  • omo-native/omob: hoisted bin dir resolution for scoped engine packages (#7755), architect blockers closed in the omob pipeline (#7747), skill-source filter + cache locking + provenance mirrors root-fixed (#7763), dev binary built from the latest commits with build provenance (#7740)
  • shared-skills: page work routes to a real browser before the CLI (#7751), browser QA and research browsing go through the eval kernel (#7750), CloakBrowser's venv interpreter is used in the launch step too (#7757)
  • Dependencies: @code-yeongyu/senpi pin moved to 2026.9.4-2 then 2026.9.4-3 (#7749, #7772)
  • Isolation QA snapshots assert the real per-platform contract instead of POSIX-only outcomes, so Windows reports capability failures explicitly (#7770, #7775)
Engine changes (senpi 2026.9.4 → 2026.9.4-3)
  • Terminal monitors and background Bash sessions are recorded per session, with a single startup notification for carried-over/lost/expired state, and monitors expose a stable mon_ id while bash_output/bash_input/bash_resize/kill_bash accept either id
  • A spawned RPC host that never answers get_protocol_info reports why instead of surfacing a raw powershell.exe failure, and no longer leaks its pidfile and socket
  • File-backed credential, auth and settings locks wait through bounded contention retries and report an actionable transient error instead of burning the provider fallback chain
  • Image generation treats a seeded placeholder key as absent, so it falls through to a configured gateway instead of failing with an OpenAI 401
  • Hook trust-state reads fail open when the lock directory cannot be created (sandboxed/read-only children); writers still fail closed
  • bun install --frozen-lockfile works on a clean checkout again
Internal / tests
  • Windows memory-core unmerged-entry timing (#7767), omob default dirs asserted with the host path separator (#7759), isolation state-race suite determinism (#7770)
  • Task and memory tool descriptions dieted (-369 tokens) (#7738), shipped skill descriptions rewritten as routing text (#7744), review-work replaced with orchestrator QA plus one gate reviewer (#7742), ulw-research browsing worker made binding and render-first (#7760)
View originalPermalink
How v5.0.0-beta.42 went

v5.0.0-beta.40

Pre-release
Added 1
  • NPM dist tag rollback workflow in CI job-summary coverage gate
Fixed 1
  • Guard the engine-owned Anthropic tool-search contract for compatibility

From oh-my-openagent

  • f8aba1b94 Merge pull request #7735 from code-yeongyu/release/v5.0.0-beta.40-source-state
  • 20ac67e6d Merge pull request #7734 from code-yeongyu/fix/anthropic-tool-search-compat-20260904
  • 3106eb5bd test(omo-native): guard the engine-owned Anthropic tool-search contract
  • c6e7dd7fb Merge pull request #7729 from code-yeongyu/feat/ultrawork-js-eval-maxxing
  • 27ddc4d0d test(ci): register npm-dist-tag-rollback.yml in the job-summary coverage gate
  • eabe9d111 Merge pull request #7724 from code-yeongyu/ci/npm-dist-tag-rollback-20260904
View originalPermalink
How v5.0.0-beta.40 went

v5.0.0-beta.39

Pre-release
Fixed 1
  • stop the launcher dying with spawn EINVAL on Windows npm bun shims

From oh-my-openagent

  • c21fceb6f Merge pull request #7716 from code-yeongyu/release/v5.0.0-beta.39-source-state
  • 1b3f610eb Merge pull request #7715 from code-yeongyu/fix/win-launcher-bun-cmd-einval
  • cc966e556 fix(omo-native): stop the launcher dying with spawn EINVAL on Windows npm bun shims
  • 80ac895ff Merge pull request #7713 from code-yeongyu/fix/task-batch-progress-polish
  • 7d46cc2cb Merge pull request #7714 from code-yeongyu/fix/windows-flake-quarantine
  • e336e4372 test(git-bash-mcp): retry temp-dir removal on Windows EBUSY

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7716 from code-yeongyu/release/v5.0.0-beta.39-source-state
View originalPermalink
How v5.0.0-beta.39 went

v5.0.0-beta.38

Pre-release
Added 1
  • Document quality gate enums
Changed 1
  • Derive quality gate enum messages from one supported-value table
Fixed 5
  • Capture the model variant into the compaction checkpoint
  • Carry the model variant through the compaction checkpoint
  • Keep the flat model variant on background wake
  • Sync poll deadline handling
  • Stop treating an active status as sync task progress
Removed 2
  • Drop the legacy network_access key from the bundle, parity tests, and docs
  • Stop writing the removed top-level network_access key

From oh-my-openagent

  • 05a1fbcc7 Merge pull request #7712 from code-yeongyu/release/v5.0.0-beta.38-source-state
  • 2755238f6 Merge pull request #7710 from code-yeongyu/fix/task-batch-run-in-background
  • 93542d125 Merge pull request #7698 from code-yeongyu/fix/7686-background-wake-variant-fallback
  • 7347c9665 fix(omo-opencode): capture the model variant into the compaction checkpoint
  • 1d91a6e45 fix(omo-opencode): carry the model variant through the compaction checkpoint
  • 99a8f7f9e fix(omo-opencode): keep the flat model variant on background wake
  • fd4ed40f2 Merge pull request #7700 from code-yeongyu/fix/lcx161-codex-network-access-key
  • ca7e76b60 Merge pull request #7699 from code-yeongyu/fix/7671-sync-poll-deadline
  • 52f411903 docs(guide): drop the last network_access = "enabled" mention from the install table
  • 636b8f9d4 Merge pull request #7705 from code-yeongyu/fix/ulw-loop-quality-gate-enum-messages
  • 2179edcd2 test(omo-opencode): pin the sync poller's active-status contract
  • 11cbb5705 refactor(ulw-loop): derive gate enum messages from one supported-value table
  • cbdffca4a build(omo-codex): drop the legacy network_access key from the bundle, parity tests, and docs
  • 049f09fef docs(ulw-loop): document quality gate enums
  • 653154717 fix(ulw-loop): explain quality gate enum defects
  • 31efd7e56 fix(omo-opencode): stop treating an active status as sync task progress
  • 742fefafd fix(omo-codex): stop writing the removed top-level network_access key

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7712 from code-yeongyu/release/v5.0.0-beta.38-source-state
View originalPermalink
How v5.0.0-beta.38 went

v5.0.0-beta.37

Pre-release
  • ed5eca467 Merge pull request #7697 from code-yeongyu/release/v5.0.0-beta.37-source-state
  • 745eb43b4 Merge pull request #7696 from code-yeongyu/fix/git-toplevel-native-path
  • 7e8ce5e14 Merge pull request #7689 from code-yeongyu/fix/ulw-loop-status-git-noise
  • 65c55dc6b Merge pull request #7687 from code-yeongyu/fix/windows-soak-fidelity
  • ad674f2d3 docs: record Windows soak fidelity evidence
  • 4aa300730 Merge pull request #7685 from code-yeongyu/test/reconciliation-lock-determinism

Thank you to 2 community contributors:

  • @MoerAI:
    • Merge pull request #7685 from code-yeongyu/test/reconciliation-lock-determinism
    • docs: record Windows soak fidelity evidence
    • Merge pull request #7687 from code-yeongyu/fix/windows-soak-fidelity
  • @sisyphus-dev-ai:
    • Merge pull request #7697 from code-yeongyu/release/v5.0.0-beta.37-source-state
View originalPermalink
How v5.0.0-beta.37 went

v5.0.0-beta.36

Pre-release
Added 1
  • Prompt presets for Kimi K3, Claude Opus, and GLM added
Changed 1
  • Eval-only tool routing is now the default, with bash, powershell, workflow, and monitor leaving the model's direct tool list when the session has an eval tool
Fixed 4
  • Windows shared RPC host no longer dies on its own liveness probe when PowerShell process baseline read exceeds the 1 second timeout
  • Anthropic Claude Pro/Max login through the desktop app now completes over RPC by routing interactive callbacks through the extension_ui_request dialog channel
  • Claude SDK OAuth stops looping on 'No conversation found with session ID' by only resuming session ids that Claude Code has acknowledged
  • Codemode keeps Bun child-process output inside the eval cell instead of streaming to the interactive TUI terminal
Removed 1
  • experimental.bashEvalOnly and experimental.workflowEvalOnly settings are removed

From oh-my-openagent

OMO v5.0.0-beta.36 + senpi v2026.9.3-2

This is the first omo release that carries senpi's fix for the Windows shared RPC host dying about a minute after every start (code-yeongyu/senpi#1307, fixed in senpi 2026.9.3 and shipped in omo for the first time here). It also carries the RPC interactive-login fix (code-yeongyu/senpi#1316), so Anthropic Claude Pro/Max logins through the desktop app finish instead of landing on a dead callback port. The engine moves to senpi 2026.9.3-2, which makes eval-only tool routing the default and fixes several Claude SDK OAuth failure loops. If you use OmO desktop or omo on Windows, upgrade now. Everyone else gets the engine changes and a set of ultrawork doctrine updates.

🪟 Windows: the shared RPC host stays alive

The host no longer dies on its own liveness probe. The shared RPC supervisor identifies the host process it is watching by reading a process baseline through PowerShell (Get-CimInstance Win32_Process). On Windows that read can take more than a second, and the supervisor's 1 s probe treated the overrun as fatal, so the host crashed within about a minute of every start. The OmO desktop app kept reconnecting to a host that had just killed itself.

  • The baseline identity read is now guarded. When the probe runs past its budget, the baseline degrades to UNKNOWN instead of throwing.
  • The watchdog starts without a baseline and keeps running. A slow Get-CimInstance no longer decides whether the host lives.
  • The fix landed in senpi 2026.9.3 (code-yeongyu/senpi#1307). beta.36 is the first omo build that pins a senpi with it, along with the rest of the 2026.9.3 shared RPC supervisor lifecycle fixes.
🔐 OAuth logins that need a pasted code now work over RPC

Anthropic Claude Pro/Max login through the desktop app completes. Over RPC, startLogin wired the provider's onPrompt/onSelect callbacks to a function that threw Interactive login input is not supported over RPC. For Anthropic that failure was misleading: loginAnthropic races a local browser-callback listener against a manual_code prompt right after it emits auth_login_url, so the instant rejection set manualError, cancelled the wait, and closed the listener about 150 ms after the URL went out. Your browser opened, you approved the login, and the redirect landed on connection refused.

  • Interactive callbacks now ride the existing extension_ui_request dialog channel: input for pasted codes, text, and secrets, select for account choices. Any RPC client that already renders extension dialogs can answer them.
  • An unanswered dialog never blocks the browser callback path. When the login settles through the browser, the pending dialog is released instead of holding the flow open.
  • Cancelling the dialog maps to Login cancelled, the same result a terminal user gets from Escape.
  • Fixes code-yeongyu/senpi#1316 via PR code-yeongyu/senpi#1319. Other prompt-driven OAuth providers get the same path.
⚙️ Engine: senpi 2026.9.3-2

Eval-only tool routing is the default (code-yeongyu/senpi#1314).

  • bash, powershell, workflow, and now monitor leave the model's direct tool list whenever the session has an eval tool. They're called as tool.bash(...), tool.workflow(...), and tool.monitor(...) inside a cell; hooks and permission checks still apply.
  • A direct call returns a hint naming the eval form. A session without eval (codemode disabled, or a child agent whose allowlist omits it) keeps all four directly callable.
  • monitor joined the set because 141 of ~225 solo monitor calls over 14 days of local sessions came one turn after an eval call, a two-turn split that collapses into one cell.
  • The wait-as-subscription guidance moved from the presets into the eval tool description, where it can name tool.monitor(...). The preset rule was gated on monitor being directly selectable and would've stopped rendering otherwise.
  • experimental.bashEvalOnly and experimental.workflowEvalOnly are removed. Existing entries in a settings file are ignored.

Claude SDK OAuth stops looping on No conversation found with session ID (code-yeongyu/senpi#1318, fixes oh-my-openagent#7562).

  • After a failed cold seed, claude-sdk-oauth kept a continuity binding whose session id had only been minted locally. The next turn chose reattach, Claude Code answered that the session didn't exist, and every later turn repeated the cycle with zero usage.
  • A session id is now resumable only once Claude Code acknowledged it, through a system/init message or the replay echo that claims the turn. Entries created from a resume start confirmed; locally minted ids start unconfirmed.
  • An id Claude Code reports missing is dropped rather than retried.

Codemode keeps Bun child-process output inside the eval cell (code-yeongyu/senpi#1317).

  • Bun.$ streams command output to fd 1/2 unless .quiet() is applied or a .text()-style reader is used, and Bun.spawn inherits stderr by default. Inside the JS eval kernel worker those fds are the interactive TUI's terminal.
  • A cell like $`vibe-notion page get <id> --pretty` dumped a Notion page's pretty-printed block JSON straight into the editor, where it got pasted into the next prompt. The existing routeWrite only intercepts JS-level process.stdout.write, so native child writes bypassed it.
  • A new worker-shell-capture layer installs beside the console/stdout routing while a cell is active and is restored with the rest of the worker state, so child output lands in the cell result like everything else.

Prompt presets: Kimi K3, Claude Opus, GLM (code-yeongyu/senpi#1315).

  • The K3 core was written through the K2.6 lens (an overthinker that needs act-bias). Moonshot's own K3 notes describe the opposite failure, "excessive proactiveness," and the old core stated act-bias in four places against one reflect-then-ask clause, so the trained prior won. The session corpus showed K3 writing more test files than any other model.
  • The K3 core is rebuilt on the Fable 5.1 skeleton with each failure mode given one home: a Scope section makes the request the deliverable (pre-existing problems become follow-ups, tests only where the task or repo calls for them), the ambiguity gate does the answer-independent work first and then asks one question, a failure cap stops improvisation after three failed approaches, and delegation propagates a stop condition to subagents. The result is 11 fewer Kimi K3 tokens than before.
  • Opus 5 is rebuilt on the same skeleton with the guide's outcome-first final-summary shape. Opus 4.7/4.8 keep only their documented deltas and gain same-turn subagent fan-out; Opus 4.6 drops tuning text the core now carries.
  • GLM 5.2/5.3 share one builder, gain the eval/monitor execution-tooling stance, and lose the lineage preamble, undefined-mode reference, and unconditional todo procedure. The shared core gains a conditional delegation rule and explains the auto-compaction mechanism behind the context-limits rule.

Claude SDK OAuth errors are real errors (code-yeongyu/senpi#1312).

  • Failures now surface the SDK's actual assistant/result text, including API and version-floor errors, instead of unknown. Version-floor and model-not-found failures come with actionable guidance.
  • Results marked is_error: true count as failures even when their subtype is success, which lets model fallback and multi-account failover kick in for session limits and API errors.
  • Token-refresh transport outages are classified as transient server errors rather than permanent auth blocks. The handling applies to ambient streams, managed failover, resident session pumps, and turn-success bookkeeping alike.

Also from the 2026.9.3 line, first pinned by omo in this beta: the universal fallback system prompt rewrite, muted-monitor footer labels, bounded multi-session close_session teardown (SENPI_RPC_CLOSE_GRACE_MS), and the /reload fs.watch stall fix.

🧩 omo

omo-native runs on bun wherever a bun >= 1.4 exists (#7680).

  • The launcher used to re-exec under bun only for bun add -g installs. npm, project-local, and bunx installs stayed on node even with bun on the machine, so the JS eval kernel ran under node and the bundled bun-1-4 skill never surfaced.
  • resolveBunReexec now applies a first-match policy. Stay on the current runtime if already on bun, if OMO_RUNTIME=node, or if no bun binary is found in $BUN_INSTALL/bin, ~/.bun/bin, or PATH.
  • Re-exec with no version floor when OMO_RUNTIME=bun. Re-exec without a probe when the script sits in bun's global tree (trust the bun that installed it).
  • For any other install, re-exec when bun --version reports 1.4.0 or newer. An older bun or a failed probe stays on node.

setup-import closes its SQLite handles deterministically (#7681).

  • Windows teardown timed out on win32 EBUSY because handles opened by the pinned .omp, .gjc, and unknown-schema fixtures weren't proven closed before the temp root was removed. Per-file process exit had hidden this until Windows shard 2 stopped running with --parallel.
  • Every handle is now recorded, closed through the existing withDatabase helper, and asserted closed before the case ends. No timeout, retry budget, platform skip, or --parallel change was added.

ultrawork, ulw-execute, ulw-loop, and mass-ulw doctrine (#7673, #7674, #7675).

  • Per-phase worktrees: every plan phase runs in its own task-owned worktree that lands on the integration base before the next phase branches. ulw-execute used to require a worktree only for PR/branch work; --worktree is now optional reuse of a first-phase worktree, and --make-pr drops its worktree-implication clause.
  • One workflow run per phase: dependency-ordered lanes are dispatched as one workflow run per phase, recovered inside that run with retry/amend/send. The next phase is a new run or an amend, never one graph for the whole plan. mass-ulw's header now states this unit of use instead of "in one call," and ulw-loop owns goals, criteria, evidence, and checkpoints while workflow is the per-phase dispatch surface.
  • Ideal end state and pre-existing defects: the ultrawork directive's discovery wave now produces the current problem, evidence-backed decision points, and the ideal end state the goal objective names. "Smallest correct change. No drive-by refactors." is replaced by an owner doctrine: defects met mid-run, pre-existing ones included, become registered work in this run (subgoal, plan checkbox, or workflow node) and are fixed to the ideal state, while delegated-unit scope stays hard.
  • Discovered defects route through the orchestrator: add_subgoal widens so they become stories rather than follow-up notes, and the poll/wait()-default framing is replaced with completion wakes.
  • Housekeeping: the bootstrap carve-out widens to the ulw-execute contract so ulw execute no longer double-bootstraps, duplicated child-handling sections are merged so the directive shrinks, stale dag tool references are gone, and the TUI visual-QA runner switches to bun.

Windows CI (#7672, #7665, #7668).

  • A workflow_dispatch-only soak workflow repeats one of 11 allowlisted focused test targets up to 50 times with per-iteration telemetry, stops at the first failure, always uploads artifacts, and writes a job summary. Each target maps to hardcoded test arguments, so the dispatch input never reaches the shell. Normal CI is untouched.
  • All four Windows Bun invocations, including the previously uncovered senpi-compatibility job, now run through .github/scripts/windows-ci-telemetry.ps1, which captures process, timing, filesystem, and exit data. Artifacts upload with continue-on-error, and the Bun exit code stays authoritative.
  • The heaviest worktree-sweep test (seven worktrees) was the only one left on Bun's 5000 ms default and timed out mid git worktree add on the slower Windows runner. It now runs under the same 30 s budget as its siblings, and git setup failures name the stalled phase and elapsed time, e.g. creating external worktree failed after 37ms.
Install
npm i -g omo-ai@beta          # omo native CLI (5.0.0-0.beta.36, engine senpi 2026.9.3-2)
bun i -g oh-my-openagent@5.0.0-beta.36
npx -y lazycodex-ai@5.0.0-beta.36 install   # Codex plugin

Commits
  • 776405ec0 Merge pull request #7684 from code-yeongyu/release/v5.0.0-beta.36-source-state
  • 12637f1b3 Merge pull request #7682 from code-yeongyu/fix/hooks-state-writer-cleanup
  • 090bd9fcd docs(evidence): record hooks-state writer cleanup QA
  • e54c7c18c Merge pull request #7681 from code-yeongyu/fix/setup-import-sqlite-handle-leak
  • 4103bea93 Merge pull request #7680 from code-yeongyu/feat/omo-native-bun-reexec-any-bun
  • e64b424a8 fix(omo-native): close setup-import database handles deterministically
  • 16f213443 test(script): follow the bun-runtime test split in the command-string allowlist
  • 7c240ca65 docs(omo-native): document the any-bun runtime policy
  • 32bca4739 feat(omo-native): run on bun wherever a bun >= 1.4 exists
  • d2e807dfa Merge pull request #7674 from code-yeongyu/feat/ultrawork-ideal-state-owner-doctrine
  • e46e3a29f Merge pull request #7675 from code-yeongyu/docs/ulw-execute-phase-worktree
  • 2c6aee570 Merge pull request #7673 from code-yeongyu/docs/ulw-loop-mass-ulw-composition
  • d2632e623 docs(shared-skills): each ulw-execute phase carries its own concrete goal
  • 124e43294 docs(shared-skills): give each ulw-execute wave its own goal and route discovered defects through the orchestrator
  • 529121594 docs(shared-skills): tighten the discovered-work checkbox rule in ulw-execute
  • bcae3b346 docs(shared-skills): run web-terminal visual QA with bun in ulw-execute
  • a41c75cbb docs(shared-skills): ulw-execute registers pre-existing defects as plan checkboxes
  • 4c8385a93 docs(shared-skills): ulw-execute dispatches each wave as one workflow run
  • 92ccdeefd docs(shared-skills): ulw-execute runs every phase in its own worktree
  • 130a5c516 Merge pull request #7672 from code-yeongyu/ci/windows-flake-soak
  • 48c7dc21c Merge pull request #7665 from code-yeongyu/fix/windows-ci-telemetry
  • aec983957 Merge pull request #7668 from code-yeongyu/fix/worktree-sweep-windows-budget
  • ba323d227 test(omo-opencode): diagnose worktree sweep setup timeouts

Thank you to 2 community contributors:

  • @MoerAI:
    • test(omo-opencode): diagnose worktree sweep setup timeouts
    • Merge pull request #7668 from code-yeongyu/fix/worktree-sweep-windows-budget
    • Merge pull request #7665 from code-yeongyu/fix/windows-ci-telemetry
    • Merge pull request #7672 from code-yeongyu/ci/windows-flake-soak
    • fix(omo-native): close setup-import database handles deterministically
    • Merge pull request #7681 from code-yeongyu/fix/setup-import-sqlite-handle-leak
    • docs(evidence): record hooks-state writer cleanup QA
    • Merge pull request #7682 from code-yeongyu/fix/hooks-state-writer-cleanup
    • Merge pull request #7685 from code-yeongyu/test/reconciliation-lock-determinism
  • @sisyphus-dev-ai:
    • Merge pull request #7684 from code-yeongyu/release/v5.0.0-beta.36-source-state
View originalPermalink
How v5.0.0-beta.36 went

v5.0.0-beta.35

Pre-release
Added 1
  • Add Memorian nudged trace support
Changed 2
  • Isolate checkpoint Codex validation in ulw-loop
  • Ignore unrecognized config keys instead of dropping the layer in omo-config-core
Fixed 5
  • Aggregate checkpoint gate defects in ulw-loop
  • Handle deleted Linux executable paths in omo-native
  • Forward signals during native re-exec in omo-native
  • Fix task residency issues
  • Fix Windows DAG runtime overflow sync
Removed 1
  • Remove the CodeGraph integration

From oh-my-openagent

  • 7ccd78137 Merge pull request #7663 from code-yeongyu/release/v5.0.0-beta.35-source-state
  • b12d08f4b Merge pull request #7661 from code-yeongyu/fix/7550-7579-task-residency
  • d79ea1ff8 Merge pull request #7656 from code-yeongyu/fix/ulw-checkpoint-gate-dx
  • c3eb2eaa4 refactor(ulw-loop): isolate checkpoint Codex validation
  • 7eff02187 fix(ulw-loop): aggregate checkpoint gate defects
  • b1c32dd18 Merge pull request #7648 from code-yeongyu/feat/memorian-nudged-trace
  • 51bf35efa docs(evidence): capture the live Memorian nudged TUI notice
  • 1291b02c1 Merge pull request #7647 from code-yeongyu/fix/windows-dag-runtime-overflow-sync
  • 83c1fab9d docs(evidence): record memorian nudged visibility QA
  • 25e3cf613 docs(evidence): clarify DAG timeout proof
  • bd702cb8c Merge pull request #7646 from code-yeongyu/fix/omo-native-linux-deleted-execpath
  • 280c57395 Merge pull request #7644 from code-yeongyu/refactor/remove-codegraph
  • a9766e30d fix(omo-native): forward signals during native re-exec
  • 547ef2420 fix(omo-native): handle deleted Linux executable paths
  • b941e9f34 build(omo-codex): regenerate the plugin lockfile without the codegraph workspace
  • c95e713f7 docs(evidence): record CodeGraph removal QA
  • 8512ef8f6 docs: drop CodeGraph from prompts, skills, and docs
  • e5ab78a2d refactor: remove the CodeGraph integration
  • a66022557 feat(omo-config-core): ignore unrecognized config keys instead of dropping the layer

Thank you to 2 community contributors:

  • @MoerAI:
    • docs(evidence): clarify DAG timeout proof
    • Merge pull request #7647 from code-yeongyu/fix/windows-dag-runtime-overflow-sync
  • @sisyphus-dev-ai:
    • Merge pull request #7663 from code-yeongyu/release/v5.0.0-beta.35-source-state
View originalPermalink
How v5.0.0-beta.35 went

v5.0.0-beta.34

Pre-release
Added 2
  • checkpoint --print-template emits surface-aware quality-gate skeleton and works without --goal-id
  • MCP ast-grep stdio server arms 10-minute idle timeout with OMO_AST_GREP_IDLE_TIMEOUT_MS override option
Changed 13
  • Recall is now a two-step loop with fire-and-forget memorian judge child that delivers recalled memory on the next turn
  • Recall configuration simplified to enabled and max_items, with per-agent tuning available via memory.agents.<id>.recall
  • Dream scanning reads each conversation once gated by journal byte offsets and reconciles at session start
  • Memory-core fs layer is EINTR-resilient with proper abort-signal handling and Windows-tolerant lock candidates
  • Quality-review agents bounded to three spawns per goal attempt with reset on explicit restart
  • ulw reviewer agents resolve their model through category router instead of hardcoded model chains
Fixed 5
  • LazyCodex installer now completes successfully and materializes the prompts-core ultrawork directive inside the cached plugin root
  • Ultrawork prompt is resolved checkout-first within plugin, preventing ENOENT errors in sync:skills
  • Recall delivery fails open with unwritable ledger degrading to missing record instead of swallowed hint
  • Grok output reserve is capped when output limit equals context window to prevent admission failures
  • LSP in-flight client stops are tombstoned and dead-client respawns are bounded

From oh-my-openagent

OMO v5.0.0-beta.34 + senpi v2026.9.2

This release rolls up everything since beta.30. beta.31, beta.32 and beta.33 were published to npm but never announced, and beta.32/33 shipped a broken LazyCodex install (every lazycodex-ai install died in sync:skills with an ENOENT on the ultrawork prompt). beta.34 is the one to upgrade to. If you're on beta.30, this is a big jump; if you're on 31/32/33, the Codex installer is fixed and the engine moved to senpi 2026.9.2.

Why the last three betas were silent

Each one was killed by a different release-pipeline defect, not by the product. beta.31 shipped with a recall file-mode pin that broke on win32. beta.32 fixed that but the Windows legacy-daemon fixture blew its readiness budget and the omo-native staging build skipped prebuilt inputs under --ignore-scripts. beta.33 fixed those but the published tarball was missing the prompts-core Codex prompt. beta.34 fixes the last link: the Codex installer flattens the plugin into <CODEX_HOME>/plugins/cache/sisyphuslabs/omo/<version>, and the ultrawork prompt was resolved repo-relative, so it was never there. Every fix landed with a failing-first regression, and the final smoke was replayed against the real published beta.33 tarball (exit 0, ultrawork SKILL.md carries the canonical body).

🔧 Codex / LazyCodex: the installer works again
  • npx -y lazycodex-ai@5.0.0-beta.34 install completes. The installer now materializes the prompts-core ultrawork directive inside the cached plugin root, and sync:skills resolves it checkout-first, plugin-internal second.
  • The ultrawork directive is single-sourced from prompts-core with a bundled runtime export, so Codex and omo-senpi ship the same text.
  • The unavailable codegraph stub stays alive on the Codex host instead of idling out and dropping the tool.
🧠 Memory: the memorian gate and recall
  • Recall is now a two-step loop. At settle, omo collects recall candidates from your committed memory and launches a fire-and-forget "memorian" judge child. On your next turn, whatever the judge picked arrives as one hidden recall message with one sourced <recalled-memory source="[[path]]"> block per nudge, so the agent can open the file for detail. Your current turn pays nothing for it.
  • Nudges are stamped with the compaction epoch. If the transcript gets compacted mid-flight, stale nudges are dropped instead of injected over a transcript that no longer exists.
  • memory.recall config shrinks to enabled and max_items, and memory.agents.<id>.recall lets you silence or tune recall for a single agent.
  • Recall delivery fails open: an unwritable ledger degrades to a missing record, never a swallowed hint. Only whole candidates that fit the token budget are delivered, and extension-injected messages stay out of transcript search.
  • Dreams reconcile at session start (an overdue identity gets a best-effort dream check), and dream scanning reads each conversation once, gated by journal byte offsets.
  • Default git template files are skipped, and the memory-core fs layer is EINTR-resilient with proper abort-signal handling and Windows-tolerant lock candidates.
🔁 ulw-loop: guided gates, bounded reviewers
  • checkpoint --print-template emits a surface-aware quality-gate skeleton and works without --goal-id. Gate validation errors are aggregated into one report, and snapshot, plan, and session-id errors come with guided recovery messages.
  • Repeated review spawns are bounded: each quality-review agent gets three spawns per goal attempt, reset on explicit restart, and only allowed spawns count toward fan-out (fixes #7392). Fan-out eligibility is checked before reviewer quota is charged, and counter writes are atomic.
  • The ulw reviewer agents (omo-senpi-code-reviewer, omo-senpi-qa-executor, omo-senpi-gate-reviewer) no longer carry hardcoded model chains: they resolve their model through the category router (code review -> unspecified-high, QA -> deep then unspecified-low, gate review -> deep then unspecified-high), so whatever you configure for those categories is what the reviewers run on.
  • omo-senpi ships its own ulw reviewer builtin agents, reviewer identities resolve per toolkit surface, article-bearing reviewer roles ("the V2 reviewer") parse, and explicit V2 assignments are honored.
  • The senpi surface gate is gate-review-only with a category chain: codeReview is dropped and manualQa is pinned to the main session. omo-opencode gets a category-chain fallback verifier for ultrawork verification.
🧩 Models, LSP, and MCP
  • Grok: the output reserve is capped when the output limit equals the context window, so requests no longer fail admission (fixes #7541).
  • terminal_quota_exhausted is a non-retryable abort instead of a retry loop. kimi-k3-ultrafast registers with a 256k default context instead of the base model's 1M. Empty provider model segments are rejected, and the ulw reviewer fallback chains are gone (the fallback table now lists 11 agents).
  • LSP: workspace roots collapse to the git repository root, so a monorepo no longer spawns one language server per package (in-vivo: 4 TLS + 8 tsserver, ~2.4GB, now one). In-flight client stops are tombstoned and dead-client respawns are bounded. Document URIs are normalized at the openByUri boundary.
  • MCP: the ast-grep stdio server arms a 10-minute idle timeout (OMO_AST_GREP_IDLE_TIMEOUT_MS to override) and idle servers get stdin destroyed so abandoned children exit. Under a bun-compiled omo host, the ast-grep child runs as plain bun instead of re-executing the omo binary (which used to boot a ghost agent session per connection attempt). Slack MCP tokens are redacted in logs.
🪟 Windows and path hygiene
  • Session manager preserves platform path roots, keeps POSIX separators in directory normalization, and normalizes the directory before session_list filtering.
  • Frontmatter parses after a UTF-8 BOM, OneDrive path segments match, whitespace-delimited tool names normalize, tar-listed filename whitespace is preserved, and contains path falls back when realpath fails.
  • Skills loader normalizes allowed tools from both config and merged sources, and the security-research skill reads the omo.jsonc config path.
🧹 Lifecycle and leak fixes
  • Delegated subagent lifecycle resources are released, the TUI mirror is wired into plugin disposal with its heartbeat unref'd and stopped, and continuation cleanup runs on every exit (anchors and revival cleanup preserved).
  • Hooks: idle transcript cache snapshots are pruned on a TTL sweep, unmatched fsync-skip start times are dropped, hashline pending captures are swept, unbounded session-id hook sets drain, and Anthropic recovery maps clear on dispose. A legacy snapshot race is closed.
  • Background tasks get a recovery hint and non-destructive truncation (backups are cleaned up after recovery), and the parent wake variant is preserved.
  • omo run ignores idle boulder state when there's no active plan. omo-ai ships and hardens the Senpi runtime patch, including hoisted installs, and bundles OAuth with hardened hook state.
  • Reliability: a large sweep made the test suite deterministic on Windows and slow runners (event-driven waits, controlled clocks, isolated fixture roots, no subprocess-shaped wrappers).
⚙️ Engine: senpi 2026.9.2 (and 2026.8.31)
  • Claude Fable 5.1 preset. claude-fable-5-1 is the dieted Fable 5 core plus the 5.1 prompting-guide deltas: scope-is-the-deliverable, per-response tool-call batching, surgical-edit preference, test-scope discipline, formatting and narration recalibration. The dotted release resolves before the generic fable-5 matcher, promptPreset: "claude-fable-5-1" forces it, and the default lanes (recommended model, fallback chain, startup tip) now point at 5.1. Sessions on the claude-fable-5 chain keep it.
  • Shared RPC host on Windows. Socket endpoints resolve to \\.\pipe\ named pipes derived from a per-endpoint secret with a constant-time authenticated handshake, pidfile ownership no longer depends on MSYS ps, and detached supervisor startup failures don't leak children. POSIX keeps unix sockets + 0600.
  • /quit and /exit during startup (managed-tool downloads) now quit instead of being parked in the editor, which also used to disable Ctrl+D.
  • ctx.shutdown() from an extension while the session is idle shuts down immediately instead of waiting for an agent_settled that never comes. Interactive quit keeps stderr capture installed while shutdown handlers drain, so diagnostics land in the debug log.
  • RPC: launch capabilities from SENPI_RPC_CLIENT_CAPABILITIES apply to bindings even when the client never sends set_client_info (this was breaking task/DAG/monitor liveness in omo-desktop-app). abort acks are sent as soon as the signal is dispatched. Clients can opt into native auto-titles with auto_title_sessions.
  • Compaction no longer wedges when the summarizer answers with a bare tool call (seen on gpt-5.6-sol at high reasoning): one retry with tool calling forbidden, then the deterministic no-LLM fallback on required routes.
  • Hooks trust-state reads keep a lock-free fast path for complete snapshots and take the bounded writer lock only on malformed reads, so mixed-version writers can't surface ELOCKED.
  • The shared multi-session RPC host reclaims itself: 30-minute idle eviction, 8 concurrent sessions, 15-minute empty-host exit, all overridable via SENPI_RPC_SESSION_IDLE_EVICTION_MS, SENPI_RPC_MAX_SESSIONS, SENPI_RPC_HOST_EMPTY_EXIT_MS.
  • Windows session resume no longer aborts on non-canonical fs.watch() paths. TTSR stream buffers keep only a tail window, and the in-memory session mirror is bounded at 64 MiB.
  • Refusal-caused model fallbacks release their pin after a successful senpi-owned compaction and re-attempt the original model once; billing-caused pins never release.
Install
npm i -g omo-ai@beta          # omo native CLI (5.0.0-0.beta.34, engine senpi 2026.9.2)
bun i -g oh-my-openagent@5.0.0-beta.34
npx -y lazycodex-ai@5.0.0-beta.34 install   # Codex plugin (fixed installer)

  • d20c167da Merge pull request #7645 from code-yeongyu/release/v5.0.0-beta.34-source-state
  • b840c2930 Merge pull request #7643 from code-yeongyu/test/team-message-windows-budget
  • de78d4244 Merge pull request #7635 from code-yeongyu/feat/reviewer-agents-category-model-routing
  • d6a868fab test(team-mode): budget Windows fallback wake case
  • 3216a23fa Merge pull request #7640 from code-yeongyu/fix/codex-cache-prompt-layout
  • 96f891e82 fix(codex-installer): materialize prompts-core directive into the plugin cache
  • 38a46e601 Merge pull request #7633 from code-yeongyu/refactor/model-core-drop-reviewer-agent-chains
  • 2546845e1 docs(model-core): agent fallback table now lists 11 agents
  • 0a9a3758b refactor(model-core): drop the ulw reviewer agent fallback chains

Thank you to 2 community contributors:

  • @MoerAI:
    • test(team-mode): budget Windows fallback wake case
    • Merge pull request #7643 from code-yeongyu/test/team-message-windows-budget
  • @sisyphus-dev-ai:
    • Merge pull request #7645 from code-yeongyu/release/v5.0.0-beta.34-source-state
View originalPermalink
How v5.0.0-beta.34 went

v5.0.0-beta.33

Pre-release
Fixed 1
  • Ship prompts-core Codex prompt

From oh-my-openagent

  • a0dd6cc91 Merge pull request #7631 from code-yeongyu/release/v5.0.0-beta.33-source-state
  • 16bec1b17 Merge pull request #7630 from code-yeongyu/fix/beta32-prompts-core-payload
  • 3d4a99af4 fix(publish): ship prompts-core Codex prompt

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7631 from code-yeongyu/release/v5.0.0-beta.33-source-state
View originalPermalink
How v5.0.0-beta.33 went

v5.0.0-beta.32

Pre-release
Changed 1
  • Widen legacy daemon fixture readiness budget for Windows tests
Fixed 9
  • Cap grok output reserve when output limit equals context window
  • Build missing prebuilt inputs in omo-native staging
  • Fix concurrent race and test env capture order in ulw-loop
  • Gate-artifact check before reviewer quota with V1/V2 non-reviewer early exit and atomic counter writes
  • Check fan-out eligibility before charging reviewer quota
  • Skip default git template files in memory

From oh-my-openagent

  • d85fa7ba7 Merge pull request #7629 from code-yeongyu/release/v5.0.0-beta.32-source-state
  • 716adb407 Merge pull request #7628 from code-yeongyu/fix/publish-platform-prebuilt-inputs
  • daa6a0e5f fix(release): build missing prebuilt inputs in omo-native staging
  • 9af5b8b52 Merge pull request #7627 from code-yeongyu/fix/windows-io-test-budgets
  • 8887260e9 test(windows): widen legacy daemon fixture readiness budget
  • 60c8577fc Merge pull request #7624 from MoerAI/fix/7541-grok-output-reserve
  • b5a757323 fix(model-core): cap grok output reserve when output limit equals context window (fixes #7541)
  • b4ad3c392 Merge pull request #6274 from fivetaku/docs/insane-search-v0.10.0
  • e71937305 Merge pull request #6739 from LYY/fix/6732-parent-wake-variant
  • efd9ad6a5 Merge pull request #6728 from SoShymKing/fix_windows_build
  • 69cb6f2cf Merge pull request #6633 from EZotoff/fix/truncation-rework
  • 2a4c30cfe Merge pull request #5933 from dihak/fix/session-list-sdk-directory-filter
  • 3b69d879a Merge pull request #4233 from codeg-dev/fix/boulder-null-active-plan
  • ea827d23a Merge pull request #5676 from Hungdoan565/codex/refactor-skills-async-allowed-tools-parser-20260628
  • 50b66aac1 Merge pull request #5678 from Hungdoan565/codex/fix-skill-merge-allowed-tools-normalization-20260628
  • 397fe4baa Merge pull request #5677 from Hungdoan565/codex/fix-config-skill-allowed-tools-normalization-20260628
  • 2760b04cd Merge pull request #5683 from Hungdoan565/codex/fix-mcp-redact-slack-tokens-20260628
  • 3937bfa69 Merge pull request #5698 from Hungdoan565/codex/fix-model-format-empty-segments-20260628
  • 8a266bb8a Merge pull request #5704 from Hungdoan565/codex/fix-utils-contains-path-realpath-fallback-20260628
  • a08c2f537 Merge pull request #5694 from Hungdoan565/codex/fix-utils-frontmatter-bom-20260628
  • bfc685b58 Merge pull request #5693 from Hungdoan565/codex/fix-utils-tool-name-whitespace-20260628
  • d6e87f538 Merge pull request #5692 from Hungdoan565/codex/fix-utils-onedrive-segment-20260628
  • a13fe9e5a Merge pull request #5633 from Hungdoan565/codex/fix-utils-tar-listing-preserve-whitespace-20260627
  • 72344026f Merge pull request #5675 from Hungdoan565/codex/test-rules-engine-markerless-workspace-20260628
  • a6a05c24a Merge pull request #5648 from Hungdoan565/codex/test-lsp-parameter-helpers-20260627
  • dc011a598 Merge pull request #5646 from Hungdoan565/codex/test-tmux-layout-width-clamp-20260627
  • 0bfb7261f Merge pull request #5644 from Hungdoan565/codex/test-tmux-pane-dimensions-null-20260627
  • aa38e8d89 Merge pull request #5642 from Hungdoan565/codex/test-openclaw-command-timeout-bounds-20260627
  • 2759fa0b2 Merge pull request #5640 from Hungdoan565/codex/test-telemetry-env-normalization-20260627
  • c4035b08b Merge pull request #5235 from JSap0914/docs/4314-notification-attention
  • f00405a0a Merge pull request #5229 from JSap0914/docs/3355-delegation-tool-boundary
  • 34c670152 Merge pull request #5223 from JSap0914/docs/3729-agent-temperature-docs
  • 50bab07e4 Merge pull request #7402 from MoerAI/fix/codex-ulw-review-no-progress
  • ca6ce0143 fix(ulw-loop): fix concurrent race and test env capture order
  • 4c724235d fix: sort node: imports alphabetically in spawn-guard.ts for Biome
  • 8e5689bad fix(ulw-loop): gate-artifact check before reviewer quota, V1/V2 non-reviewer early exit, atomic counter writes
  • cf83cf6f7 fix(ulw-loop): check fan-out eligibility before charging reviewer quota
  • 95a3d0fe2 Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • a4c364b94 Merge pull request #7618 from code-yeongyu/fix/flake-dag-subscriber-overflow
  • 4acea4598 Merge pull request #7617 from code-yeongyu/fix/flake-hook-timeout
  • 3b313be1f test(windows): make hook command fixtures shell-portable
  • 4becf568e Merge pull request #7615 from code-yeongyu/fix/flake-git-memory-repo
  • f1fc77013 Merge pull request #7613 from code-yeongyu/fix/flake-plugin-entry
  • db804d3eb Merge pull request #7612 from code-yeongyu/fix/flake-rpc-child-windows
  • d08047483 Merge pull request #7614 from code-yeongyu/fix/flake-dag-attach-residual
  • 005a668be fix(memory): skip default git template files
  • 846eda2bc refactor(test): drop subprocess-shaped wrapper from plugin-entry tests
  • 2008f3756 test(omo-opencode): avoid subprocess plugin entry checks
  • b027a45ff Merge pull request #7610 from code-yeongyu/fix/flake-mcp-child-proc
  • 7ad8121f5 Merge pull request #7609 from code-yeongyu/fix/flake-skills-discover
  • 560790f87 Merge pull request #7611 from code-yeongyu/fix/flake-lsp-freshness-sibling
  • d18877fbf test(lsp-core): make diagnostics freshness deterministic
  • 425573633 test(skills-loader): isolate blocking discovery fixtures
  • b2edc8b6e Merge pull request #7608 from code-yeongyu/fix/flake-memfs-backup
  • 945524445 Merge pull request #7607 from code-yeongyu/fix/flake-dag-runtime-trio
  • bd3dedfd3 Merge branch 'dev' into fix/6732-parent-wake-variant
  • 6b05f8f21 Merge branch 'dev' into fix_windows_build
  • dff4a156a Merge pull request #7606 from code-yeongyu/fix/flake-credential-inheritance
  • 10a1d0ef0 Merge branch 'dev' into fix/truncation-rework
  • df6217ce5 Merge branch 'dev' into docs/insane-search-v0.10.0
  • 99a7bd04e Merge branch 'dev' into fix/session-list-sdk-directory-filter
  • dd29f6a20 Merge branch 'dev' into codex/fix-model-format-empty-segments-20260628
  • 05a35165c Merge branch 'dev' into codex/fix-utils-contains-path-realpath-fallback-20260628
  • 77a9f3a83 Merge branch 'dev' into codex/fix-utils-frontmatter-bom-20260628
  • cc14bca4c Merge branch 'dev' into codex/fix-utils-tool-name-whitespace-20260628
  • 45315e686 Merge branch 'dev' into codex/fix-utils-onedrive-segment-20260628
  • b4190081f Merge branch 'dev' into codex/fix-mcp-redact-slack-tokens-20260628
  • 5e421a7f7 Merge branch 'dev' into codex/refactor-skills-async-allowed-tools-parser-20260628
  • 1bcb99d43 Merge branch 'dev' into codex/fix-skill-merge-allowed-tools-normalization-20260628
  • 92af7172f Merge branch 'dev' into codex/fix-config-skill-allowed-tools-normalization-20260628
  • 733c6344b Merge branch 'dev' into codex/test-rules-engine-markerless-workspace-20260628
  • 9cfc54326 Merge branch 'dev' into codex/test-lsp-parameter-helpers-20260627
  • 4a57a9d3e Merge branch 'dev' into codex/test-tmux-layout-width-clamp-20260627
  • 21d4d7374 Merge branch 'dev' into codex/test-telemetry-env-normalization-20260627
  • 89339a166 Merge branch 'dev' into codex/test-tmux-pane-dimensions-null-20260627
  • 8a646ea94 Merge branch 'dev' into codex/test-openclaw-command-timeout-bounds-20260627
  • e35ab5810 Merge branch 'dev' into codex/fix-utils-tar-listing-preserve-whitespace-20260627
  • 8922fb541 Merge branch 'dev' into docs/4314-notification-attention
  • 9a3b925ae Merge branch 'dev' into docs/3355-delegation-tool-boundary
  • 26d76dec7 Merge branch 'dev' into docs/3729-agent-temperature-docs
  • 555beab21 Merge branch 'dev' into fix/boulder-null-active-plan
  • 75107fba3 Merge pull request #7603 from code-yeongyu/fix/staging-windows-red
  • 4ef2e5983 test(omo-native): isolate credential import roots
  • 4bf82a3ef Merge pull request #7604 from code-yeongyu/fix/flake-setup-sibling
  • a4fc3e07b fix(omo-native): isolate concurrent staging builds
  • 185a90b30 Merge pull request #7602 from code-yeongyu/fix/facts-store-windows-red
  • 4b8a9304b fix(memory-core): remove unsafe lock fallback
  • b0658ba82 Merge pull request #7599 from code-yeongyu/fix/flake-team-send
  • 1061501da fix(omo-native): avoid needless sqlite setup fixtures
  • 0758fe2b6 Merge pull request #7601 from code-yeongyu/fix/flake-dag-abort
  • 0c6f70c0d fix(memory-core): bound shared candidate leaks
  • 987a44fe3 fix(memory-core): reclaim shared lock candidates
  • dda5f783f Merge pull request #7596 from code-yeongyu/fix/flake-manifest-parity
  • 6f5b2ee5c test(team-mode): cover ambient live delivery settle default
  • 580c33a18 Merge pull request #7595 from code-yeongyu/fix/flake-worktree-sweep
  • 06288fdb8 test(memory-core): assert portable facts ledger permissions
  • 97692c27b fix(memory-core): tolerate Windows lock candidate sharing
  • 4ad0bfc50 fix(team-mode): settle live delivery tests deterministically
  • c469f0302 Merge pull request #7598 from code-yeongyu/fix/flake-mcp-loader
  • 9b6c0a8e5 test(release): use fixture for manifest parity
  • 47acf2100 test(worktree-sweep): make age fixture deterministic
  • 0e89523f1 Merge pull request #7597 from code-yeongyu/fix/flake-bg-queue
  • 6b73ce3b1 fix: hermetically test MCP loader defaults
  • da6fa68f5 fix(team-mode): make ambiguous delivery test deterministic
  • 3546a1f4b test(background-agent): make queue integration deterministic
  • 55c642e66 build(omo-codex): refresh the committed codegraph dist and local installer
  • 124d24ddc Merge pull request #7589 from code-yeongyu/fix/lsp-freshness-test-determinism
  • a1d6e1c29 Merge pull request #7590 from code-yeongyu/fix/supervisor-outcome-flake
  • b680e29bc test(lsp-core): drive diagnostics freshness through a controlled clock
  • 033deb5e9 Merge pull request #7592 from code-yeongyu/fix/memory-dir-one-process
  • c9a3d605f Merge pull request #7591 from code-yeongyu/fix/facts-quick-pin
  • b14e3c4cb docs(evidence): record QA for the facts quick-pin fallback fix
  • fab28ed5e Merge pull request #7588 from code-yeongyu/perf/dream-o1-volume-gate
  • 24c909c4e Merge pull request #7586 from code-yeongyu/fix/env-cleaner-hermetic-windows
  • 55e204b3f fix(memory-core): backfill legacy reflection offsets
  • 5ec11ff57 test(memory-core): assert reflected journal byte offset
  • 40b45d34f perf(memory-core): include contextual rows in cursor offset
  • f9f957ecc Merge pull request #7571 from code-yeongyu/feat/memorian-gate
  • 595edb060 test(script): stage the memorian persona in the packed-layout fixture
  • f7ea793ff fix(memory-core): verify payload ownership before retracting a pending file
  • 6970d8039 feat(memory-core): stamp pending nudges with the compaction epoch
  • f32f8e677 test(memory-core): pin the pending epoch and the delete collision guard
  • d8a6d7569 feat(memory-core): let PendingNudges retract one session's payload
  • de6e0651a refactor(memory-core): sweep dead recall surface
  • e4aed73b3 feat(memory-core): add memorian persona asset
  • f08930fa9 feat(memory-core): add memorian gate contract and pending store
  • f6d455627 refactor(omo-config-core): shrink memory.recall to enabled and max_items
  • d2f090992 refactor(memory-core): drop recall receipts
  • ace706ec5 fix(mcp-client-core): make env filtering hermetic on Windows
  • ffdc8baa9 Merge pull request #7582 from code-yeongyu/feat/dream-session-reconcile
  • 43ca37ca6 Merge pull request #7580 from code-yeongyu/fix/shutdown-drain-severity
  • c67f8165b Merge pull request #7581 from code-yeongyu/feat/opengateway-kimi-k3-ultrafast-256k
  • 649378d6b Merge pull request #7578 from code-yeongyu/perf/dream-single-scan
  • 60d36ef53 fix(omo-opencode): register kimi-k3-ultrafast with a 256k default context
  • 51137a647 Merge pull request #7577 from code-yeongyu/feat/ulw-loop-gate-review-only
  • ffafb1d98 style(ulw-loop): satisfy component biome check in quality-gate-artifacts
  • 410d19379 refactor(ulw-loop): single-pass defect aggregation and artifact-primitive extraction
  • c7c682c59 fix(ulw-loop): checkpoint --print-template works without --goal-id
  • c216a5745 docs(ulw-loop): exact checkpoint sequence + template guidance in both harness refs
  • 71af40c13 fix(ulw-loop): satisfy strict tsc and biome across branch test files
  • edbbaa3f4 docs(ulw-loop): record why component commands stay npm under the bun-only toolchain
  • 6aecff37b feat(ulw-loop): guided recovery messages for snapshot, plan, and session-id errors
  • 3655e4439 feat(ulw-loop): aggregate quality-gate validation errors into one report
  • 391daed8f feat(ulw-loop): checkpoint --print-template emits surface-aware gate skeletons
  • ac99f53c0 feat(ulw-loop): checkpoint validates quality gate per reviewer surface
  • b35ae37c2 Merge pull request #7585 from code-yeongyu/ci/review-claims-gate-summary-name
  • 5a7cefdb7 ci(review-claims): name summary steps per the job-summary contract
  • a1be34a01 Merge pull request #7584 from code-yeongyu/ci/review-claims-gate-refresh
  • a463794bd ci(review-claims): refresh the gate check after automated claim release
  • f9e0b3317 Merge pull request #7576 from code-yeongyu/ci/review-claims-sweep-backstop
  • 355ba4208 ci(review-claims): add hourly sweep release backstop for restricted-token contexts
  • 7af00123d Merge pull request #7572 from code-yeongyu/ci/review-claim-labels
  • 6a8e7a825 Merge pull request #7575 from code-yeongyu/feat/opencode-verifier-fallback
  • 8965e85d2 feat(omo-opencode): category-chain fallback verifier for ultrawork verification
  • b63ea2609 test(ci): follow the bumped action versions in workflow shape tests
  • 2636aa1f7 fix(ci): register review-claims in the job-summary contract
  • 4335479d2 feat(memory-core): extend the resilient fs surface for adapter adoption
  • e2996f4af fix(memory): stale candidate sweep + recoverable bind-time reconcile contention (#7567)
  • 1956728f8 chore(ci): bump GitHub Actions to latest majors
  • e03c56aca feat(ci): add review-claim label system
  • 68f5dd61a fix(memory-core): sweep stale lock candidates and tolerate publish races
  • 134120193 feat(memory-core): EINTR-resilient fs boundary (#7566)
  • 889514916 fix(memory-core): honor abort signals and handle flushes in resilient writes
  • 3f61b95c9 test(memory-core): harden the direct node:fs import detector
  • 7e69389f4 fix(memory-core): retry EINTR at the write(2) boundary and guard exclusive creates
  • 3e9344525 refactor(memory-core): route fs imports through the resilient boundary
  • d34c774b0 feat(memory-core): add EINTR-resilient fs boundary
  • ffefeb2aa Merge pull request #7565 from code-yeongyu/fix/reflection-bind-lock-contention
  • 800b46605 fix(memory): defer bind reflection lock contention
  • 88b50279c test(run): record idle boulder CLI evidence
  • 51193f186 fix(run): ignore idle boulder state without active plan
  • 423bdca0a Merge pull request #7564 from code-yeongyu/fix/astgrep-mcp-bun-be-bun
  • 975dd9695 docs(qa): record final PR 7402 verification
  • c331deb2d Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • e260717b8 fix(ulw-loop): canonicalize reviewer aliases by surface
  • b5cbae3fb Merge pull request #7560 from code-yeongyu/fix/7544-resident-task-reconciliation
  • c4ad1e772 revert: drop unrelated lsp-daemon Bun migration
  • 57c7b1fbb Merge pull request #7559 from code-yeongyu/deslop-w2-ultrawork
  • 6e9769887 fix(ultrawork): emit a biome-stable directive artifact and organize smoke-test imports
  • 1876d9e3c Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • 12697e3ae Merge pull request #7558 from code-yeongyu/deslop-w2-skills
  • 80e8fb732 test(skills-loader-core): mirror the template's four-group team-tool taxonomy
  • b772c06f2 refactor(omo-codex): single-source ultrawork directive via prompts-core with bundled runtime export
  • 558bbeb79 test(skills-loader-core): restore full team-tool gating coverage in team-mode test
  • 948335934 fix(ulw-loop): scope generic gate quota by surface
  • 520c1379c docs(qa): record article-role current-dev gates
  • fbd119da6 Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • 7d72f4d89 fix(ulw-loop): parse article-bearing reviewer roles
  • 00fc6bdb8 Merge pull request #7019 from LilMGenius/fix/lsp-document-uri-normalize
  • 9ab0a28d6 refactor(omo-opencode): complete extraction of builtin-skills to core package
  • a13d5c16e refactor(omo-opencode): repoint builtin-skills consumers at skills-loader-core
  • b2f11bb89 fix(skills-loader-core): port the omo.jsonc config path into security-research
  • 6fca00f2d Merge pull request #7557 from code-yeongyu/deslop-w2-pag
  • 370091c78 fix(lsp): normalize document uris at the openByUri boundary
  • d606f8926 refactor(omo-opencode): complete extraction of pag to core package
  • af9fe3ace refactor(omo-opencode): point pag subpath imports at the utils core package
  • ee7ae5d66 Merge pull request #7556 from code-yeongyu/deslop-w2-ccpl
  • 763a351ea refactor(omo-opencode): complete extraction of ccpl to core package
  • 573f107c4 refactor(omo-opencode): point ccpl consumers at the compat-core package
  • 43ea7d265 fix(ulw-loop): honor explicit V2 reviewer assignments
  • 0d5a8ef9b Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • 0c44cc692 test(ulw-loop): record current-dev merge gates
  • e061a5673 Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • 5c480dbb4 test(ulw-loop): record post-merge gates
  • 6c7d5957b Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
  • 52982d5f7 test(ulw-loop): prove live PreToolUse spawn hook
  • 575b96824 fix(ulw-loop): prioritize mixed-role gate prompts
  • 0080d9a22 fix(ulw-loop): detect V2 reviewer role messages
  • a71715d43 fix(ulw-loop): bound repeated review spawns (fixes #7392)
  • 76f9bfe84 fix(model-core): classify terminal_quota_exhausted as non-retryable abort
  • e291754ed fix(background-agent): preserve parent wake variant
  • 9b3a44c0a fix windows build
  • 39e588118 feat(context-recovery): non-destructive truncation with cleanup and tests
  • 435f1af11 docs(ultimate-browsing): sync insane-search reference to engine v0.10.0
  • 117dc2cea fix(background-task): add recovery hint and non-destructive truncation
  • 0c913499c fix(session-manager): preserve platform path roots
  • 6252720eb fix(session-manager): keep POSIX separators in directory normalize on Windows
  • 9be9d235b fix(session-manager): normalize directory before session_list filter
  • 53699aa6b fix(utils): fallback when contains path realpath fails
  • c124c1ac3 fix(model-core): reject empty provider model segments
  • e9dcaf8a9 fix(utils): parse frontmatter after UTF-8 BOM
  • 7abb161be fix(utils): normalize whitespace-delimited tool names
  • dad215d8d fix(utils): match OneDrive path segments
  • bc36f501b fix(mcp-client-core): redact Slack MCP tokens
  • 3ac34a4f9 fix(skills-loader-core): normalize merged allowed tools
  • e1d460da9 fix(skills-loader-core): normalize config allowed tools
  • c4d37e3ae refactor(skills-loader-core): share async allowed-tools parser
  • f5035a3ed test(rules-engine): harden markerless workspace fixture
  • 058089966 test(lsp-core): cover tool parameter helpers
  • fbf2612fa test(tmux-core): cover main pane width clamping
  • ffd3d4847 test(tmux-core): cover pane dimension null paths
  • 0a208f632 test(openclaw-core): cover command timeout bounds
  • a2bec517d test(telemetry-core): cover opt-out env normalization
  • 43c84e90f fix(utils): preserve tar-listed filename whitespace
  • 29dd8ba55 docs(config): clarify notification attention overlap
  • f1e60f660 docs(features): clarify delegation tool boundary
  • f0e4eb85e docs(agents): clarify temperature defaults

Thank you to 2 community contributors:

  • @MoerAI:
    • Merge remote-tracking branch 'upstream/dev' into fix/codex-ulw-review-no-progress
    • fix(ulw-loop): check fan-out eligibility before charging reviewer quota
    • fix(ulw-loop): gate-artifact check before reviewer quota, V1/V2 non-reviewer early exit, atomic counter writes
    • fix: sort node: imports alphabetically in spawn-guard.ts for Biome
    • fix(ulw-loop): fix concurrent race and test env capture order
    • Merge pull request #7402 from MoerAI/fix/codex-ulw-review-no-progress
    • Merge pull request #5223 from JSap0914/docs/3729-agent-temperature-docs
    • Merge pull request #5229 from JSap0914/docs/3355-delegation-tool-boundary
    • Merge pull request #5235 from JSap0914/docs/4314-notification-attention
    • Merge pull request #5640 from Hungdoan565/codex/test-telemetry-env-normalization-20260627
    • Merge pull request #5642 from Hungdoan565/codex/test-openclaw-command-timeout-bounds-20260627
    • Merge pull request #5644 from Hungdoan565/codex/test-tmux-pane-dimensions-null-20260627
    • Merge pull request #5646 from Hungdoan565/codex/test-tmux-layout-width-clamp-20260627
    • Merge pull request #5648 from Hungdoan565/codex/test-lsp-parameter-helpers-20260627
    • Merge pull request #5675 from Hungdoan565/codex/test-rules-engine-markerless-workspace-20260628
    • Merge pull request #5633 from Hungdoan565/codex/fix-utils-tar-listing-preserve-whitespace-20260627
    • Merge pull request #5692 from Hungdoan565/codex/fix-utils-onedrive-segment-20260628
    • Merge pull request #5693 from Hungdoan565/codex/fix-utils-tool-name-whitespace-20260628
    • Merge pull request #5694 from Hungdoan565/codex/fix-utils-frontmatter-bom-20260628
    • Merge pull request #5704 from Hungdoan565/codex/fix-utils-contains-path-realpath-fallback-20260628
    • Merge pull request #5698 from Hungdoan565/codex/fix-model-format-empty-segments-20260628
    • Merge pull request #5683 from Hungdoan565/codex/fix-mcp-redact-slack-tokens-20260628
    • Merge pull request #5677 from Hungdoan565/codex/fix-config-skill-allowed-tools-normalization-20260628
    • Merge pull request #5678 from Hungdoan565/codex/fix-skill-merge-allowed-tools-normalization-20260628
    • Merge pull request #5676 from Hungdoan565/codex/refactor-skills-async-allowed-tools-parser-20260628
    • Merge pull request #4233 from codeg-dev/fix/boulder-null-active-plan
    • Merge pull request #5933 from dihak/fix/session-list-sdk-directory-filter
    • Merge pull request #6633 from EZotoff/fix/truncation-rework
    • Merge pull request #6728 from SoShymKing/fix_windows_build
    • Merge pull request #6739 from LYY/fix/6732-parent-wake-variant
    • Merge pull request #6274 from fivetaku/docs/insane-search-v0.10.0
    • fix(model-core): cap grok output reserve when output limit equals context window (fixes #7541)
    • Merge pull request #7624 from MoerAI/fix/7541-grok-output-reserve
  • @sisyphus-dev-ai:
    • Merge pull request #7629 from code-yeongyu/release/v5.0.0-beta.32-source-state
View originalPermalink
How v5.0.0-beta.32 went

v5.0.0-beta.31

Pre-release
Added 10
  • Add memory.recall settings block
  • Barrel-export the recall surface
  • Add recall runtime paths to identity layout
  • Append recall receipts as JSONL
  • Persist session recall ledger
  • Render recall message block
Fixed 10
  • Restore model-fallback chain accessor refuted by hook tests
  • Restore concurrency manager and stream-activity exports refuted by build
  • Restore barrel-imported cache/polling exports refuted by typecheck
  • Narrow the custom-message transcript exclusion to memory channels
  • Exclude only the reserved root system tree from recall
  • Render each recall candidate as its own sourced block

From oh-my-openagent

  • 62ed79525 Merge pull request #7555 from code-yeongyu/release/v5.0.0-beta.31-source-state
  • e5b910f76 Merge pull request #7551 from code-yeongyu/deslop-w1
  • 6ec04f9e9 Merge pull request #7553 from code-yeongyu/fix/recall-mode-assertions-win32
  • 6e3b1ed72 test(memory-core): gate recall file-mode pins to POSIX platforms
  • 24cc17ad5 revert: drop out-of-scope W1 changes flagged by strict merge review
  • a7e33a667 build(omo-codex): regenerate install-dist bundle for W1 source changes
  • 3307fb251 docs: refresh re-export shim inventory for W1 deletions (316 -> 315)
  • 6974bbdb1 fix(omo-opencode): restore model-fallback chain accessor refuted by hook tests
  • b0fe2f334 fix(omo-opencode): restore concurrency manager + stream-activity exports refuted by build
  • 3a4874ac1 fix(omo-opencode): restore barrel-imported cache/polling exports refuted by typecheck
  • 7074d2c87 fix(model-core): remove unused compatibility ladder
  • 0290c3613 chore(utils): remove dead prompt slop
  • 847eb39c5 chore(memory-core): remove stale layout comment
  • c1e4c1399 chore(ast-grep-mcp): remove redundant comments
  • a055e6c3d chore(lsp-tools-mcp): remove unused re-export modules
  • fe6c85dc0 chore(omo-opencode): remove dead code and redundant comments
  • 8e8d06c90 test(omo-native): give the packed consumer install room on slow runners
  • ea2918f12 Merge pull request #7543 from code-yeongyu/fix/7537-ulw-gate-reviewer-surface
  • 2ef02d905 fix(qa): ignore volatile settings stamps
  • e49207369 style(codex-ulw-loop): apply biome formatting to the surface tests
  • 51716a4b9 feat(codex-ulw-loop): resolve reviewer identities per toolkit surface
  • c53faf72f Merge pull request #7539 from code-yeongyu/fix/dag-queued-node-running-transition
  • f9069472e Merge pull request #7538 from code-yeongyu/feat/memorian-recall
  • 940ccf01b fix(memory): narrow the custom-message transcript exclusion to memory channels
  • 594715c65 fix(memory-core): exclude only the reserved root system tree from recall
  • 31bc71ccd fix(memory-core): render each recall candidate as its own sourced block
  • 613929594 fix(hooks): close legacy snapshot race
  • 1f5c143b6 fix(memory-core): keep extension-injected messages out of transcript search
  • 7a15a85d3 feat(omo-config-core): add memory.recall settings block
  • cc199ea8c feat(memory-core): barrel-export the recall surface
  • 51a665c84 feat(memory-core): add recall runtime paths to identity layout
  • e0874d361 feat(memory-core): append recall receipts as JSONL
  • 49d9abdee feat(memory-core): persist session recall ledger
  • 7ca2fde15 feat(memory-core): render recall message block
  • a451625ad feat(memory-core): select recall candidates by lexical match
  • a42165733 feat(memory-core): plan short recall queries from recent texts
  • f859ece5d feat(memory-core): load committed recall corpus from HEAD tree
  • 09f8e43f5 Merge pull request #7500 from minpeter/fix/local-fomo-oauth
  • 7017a76cc docs(evidence): record lsp pool RED/GREEN remote runs
  • 0173eb2be test(lsp-core): fail initialization on the first generation only
  • 50673b9c1 fix(lsp-core): tombstone in-flight client stops and bound dead-client respawns
  • fe9c407a2 fix(lsp-core): collapse workspace roots to the git repository root
  • 3ea5b056e test(lsp-core): pin monorepo root collapse and stop/respawn pool invariants
  • d50518d45 Merge pull request #7526 from code-yeongyu/fix/mem-delegation-lifecycle
  • 7603a66eb Merge pull request #7525 from code-yeongyu/fix/mem-mcp-idle-teardown
  • 51ddd6eca Merge pull request #7530 from code-yeongyu/ci/bot-merge-summary
  • ffbee1a97 Merge remote-tracking branch 'origin/dev' into fix/local-fomo-oauth-delivery
  • d682f34aa test(omo-native): record round-two isolated QA
  • 5cda20141 test(hooks): bound synchronized subprocess contracts
  • a16929084 ci(bot-merge): write the mandatory job summary and register the workflow expectation
  • 7c3cb8366 docs(evidence): record the unavailable-stub idle regression fix and dist regen
  • 60cd9e1d3 fix(omo-codex): keep the unavailable codegraph stub alive on the codex host
  • 8da24e3c1 fix(omo-opencode): restore continuation cleanup on every exit
  • 11f1274cd Merge pull request #7527 from code-yeongyu/fix/mem-hook-cache-evictions
  • 23afd7661 Merge pull request #7523 from code-yeongyu/fix/mem-signal-test-orphans
  • ab3aa3c39 Merge pull request #7522 from code-yeongyu/fix/mem-tui-mirror-heartbeat
  • 8a9ad069e Merge pull request #7529 from code-yeongyu/ci/bot-merge-workflow
  • 69a59ac2b Merge pull request #7528 from code-yeongyu/fix/sisyphus-agent-gh-login
  • 66fbcfe6e fix(omo-opencode): preserve continuation revival cleanup
  • b83de56f7 ci(sisyphus-agent): clear token env vars for the gh auth login call
  • dc57ba59e fix(omo-opencode): preserve continuation anchors and revival cleanup
  • 9903d6db0 fix(omo-opencode): preserve delegation queue and wake history semantics
  • 6b0d5075a fix(omo-opencode): keep sync poller completion detection live under fetch gating
  • 924abd75b fix(hooks): bridge legacy state writers safely
  • a7d244b38 fix(omo-opencode): harden delegated lifecycle test compatibility
  • 481872523 wip(omo-opencode): harden delegated lifecycle test compatibility
  • 5ca094ee7 fix(omo-opencode): keep sync poller completion detection live under fetch gating
  • 88c6547d3 fix(omo-opencode): narrow optional session.delete before deferred invocation
  • b15842ee1 fix(omo-opencode): narrow optional session.delete before deferred invocation
  • bc6729c22 docs(omo-opencode): record delegation memory evidence
  • 2325af33a docs: record hook cache eviction TDD evidence
  • 43edd7803 test(hooks): isolate fsync skip start-time cleanup
  • 3fec0c26f fix(hooks): prune unmatched fsync-skip start times
  • a9ef102ee fix(hooks): sweep hashline pending file captures
  • 4b642597d fix(hooks): drain unbounded session-id hook sets
  • 88c72a4d0 fix(hooks): clear anthropic recovery maps on dispose
  • 284d6f9ba fix(hooks): prune idle transcript cache snapshots
  • 5409c6f87 test(omo-native): record isolated OAuth QA
  • 0bf2bbe29 test(hooks): fail until idle hook caches evict
  • 78cda27bc docs(evidence): record RED/GREEN and per-site respawn verdicts for MCP idle teardown
  • b9374cd46 docs(mcp): record why idle timeouts stay disabled on no-respawn hosts
  • 5d7bad4b1 test(omo-native): document signal fixture cleanup evidence
  • 6f2a1673e test(omo-native): track re-exec fixture pid
  • 17ba153b7 fix(omo-opencode): wire tui mirror into plugin disposal
  • 6de61a709 test(omo-opencode): cover tui mirror disposal assembly wiring
  • 4e08c44c5 test(omo-native): await fixture process reaping
  • b45acd6c5 test(omo-native): make fixture reaping verification reliable
  • 0774fb780 fix(omo-opencode): release delegated subagent lifecycle resources
  • 4905b4b5d test(omo-native): reap signal fixture children in teardown
  • dafd8ca0a fix(omo-opencode): unref tui mirror heartbeat and stop it on dispose
  • b607d24b5 test(omo-native): record signal fixture child pids
  • 42740d0dd fix(mcp-stdio-core): drop unused handler param and share child-spawn setup
  • 278d92faa fix(mcp-stdio-core): destroy stdin on idle timeout so abandoned servers exit
  • 9597bb72d test(omo-opencode): cover tui mirror heartbeat disposal lifecycle
  • 4f71cd7d9 test(hooks): isolate publication failure injection
  • 0e5293b51 Merge commit '3abc23c23bae150f0276f8596dbda50edb310844' into fix/local-fomo-oauth-delivery
  • f98128cfe fix(omo-native): bundle OAuth and harden hook state

Thank you to 3 community contributors:

  • @minpeter:
    • fix(omo-native): bundle OAuth and harden hook state
    • Merge commit '3abc23c23bae150f0276f8596dbda50edb310844' into fix/local-fomo-oauth-delivery
    • test(hooks): isolate publication failure injection
    • test(omo-native): record isolated OAuth QA
    • fix(hooks): bridge legacy state writers safely
    • test(hooks): bound synchronized subprocess contracts
    • test(omo-native): record round-two isolated QA
    • Merge remote-tracking branch 'origin/dev' into fix/local-fomo-oauth-delivery
    • Merge pull request #7500 from minpeter/fix/local-fomo-oauth
  • @lifrary:
    • fix(mcp-stdio-core): destroy stdin on idle timeout so abandoned servers exit
    • fix(mcp-stdio-core): drop unused handler param and share child-spawn setup
  • @sisyphus-dev-ai:
    • Merge pull request #7522 from code-yeongyu/fix/mem-tui-mirror-heartbeat
    • Merge pull request #7523 from code-yeongyu/fix/mem-signal-test-orphans
    • Merge pull request #7527 from code-yeongyu/fix/mem-hook-cache-evictions
    • Merge pull request #7525 from code-yeongyu/fix/mem-mcp-idle-teardown
    • Merge pull request #7526 from code-yeongyu/fix/mem-delegation-lifecycle
    • Merge pull request #7555 from code-yeongyu/release/v5.0.0-beta.31-source-state
View originalPermalink
How v5.0.0-beta.31 went

v5.0.0-beta.30

Pre-release
Added 2
  • RpcTransportGoneError type added for typed error handling on transport disconnection
  • onDisconnect notification added for connection state changes
Fixed 10
  • Steering a message into a running turn no longer loses the message when the shared interactive host socket drops
  • TUI degrades gracefully when the host connection goes away instead of throwing a raw Error: Client not started
  • Session events survive a deferred rebind and are delivered once the client reattaches
  • Screen writes are serialized with a bounded backlog, and queued writes and resizes are absorbed or merged cleanly
  • Terminal replays no longer split or drop under trim and flush
  • Deterministic fail-safe tool admission with preserved structured tool results and lane ownership

From oh-my-openagent

omo-ai v5.0.0-beta.30 (npm 5.0.0-0.beta.30)

This is a hotfix release. Steering a message into a running turn while the shared interactive host socket dropped used to lose the message and throw a raw "Error: Client not started". The underlying fix ships in the engine (senpi PR #1220): a typed RpcTransportGoneError, an onDisconnect notification, and reconnect-or-fallback orchestration. The TUI now degrades gracefully when the host connection goes away, and your steering message isn't lost.

Engine (senpi v2026.8.30-3)
  • rpc: session events survive a deferred rebind and are delivered once the client reattaches.
  • pty and terminal: screen writes are serialized with a bounded backlog, queued writes and resizes are absorbed or merged cleanly, and replays no longer split or drop under trim and flush.
  • compaction: a broad correctness pass covering deterministic fail-safe tool admission, preserved structured tool results and lane ownership, retry-safe reminders, and a shared admission cap for multipart results.
  • models: context downswitches are admission-checked against the target usable budget, equal-budget provider switches work, and invalid selections roll back.
omo-ai changes

No omo-side commits land in this release. It picks up the engine hotfix above, so upgrading is still recommended: the "Client not started" crash path affected the omo TUI directly.


Commits
  • 3abc23c23 Merge pull request #7517 from code-yeongyu/release/v5.0.0-beta.30-source-state

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7517 from code-yeongyu/release/v5.0.0-beta.30-source-state
View originalPermalink
How v5.0.0-beta.30 went

v5.0.0-beta.29

Pre-release
Changed 2
  • Shared session host and connection surfaces are now disabled by default; opt in via the experimental.sharedHost setting or OMO_ENABLE_SHARED_HOST=1 environment variable
  • Compaction pipeline overhauled with large-window tiers, scaled reserve, speculative summary warming, oversized tool-result spill with read-back pointers, grace band and admission control, and deterministic breaker fallback
Fixed 8
  • RPC compiled-binary shared-host launch
  • RPC wrapper-injected internal host route
  • RPC durable session identity across rebinds
  • RPC binding-time tool changes no longer cancel client work
  • Anthropic fallback-marker replay 400 error
  • Update legacy context7 tool name in librarian and remove orphaned table syntax
  • DAG journal staleness
  • Make test-fast assertions Windows-safe to unblock Windows CI shards
Security 1
  • RPC trust now requires the agent directory

From oh-my-openagent

OMO v5.0.0-beta.29

Re-release of the beta.28 line with the engine bumped to senpi 2026.8.30-2 — the shared-host / connection surfaces are now disabled by default.

Headline

  • Shared session host + connection surfaces are OFF by default. omo interactive sessions run standalone unless you opt in via the experimental.sharedHost setting or OMO_ENABLE_SHARED_HOST=1. Nothing changes in the TUI when you don't opt in — this closes the default-on RPC connection surface.

Engine (senpi 2026.8.30 → 2026.8.30-2, 65 commits)

  • Security: RPC trust requires the agent directory.
  • Compaction pipeline overhaul: large-window tiers, scaled reserve, speculative summary warming, oversized tool-result spill with read-back pointers, grace band + admission + deterministic breaker fallback, pre-compaction reminder.
  • RPC fixes: compiled-binary shared-host launch, wrapper-injected internal host route, durable session identity across rebinds, binding-time tool changes no longer cancel client work.
  • Anthropic fallback-marker replay 400 fix.

omo-side changes since beta.28

  • fix(librarian): update legacy context7 tool name and remove orphaned table syntax (#7505, @KasimKaizer)
  • chore(release): bump senpi engine pin to 2026.8.30-2 (922a0c56e)
  • fix: DAG journal staleness (#7511)
  • fix(test): make test-fast assertions Windows-safe — unblocks Windows CI shards (#7512)
  • feat: Codex usage reporting was merged (#7508) and reverted (#7509) in the same window — net no change in this release.

Install: npm i -g omo-ai@beta

omo delta: 20 commits since v5.0.0-beta.28 · engine delta: 65 commits (senpi v2026.8.30 → v2026.8.30-2)


Commits
  • 443103494 Merge pull request #7515 from code-yeongyu/release/v5.0.0-beta.29-source-state
  • 30e4b5fd4 Merge pull request #7511 from code-yeongyu/fix/7412-dag-journal-staleness
  • 212c2ceae Merge pull request #7512 from code-yeongyu/fix/test-fast-windows-assertions
  • fda71c56c fix(test): make test-fast assertions Windows-safe
  • bd73775af Merge pull request #7505 from KasimKaizer/fix/librarian-context7-and-table-syntax
  • d813385d3 Merge pull request #7509 from code-yeongyu/revert-7508-feature/codex-usage-reporting
  • 64039129e Revert "feat: report OpenAI Codex plan and quota usage"
  • e7c3f546f Merge pull request #7508 from code-yeongyu/feature/codex-usage-reporting
  • 587a5cf1a feat(cli): register Codex usage command
  • a65c89f0f feat(cli): add Codex usage output
  • 67d2a38bf feat(codex): format quota summaries
  • 2b9bfe92c feat(codex): read quotas through app server
  • 3cab9f937 feat(codex): normalize account usage reports
  • f9840d4ba fix(librarian): update legacy context7 tool name and remove orphaned table syntax

Thank you to 3 community contributors:

  • @KasimKaizer:
    • fix(librarian): update legacy context7 tool name and remove orphaned table syntax
  • @KNN-07:
    • feat(codex): normalize account usage reports
    • feat(codex): read quotas through app server
    • feat(codex): format quota summaries
    • feat(cli): add Codex usage output
    • feat(cli): register Codex usage command
    • Merge pull request #7508 from code-yeongyu/feature/codex-usage-reporting
    • Revert "feat: report OpenAI Codex plan and quota usage"
    • Merge pull request #7509 from code-yeongyu/revert-7508-feature/codex-usage-reporting
    • Merge pull request #7505 from KasimKaizer/fix/librarian-context7-and-table-syntax
  • @sisyphus-dev-ai:
    • Merge pull request #7515 from code-yeongyu/release/v5.0.0-beta.29-source-state
View originalPermalink
How v5.0.0-beta.29 went

v5.0.0-beta.28

Pre-release
Changed 4
  • answer fast paths before provisioning and banner interactive boots
  • split embedded runtime provisioning out of compile-entry
  • make the resident py kernel the default polars surface
  • rewrite data-scientist around resident kernels and placement
Fixed 11
  • shut down surviving test-fast groups when a spawn fails
  • escalate SIGKILL to retained test-fast process groups
  • kill test-fast group children when the parent is signalled
  • block test-fast re-entry with an env marker guard
  • register bundled cursor OAuth flows
  • plumb session directory into request context

From oh-my-openagent

  • e885b64f7 Merge pull request #7504 from code-yeongyu/release/v5.0.0-beta.28-source-state
  • 4d9150d8a Merge pull request #7502 from code-yeongyu/fix/test-fast-lifecycle-guard
  • 35784893f fix(test): shut down surviving test-fast groups when a spawn fails
  • de415501d test(script): pin the test-fast production spawn wiring and entry guard
  • e72b97b7a test(script): compare full test-fast tiling scopes instead of package dirs
  • d09f4363c fix(test): escalate SIGKILL to retained test-fast process groups
  • 2b0fe9b1c refactor(test): narrow the raced-child kill error without a cast
  • 3b9e8cf9f docs(script): describe the test-fast lifecycle guard and re-entry marker
  • d38a44c59 refactor(test): inject the test-fast logger so unit tests capture banners
  • d1c78941f test(script): pin the test-fast group partition against the bunfig tiling
  • 89c5daf45 fix(test): kill test-fast group children when the parent is signalled
  • e1adc57b8 fix(test): block test-fast re-entry with an env marker guard
  • 6c5ace409 fix(omo-native): materialize runtime before the version fast-path
  • e40b92191 Merge pull request #7503 from code-yeongyu/fix/bunfs-cursor-oauth-registration
  • 59f56836a fix(omo-native): register bundled cursor OAuth flows
  • 354a66883 Merge pull request #7501 from code-yeongyu/release/v5.0.0-beta.27-source-state
  • ffd1519a0 merge: dev into rel/audit2-pin-bump; port launch guard and restore package-dir pin
  • 59d0a674c Merge pull request #7499 from code-yeongyu/perf/compile-entry-fastpath
  • 9261a81af Merge pull request #7498 from code-yeongyu/fix/dev-push-ci
  • c5dca00b0 perf(omo-native): answer fast paths before provisioning and banner interactive boots
  • 40f945fd0 refactor(omo-native): split embedded runtime provisioning out of compile-entry
  • 6c34a9332 merge: fix/binary-startup into rel/audit2-pin-bump
  • b4e0094c0 Merge pull request #7484 from code-yeongyu/fix/memory-lock-fixtures-win32
  • 619c241be Merge pull request #7478 from code-yeongyu/fix/ulw-loop-cli-sb
  • 817c4e082 Merge pull request #7476 from code-yeongyu/fix/drvfs-config-watch-sb
  • 2e9e66891 Merge pull request #7477 from code-yeongyu/fix/lsp-session-cwd-sb
  • 9ae3cf867 Merge pull request #7479 from code-yeongyu/fix/memory-lock-fixtures-sb
  • fac61bafc Merge pull request #7482 from code-yeongyu/fix/data-scientist-uv-default-contradictions
  • 89cd17c14 fix(shared-skills): purge stale uv-default wording after py-kernel change
  • b13afc289 Merge pull request #7481 from code-yeongyu/feat/data-scientist-eval-py-default
  • 35dbdda50 feat(shared-skills): make the resident py kernel the default polars surface
  • 42e106cb4 Merge pull request #7480 from code-yeongyu/feat/data-scientist-hybrid-rewrite
  • bc513358f fix(shared-skills): tighten data-scientist failure wording per review
  • 082c54789 feat(shared-skills): rewrite data-scientist around resident kernels and placement
  • 999c57113 fix(lsp): plumb session directory into request context
  • 1e22cf258 fix(omo-native): skip the redundant 114MB self-copy on every launch
  • 134b61b38 fix(omo-native): start the compiled binary without re-exec or a self-copy
  • 7d874efc4 Merge pull request #7475 from code-yeongyu/feat/workflow-tool-rename
  • 19d571cce merge: origin/dev into feat/workflow-tool-rename
  • c034b5313 Merge pull request #7474 from code-yeongyu/feat/mass-ulw-research
  • 87e1e9e9a Merge branch 'fix/thread-cursor-revision' into hotfix/regression-audit2
  • 12b6c2f18 Merge branch 'fix/tui-sidebar-freeze' into hotfix/regression-audit2
  • b137ea099 fix(tui): refresh sidebar content during renders
  • 10c853a57 Merge branch 'fix/installer-tuple-plugins' into hotfix/regression-audit2
  • 3a8076045 fix(omo-opencode): handle tuple-style opencode plugin entries
  • 11665238d test(omo-opencode): cover tuple plugin entries in install detection and legacy toast
  • ae9366464 test(omo-opencode): cover tuple-style opencode plugin entries
  • ca87be2f1 fix(todo-continuation): preserve flat model variants
  • 2b0fee2e3 test(todo-continuation): cover flat model variant preservation

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7501 from code-yeongyu/release/v5.0.0-beta.27-source-state
    • Merge pull request #7504 from code-yeongyu/release/v5.0.0-beta.28-source-state
View originalPermalink
How v5.0.0-beta.28 went

v5.0.0-beta.26

Pre-release
Fixed 20
  • Preserve the wrapper-refusal contract string in the gate
  • Avoid retrying ambiguous fetch failures in team mode
  • Tolerate npm registry propagation in the platform gate
  • Retry unreachable fallback routes in team mode
  • Persist fallback wake retries in team mode
  • Bound fallback wake recovery in team mode

From oh-my-openagent

  • 727cf8432 Merge pull request #7470 from code-yeongyu/release/v5.0.0-beta.26-source-state
  • 64d89819e Merge pull request #7457 from code-yeongyu/fix/publish-platform-gate-propagation
  • c996037dd Merge pull request #7451 from MoerAI/fix/team-message-fallback-wake
  • 2d9cb3295 fix(release): preserve the wrapper-refusal contract string in the gate
  • bafe08f1d fix(team-mode): avoid retrying ambiguous fetch failures
  • ada6d2e7f docs(qa): record post-merge validation
  • 6084150ee fix(release): tolerate npm registry propagation in the platform gate
  • bf0b2cc01 Merge upstream/dev into fix/5317-team-message-fallback-wake
  • f113c5025 fix(team-mode): retry unreachable fallback routes
  • ef1c392f1 Merge pull request #7455 from sanguneo/fix/windows-formatter-bin-shim-enoent
  • 7ad84e9b1 Merge remote-tracking branch 'origin/dev' into fix/windows-formatter-bin-shim-enoent
  • e0ce56f0e Merge pull request #7453 from code-yeongyu/release/v5.0.0-beta.24-source-state
  • d9653750f fix(team-mode): persist fallback wake retries
  • 5408b3189 fix(team-mode): bound fallback wake recovery
  • 332c4905d docs(qa): record final transport retry proof
  • 64fab24f5 fix(team-mode): retry fallback transport failures
  • 7a042e176 fix(team-mode): skip pending mailbox wakes
  • ffc24cad6 fix(prompt-gate): bound fallback revalidation
  • b75e72a89 fix(team-mode): preserve unreadable fallback wakes
  • 0194ccf85 fix(team-mode): cancel deleted-team fallback wakes
  • 52d1f0d49 fix(team-mode): retry fallback revalidation
  • 0237a1d15 fix(team-mode): retain coalesced fallback wakes
  • c52c9b3ed fix(team-mode): preserve fallback delivery guards
  • 7b5cbee74 docs(qa): record real team fallback route
  • 6b395c51f fix(team-mode): drain pending delivery fallback wakes
  • ccc847f3c fix(team-mode): attach issue 5317 QA command outputs
  • 6b185475e fix(team-mode): condense issue 5317 verification evidence
  • 555c81b75 fix(team-mode): wake idle members after delivery fallback (fixes #5317)
  • 43d9c058e Merge pull request #7448 from code-yeongyu/fix/release-arm64-musl-smoke
  • 8307b47c9 fix(release): install musl runtime for arm64 smoke
  • f056bdcfb Merge pull request #7447 from code-yeongyu/fix/omo-native-windows-inprocess
  • f9f483753 fix(omo-native): avoid Windows self-reexec
  • 5e53d2733 Merge pull request #7445 from code-yeongyu/fix/omo-native-windows-argv-identity
  • 650aee784 fix(omo-native): stop Windows self-provisioning loop
  • 09fe012d6 Merge pull request #7443 from code-yeongyu/fix/omo-native-windows-copy
  • 24c3c1611 fix(omo-native): copy Windows runtime without rename
  • 1679b0fcd Merge pull request #7442 from code-yeongyu/fix/windows-ci-time-budgets
  • 8897ead88 test(windows): widen integration time budgets
  • 73a023c02 Merge pull request #7440 from code-yeongyu/fix/omo-native-windows-provisioning
  • cf15df923 fix(omo-native): avoid locked Windows self-provisioning target
  • 61f9583d3 Merge pull request #7439 from code-yeongyu/fix/release-platform-smoke-runtime
  • db060f555 fix(release): align platform smoke runtime contracts
  • 7eef11790 Merge pull request #7436 from code-yeongyu/fix/windows-lsp-daemon-build-shell
  • 68211da9d fix(lsp-daemon): preserve spaced Windows runtime paths
  • 4de49c0a0 Merge pull request #7434 from code-yeongyu/release/v5.0.0-beta.23-source-state
  • 4e0ced272 fix(test): preserve Windows RPC admission timeout
  • d3d294adc Merge pull request #7435 from code-yeongyu/chore/beta23-changelog-followups
  • dfa171ce8 Merge pull request #7433 from code-yeongyu/fix/worktree-sweep-windows-timeout
  • 0a5cf16c8 docs(changelog): record post-beta23 merges
  • 5c2f56b99 Merge pull request #7430 from code-yeongyu/feature/post-mutation-pipeline
  • 8323d15a2 merge: sync latest dev
  • 462e21a59 test(debugging): give answering dap sessions a realistic request timeout
  • 6939f6a62 test(debugging): tolerate cold-start latency in dap session waits
  • b9631886e Merge pull request #7427 from code-yeongyu/release/v5.0.0-beta.23-source-state
  • cdeaba6f7 merge: sync latest dev
  • 3e1e6b377 Merge remote-tracking branch 'origin/dev' into release-beta23-source-refresh
  • c6b1d190e Merge pull request #7432 from code-yeongyu/fix/windows-release-portability
  • a7204c8a1 merge: sync dev into post-mutation pipeline
  • faec5fe96 test(formatter): cover required policy override
  • c890495e7 docs(formatter): clarify opt-in policy
  • b7a094cda docs(qa): note CI bundle refresh
  • 430cc5638 test(omo-opencode): raise worktree sweep clone timeout
  • ae1e8370f Merge remote-tracking branch 'origin/dev' into fix/windows-release-portability
  • 261a62cd2 fix(codex): preserve installer executable mode
  • edf1fa369 fix(windows): harden dap and atomic persistence
  • 9f420d5db fix(config): preserve absent format settings
  • a5bb28c60 Merge pull request #7429 from code-yeongyu/fix/codex-650k-context-window
  • d9d83ee03 fix(omo-codex): raise GPT-5.6 context window to 650k
  • 8776e8025 Merge pull request #7420 from bokjk/fix/config-watch-duplicate-extension-standdown
  • f356d1781 Merge pull request #7428 from code-yeongyu/feature/lsp-format-capability
  • 8c4981fef test(lsp-core): prove a stale format edit cannot corrupt the file
  • 3ccbfafcd test(lsp-tools-mcp): pin the format tool in the exported surface
  • 884d5dda2 docs(lsp): record format capability QA evidence
  • 3fa101d66 test(lsp-daemon): live QA driver for the format request
  • 9033c2df3 feat(lsp-daemon): expose the format request on the client surface
  • cbf5ea049 feat(lsp-core): expose formatting as an LSP tool
  • 7eff4762e feat(lsp-core): format documents through the resident language server
  • 84cae2987 feat(lsp-core): cap resident language server clients
  • 0a8194d3c Merge pull request #7426 from code-yeongyu/release/20260827-beta23-pin
  • 4c44bc7c1 Merge remote-tracking branch 'origin/dev' into release/20260827-beta23-pin
  • ef2587905 Merge pull request #7425 from code-yeongyu/feat/debugging-dap-client
  • 5fad12bfd Merge remote-tracking branch 'origin/dev' into feat/debugging-dap-client
  • 2dc8f0cd9 feat(debugging): add zero-dependency DAP client script
  • 339833ad5 Merge pull request #7424 from code-yeongyu/feature/lsp-core-local-binary-resolution
  • e93fd066d fix(lsp-core): keep node-launched servers selectable
  • c07e1d04e docs(lsp-core): describe repo-local binary resolution
  • 224c233f9 test(lsp-core): live QA driver for repo-local binary resolution
  • a0227ed27 feat(lsp-core): offer the repo-local install before the global one
  • 106e626df feat(lsp-core): spawn the resolved server binary
  • 1a33d028f feat(lsp-core): resolve repo-local language server binaries
  • 0163d75d8 Merge pull request #7422 from code-yeongyu/feat/debugging-instruments
  • 200531da1 docs(debugging): add Frida, structured-interface, and instrument references
  • 7cf71e77b Merge pull request #7416 from code-yeongyu/fix/thread-receipts-followup
  • 9e23380f3 docs(thread): name both routes to an uncertain receipt
  • 63d0c1573 fix(thread): degrade to uncertain when a receipt side effect throws
  • 1b046c39b Merge pull request #7415 from code-yeongyu/feat/thread-tools
  • 20e456d0c docs(thread): component guide
  • 1c0432b9e test(thread): resilience and restart scenarios
  • 506835076 test(thread): cross-surface and ui-exposure qa
  • 33ba9a60b feat(thread): ordered delivery mailbox
  • 9aaf75259 feat(thread): cross-session prompt routing
  • fda4e6d86 feat(thread): durable receipts and idempotency
  • 533f23075 feat(thread): cross-project address book
  • 5b01772c2 feat(thread): bounded transcript reader
  • 998c1d933 feat(thread): addressing and scope resolution
  • 6c498804c feat(thread): tool contracts and error taxonomy
  • dde5d6898 Merge pull request #7406 from code-yeongyu/fix/7325-subagent-model-resolution
  • 636c76342 fix(delegate): refresh subagent models and preserve fallback providers (#7325)
  • 87d6aa41e Merge pull request #7403 from code-yeongyu/fix/7337-false-complete
  • f2e7bec11 Merge pull request #7414 from code-yeongyu/test/dag-fallback-abort-waiter-guard
  • 5e67b4575 fix(task): reject empty background completions (#7337)
  • dc1ab0fd9 Merge pull request #7413 from code-yeongyu/fix/dag-owner-completion-loss
  • 35ea43a38 Merge pull request #7409 from code-yeongyu/fix/7344-sdk-oauth-result
  • 5f234ad9f Merge pull request #7407 from code-yeongyu/fix/1143-dag-start-barrel
  • 0819b8bc4 test(claude-sdk-oauth): document patched runtime seam (#7344)
  • f21b2e892 fix(claude-sdk-oauth): preserve unclaimed result causes (#7344)
  • b98042a30 Merge pull request #7405 from code-yeongyu/fix/7355-pitui-barrel
  • 9b127df82 Merge pull request #7404 from code-yeongyu/fix/7335-holdlock-orphan

Thank you to 2 community contributors:

  • @sisyphus-dev-ai:
    • Merge pull request #7427 from code-yeongyu/release/v5.0.0-beta.23-source-state
    • Merge pull request #7453 from code-yeongyu/release/v5.0.0-beta.24-source-state
    • Merge pull request #7470 from code-yeongyu/release/v5.0.0-beta.26-source-state
  • @MoerAI:
    • fix(team-mode): wake idle members after delivery fallback (fixes #5317)
    • fix(team-mode): condense issue 5317 verification evidence
    • fix(team-mode): attach issue 5317 QA command outputs
    • fix(team-mode): drain pending delivery fallback wakes
    • docs(qa): record real team fallback route
    • fix(team-mode): preserve fallback delivery guards
    • fix(team-mode): retain coalesced fallback wakes
    • fix(team-mode): retry fallback revalidation
    • fix(team-mode): cancel deleted-team fallback wakes
    • fix(team-mode): preserve unreadable fallback wakes
    • fix(prompt-gate): bound fallback revalidation
    • fix(team-mode): skip pending mailbox wakes
    • fix(team-mode): retry fallback transport failures
    • docs(qa): record final transport retry proof
    • fix(team-mode): bound fallback wake recovery
    • fix(team-mode): persist fallback wake retries
    • fix(team-mode): retry unreachable fallback routes
    • Merge upstream/dev into fix/5317-team-message-fallback-wake
    • docs(qa): record post-merge validation
    • fix(team-mode): avoid retrying ambiguous fetch failures
    • Merge pull request #7451 from MoerAI/fix/team-message-fallback-wake
View originalPermalink
How v5.0.0-beta.26 went

v5.0.0-beta.25

Pre-release
Changed 1
  • Adopt current publish workflows on the release lane including npm registry propagation retry, musl smoke libstdc++, and Windows USERPROFILE provisioning
Fixed 1
  • Preserve spaced Windows runtime paths in lsp-daemon

From oh-my-openagent

v5.0.0-beta.25 — stability rollback release

This release re-ships the stable v5.0.0-beta.22 codebase as the newest beta. beta.23/beta.24 introduced multiple regressions (interactive session/TUI defects among them), so beta.25 rolls the beta channel back to the last known-good tree while those changes are reworked on dev.

What's inside
  • Product code identical to v5.0.0-beta.22 (senpi engine pin 2026.8.26-2).
  • One targeted backport: fix(lsp-daemon): preserve spaced Windows runtime paths (68211da9d), so Windows platform packages build from source instead of failing in the release pipeline.
  • Release-infrastructure updates only (no runtime impact): current publish workflows adopted on the release lane — npm registry propagation retry, musl smoke libstdc++, Windows USERPROFILE provisioning.
Not inside

Post-beta.22 features and fixes that landed on dev are intentionally absent. They return in a future beta once the beta.22-parity audit passes.

Upgrade
npm i -g omo-ai@beta   # resolves to 5.0.0-0.beta.25
Verification
  • Full 3-OS CI green on the release SHA 549009348.
  • 24/24 platform packages live on npm at 5.0.0-beta.25.
  • Fresh-install smoke: omo 5.0.0-0.beta.25 (engine: senpi 2026.8.26-2).
View originalPermalink
How v5.0.0-beta.25 went

v5.0.0-beta.24

Pre-release
  • e0ce56f0e Merge pull request #7453 from code-yeongyu/release/v5.0.0-beta.24-source-state

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7453 from code-yeongyu/release/v5.0.0-beta.24-source-state
View originalPermalink
How v5.0.0-beta.24 went

v5.0.0-beta.23

Pre-release
Added 5
  • expose the format request on the client surface in lsp-daemon
  • expose formatting as an LSP tool in lsp-core
  • format documents through the resident language server in lsp-core
  • cap resident language server clients in lsp-core
  • add zero-dependency DAP client script for debugging
Changed 2
  • widen integration time budgets for Windows
  • tolerate cold-start latency in DAP session waits for debugging
Fixed 13
  • install musl runtime for arm64 smoke
  • avoid Windows self-reexec in omo-native
  • stop Windows self-provisioning loop in omo-native
  • copy Windows runtime without rename in omo-native
  • avoid locked Windows self-provisioning target in omo-native
  • align platform smoke runtime contracts

From oh-my-openagent

  • 43d9c058e Merge pull request #7448 from code-yeongyu/fix/release-arm64-musl-smoke
  • 8307b47c9 fix(release): install musl runtime for arm64 smoke
  • f056bdcfb Merge pull request #7447 from code-yeongyu/fix/omo-native-windows-inprocess
  • f9f483753 fix(omo-native): avoid Windows self-reexec
  • 5e53d2733 Merge pull request #7445 from code-yeongyu/fix/omo-native-windows-argv-identity
  • 650aee784 fix(omo-native): stop Windows self-provisioning loop
  • 09fe012d6 Merge pull request #7443 from code-yeongyu/fix/omo-native-windows-copy
  • 24c3c1611 fix(omo-native): copy Windows runtime without rename
  • 1679b0fcd Merge pull request #7442 from code-yeongyu/fix/windows-ci-time-budgets
  • 8897ead88 test(windows): widen integration time budgets
  • 73a023c02 Merge pull request #7440 from code-yeongyu/fix/omo-native-windows-provisioning
  • cf15df923 fix(omo-native): avoid locked Windows self-provisioning target
  • 61f9583d3 Merge pull request #7439 from code-yeongyu/fix/release-platform-smoke-runtime
  • db060f555 fix(release): align platform smoke runtime contracts
  • 7eef11790 Merge pull request #7436 from code-yeongyu/fix/windows-lsp-daemon-build-shell
  • 68211da9d fix(lsp-daemon): preserve spaced Windows runtime paths
  • 4de49c0a0 Merge pull request #7434 from code-yeongyu/release/v5.0.0-beta.23-source-state
  • 4e0ced272 fix(test): preserve Windows RPC admission timeout
  • d3d294adc Merge pull request #7435 from code-yeongyu/chore/beta23-changelog-followups
  • dfa171ce8 Merge pull request #7433 from code-yeongyu/fix/worktree-sweep-windows-timeout
  • 0a5cf16c8 docs(changelog): record post-beta23 merges
  • 5c2f56b99 Merge pull request #7430 from code-yeongyu/feature/post-mutation-pipeline
  • 8323d15a2 merge: sync latest dev
  • 462e21a59 test(debugging): give answering dap sessions a realistic request timeout
  • 6939f6a62 test(debugging): tolerate cold-start latency in dap session waits
  • b9631886e Merge pull request #7427 from code-yeongyu/release/v5.0.0-beta.23-source-state
  • cdeaba6f7 merge: sync latest dev
  • 3e1e6b377 Merge remote-tracking branch 'origin/dev' into release-beta23-source-refresh
  • c6b1d190e Merge pull request #7432 from code-yeongyu/fix/windows-release-portability
  • a7204c8a1 merge: sync dev into post-mutation pipeline
  • faec5fe96 test(formatter): cover required policy override
  • c890495e7 docs(formatter): clarify opt-in policy
  • b7a094cda docs(qa): note CI bundle refresh
  • 430cc5638 test(omo-opencode): raise worktree sweep clone timeout
  • ae1e8370f Merge remote-tracking branch 'origin/dev' into fix/windows-release-portability
  • 261a62cd2 fix(codex): preserve installer executable mode
  • edf1fa369 fix(windows): harden dap and atomic persistence
  • 9f420d5db fix(config): preserve absent format settings
  • a5bb28c60 Merge pull request #7429 from code-yeongyu/fix/codex-650k-context-window
  • d9d83ee03 fix(omo-codex): raise GPT-5.6 context window to 650k
  • 8776e8025 Merge pull request #7420 from bokjk/fix/config-watch-duplicate-extension-standdown
  • f356d1781 Merge pull request #7428 from code-yeongyu/feature/lsp-format-capability
  • 8c4981fef test(lsp-core): prove a stale format edit cannot corrupt the file
  • 3ccbfafcd test(lsp-tools-mcp): pin the format tool in the exported surface
  • 884d5dda2 docs(lsp): record format capability QA evidence
  • 3fa101d66 test(lsp-daemon): live QA driver for the format request
  • 9033c2df3 feat(lsp-daemon): expose the format request on the client surface
  • cbf5ea049 feat(lsp-core): expose formatting as an LSP tool
  • 7eff4762e feat(lsp-core): format documents through the resident language server
  • 84cae2987 feat(lsp-core): cap resident language server clients
  • 0a8194d3c Merge pull request #7426 from code-yeongyu/release/20260827-beta23-pin
  • 4c44bc7c1 Merge remote-tracking branch 'origin/dev' into release/20260827-beta23-pin
  • ef2587905 Merge pull request #7425 from code-yeongyu/feat/debugging-dap-client
  • 5fad12bfd Merge remote-tracking branch 'origin/dev' into feat/debugging-dap-client
  • 2dc8f0cd9 feat(debugging): add zero-dependency DAP client script
  • 339833ad5 Merge pull request #7424 from code-yeongyu/feature/lsp-core-local-binary-resolution
  • e93fd066d fix(lsp-core): keep node-launched servers selectable
  • c07e1d04e docs(lsp-core): describe repo-local binary resolution
  • 224c233f9 test(lsp-core): live QA driver for repo-local binary resolution
  • a0227ed27 feat(lsp-core): offer the repo-local install before the global one
  • 106e626df feat(lsp-core): spawn the resolved server binary
  • 1a33d028f feat(lsp-core): resolve repo-local language server binaries
  • 0163d75d8 Merge pull request #7422 from code-yeongyu/feat/debugging-instruments
  • 200531da1 docs(debugging): add Frida, structured-interface, and instrument references
  • 7cf71e77b Merge pull request #7416 from code-yeongyu/fix/thread-receipts-followup
  • 9e23380f3 docs(thread): name both routes to an uncertain receipt
  • 63d0c1573 fix(thread): degrade to uncertain when a receipt side effect throws
  • 1b046c39b Merge pull request #7415 from code-yeongyu/feat/thread-tools
  • 20e456d0c docs(thread): component guide
  • 1c0432b9e test(thread): resilience and restart scenarios
  • 506835076 test(thread): cross-surface and ui-exposure qa
  • 33ba9a60b feat(thread): ordered delivery mailbox
  • 9aaf75259 feat(thread): cross-session prompt routing
  • fda4e6d86 feat(thread): durable receipts and idempotency
  • 533f23075 feat(thread): cross-project address book
  • 5b01772c2 feat(thread): bounded transcript reader
  • 998c1d933 feat(thread): addressing and scope resolution
  • 6c498804c feat(thread): tool contracts and error taxonomy
  • dde5d6898 Merge pull request #7406 from code-yeongyu/fix/7325-subagent-model-resolution
  • 636c76342 fix(delegate): refresh subagent models and preserve fallback providers (#7325)
  • 87d6aa41e Merge pull request #7403 from code-yeongyu/fix/7337-false-complete
  • f2e7bec11 Merge pull request #7414 from code-yeongyu/test/dag-fallback-abort-waiter-guard
  • 5e67b4575 fix(task): reject empty background completions (#7337)
  • dc1ab0fd9 Merge pull request #7413 from code-yeongyu/fix/dag-owner-completion-loss
  • 35ea43a38 Merge pull request #7409 from code-yeongyu/fix/7344-sdk-oauth-result
  • 5f234ad9f Merge pull request #7407 from code-yeongyu/fix/1143-dag-start-barrel
  • 0819b8bc4 test(claude-sdk-oauth): document patched runtime seam (#7344)
  • f21b2e892 fix(claude-sdk-oauth): preserve unclaimed result causes (#7344)
  • b98042a30 Merge pull request #7405 from code-yeongyu/fix/7355-pitui-barrel
  • 9b127df82 Merge pull request #7404 from code-yeongyu/fix/7335-holdlock-orphan

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7427 from code-yeongyu/release/v5.0.0-beta.23-source-state
View originalPermalink
How v5.0.0-beta.23 went

v5.0.0-beta.22

Pre-release
Added 4
  • omo doctor command can find and clean up stale engine processes orphaned by earlier launcher versions
  • omo doctor --reap subcommand to explicitly remove orphaned interactive engine processes by pid
  • Pass detach: false to dag wait to restore blocking semantics
  • Telemetry vocabulary gains glm-5.3 entry for zai-coding-plan and opencode-go
Changed 3
  • Senpi engine pinned version updated from 2026.8.26 to 2026.8.26-2
  • unspecified-high fallback chain rebuilt as opus-first: claude-opus-5 xhigh -> glm-5.3 max -> kimi-k3 max
  • Dead-chain category alert changed from yellow warning to info-level notice
Fixed 6
  • Launcher no longer orphans engines by forwarding SIGTERM and SIGHUP signals and giving engines a bounded grace window to shut down cleanly
  • Launcher preflight now detects corrupt installs and fails fast with actionable diagnosis instead of raw stack traces
  • Home-directory config watching now works correctly by inspecting target globs to avoid protected agent-dir paths
  • DAG wait detaches by default and returns immediately instead of holding the tool call open for the entire run duration
  • Orphaned runs whose parent session is dead are now adopted and re-homed with the recovery journaled
  • RPC bridge attaches after paused runs recover so the first snapshot shows recovered state instead of stale paused state
Removed 2
  • vercel provider leaves every builtin fallback lane and vercel-only minimax-m2.7-highspeed rung is dropped
  • quotio-openai purged from chain sources

From oh-my-openagent

OmO 5.0.0-beta.22 Release Summary

This release rides on Senpi 2026.8.26-2 and focuses on process lifecycle correctness: the launcher no longer orphans engines, omo doctor can find and clean up the orphans older versions left behind, broken installs fail fast with a real diagnosis, and DAG runs survive session restarts instead of getting stuck. It also reworks the default model fallback lanes and fixes home-directory config watching.

Launcher and engine lifecycle (omo-native)
Signal forwarding: no more orphaned engines

Previously, both launcher layers (node bin/omo.js -> engine, plus the bun re-exec in between) blocked in spawnSync, where no JavaScript handler can run. A SIGTERM killed the launcher on the spot and left the engine reparented to pid 1, still holding your terminal. Those orphans later showed up as stdin EIO crashes and engine processes lingering for days.

Both layers now spawn asynchronously and:

  • forward SIGTERM and SIGHUP to the engine
  • give it a bounded grace window to shut down cleanly (10s, tunable via OMO_SIGNAL_GRACE_MS)
  • re-raise the signal on themselves if the child ignores it, so supervisors still see the death they asked for

SIGINT (Ctrl-C) is deliberately not forwarded, since the terminal already delivers it to the whole foreground process group; the launcher just stops dying underneath the engine. Exit codes and signal-death status pass through unchanged. Windows installs no signal handlers.

omo doctor finds and reaps stale engines

omo doctor now lists interactive engine processes that earlier launcher versions orphaned (reparented to pid 1), with pid, age, and tty. Cleanup is explicit and per-pid:

omo doctor --reap <pid> [pid...]

It re-checks the live process table and refuses any pid that isn't an orphaned interactive engine at that moment (live sessions, rpc/app-server engines, or non-engine processes are never touched). There's no pattern-matching kill.

Corrupt install diagnosis at launch

A field report on Windows showed npm dying mid-install with EBUSY (a running engine locks native modules), leaving a tree with senpi's dist/cli.js intact but core modules missing. Launch then crashed with a raw ERR_MODULE_NOT_FOUND stack. The launcher preflight now verifies the brand contract module next to the CLI and, on a partial tree, fails fast with one actionable line: the missing file, the interrupted-upgrade diagnosis, and the reinstall command. On Windows it additionally explains that running omo/senpi processes cause exactly this partial state.

Senpi 2026.8.26-2 and the config-watch fix

The pinned engine moves from 2026.8.26 to 2026.8.26-2 across the root workspace, omo-ai launcher, adapter, and task engine, aligned with the config-watch compatibility work (issue #7064, tracked by this worktree).

Senpi's config-reload host rejects watch registrations that cover protected agent-dir paths (auth.json, sessions/, logs/) unless root-anchored filter globs prove each watched path avoids them. OmO previously dropped any target whose path merely contained a protected path, which silently killed home-directory config watching. The filter now inspects the target's globs: targets whose root-anchored globs provably avoid the protected paths are kept, so ~/.omo/omo.jsonc changes are picked up live again, while unsafe targets are still never emitted. The user-config creation watch also derives its glob set from the actual config directory name instead of a hardcoded /omo.

DAG: detached waits and restart recovery
  • Wait detaches by default. A model-facing dag wait used to hold the tool call open until the run settled, freezing the session turn for the whole run (38+ minutes observed in the wild). It now returns immediately with a detached envelope and a live snapshot; node completions and the terminal run wake still reach the session through the idle coordinator. Pass detach: false to restore blocking. The eval SDK and dag library keep blocking semantics internally, and an already-terminal run still returns its final result at once.
  • Orphaned runs get adopted. A paused run whose parent session id never returns (fork, compaction, restart under a new id) was skipped forever as foreign. Recovery now adopts a run when there's proof of abandonment: the lease holder is this process or a dead pid. Live foreign holders and absent-holder records stay untouched. Adopted runs are fully re-homed (parent and root) and the resume is journaled.
  • Bridge attaches after recovery. The RPC bridge used to attach before paused runs resumed, so its first omo.dag.updated snapshot showed stale paused state and downstream consumers flipped threads to Ready while children kept working. The first pushed snapshot is now the recovered one.
  • Status UI rows and formatting were updated alongside the detach work.
Model and fallback policy
  • The unspecified-high chain is rebuilt opus-first: claude-opus-5 xhigh -> glm-5.3 max -> kimi-k3 max (previously kimi-k3-led). The category default follows the new head on both harnesses.
  • The vercel provider leaves every builtin fallback lane; vercel-only registries fall through to the pinned system default, and the vercel-only minimax-m2.7-highspeed rung is dropped from explore/librarian.
  • quotio-openai is purged from chain sources; every rung listing openai now also carries openai-codex.
  • Telemetry vocabulary drops the quotio-openai key and gains glm-5.3 for zai-coding-plan/opencode-go; the bundled capabilities snapshot gains the bare glm-5.3 entry.
  • The dead-chain category alert (all providers of one builtin category unconnected) is now an info-level notice instead of a yellow warning, since every other category remains usable. Suppression config and once-per-session dedup are unchanged.

If your setup depended on the vercel or quotio-openai default lanes, configure those providers explicitly.

Skills and ulw-loop CLI
  • omo-agent-toolkit ulw-loop help (and bare help/--help/no-args) now prints real subcommand help instead of a self-referential pointer or an unknown-component error; each subcommand answers --help/-h.
  • The ulw-loop skill gets a minimal explicit 5-step run contract, drops a 40-line CLI-resolution bash blob in favor of the resolved CLI path now carried in the skill pointer, and fixes an update_plan leak (senpi exposes todo).
  • When the ulw-loop pointer accompanies the directive, bootstrap defers to the loop's run contract, ending the dual-bootstrap confusion.
  • mass-ulw, ultrawork, and dag-library skill docs are updated for the detached-wait default.
Toolchain, CI, and build
  • Bun 1.4.0 is now the pinned workspace runtime in both CI and the devcontainer (previously 1.3.12 in the container), with a test guarding against drift.
  • Root-test CI now shards every OS two ways, extending the proven Windows shape: shard 1 covers packages/omo-opencode + packages/memory-core in one serial process, and shard 2 runs a shared serial quarantine (one source of truth in script/root-test-serial-quarantine.ts) before the remainder. Job-level sharding replaced in-job bun test --parallel on Linux and macOS, which re-ran the heavy preload per file under --isolate and OOM-killed the 7 GB hosted runners; the dead bunfig.root.parallel.toml was removed. Two Windows tests that were running twice per shard now run once.
  • Parallel lsp-daemon build artifacts are isolated to avoid dist races.
  • Committed Senpi extension bundles and the generated model-capabilities snapshot are regenerated fresh for this release, so shipped runtime payloads match the source and the 2026.8.26-2 pin.
Breaking changes

No new breaking changes in beta.22 itself. Note two behavior shifts: the DAG wait action detaches by default (pass detach: false for the old blocking behavior), and default fallback chains no longer include vercel or quotio-openai lanes.

Upgrade
npm i -g omo-ai@beta

The beta channel contract is unchanged: every version is a prerelease published under --tag beta. After upgrading, run omo doctor once; if it lists stale orphaned engines from earlier launcher versions, clean them up with omo doctor --reap <pid>. Devcontainer users should rebuild the container to pick up Bun 1.4.0.

View originalPermalink
How v5.0.0-beta.22 went

v5.0.0-beta.21

Pre-release
Added 1
  • Add artifact-level regression tests that inspect built bundles to prevent minification from silently stranding lazy barrels
Changed 1
  • Update @anthropic-ai/sdk pin to satisfy claude-agent-sdk's >=0.93.0 peer range
Fixed 5
  • Fix crash during mass-ulw, DAG, and task work caused by pi-tui barrel being accessed before it was loaded by sharing warm-up state across bundle copies via globalThis symbols
  • Prevent task bundle status widget timer from killing sessions by containing render faults to log once and skip instead of propagating errors
  • Long sessions no longer stop compacting after ten successful compactions
  • Todo snapshots no longer recursively retain full history, preventing KB to MB growth that refilled context after compaction
  • Manual /compact command no longer aborts an in-flight continuation when there is nothing to summarize

From oh-my-openagent

OmO 5.0.0-beta.21 — hotfix

If beta.20 killed your sessions, this is the release you want.

The crash that killed sessions (beta.20) — fixed

Error: The @earendil-works/pi-tui barrel was accessed before it was loaded terminating the whole OmO process during mass-ulw / DAG / task work (#7339, #7340, #7351). Root cause: omo-task.js ships as an independent bundle with its own private copy of the lazy pi-tui state; the compose-level warm-up only warmed omo.js's copy, the minifier collapsed the cold accessor into an unconditional throw, and the status-widget timer detonated it outside any try/catch.

The fix (#7354) is three layers deep:

  • Shared warm-up state across bundle copies — both lazy boundaries (pi-tui and the senpi engine barrel) keep their memoized state on globalThis under process-wide symbols, so warming any copy satisfies every copy.
  • The task bundle warms its own copy at registration — keeping its dynamic import alive through minification.
  • Render-fault containment — task/DAG status widgets render from bare timers; a faulting frame now logs once and skips instead of killing your session. Ever again.
  • Plus artifact-level regression tests that inspect the built bundles so minification can never silently strand a lazy barrel again.
Compaction reliability (the beta.19 complaints) — Senpi 2026.8.26 (#1124)
  • Long sessions no longer stop compacting after ten successful compactions (the absolute cap is telemetry-only now; the failure circuit breaker still guards runaways).
  • Todo snapshots no longer recursively retain full history (KB -> MB growth that refilled context right after compaction).
  • A manual /compact with nothing to summarize no longer aborts an in-flight continuation.
Install hygiene (#1125)
  • bun i -g omo-ai@beta no longer warns incorrect peer dependency "@anthropic-ai/sdk@0.91.1" — the SDK pin now satisfies claude-agent-sdk's >=0.93.0 peer range (audited symbol-by-symbol, additive-only).
Credits

Community diagnosis nailed this one: @sanguneo (#7350), @NetVar1337 (#7341), @amsminn (#7352) — all three independently identified the bundle-copy split; their approaches are co-authored into the fix commits. Compaction fixes by @haamsuk-collab (#1124).

Install: npm i -g omo-ai@beta


  • a17b91cdc Merge pull request #7356 from code-yeongyu/release/20260826-beta21-pin
  • 1007748e5 Merge pull request #7354 from code-yeongyu/fix/pi-tui-cross-bundle-warmup
View originalPermalink
How v5.0.0-beta.21 went

v5.0.0-beta.20

Pre-release
Changed 8
  • Cursor quota exhaustion is now classified separately from context overflow in provider recovery
  • Stream-stall retries now use explicit profiles, shared budgets, classifiers, backoff planning, and failure diagnostics
  • Anthropic refusal fallback now preserves returned-model pricing
  • Reasoning replay, Bedrock redacted reasoning, Z.AI metadata, Azure toolChoice, Google thinking mappings, Kimi cached-token accounting, and Copilot policy-rate handling receive compatibility fixes
  • xAI now uses the Responses API path with encrypted reasoning replay, with Grok 4.6 as the refreshed default
  • Credential pools now support slot-preserving mutations and slot-specific logout
  • OAuth refresh now preserves sibling and pinned credential slots
  • Renamed /start-work command to /ulw-execute with hard cutover and no old-name alias
Fixed 10
  • Compaction no longer assumes provider usage is present
  • Truncated summaries are now rejected rather than replayed as complete
  • Settings diagnostics now identify exact file and key paths
  • State-file permissions, BOM handling, and invalid-settings behavior now have regression coverage
  • Extension cleanup after failed extension factories
  • Nested skill discovery
Deprecated 1
  • start_work configuration key is deprecated in favor of ulw_execute and will emit a warning for one release

From oh-my-openagent

OmO beta.20

Beta.20 is the current beta release of the OmO multi-harness distribution and native edition.

  • OmO: 5.0.0-beta.20
  • OmO Native: omo-ai@5.0.0-0.beta.20
  • Senpi engine: @code-yeongyu/senpi@2026.8.25
Senpi 2026.8.25

This release includes the current upstream-integrated Senpi line, including the upstream RPC queue-clearing surface from upstream/main@a79b37334, preserved prompt/message ordering, deterministic RPC coverage, and the fork-specific compatibility repairs recorded after the sync.

Provider recovery is stronger in this release:

  • Cursor quota exhaustion is classified separately from context overflow.
  • Stream-stall retries use explicit profiles, shared budgets, classifiers, backoff planning, and failure diagnostics.
  • Anthropic refusal fallback preserves returned-model pricing.
  • OpenAI-compatible reasoning controls and provider-neutral toolChoice remain available.
  • Reasoning replay, Bedrock redacted reasoning, Z.AI metadata, Azure toolChoice, Google thinking mappings, Kimi cached-token accounting, and Copilot policy-rate handling receive compatibility fixes.
  • xAI uses the Responses API path with encrypted reasoning replay, with Grok 4.6 as the refreshed default.

Credential and session continuity also improve:

  • Credential pools support slot-preserving mutations and slot-specific logout.
  • OAuth refresh preserves sibling and pinned credential slots.
  • Compaction no longer assumes provider usage is present.
  • Truncated summaries are rejected rather than replayed as complete.
  • Settings diagnostics identify exact file and key paths.
  • State-file permissions, BOM handling, and invalid-settings behavior have regression coverage.

The release also carries extension and CLI fixes for cleanup after failed extension factories, nested skill discovery, malformed streamed tool-call arguments, corrected toolcall_start metadata, branded resume hints, and cross-platform shell behavior.

OmO beta.20
Exact native dependency

omo-ai@5.0.0-0.beta.20 depends exactly on:

@code-yeongyu/senpi: 2026.8.25

The native package is published on npm's beta channel. latest remains the intentional placeholder, so install the beta tag or the exact prerelease.

Configuration and migration

The unified ~/.omo/omo.jsonc surface remains the cross-harness configuration contract. Legacy configuration migration is lock- and journal-backed, with no-clobber diagnostics, migration markers, resumable backups, and dry-run/JSON modes.

Skill and command migration
Previous nameBeta.20 nameMigration
/start-work and start-work/ulw-execute and ulw-executeHard cutover; no old-name alias.
start-work-continuationulw-execute-continuationUpdate component paths and hooks.
omo-senpi-start-work-continuation-disabledomo-senpi-ulw-execute-continuation-disabledRename the flag.
skill_loaded: start-workskill_loaded: ulw-executeUpdate telemetry queries.
start_workulw_executeOld key reads for one release with a warning; new key wins.
omo executableomo-agent-toolkitUpdate direct invocations.

The current native inventory includes mass-ulw, ultrawork, ulw-plan, ulw-loop, ulw-research, hyperplan, init-deep, dag-library, onboarding, and give-me-tips. This inventory is not a claim that every listed skill was introduced in beta.20.

Reliability and orchestration

The beta.20 OmO line includes dependency-frontier DAG admission, honest paused run headers and resume leases, non-blocking reattach paths, reflection run-id collision protection, Bubblewrap degradation, lock-free journal scans and flushes, Atlas cleanup on early exits, surface/install attribution telemetry, and compiled native launcher/asset parity.

Upgrade instructions
Native edition
npm install -g omo-ai@beta
# or:
npm install -g omo-ai@5.0.0-0.beta.20
Multi-harness edition
bun install -g oh-my-openagent@5.0.0-beta.20
# or:
npm install -g oh-my-opencode@5.0.0-beta.20

Replace direct omo invocations with omo-agent-toolkit. Rename start_work to ulw_execute and use the new continuation-disable flag.

Verification

The release chain was verified in order:

  1. Senpi release dry-run, release gates, npm publication, and GitHub tag.
  2. OmO exact dependency/version checks, native payload, generated bundle freshness, frozen install, and package containment checks.
  3. npm beta metadata for omo-ai, the wrapper packages, and platform package surfaces.
  4. Rich release content was applied above the generated GitHub changelog while preserving the generated content below it.
Compatibility and known limitations
  • This remains a beta release; provider availability and quotas are external.
  • /start-work has no compatibility alias.
  • start_work is a one-release compatibility read path and emits a warning.
  • omo-ai is beta-only and latest remains a placeholder.
  • Platform smoke jobs may depend on runner/container runtime libraries; their failure does not invalidate the npm package payload when the package gates and platform publication checks pass.
Evidence sources
  • Senpi: v2026.8.24..v2026.8.25, af5f53b0d, a79b37334, 99c711255.
  • OmO: package.json, packages/omo-native/package.json, CHANGELOG.md, .github/workflows/publish.yml, and the get-unpublished-changes procedure.
  • Skill migration: e3cb1486d, cc57d3908, 2aece77f4.
  • QA evidence: local-ignore/qa-evidence/beta20/.

Desktop runtime work remains internal QA evidence for this release and is not being exposed as a public Desktop download from the OmO beta release.

View originalPermalink
How v5.0.0-beta.20 went

v5.0.0-beta.19

Pre-release
Added 2
  • Bind mass-ulw runs to a goal carrying result verification
  • Route dependency-ordered start-work lanes through a dag run
Changed 5
  • Refresh beta runtime dependencies
  • Pin biome to locked 2.4.15
  • Resync bundled ultrawork directive
  • Resync codex directive copies
  • Raise picomatch safety floor
Fixed 4
  • Accept title-based goal snapshots
  • Clean every plugin component check
  • Clean ulw-loop component checks
  • Capture residual followup evidence

From oh-my-openagent

  • b48ab1086 Merge pull request #7207 from code-yeongyu/release/v5.0.0-beta.19-source-state
  • 02ba00c7f Merge pull request #7203 from code-yeongyu/release/20260824-beta19-pin
  • 37bcb9cd0 Merge pull request #7198 from code-yeongyu/release/20260824-beta18
  • b26fafa99 test(deps): raise picomatch safety floor
  • 845d63211 chore(deps): refresh beta runtime dependencies
  • 8833800ae Merge pull request #7176 from code-yeongyu/fix/residual-followups-20260824
  • d982014de test(omo): capture residual followup evidence
  • 924c0c5c6 chore(web): pin biome to locked 2.4.15
  • 3f88bfb10 ci(codex): gate every plugin component check
  • ea8ee43b7 Merge pull request #7175 from code-yeongyu/feat/massulw-goal-verify
  • 76daf86b9 feat(skills): bind mass-ulw runs to a goal carrying result verification
  • a2eeacabb Merge pull request #7174 from code-yeongyu/initdeep-refresh-20260824
  • f7cdde8b5 docs(agents): refresh knowledge base for 2026-08-24 HEAD
  • 2a28ea8cd Merge pull request #7173 from code-yeongyu/fix/ulw-loop-component-check-20260824
  • 66de4fc15 chore(omo-codex): clean every plugin component check
  • 46aacea73 chore(omo-codex): clean ulw-loop component checks
  • f8ad86e0b Merge pull request #7171 from code-yeongyu/fix/ulw-checkpoint-snapshot-20260824
  • 680fa0dd8 Merge pull request #7170 from code-yeongyu/docs/main-profile-safety
  • a90944990 Merge pull request #7168 from code-yeongyu/docs/main-profile-safety
  • 7222b21aa fix(omo-codex): accept title-based goal snapshots
  • 302f3dd0d chore(ulw-loop): resync bundled ultrawork directive
  • da0d7bd54 chore(ultrawork): resync codex directive copies
  • 5eb9e6f4a docs(skills): require cloned profiles for agent-driven browser clears
  • f3642fcda Merge pull request #7167 from code-yeongyu/feat/start-work-dag-lanes
  • cabecc588 feat(skills): route dependency-ordered start-work lanes through a dag run
  • 0f06ba45e Merge pull request #7163 from code-yeongyu/feat/dag-tui-live-status

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7207 from code-yeongyu/release/v5.0.0-beta.19-source-state
View originalPermalink
How v5.0.0-beta.19 went

v5.0.0-beta.18

Pre-release
Added 1
  • Introduce omo worktree-sweep command as a first-class command to find stale task worktrees and normalize platform-specific paths
Changed 4
  • Apply separator rules consistently across Windows, macOS, and Linux in worktree-sweep
  • Review workers now keep their checkout until every lane finishes instead of losing the worktree while late lanes are still reading or validating
  • Update OmO Native to use Senpi 2026.8.23
  • Tighten OmO naming consistency
Fixed 3
  • Ignore both historical debug-log filename casings during Senpi cleanup
  • Normalize worktree-sweep porcelain paths at the parse boundary
  • Finish worktree-sweep separator parity for Windows

From oh-my-openagent

OMO 5.0.0-beta.18

Safer worktree cleanup, current Senpi, and sturdier native sessions

Worktree cleanup is now a first-class command - omo worktree-sweep finds stale task worktrees, normalizes platform-specific paths, and applies the same separator rules on Windows, macOS, and Linux.

Review workers keep their checkout until every lane finishes - parallel review agents no longer lose the worktree while late lanes are still reading or validating it.

OmO Native now rides Senpi 2026.8.23 - the release carries the latest session, runtime, and codemode fixes behind the beta channel.

This release also tightens OmO naming consistency and ignores both historical debug-log filename casings during Senpi cleanup.


  • 04acd0311 Merge pull request #7154 from code-yeongyu/release/v5.0.0-beta.18-source-state
  • b7da83e17 Merge branch 'dev' into release/v5.0.0-beta.18-source-state
  • 04535ba13 Merge pull request #7156 from code-yeongyu/fix/worktree-sweep-test-separator-parity
  • 0201f6744 fix(cli): finish worktree-sweep separator parity for Windows
  • 5c35a1a0a Merge branch 'dev' into release/v5.0.0-beta.18-source-state
  • 83f8efa56 Merge pull request #7155 from code-yeongyu/fix/worktree-sweep-path-normalize
  • 550fd5e1d fix(cli): normalize worktree-sweep porcelain paths at the parse boundary
  • 306a90633 test(omo-native): move SENPI_PIN contract to 2026.8.23
  • de5a42282 Merge pull request #7151 from code-yeongyu/feat/worktree-sweep
  • 5a21af66c fix(review-work): tear down the review worktree only after lanes finish
  • 5685d3b62 fix(review-work): lock and tear down review worktrees
  • f447933bc feat(cli): add omo-agent-toolkit worktree-sweep command
  • 70b959499 Merge pull request #7149 from code-yeongyu/fix/omo-brand-casing
  • 9d10bab17 Merge pull request #7148 from code-yeongyu/fix/omo-brand-casing
  • dcb02c95a fix(schema): use canonical OmO title
  • 04c92a514 fix(omo-native): preserve OmO display casing
  • e7c8186d8 Merge pull request #7147 from code-yeongyu/fix/telemetry-model-id-vocabulary-disclosure
  • 703431e6e docs(telemetry): align the privacy disclosure with provider-independent model ids
  • bc0f7ec9a feat(telemetry): export known model ids regardless of routing provider

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7154 from code-yeongyu/release/v5.0.0-beta.18-source-state
View originalPermalink
How v5.0.0-beta.18 went

v5.0.0-beta.17

Pre-release
Added 2
  • Add task.global_concurrency schema and default to omo-config-core
  • Re-exec the launcher under bun for bun-installed users in omo-native
Changed 2
  • Accept 0 as unlimited sentinel in task concurrency and residency settings
  • Allow 0 defaultConcurrency as unbounded in omo-opencode
Fixed 1
  • Honor target path semantics in omo-native

From oh-my-openagent

  • 0902c4a80 Merge pull request #7143 from code-yeongyu/release/v5.0.0-beta.17-source-state
  • 9faba4727 Merge pull request #7142 from code-yeongyu/fix/beta17-bun-path-fixtures
  • dcbe734a6 test(omo-native): make path fixtures platform explicit
  • 2a2323575 Merge pull request #7140 from code-yeongyu/fix/beta17-bun-path-delimiter
  • 74aa8ac58 fix(omo-native): honor target path semantics
  • 63bfdb770 Merge pull request #7134 from code-yeongyu/feature/task-lane-spill
  • 41a957e33 docs(omo-json): name lane saturation as the common spill trigger
  • fd759e564 feat(omo-config-core): add task.global_concurrency schema and default
  • 13a00bf1f Merge pull request #7130 from code-yeongyu/feat/task-concurrency-zero-unlimited
  • b57a9d346 build(assets): regenerate JSON schemas for zero-as-unlimited caps
  • bab473831 docs(reference): document 0 as unlimited for task concurrency caps
  • a51e454f7 fix(omo-opencode): allow 0 defaultConcurrency as unbounded
  • a208a9444 feat(omo-config-core): accept 0 as unlimited sentinel in task concurrency and residency settings
  • fa0603139 Merge pull request #7129 from code-yeongyu/feat/launcher-bun-auto-runtime
  • 27ba9b56a test(omo-native): keep the bare-omo-binary audit green for the new module
  • 0a6a1b1e1 feat(omo-native): re-exec the launcher under bun for bun-installed users

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7143 from code-yeongyu/release/v5.0.0-beta.17-source-state
View originalPermalink
How v5.0.0-beta.17 went

v5.0.0-beta.16

Pre-release
Added 5
  • Quick scanner nodes extract per-chunk facts into bounded file reports with formula-based scaling
  • Unspecified-high writer nodes own disjoint subtrees and write AGENTS.md files from bounded reports
  • Root writer and verify node gate produced files before the run can claim success
  • Composite ULW invocations now detect and inject hidden skill pointers for all matched skills in a single turn
  • ulw plan now loads ultrawork and ulw-plan via new omo-ulw-plan:skill-pointer custom type
Changed 9
  • init-deep now runs as a formula-sized DAG map-reduce instead of flooding the main session with discovery results
  • Main session now reads only verify verdict instead of chunk reports or raw node output for context protection
  • Small repos with N_quick < 4 keep an inline path; larger repos chain one run per top-level directory instead of overflowing
  • Mass-ulw and ulw-skill-pointers components consolidated into a single skill-pointers component with one uniform target table
  • Ultrawork trigger no longer uses lookahead guard, so any ulw mention arms it
  • Typing mass ulw-loop now loads ultrawork, mass-ulw, and ulw-loop together instead of nothing
Fixed 4
  • Overlapping ULW keyword mentions now fire all matched skills instead of being silently swallowed
  • Cursor streams no longer die under heartbeats in Senpi 2026.8.22
  • Shutdown no longer throws on pending permission prompts in Senpi 2026.8.22
  • Ruby and Julia kernels can now boot under load without timing out in Senpi 2026.8.22

From oh-my-openagent

OMO 5.0.0-beta.16 — Formula-Sized init-deep, One ULW Keyword Table, and a Steadier Senpi 2026.8.22

The center of gravity: init-deep stops flooding your main session and runs as a formula-sized DAG map-reduce, every ULW keyword now routes through one exception-free skill-pointer table so composite invocations load everything they name, and the bundled Senpi 2026.8.22 engine stops Cursor streams from dying under heartbeats, keeps shutdown from throwing on pending permission prompts, and lets Ruby and Julia kernels boot under load without timing out.

🗺️ init-deep becomes a formula-sized DAG map-reduce (#7123)

Large repos no longer blow the orchestrator's context exactly when hierarchical AGENTS.md coverage matters most. The old flow collected every explore result into the main session; the new one replaces discovery and generation with a DAG map-reduce whose shape is computed by one formula in an eval cell, not vibes:

  • Quick scanner nodes extract per-chunk facts into bounded file reports. Chunks are 400 KB of source, roughly 100k tokens against a ~150k usable quick window, so N_quick = ceil(S / CHUNK), bin-packed by directory.
  • Unspecified-high writer nodes own disjoint subtrees and write the AGENTS.md files from about 12 reports each: N_high = ceil(N_quick / 12).
  • A root writer consumes only per-subtree digests, and a verify node gates every produced file before the run can claim success.
  • The always-reduce rule makes context protection structural rather than aspirational: the main session reads only the verify verdict, never chunk reports or raw node output.

Small repos (N_quick < 4) keep an inline path, and repos that would exceed task.dag.max_nodes_per_run chain one run per top-level directory instead of overflowing. The scoring matrix, templates, file-writing rule, and the Phase 5 snapshot/mode contract that the init-deep-advisor reads are all preserved unchanged. The rewrite even nets out 512 characters smaller.

🎯 Composite ULW invocations load every skill they name (#7120)

"mass ulw loop" used to arm ultrawork and point at mass-ulw, then quietly drop the ulw-loop skill the phrase names. "mass ulw research" had the same gap. A new component detects ulw loop / ulw-loop / ulwloop and the research equivalents in any case and injects one hidden skill pointer per matched skill, so a composite invocation loads ultrawork, mass-ulw, and the named skill together in a single turn.

Suppressions mirror mass-ulw per skill: extension-source inputs, a raw /skill: command for the same skill, and an already-expanded skill block never inject. Queued prompts carry the pointers appended inside the one message, so the group survives senpi's one-at-a-time queue drain intact. A new e2e (ulw-skill-pointers-e2e.mjs) drives the built plugin through a sandboxed live senpi run per prompt and asserts each pointer rides as a hidden custom_message in the session JSONL, that plain "mass ulw" stays pointer-free, and that the real agent dir is untouched.

🧮 One exception-free ULW keyword table (#7122)

The mass-ulw and ulw-skill-pointers components were the same mechanism written twice, and their ulw(?!-) lookaheads silently swallowed overlapping mentions: "mass ulw-loop" fired neither mass-ulw nor ultrawork. Both are now replaced by a single skill-pointers component holding one uniform target table (mass-ulw with its aliases, ulw-plan, ulw-loop, ulw-research) with no cross-keyword exceptions. Overlapping keywords all fire, and each matched skill gets its own hidden pointer. The ultrawork trigger likewise drops the (?!-) guard, so any ulw mention arms it.

What changes at your keyboard:

  • Typing "mass ulw-loop" now loads ultrawork + mass-ulw + ulw-loop together instead of nothing.
  • "ulw plan" loads ultrawork + ulw-plan, via the new omo-ulw-plan:skill-pointer custom type.
  • Existing custom types (omo-mass-ulw:skill-pointer, omo-ulw-loop/-research:skill-pointer) stay stable.
  • Flag consolidation: omo-senpi-mass-ulw-disabled and omo-senpi-ulw-skill-pointers-disabled are replaced by a single omo-senpi-skill-pointers-disabled. Move your flag if you had one set.

Only structural dedup remains: extension-source inputs, raw /skill: commands for the same skill, expanded skill blocks, and the <ultrawork-mode> tag-pair guard. The e2e was rebuilt as skill-pointers-e2e.mjs, proving the overlap case ("mass ulw-loop" carries the directive plus both pointers), the new plan pointer, and that plain "mass ulw" stays loop- and research-free; mass-ulw-prompts-e2e.mjs is unchanged and still passes.

📐 mass-ULW planning sizes waves by work grain (#7121)

The old "target 5-8 nodes per wave" cap is gone. Wave sizing is now grain-based: one node per genuinely independent chunk, with coverage-beats-cost scoped to quick map and research waves, and an explicit fan-in contract for waves wider than about 10 nodes, where aggregator and verification nodes read bounded per-node file reports instead of raw output. The capacity numbers are reframed as config defaults (task.dag.max_nodes_per_run / max_runs_per_session) with queue-time framing rather than "hard caps / slot budget" wording. Mass harvests get a sharding rule of their own: nodes aren't units of work, so N_nodes = ceil(total_items / items_per_node), with roughly 50 to 200 items per quick node bounded by the <=5k-token report contract, and chained runs plus per-run aggregators once one run's cap is exceeded.

📚 Docs stamped against dev HEAD

A sweep refreshed stale claims across the AGENTS.md files: the root stamp moved to 2026-08-22, the tools (15 dirs) and features (25 modules) counts were corrected, the CI Bun pin now reads 1.4.0 with the lagging devcontainer 1.3.12 pin called out, the Windows CI sharding claim matches the workflow table (2 shards), and the omo-senpi component list was corrected from fifteen to the eighteen actually registered (native-badge, onboarding, and init-deep-advisor were missing), with agent-home noted as a non-component resolver.


⚙️ Bundled Senpi 2026.8.22 — the engine wave

The host pin moves to 2026.8.22. What you feel:

  • Cursor streams survive heartbeats and checkpoints. The provider now matches the official Cursor CLI's stream recovery: its 30s health deadline is refreshed on every inbound frame, and pre-turnEnded stalls or transport deaths are silently retried with bounded backoff, resuming from the latest conversation checkpoint with the originally pinned model. Long-running local tools and long xhigh thinking turns previously died with Cursor stream ended before turnEnded: inbound stream stalled and immediately rotated the fallback chain.
  • Clean shutdown with prompts pending. The permission-system builtin extension no longer turns a rejection during session_shutdown into an unhandled promise rejection / uncaughtException when permission prompts are still pending.
  • Ruby and Julia kernels boot safely under load. Eval cells now wait for the subprocess ready signal before execution timeouts arm, so interpreter startup under load can no longer time out a state-setting cell and silently restart the kernel before the next cell runs.

Full engine changelog: senpi v2026.8.22.


🧹 Roundup
  • Dependency pins: the omo package now depends on senpi 2026.8.22, and bun-types moved 1.3.14 to 1.4.0 in the Codex plugin shared manifest, finishing the Bun 1.4 graduation started in beta.13.
  • Bundle freshness: the committed omo-senpi extension bundles were regenerated on Linux after each ULW component change, so the CI freshness gate and your installed extension agree byte-for-byte.

Install / upgrade:

bun i -g oh-my-opencode@beta
bun i -g oh-my-openagent@beta
bun i -g lazycodex-ai@beta
npm i -g omo-ai@beta
View originalPermalink
How v5.0.0-beta.16 went

v5.0.0-beta.15

Pre-release
  • 024cd9fe0 Merge pull request #7116 from code-yeongyu/release/v5.0.0-beta.15-source-state

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7116 from code-yeongyu/release/v5.0.0-beta.15-source-state
View originalPermalink
How v5.0.0-beta.15 went

v5.0.0-beta.14

Pre-release
Added 6
  • Side sessions now persist until deletion, with a picker allowing multiple retained sessions at once
  • OpenGateway provider ships 60 tool-capable models when OPENGATEWAY_API_KEY is set
  • Commit attribution can be configured via git_master section in omo.jsonc with commit_footer and include_co_authored_by options
  • Delegation telemetry with delegation_completed and category_config event families
  • ulw-plan adapts question delivery to planning stance with batch, one-by-one, and examples-first renderers
  • Paged output becomes a first-class deliverable with print-paged-media.md design reference
Changed 3
  • Side session keyboard semantics changed: Esc Esc returns to Main without deleting the side, Ctrl+C from empty composer deletes only the visible side, and Ctrl+/ opens picker from related views
  • OpenGateway enriches models from owning provider's models.dev catalog with OpenRouter as fallback
  • Delegation telemetry uses explicit scalar allowlist to exclude prompts, responses, names, paths, and error text
Fixed 5
  • Bundled Senpi 2026.8.21-2 engine resolves two CPU-spin freezes
  • Message rendering is instantaneous in Senpi 2026.8.21-2
  • Cursor turns no longer hang for five minutes in Senpi 2026.8.21-2
  • Revived nodes stay in the run and are tracked by the scheduler itself
  • Model vocabulary now covers every rung a builtin category can route to, fixing 126 provider/model pairs that previously exported as custom/custom

From oh-my-openagent

OMO 5.0.0-beta.14 — Retained Side Sessions, OpenGateway, and a Snappier Senpi 2026.8.21-2

The center of gravity: /btw grows into a retained multi-session picker, a new credential-gated OpenGateway provider ships 60 tool-capable models, commit attribution becomes configurable, and the bundled Senpi 2026.8.21-2 engine kills two CPU-spin freezes, paints your messages instantly, and stops Cursor turns from hanging for five minutes.

💬 /btw keeps every side conversation (#7086, #7087)

Side sessions now persist until you delete them, and a picker lets you hold several at once. Contributed by @ToToKr:

  • /btw <question> creates another side instead of reusing the last one; starting BTW while viewing a side creates a sibling under the same main conversation.
  • Bare /btw opens a picker with three sections: Main conversation, retained sides listed oldest-first as BTW #1, BTW #2 with question summaries, and a New BTW action. The current destination is preselected, and the picker and long transcripts scroll with the mouse wheel.
  • Key semantics changed, retrain your fingers: Esc Esc returns to Main without deleting the side (closing BTW used to delete it), Ctrl+C from an empty composer deletes only the visible side, and Ctrl+/ opens the picker from any related view, now also recognized on terminals that encode it as Ctrl+7.
  • The 64-message / 64 KiB read-only context inheritance and the guarantee that side traffic never touches the main transcript are unchanged.

Follow-up review fixes in #7087 (also @ToToKr) guard BTW creation when no parent prompt exists, preserve promptless picker access, and revalidate the parent prompt at selection time so a stale boundary is never reused. Guide: docs/guide/btw.md.

🌐 OpenGateway provider, gated on your key (#7078)

Set OPENGATEWAY_API_KEY (or add an opengateway entry to opencode's auth.json) and 60 tool-capable models appear with correct context windows and pricing. OpenGateway's /v1/models serves bare ids with no metadata, so a new generator enriches them from the owning provider's models.dev catalog with OpenRouter as fallback, and excludes models without tool capability. The injection is credential-gated on purpose: without a key you see nothing new instead of dead models. User config wins at every level, and repo-retired GPT models were screened out of the catalog (62 to 60 entries).

✍️ Commit attribution is yours to configure (#7092)

The omo commit footer and the sisyphus-dev-ai co-author trailer can now be turned off. A new git_master section in omo.jsonc carries commit_footer (true for the builtin footer, a string to replace it, false to disable) and include_co_authored_by (default true). Both default to today's behavior, the settings flow into delegated children, and the schema, docs/reference/omo-json.md, and docs/reference/configuration.md document the whole block.

📊 Delegation telemetry, honestly scoped (#7091)

Two new anonymous native event families measure how delegation actually performs: delegation_completed and category_config. The projection is an explicit scalar allowlist, so prompts, responses, names, paths, and error text are excluded by construction, with an exact-key-set test making sure a new field can never ride along silently. User category, agent, provider, and model names mask to custom; only counts leave the machine. Data quality is reported rather than guessed: a missing cost is never a zero cost, token and duration fields carry status flags, and reconciled or crashed rows are marked so they cannot bias aggregates. The model vocabulary now covers every rung a builtin category can route to, fixing 126 provider/model pairs that previously exported as custom/custom. PostHog also derives an approximate country server-side now; the app still never authors or stores an IP, and docs/legal/privacy-policy.md discloses all of it.

🧭 ulw-plan adapts to how you answer (#7089)

The planner calibrates question delivery to your planning stance instead of interrogating everyone the same way. Three renderers over the same surviving forks: batch, one-by-one, and examples-first for users who answer better by critiquing concrete options than by facing a blank page. The opening stance is derived from planning-style episodes in projected memory, override phrases like "you decide" pass three gates and never silently authorize an irreversible or spend decision, and the profile is an append-only episode log with no scores or cached persona. Onboarding can seed a hypothesis from other harnesses' session history, always at low confidence, style-only, never content.

🖨️ Paged output becomes a first-class deliverable (#7099, #7098)

PDF reports and print pipelines get a real authoring reference and a real verification doctrine. The frontend skill gains a print-paged-media.md design reference covering the page box, break control, and the keep-together side effect that strands a callout alone on a near-empty page; visual-qa now admits paginated documents, evidenced by every page rendered to an image, with extracted text explicitly ruled out as evidence. The mass-ULW verification wave learns the same lesson: a paginated deliverable is verified by rendering and inspecting every page, sampling is a failure. ulw-research also activates on combined "mass ulw research" invocations so the delivery gates load from either path.

🕸️ DAG runs get harder to fool and harder to break
  • Revived nodes stay in the run (#7106). A node you revive mid-flight is now tracked by the scheduler itself; a run can no longer declare itself finished while your revived node is still working, and it fails loudly if it ever could.
  • Parent-side verification directive (#7080). DAG completion payloads now tell the orchestrating parent to treat the claim as false until proven: read the artifacts, run the commands, and send corrective instructions back to the exact node until its own verification passes. Non-DAG completions are byte-identical.
  • Real errors, surfaced (#7105). The eval SDK used to swallow non-start DAG errors as successes and report a definition_conflict as "no run_id". Every response now routes through a choke point that rethrows the tool's own code and message.
  • Windows lock contention (#7107). Filesystems that refuse hard links (EPERM/EACCES on NTFS ACLs, ReFS, network shares) no longer crash the losing racer; the lock falls back to an equally atomic exclusive open and the loser waits as designed.
🪟 Windows: the console flashes are gone

Nineteen spawn sites across three PRs stop popping black console windows on the desktop. @sanguneo diagnosed the root cause in #7082: the detached memory reflection supervisor runs console-less, so its children allocated fresh visible consoles on every deadline or cleanup, and pinned the whole launch chain with a source-level windowsHide audit. @grim-susemi covered 11 recurring detached and background sites in #6991 (lsp-daemon, MCP OAuth, codegraph, comment checkers, ulw-loop status). #7102 finished the sweep on the last three sites (spawnNode, memory people-ask, model preflight). No-op off Windows.

🔁 ulw-loop respects session boundaries (#6914, #7112, #7103)

Two omo sessions in the same repo no longer stomp on each other's ULW plan. @feelsodev scoped every ulw-loop write to a per-session ledger in #6914, complete with a cross-session isolation probe and Windows fixture hardening. #7112 (co-authored with Altair Li and @feelsodev) closed the read side: the status probe now resolves the host session id from the event context and passes it explicitly, failing closed when none is available instead of adopting repo-global state. And #7103 makes every steering submit in a repo with no active plan ~36ms faster by skipping the status spawn entirely when no ledger directory exists.

🧰 Bun 1.4.0 and the dependency wave (#7079, #7075)

CI, publishing, and every committed bundle now run on Bun 1.4.0, after #7075 briefly rolled back to 1.3.14 while the Windows tail was finished. Floors moved with it: OpenCode plugin ABI 1.15.13 to 1.18.19, OpenTUI 0.2.16 to 0.5.6, commander 15, js-yaml 5. Anyone pinning an older OpenCode host needs to move.


⚙️ Bundled Senpi 2026.8.21-2 — the engine wave (#7094, #7111)

The host pin moves from the previous beta's engine to 2026.8.21 and then 2026.8.21-2. What you feel:

2026.8.21
  • Your message paints instantly. Enter now renders an optimistic pending bubble at once instead of waiting for the provider round-trip; the canonical message replaces it in place, and rejected or command-handled inputs remove it.
  • The TUI stops pegging a core under provider-error storms. Contended settings-lock waiters used to busy-spin on the main thread and freeze the render loop; they now sleep through Atomics.wait, fallback-chain canonicalization is memoized per error burst, and OAuth-lane settings loads are cached by mtime and size.
  • Settings reads are lock-free. Writers publish atomically via temp file plus rename, so reads never join a lock convoy and never observe a torn write.
  • Claude policy refusals fail immediately on the claude-sdk-oauth lane with the real reason, instead of hanging ~90 seconds into the watchdog and re-billing the conversation on retry.
  • monitor prompting matches the real PTY contract, with worked recipes so the agent waits the way the tool actually behaves.
  • Provider catalogs refreshed: the vercel-ai-gateway Grok vendor slug moved xai/ to spacexai/, and opencode delisted deepseek-v4-flash-free.
2026.8.21-2
  • The auth store gets the same lock-spin fix, so multi-session OAuth-refresh contention can no longer burn a core.
  • The model picker releases before the auth round trip. Choosing a subscription-OAuth model like Cursor no longer freezes a frame of the previous model on screen while the network call resolves.
  • Cursor turns end when the server says they ended. A decoded turnEnded is definitive completion with a 5s drain, and silent streams fail in 30s (90s if heartbeat-only) instead of sitting out the 5-minute idle timeout.
  • JavaScript eval cells accept local:// paths like every other kernel.

Full engine changelogs: senpi v2026.8.21 and v2026.8.21-2.


🧹 Roundup
  • mass-ULW answers to more names (#7076): ulw mass, ulwmass, mulw, and meth now trigger it alongside the existing spellings; the guard that keeps ulw-plan from matching is intact.
  • Background completion notifications reach the right project (#7077): the live server route now carries its registered directory into the SDK client instead of defaulting to the server's.
  • The ultrawork build fails loudly on stale tokens (#7081): wait_for joined the forbidden-token list, so a directive can never again tell the model to call a tool that does not exist. #7085 briefly dropped the goal-registration mandate and #7088 restored it verbatim, netting to no change in the shipped directive.
  • Docs caught up with the code (#7093): a 22-file sweep corrects config migrate, documents the update command, fixes boulder and --codex-autonomous claims, and describes the telemetry identifier and cleanup scope accurately.
  • Provenance gate diagnoses partial clones (#7101): an uninitialized submodule now reports itself, with the exact git submodule update --init --recursive fix, instead of raising a false license-pin alarm.

Thank you to the community contributors in this release:

  • @ToToKr: the multi-session BTW picker (#7086) and its review follow-ups (#7087)
  • @feelsodev: ulw-loop session isolation (#6914) and co-authorship on the status-probe fix (#7112)
  • @sanguneo: the win32 memory reflection worker console fix with its windowsHide audit (#7082)
  • @grim-susemi: windowsHide across 11 detached and background spawn sites (#6991)
  • Altair Li: co-author on the ulw-loop status-probe session scoping (#7112)
View originalPermalink
How v5.0.0-beta.14 went

v5.0.0-beta.13

Pre-release
Added 8
  • dag retry command returns failed, cancelled, and skip-cascaded nodes to a fresh attempt while keeping cached results for completed nodes, with support for prompt-corrected retries on a single node
  • dag send command routes messages to a node's child with delivery semantics including steer, revive, and queued modes, with typed refusals for non-continuable children
  • dag amend command accepts an edited definition, SHA-256-fingerprint-diffs every node, and re-runs only changed and added nodes plus their transitive dependents
  • /btw command opens a temporary side session on the same model and agent without polluting the main transcript, with read-only access to recent main context
  • Three new journaled event types: dag.node.retried, dag.node.steered, and dag.definition.amended to record deliberate re-runs and amendments
  • JS SDK gains retry, send, and amend wrappers
  • Status widget shows x<attempt> badge on re-run nodes and /dag shows amended x<n> with node errors prefixed by error code
  • Two DAG wait-hang classes are pinned by bounded regression tests for resident-cap saturation and terminalization during subscription setup
Changed 7
  • Per-node result artifacts are written atomically with temp file, fsync, and rename to prevent truncated results from crashes mid-retry
  • Fallback-architect notices, tips, task-completion cards, team-member liveness warnings, and memory notices now render through one shared padded notice box
  • Completion cards lead with a tone glyph and task name, with metadata on a dim second row and continuation hints behind expansion
  • Senpi adapter is now a first-class mandatory-QA surface with machine-enforced evidence-path contract
  • Bun upgraded from 1.3.14 to 1.4.0 stable across all CI, publish, and platform-build workflows
  • Senpi 2026.8.20-2 binary built with Bun 1.4.0 stable and npm publishing graduated to stable Bun 1.4 from canary channel
  • Dependencies updated including posthog-node 5.49, puppeteer-core 25.8, @clack/prompts 1.7, MCP SDK 1.30, js-yaml 4.3.1, picomatch 4.0.5, bun-types 1.4.0, Biome 2.5.9, @types/node 26.2.0, vitest 4.1.11, and protobuf 2.14.0
Fixed 6
  • Model fallback no longer goes silent when the same error occurs on a different model by scoping dedupe keys per model
  • Skipped retry now returns its key instead of burning it forever
  • Model identity including provider, model, and variant travels through the fallback path so reasoning-effort selection survives fallback and recovery
  • Watchdog timers are now generation-scoped so timers from abandoned attempts cannot hijack later turns
  • Manual model change resets the fallback watchdog, in-flight retry flag, and retry-key set
  • /doctor reflection health is now deterministic using an injectable clock instead of wall clock

From oh-my-openagent

OMO 5.0.0-beta.13 — Recoverable Graphs, Side Conversations, and a Faster Senpi 2026.8.20-2

The center of gravity: a failed DAG run is no longer a total loss, /btw gives you a second conversation without burning your main context, and the bundled Senpi 2026.8.20-2 engine ships a large performance + Cursor-correctness wave.

🕸️ mass-ulw: retry, steer, and amend a live graph

A graph that lost one node to a flaky tool call used to mean re-running the whole thing and paying for every child again. Not anymore:

  • dag retry returns failed, cancelled, and skip-cascaded nodes to a fresh attempt while every completed node keeps its cached result. Prompt-corrected retries (retry + prompt) are supported for exactly one node.
  • dag send routes a message to one node's child with real delivery semantics — steer into a running child, revive a finished-but-resident child with its context intact, queued with a durable queue position when the child cannot take it yet. Non-continuable children get typed refusals (node_not_continuable, node_has_no_task; an unknown node gets node_not_found) that name the remedy.
  • dag amend accepts an edited definition against the same run, SHA-256-fingerprint-diffs every node, and re-runs only changed + added nodes plus their transitive dependents. load_skills is deliberately outside the fingerprint, so a skills-only edit re-runs nothing.
  • Per-node result artifacts are written atomically (temp file + fsync + rename), so a crash mid-retry can no longer leave a truncated result a reader would trust.
  • Three new journaled event types — dag.node.retried, dag.node.steered, dag.definition.amended — record every deliberate re-run and amendment explicitly in the journal. All strictly additive: schemaVersion stays 1, documented in docs/reference/mass-ulw-protocol.md with an explicit no-break guarantee.
  • The status widget shows an x<attempt> badge on re-run nodes; /dag shows amended x<n> and prefixes node errors with the error code. A lost amend race is now a clean run_still_active refusal instead of a run wedged on journal replay.
  • The JS SDK gains retry, send, and amend wrappers, and the mass-ulw skill documents the full refusal matrix.
💬 /btw — ask a side question without polluting the main thread

/btw <question> (alias /side) opens a temporary session on the same model and agent. Ctrl+/ toggles between main and side; Ctrl+C on an empty side composer closes it. The side thread sees your recent main context as read-only background (capped at 64 messages / 64 KiB behind a boundary that tells the side model to keep its hands off files and subagents unless you explicitly ask), and its Q&A never enters the main transcript. Parent deletion, crash re-adoption, BTW-in-BTW nesting, and cancellation ordering are all explicitly handled, so side sessions don't leak. Guide: docs/guide/btw.md.

🔁 Model fallback stops going quiet (#6579)

Community fix by @MoerAI (#6611):

The repeated-error stall is fixed at its root: the retry-dedupe key didn't include the failing model, so the same error on a different model looked like a duplicate and was dropped — the session just went silent. Now:

  • Dedupe keys are scoped per model; a skipped retry returns its key instead of burning it forever.
  • Internal fallback retries carry an explicit marker so they stop being discarded as synthetic traffic.
  • Model identity travels as provider/model plus variant through the whole fallback path — your reasoning-effort selection survives a fallback and a recovery.
  • Watchdog timers are generation-scoped, so a timer from an abandoned attempt can never hijack a later turn.
  • A manual model change resets the fallback watchdog, in-flight retry flag, and the retry-key set.
🖼️ One notice language across the transcript

Fallback-architect notices, tips, task-completion cards, team-member liveness warnings, and every memory notice (reflection, health, soul-update, write receipts, nudges) now render through one shared padded notice box. Completion cards lead with a tone glyph (///) and the task name, keep id · target/model · duration · tokens · tools · tps on a dim second row, and hold continuation hints behind expansion.

🩺 /doctor reflection health is deterministic

Reflection-health severity was a function of the wall clock — [warn] decayed to [ok] by pure passage of time. The check now reads an injectable clock, so the verdict is a pure function of your reflection data.

🧪 CI and tests stop lying

The Senpi adapter is now a first-class mandatory-QA surface with a machine-enforced evidence-path contract. Two DAG wait-hang classes (resident-cap saturation, terminalization during subscription setup) are pinned by bounded regression tests. Memory-test teardown retries narrowly on EFAULT only, and three Windows-slow suites got honest ceilings with waits left event-driven.

🧰 Bun 1.4.0 stable, everywhere

Bun 1.4 went stable today, and this release train rides it end to end:

  • omo: every CI, publish, and platform-build workflow moved from Bun 1.3.14 to 1.4.0 (cache keys included), and the committed omo-senpi extension bundles were regenerated under stable 1.4.0 so the CI freshness gate and your installed extension agree byte-for-byte.
  • senpi 2026.8.20-2 (same-day re-release on top of 2026.8.20): the compiled senpi binary is now built with Bun 1.4.0 stable (was 1.3.14), and npm publishing graduated from the Bun canary channel to stable 1.4.
  • Safe dependency refresh riding along — omo: posthog-node 5.49, puppeteer-core 25.8, @clack/prompts 1.7, MCP SDK 1.30, js-yaml 4.3.1, picomatch 4.0.5, bun-types 1.4.0; senpi: Biome 2.5.9, @types/node 26.2.0, vitest + coverage 4.1.11, AWS Bedrock/Smithy patches, protobuf 2.14.0. Deliberately excluded: anything major, the Anthropic SDKs (OAuth-lane sensitivity), @google/genai, @mistralai.

⚙️ Bundled Senpi 2026.8.20-2 — the engine wave
Faster everywhere
  • /resume no longer stalls on big sessions: exact byte-bounded streaming summaries are reused for unchanged files, and the visible transcript tail paints first while older messages warm progressively.
  • Startup sheds 680 modules: the 1.2 MB Claude Agent SDK bundle and the jsdom/Readability/turndown HTML stack now load on first use, not at boot (14,203 → 13,523 modules).
  • One process lighter per launch: cli.ts runs the agent in-process unless an Inspector option or custom exec args genuinely require a child (measured -75 ms, -6.2% on --help).
  • On-disk compile cache: Node's enableCompileCache() is on for both CLI entries and published to children, so second launches skip recompiling the engine graph.
  • Hot reload off the critical path: recursive config watchers run in a worker thread on macOS too, watcher teardown leaves the reload path (1.5–62 s of shutdown stall eliminated), and MCP reconnect no longer blocks a reload.
  • Watch scope fixed: recursive watch targets now open one non-recursive subscription per in-scope directory — an extensions dir containing node_modules no longer drives fseventsd to 123% CPU and multi-GB RSS.
  • Retry spinners throttle on sessions with 1,000+ persisted entries; the countdown stays.
The TUI stops freezing
  • Goal footer tickers retire themselves on a stale extension context instead of ticking dead forever — the "Pursuing goal" label and continuation countdown no longer freeze the session after a reload.
  • TUI mode switches detach live components instead of disposing them; spinners and widget intervals survive the switch.
  • A vetoed or failed /reload no longer destroys live extension footers and task widgets.
  • Assistant text that arrives after the last tool call renders below the tool cards, so approval questions stay visible.
claude-sdk-oauth: the $1,084 retry-storm fix (#723)

Stream-start-timeout retries now fork the SDK conversation at the last assistant boundary instead of re-sending the whole conversation — each retry re-bills only its own turn on a prefix-cache read. Before: cache writes grew ~8K/attempt, $25/6min, $1,084/3days on worker dispatch.

Cursor, seriously corrected (community wave — thanks @leeseunguk and @HeiTuz)
  • 0-token resource_exhausted is treated as overflow: surface on first failure → compact before any rotation; rotation persists under the agent dir and survives TUI restarts; a rotation skip at the 3-rotation cap remints a fresh wire id instead of poisoning the session.
  • Same-model retry after remint/compact instead of falling back to another provider; too-small overflow compacts drop to the last user turn; implausible billed cacheRead (3×/8× the live window) can no longer force useless compacts.
  • Mid-turn compaction refuses while a native Run is live, so conversationId can't get poisoned mid-flight.
  • Turns that end stop with pending toolCalls continue as toolUse; turns idle after completed tools end normally instead of hanging to the idle timeout.
  • ANTML invoke recovery is skipped on cursor-agent, so Claude-named Cursor models stop rejecting parallel tool starts.
  • Native todo calls persist even when the server resolves them without a local op; late tool_execution_end events draw their card instead of orphaning results; streamed task args survive an empty {} completion.
  • Explicit thinking levels resolve to catalog suffix variant ids (claude-fable-5-thinking-low) on both the native and CLI lanes — no more Connect error not_found.
  • Exec-bridge ownership is airtight: handlers bind to the owning run's abort signal, fail closed without a captured run, re-check ownership after approval prompts, and emit tool_execution_end errors so nothing dangles.
  • Session titles use the session model's own summarization auth — no more unauthenticated title calls under an explicit compaction model.
Long-running sessions stop burning money
  • Goal continuations are append-only: per-request history rewriting invalidated the provider's cache prefix, so long team-mode sessions paid a full uncached re-read every turn and drove themselves into 429 storms.
  • Same-model 429 retries floor every wait with the exponential schedule — a provider answering with the same tiny retry-after hint can't pin the cadence at milliseconds anymore.
Config reload behaves in shared-agent-dir setups (thanks @Indosaram, #1006)

Routine-preference saves (like defaultModel) from another session no longer cascade a reload; the handoff snapshot is cleared unconditionally after requestReload() settles, so a stale plaintext settings snapshot can't survive.

For extension authors

The notice-box primitives are public API now: buildNoticeBox, noticeMessageRenderer, noticeEntryRenderer, and the NoticeSpec/NoticeLine/NoticeTone types — render your transcript notices in the shared visual family instead of re-implementing it.

Full engine changelog: senpi v2026.8.20 (+ v2026.8.20-2, the same-day Bun 1.4 re-release)


  • 5d2742bf7 Merge pull request #7075 from code-yeongyu/fix/omo-ci-bun-1314-until-windows-tail
  • b4d52a803 fix(test): build the absent-store fixture absent instead of deleting it back out
  • 3d91936a9 fix(test): give the Windows setup fixtures a real absent store and a real home
  • 38092867c fix(test): let win32 teardown leak an OS-owned temp root instead of failing
  • 8cff72082 fix(test): widen the Windows EBUSY teardown budget with escalating backoff
  • f92deb89b fix(test): make the Windows suites correct under bun 1.4
  • 3a6fa0f65 test(omo-opencode): pin ResolveMessage identity instead of its prototype for bun 1.4
  • 8d6a66fa0 Merge pull request #7074 from code-yeongyu/fix/btw-parent-remote-revalidation
  • 8aee39439 test(qa): check in BTW revalidation evidence
  • fc2c5aa09 fix(opencode): require remote BTW parent confirmation
  • aff84c753 fix(qa): keep resolver imports side-effect free
  • d92429e21 Merge pull request #7071 from code-yeongyu/feat/dag-node-resume-steer
  • 37c5d6e5f Merge pull request #7068 from code-yeongyu/test/dag-happy-timeout-contract
  • 5a6f21d9b docs(omo): state the additive compatibility stance for dag node-control events
  • 1bbc2aa7d docs(omo): mass-ulw protocol additions for per-node retry/steer/amend
  • 26b2506d1 Merge pull request #7067 from code-yeongyu/fix/tui-notice-block-style
  • 56df6d7fc Merge pull request #7066 from code-yeongyu/fix/dag-wait-residency-regression
  • 81344928f Merge pull request #6611 from MoerAI/fix/6579-runtime-fallback-dedup
  • 3932c9c66 fix(runtime-fallback): mark reused internal retry parts
  • b401eb4fc fix(runtime-fallback): clear first skipped retry key
  • 51573a146 fix(runtime-fallback): scope retry marker to fallback generation
  • 23057207d fix(runtime-fallback): recover skipped retry status keys
  • d5c5918d5 test(qa): verify PR 6611 after dev rebase
  • 2ad216f3a test(qa): record pre-push fork head
  • 486844975 test(qa): record PR 6611 fallback evidence
  • fc1c6312d fix(opencode): route only marked fallback retries
  • b7ee41a64 fix(runtime-fallback): preserve explicit retry effort
  • 62491bd6c fix(runtime-fallback): restore effective primary variants
  • 3aba9d1d6 fix(runtime-fallback): index registered category models
  • 891937ea1 fix(runtime-fallback): bind timeouts to state generations
  • f603b5b37 fix(runtime-fallback): own queued retry generations
  • 0b097b73b fix(runtime-fallback): reject stale timeout generations
  • f4517c42b fix(runtime-fallback): acknowledge synthetic retries
  • 0616cd628 fix(runtime-fallback): align created fallback identity
  • 8bcfcc6c7 fix(runtime-fallback): retain queued fallback state
  • 88d7cb4b4 test(lsp): isolate Windows compatibility checks
  • 671f69b0e fix(runtime-fallback): honor explicit retry variants
  • 895b9d469 fix(runtime-fallback): align retry reasoning state
  • 06eab0f71 fix(runtime-fallback): isolate retry generations
  • 3e24b3942 fix(runtime-fallback): preserve effective retry state
  • c09d25876 test(runtime-fallback): wire generation acknowledgment
  • c42be3ebd fix(runtime-fallback): align fallback generations
  • 9af2747b4 fix(runtime-fallback): scope model-less retry dedupe
  • 8c465e42b fix(runtime-fallback): preserve variant lifecycle state
  • a5f5fee77 fix(runtime-fallback): persist effective fallback variant
  • 8310d911d fix(runtime-fallback): preserve fallback variants
  • f01536361 fix(runtime-fallback): read variant from chat output
  • 5f7b005ab test(runtime-fallback): prove source-current OpenCode QA
  • bee902117 test(runtime-fallback): record variant reset QA
  • e6fa807d4 fix(runtime-fallback): reset retry keys on variant change
  • b586cef81 fix(runtime-fallback): reset retry keys on manual model change
  • 26a2a8fbe fix(runtime-fallback): retain active retry keys
  • 5e3a12e74 fix(runtime-fallback): distinguish retry variants
  • 11798f876 fix(runtime-fallback): dedupe model-less retry statuses
  • 617400982 fix(runtime-fallback): prevent repeated-error stalls (fixes #6579)
  • e676fef9d Merge pull request #7062 from code-yeongyu/refactor/doctor-health-clock-thread
  • b8b7b0954 Merge pull request #7060 from code-yeongyu/test/memory-teardown-efault-retry
  • 9dc8116e2 Merge pull request #7058 from code-yeongyu/feat/btw-codex-side-ui
  • 6eb7e8cae fix(opencode): revalidate BTW parents
  • 198a1963c docs(opencode): update BTW hook inventory
  • 12807167b fix(opencode): preserve BTW cancellation semantics
  • 28284f29c fix(opencode): reject deleted pending BTW
  • e4ce3f658 docs(opencode): index BTW feature module
  • bc2f49662 fix(opencode): preserve BTW route ownership
  • 1be110282 fix(opencode): own every BTW cleanup
  • 786d1955b fix(opencode): await pending BTW creation
  • b174d9872 fix(opencode): await BTW cleanup on dispose
  • cdc106126 fix(opencode): close final BTW boundary gaps
  • ed8682862 fix(opencode): propagate BTW classification failures
  • 369be3608 fix(opencode): retry BTW session classification
  • f3a3c0b5b fix(opencode): restrict unverified BTW sessions
  • 399ddb8fd fix(opencode): retry persisted BTW adoption
  • e015f8e7a fix(opencode): validate persisted BTW parents
  • 8b423d959 fix(opencode): enforce BTW execution bounds
  • 113b49354 fix(opencode): bound BTW prompt inheritance
  • 680973669 fix(opencode): block orphaned BTW nesting
  • baf7d9255 fix(opencode): reject deleted BTW parents
  • b3f4f0be1 fix(opencode): re-adopt persisted BTW sessions
  • 3cbeeebc1 fix(opencode): cancel BTW on parent deletion
  • a3981b98d fix(opencode): discard stale BTW adoption
  • 4586d135b fix(opencode): cancel pending BTW navigation
  • 960947c42 fix(opencode): harden BTW deletion lifecycles
  • 559b3e22e fix(opencode): address BTW review feedback
  • b5eb04896 feat(opencode): align BTW side conversation with Codex
  • ec3d5afaa Merge pull request #7057 from code-yeongyu/fix/beta12-lockfile-sync
  • 23db3d9cb fix(deps): sync bun.lock with the v5.0.0-beta.12 version bump
  • 65f8540b3 Merge pull request #7056 from code-yeongyu/fix/windows-team-idle-wake-budget

Thank you to 1 community contributor:

  • @MoerAI:
    • feat(opencode): align BTW side conversation with Codex
    • fix(opencode): address BTW review feedback
    • fix(opencode): harden BTW deletion lifecycles
    • fix(opencode): cancel pending BTW navigation
    • fix(opencode): discard stale BTW adoption
    • fix(opencode): cancel BTW on parent deletion
    • fix(opencode): re-adopt persisted BTW sessions
    • fix(opencode): reject deleted BTW parents
    • fix(opencode): block orphaned BTW nesting
    • fix(opencode): bound BTW prompt inheritance
    • fix(opencode): enforce BTW execution bounds
    • fix(opencode): validate persisted BTW parents
    • fix(opencode): retry persisted BTW adoption
    • fix(opencode): restrict unverified BTW sessions
    • fix(opencode): retry BTW session classification
    • fix(opencode): propagate BTW classification failures
    • fix(opencode): close final BTW boundary gaps
    • fix(opencode): await BTW cleanup on dispose
    • fix(opencode): await pending BTW creation
    • fix(opencode): own every BTW cleanup
    • fix(opencode): preserve BTW route ownership
    • docs(opencode): index BTW feature module
    • fix(opencode): reject deleted pending BTW
    • fix(opencode): preserve BTW cancellation semantics
    • docs(opencode): update BTW hook inventory
    • fix(opencode): revalidate BTW parents
    • Merge pull request #7058 from code-yeongyu/feat/btw-codex-side-ui
    • fix(runtime-fallback): prevent repeated-error stalls (fixes #6579)
    • fix(runtime-fallback): dedupe model-less retry statuses
    • fix(runtime-fallback): distinguish retry variants
    • fix(runtime-fallback): retain active retry keys
    • fix(runtime-fallback): reset retry keys on manual model change
    • fix(runtime-fallback): reset retry keys on variant change
    • test(runtime-fallback): record variant reset QA
    • test(runtime-fallback): prove source-current OpenCode QA
    • fix(runtime-fallback): read variant from chat output
    • fix(runtime-fallback): preserve fallback variants
    • fix(runtime-fallback): persist effective fallback variant
    • fix(runtime-fallback): preserve variant lifecycle state
    • fix(runtime-fallback): scope model-less retry dedupe
    • fix(runtime-fallback): align fallback generations
    • test(runtime-fallback): wire generation acknowledgment
    • fix(runtime-fallback): preserve effective retry state
    • fix(runtime-fallback): isolate retry generations
    • fix(runtime-fallback): align retry reasoning state
    • fix(runtime-fallback): honor explicit retry variants
    • test(lsp): isolate Windows compatibility checks
    • fix(runtime-fallback): retain queued fallback state
    • fix(runtime-fallback): align created fallback identity
    • fix(runtime-fallback): acknowledge synthetic retries
    • fix(runtime-fallback): reject stale timeout generations
    • fix(runtime-fallback): own queued retry generations
    • fix(runtime-fallback): bind timeouts to state generations
    • fix(runtime-fallback): index registered category models
    • fix(runtime-fallback): restore effective primary variants
    • fix(runtime-fallback): preserve explicit retry effort
    • fix(opencode): route only marked fallback retries
    • test(qa): record PR 6611 fallback evidence
    • test(qa): record pre-push fork head
    • test(qa): verify PR 6611 after dev rebase
    • fix(runtime-fallback): recover skipped retry status keys
    • fix(runtime-fallback): scope retry marker to fallback generation
    • fix(runtime-fallback): clear first skipped retry key
    • fix(runtime-fallback): mark reused internal retry parts
    • Merge pull request #6611 from MoerAI/fix/6579-runtime-fallback-dedup
    • fix(opencode): require remote BTW parent confirmation
    • test(qa): check in BTW revalidation evidence
    • Merge pull request #7074 from code-yeongyu/fix/btw-parent-remote-revalidation
View originalPermalink
How v5.0.0-beta.13 went

v5.0.0-beta.12

Pre-release
Added 2
  • classify when a pull request needs the full 3-OS matrix in ci
  • sized ls-tree and single-call system token estimator to memory-core
Changed 1
  • memory notice style
Fixed 9
  • sync bun.lock with the v5.0.0-beta.12 version bump
  • windows team idle wake budget handling
  • windows kill facts
  • rpc steer delivery
  • windows timeout family
  • test tempdir collisions

From oh-my-openagent

  • ec3d5afaa Merge pull request #7057 from code-yeongyu/fix/beta12-lockfile-sync
  • 23db3d9cb fix(deps): sync bun.lock with the v5.0.0-beta.12 version bump
  • 65f8540b3 Merge pull request #7056 from code-yeongyu/fix/windows-team-idle-wake-budget
  • c63d47342 Merge pull request #7054 from code-yeongyu/release/windows-bun-direct-beta12
  • 74557647c Merge pull request #7052 from code-yeongyu/fix/windows-kill-facts
  • 09f70aab7 Merge pull request #7050 from code-yeongyu/fix/rpc-steer-delivery
  • 5f7e9e877 Merge pull request #7047 from code-yeongyu/fix/win2-timeout-family
  • 1c46238f6 Merge pull request #7048 from code-yeongyu/fix/test-tempdir-collisions-round2
  • 6b7619c7e Merge pull request #7046 from code-yeongyu/fix/test-tempdir-collisions
  • d507bd276 Merge pull request #7044 from code-yeongyu/fix/model-admission-confirm-probe
  • d9cb02fec Merge pull request #7043 from code-yeongyu/fix/mcp-scope-filtering-test-race
  • c2ece6788 Merge pull request #7039 from code-yeongyu/fix/memory-sandbox-absent-path-enoent
  • 2086f2db6 Merge pull request #7038 from code-yeongyu/ci/ubuntu-first-pr-matrix
  • c0dc53a32 feat(ci): classify when a pull request needs the full 3-OS matrix
  • 61c6938de Merge pull request #7037 from code-yeongyu/feat/memory-notice-style
  • ff47efb8b Merge remote-tracking branch 'origin/dev' into feat/memory-notice-style
  • 460b456e1 Merge remote-tracking branch 'origin/dev' into feat/memory-notice-style
  • 20985fe53 feat(memory-core): add sized ls-tree and single-call system token estimator
View originalPermalink
How v5.0.0-beta.12 went

v5.0.0-beta.11

Pre-release
Added 5
  • Memory pressure is surfaced to the agent, and dream runs launch automatically when memory crosses the threshold
  • Dream tier rebalancing is driven by memory-file access ledger that records which files actually get read
  • Dream runs now carry enforced token budgets with committed per-file estimates
  • DAG boundary enforces planning discipline with advisory planning warnings and spawn policy dispatch
  • Paste images straight into the TUI as [Image #N] markers that ride the message in reading order
Changed 1
  • Bundled Senpi upgraded to version 2026.8.18-3
Fixed 15
  • CLI entry is now forwarded to memory reflection, fork mode, and people-ask launches when installed via npm
  • Reflection retries through provider outages instead of dying on the first 500
  • Reloading the extension is now blocked while a DAG run is in flight with a notification when the run pauses
  • Completed resident team members no longer vanish from the team widget
  • Category selection gates route back to the caller instead of swallowing the decision
  • When a category's model is unavailable, the fallback chain advances to the next model

From oh-my-openagent

🧠 Memory That Feels Pressure — And Acts On It

Your agent's memory now knows when it's getting full. Memory pressure is surfaced directly to the agent, and when it crosses the threshold, dream runs (memory consolidation) launch automatically instead of waiting for a quiet moment. Dreams now carry enforced token budgets with committed per-file estimates, and a new memory-file access ledger records which files actually get read — so dream tier rebalancing is driven by evidence, not guesswork.

🔧 Memory Children Actually Spawn On npm Installs

If you installed omo via npm, memory reflection and people-ask children died within milliseconds with node: bad option: --fork — the Senpi CLI entry was silently dropped from the spawn argv, so node received CLI flags it doesn't understand. The CLI entry is now forwarded everywhere: reflection, fork mode, and people-ask launches. Reflection also retries through provider outages instead of dying on the first 500.

🕸️ mass-ulw Grows Teeth

The dag boundary now enforces planning discipline: mass-ulw runs start with advisory planning warnings, dag agent-node dispatch goes through the spawn policy, and reloading the extension is blocked while a DAG run is in flight — with a notification when the run pauses instead of a silent mid-run reload.

👥 Team & Task Fixes That Were Bugging You

Completed resident team members no longer vanish from the team widget. Category selection gates route back to the caller instead of swallowing the decision, and when a category's model is unavailable, the fallback chain actually advances to the next model. On the OpenCode side, your permission.task setting is now respected on main agents.

🖼️ Bundled Senpi 2026.8.18-3

The Senpi upgrade alone is worth the update:

  • Paste images straight into the TUI — clipboard pastes attach as [Image #N] markers that ride your message in reading order, instead of dumping a temp file path into the composer.
  • Cursor, corrected — context windows fixed (Claude and GPT 5.5/5.6 at 1M, Grok at 500K), reasoning levels now drive both Cursor surfaces, and catalogs collapse into clean selectable model identities.
  • Goals that resume — an active goal no longer parks forever after a flooded session load or a settings hot-reload; sending a message re-engages it.
  • Retries that use their full budget — transient provider stream-start timeouts were being aborted 60s before their own deadline; the watchdog now honors the full configured retry budget.
  • Compaction stops eating your typing — messages typed while auto-compaction runs are queued and delivered after it settles, not silently discarded.
  • Headless OAuth continuity-p -c sends only your new turn, verified against a private sidecar; imports, forks, and drift fail closed.
  • Linux glibc hosts now get the glibc Claude binary before the musl variant, and published tarballs keep their Babel 8 closure so the codemode sidecar starts cleanly.
🪟 Windows Fixes

Memory-file access tracking recorded its ledger keys with Windows path separators, so the dream tier's usage counts never matched the POSIX keys every consumer reads — reads on Windows effectively went uncounted. Keys are now normalized, and the reflection health report no longer mis-reports a dormant streak.

🔧 Tooling Fixes

The LSP tools refused to answer for any file outside the session's working directory, so diagnostics, definitions, and references silently came back empty when you worked across a worktree or a sibling checkout. Read-only LSP requests now resolve those paths.


  • 6259bfeda Merge pull request #7035 from code-yeongyu/release/v5.0.0-beta.11-source-state
  • 44c97b8d1 Merge pull request #7036 from code-yeongyu/fix/zod-copy-windows-timeout
  • b16ef0f84 test(omo-opencode): give the MCP server loader hooks a windows budget
  • 2dd90cf9d test(omo-opencode): raise the host-zod copy ceiling windows overshoots
  • b0f0e1bc5 Merge pull request #7031 from code-yeongyu/fix/lsp-out-of-cwd-readonly
  • 5e13e4ab8 Merge remote-tracking branch 'origin/dev' into fix/lsp-out-of-cwd-readonly
  • 246ad8bcc Merge pull request #7034 from code-yeongyu/fix/doctor-stale-reflection-streak-test
  • 8e94c333e Merge remote-tracking branch 'origin/dev' into fix/lsp-out-of-cwd-readonly
  • 8275b2481 Merge pull request #7030 from code-yeongyu/fix/ast-grep-mcp-cursor-safe-schema
  • 8d58e75c6 fix(lsp-core): allow read-only LSP tools on files outside request cwd
  • f63ae64dd fix(ast-grep-mcp): drop oneOf/not from the advertised scan schema
  • 71f354d0a Merge pull request #7015 from code-yeongyu/feat/memory-usage-ledger
  • c966d2aca Merge pull request #7011 from code-yeongyu/feat/memory-system-token-budget
  • 84ed0dfe1 Merge remote-tracking branch 'origin/dev' into feat/memory-system-token-budget
  • 5cd9b1eb1 Merge pull request #7004 from code-yeongyu/fix/memory-reflection-provider-fallback
  • 93a35a2c3 Merge remote-tracking branch 'origin/dev' into fix/memory-reflection-provider-fallback
  • 6f9e952ac Merge remote-tracking branch 'origin/dev' into feat/memory-system-token-budget
  • 035a77768 Merge pull request #7005 from code-yeongyu/feat/mass-ulw-dag-gate
  • e6ceba048 Merge remote-tracking branch 'origin/dev' into fix/memory-reflection-provider-fallback
  • 62d48bbc3 Merge pull request #7013 from code-yeongyu/fix/lsp-daemon-test-timeout-budget
  • 208f2696e test(lsp-daemon): budget per-test timeouts above subprocess guards
  • c46a29603 Merge remote-tracking branch 'origin/dev' into feat/memory-system-token-budget
  • ccc80e4bd Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-gate
  • 0f526f601 Merge pull request #7003 from code-yeongyu/fix/issue-6922-team-widget-resident-members
  • 78d4ddfb0 Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-gate
  • 4283d1212 Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • 81b084afd Merge pull request #7008 from code-yeongyu/feat/memory-pressure-dream-origin
  • 5b60be0e8 Merge pull request #7006 from code-yeongyu/feat/memory-pressure-line
  • 2bbe38800 Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-gate
  • eb506c560 Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • 3f8941d09 Merge pull request #7002 from code-yeongyu/fix/dag-reload-guard
  • 80bde3b26 Merge remote-tracking branch 'origin/dev' into feat/memory-pressure-line
  • 8dbddc532 Merge remote-tracking branch 'origin/dev' into fix/memory-reflection-provider-fallback
  • 1663e26f8 Merge branch 'dev' into fix/dag-reload-guard
  • 6b5f65d95 Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • 301de7a3f Merge pull request #6997 from code-yeongyu/fix/issue-6972-category-chain-availability
  • c2eb13442 Merge pull request #7001 from code-yeongyu/fix/issue-6944-selection-gate-to-caller
  • 154d469a5 Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • e10a30f50 Merge remote-tracking branch 'origin/dev' into fix/issue-6972-category-chain-availability
  • 56ef26b87 Merge pull request #7000 from code-yeongyu/fix/issue-6990-permission-task-override
  • 15d1c24a1 Merge branch 'dev' into fix/dag-reload-guard
  • 15611121f Merge remote-tracking branch 'origin/dev' into fix/issue-6944-selection-gate-to-caller
  • 5cc701d6f Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • b9d59e33c Merge remote-tracking branch 'origin/dev' into fix/issue-6922-team-widget-resident-members
  • 85d63bd06 Merge remote-tracking branch 'origin/dev' into fix/issue-6972-category-chain-availability
  • 50a9b6378 Merge remote-tracking branch 'origin/dev' into fix/issue-6990-permission-task-override
  • d930d10cb fix(task): route category gates to caller (#6944)
  • 43e8d5903 fix(opencode): respect user permission.task on main agents (#6990)
  • 25629db71 fix(delegate-task): advance unavailable category chains (#6972)

Thank you to 1 community contributor:

  • @sisyphus-dev-ai:
    • Merge pull request #7035 from code-yeongyu/release/v5.0.0-beta.11-source-state
View originalPermalink
How v5.0.0-beta.11 went

v5.0.0-beta.10

Pre-release
Changed 9
  • Installation now enforces a live timeout for ast-grep provisioning and terminates stuck child installers
  • CI validation skips unnecessary root jobs for web/docs-only changes and verified generated release-state merges
  • Publication now reuses the successful full CI workflow for the exact prepared commit instead of running a second release-local matrix
  • Release credentials are isolated so that the release PAT is available only for the push/PR step
  • The credential-bearing git remote is removed even when publication fails via an EXIT trap
  • Native-shell execution and Bun 1.3.14 pinning improve Windows release checks to match the supported runtime more closely
Fixed 1
  • Ast-grep setup now fails with a clear bounded failure instead of hanging indefinitely when the child process refuses to exit

From oh-my-openagent

Reliable installs, faster CI, safer releases
Ast-grep setup now fails clearly instead of hanging

OpenCode and LazyCodex installation now enforce a live timeout for ast-grep provisioning, terminate stuck child installers, and report a clear bounded failure if the child refuses to exit. Install commands no longer sit indefinitely behind a silent provisioning process.

Faster validation without source-coverage shortcuts

Web/docs-only changes and verified generated release-state merges can skip unnecessary root jobs, while missing diffs, normal source changes, and release-looking non-merge commits still run full validation.

Releases are tied to one validated source SHA

Publication now reuses the successful full CI workflow for the exact prepared commit instead of running a second release-local matrix that could diverge from the code being shipped.

Release credentials stay out of build scripts

Repository-controlled generation runs without the release PAT. The token is available only for the push/PR step, and the credential-bearing remote is removed even when publication fails.

More predictable Windows release checks

Native-shell execution, Bun 1.3.14, Windows-safe script resolution, and targeted serial execution remove known environment mismatches and timeout instability from the release path.


A reliability-focused beta

v5.0.0-beta.10 is a focused hardening release for installation, continuous integration, and the synchronized publish pipeline. There are no breaking user-facing changes in this beta. The main result is that failed setup work now stops predictably, release builds are validated against the exact source being published, credentials have a narrower exposure window, and Windows checks run closer to real Windows behavior.

What changed
Installer timeouts now finish predictably

The shared ast-grep provisioning path no longer relies on an unreferenced timer that could be starved while a child process remained stuck. The installer now:

  • keeps the primary 30-second deadline active;
  • terminates a child that exceeds that deadline;
  • gives termination one second to settle; and
  • reports an explicit failure if the child ignores termination instead of hanging indefinitely.

This matters most on failure paths: a broken shell, stalled download, or unresponsive installer should now produce a bounded result rather than holding the CLI or CI job open until a much larger outer timeout expires.

Releases reuse validation from the exact source SHA

The publish workflow no longer starts a second, redundant test/typecheck/compatibility matrix. Instead, it requires a successful full CI workflow for the exact prepared release SHA and fails closed when that proof is unavailable.

The gate handles both valid release paths: the release-state pull request's exact-SHA run and the post-merge push run. It retries temporary GitHub API failures, waits for active validation to finish, stops when completed runs have no success, and enforces a bounded overall timeout. This makes the release faster while preserving the important guarantee: the source that passed CI is the source that gets published.

Release credentials are more tightly isolated

Release-state generation and privileged publication are now separate steps. Dependency installation, version synchronization, lockfile updates, and generated-artifact rebuilds run without the release PAT. The token is present only in the step that pushes the prepared branch and manages its pull request.

The authenticated git remote is also protected by an EXIT trap, so it is restored to a clean token-free URL even when a push fails. This reduces the chance of a credential remaining in repository configuration for later commands or diagnostic output.

CI skips expensive work only when it can prove that it is safe

A new changed-path classifier identifies two narrow cases that do not need the full repository matrix:

  • generated release-state merge commits with verified merge provenance; and
  • changes confined to the web/docs surface.

Everything else continues to run heavy validation. If the base SHA is unavailable, the diff cannot be read, classifier inputs are malformed, or a commit merely imitates a release message without being the expected merge shape, CI defaults to the full matrix. The fast path therefore reduces repeated work without turning uncertainty into a skip.

Windows validation now matches the supported runtime more closely

Repository workflows are pinned consistently to Bun 1.3.14, with cache keys aligned to that version. Windows root tests execute under native PowerShell rather than Git Bash where shell-sensitive behavior could observe Unix-like environment variables and launch paths. File-URL handling in the CI classifier tests also uses native path conversion, including Windows drive-letter paths.

These changes are aimed at reducing Windows-only hangs and false failures while preserving the existing platform coverage for OpenCode/OpenAgent and Codex installations.

Per-layer highlights
omo pure components
  • ast-grep provisioning has a real, bounded timeout and kill-grace path;
  • a child that ignores termination becomes an actionable failed result rather than an endless wait; and
  • reusable CI classification fails safe when provenance or changed-path information is incomplete.
omo opencode
  • publish gates reuse complete CI from the exact prepared SHA instead of rerunning the same validation;
  • release-state generation cannot access the release PAT;
  • push/PR automation has bounded retries and recovery checks; and
  • generated-release and web/docs-only changes receive a safe CI fast path.
omo codex
  • Codex compatibility and platform publication use the same exact-SHA release guarantee;
  • lazycodex-ai publication remains behind successful synchronized validation;
  • Windows installer and compatibility checks run with native shell semantics; and
  • Codex consumers inherit the bounded ast-grep installer failure path.
Breaking changes

None. Existing commands, package entry points, configuration, and installation flows remain compatible with beta.9.

Install or upgrade

Install or upgrade the beta with:

npm i -g omo-ai@beta

After installation, omo --version should report the beta.10-mapped package version once the release is available on npm.

Discord announcement

omo v5.0.0-beta.10 is out — a reliability-focused beta.

This release hardens the paths around installation and publication: ast-grep setup can no longer hang indefinitely after a stalled child process, release jobs reuse successful CI from the exact source SHA instead of running duplicate gates, and the release PAT is isolated from repository-controlled generation steps. CI also gains safe fast paths for generated release merges and web/docs-only changes, while unknown cases still run the full matrix. Windows checks now use Bun 1.3.14 consistently and run shell-sensitive root tests under native PowerShell.

No user-facing breaking changes.

npm i -g omo-ai@beta
View originalPermalink
How v5.0.0-beta.10 went

v5.0.0-beta.9

Pre-release
Added 2
  • Parallel local test path-group runner for faster test suites
  • @babel/parser is now shipped for bundled Senpi codemode
Changed 3
  • OMO Native now runs on Senpi engine 2026.8.17 with cursor-cli-oauth fallback lane, ignored tool-call loop hard-stop, retry-exhausted steering resume, -fast codex variants, and Cloudflare-gateway/Cerebras catalog fixes
  • The /publish endpoint now accepts an exact semver version and dispatches it with exact run-ID ownership to prevent accidental stable-line bumps from the beta channel
  • Beta changelogs now compare against the previous beta in the same channel, non-semver release tags are ignored safely, and GitHub releases are explicitly marked as pre-release
Fixed 4
  • Windows root tests no longer run under Git Bash and release validation is deduplicated through gate reuse
  • RPC model-admission diagnostics now use a hardened port with preserved probe environments
  • Reflection entries now render as senpi notices, stale reflection-failure streaks stop alerting, and the reflection reservation is released on abort
  • Codex spawn callee boundary is anchored and on-complete hooks inject the correct shell platform

From oh-my-openagent

OMO 5.0.0-beta.9

Senpi 2026.8.17 engine + beta releases that publish themselves correctly

Changed
  • Latest Senpi engine — OMO Native now runs on @code-yeongyu/senpi@2026.8.17 (#6977). Every workspace pin, lock surface, and the provider compatibility map moved in lockstep. The engine brings the cursor-cli-oauth fallback lane, ignored tool-call loop hard-stop, retry-exhausted steering resume, -fast codex variants, and Cloudflare-gateway/Cerebras catalog fixes.
  • Explicit beta publishes/publish now accepts an exact semver such as 5.0.0-beta.9 and dispatches it with exact run-ID ownership (#6970). No more accidental stable-line bumps from the beta channel.
  • Beta release notes done right — beta changelogs compare against the previous beta in the same channel, non-semver release tags are ignored safely, and GitHub releases are explicitly marked pre-release (#6970).
Fixed
  • Windows root tests no longer run under Git Bash (#6957); release validation is deduplicated through gate reuse; RPC model-admission diagnostics got a hardened port with preserved probe environments.
  • Memory: reflection entries render as senpi notices, stale reflection-failure streaks stop alerting, and the reflection reservation is released on abort (#6971, #6967, #6978 pending).
  • Codex: spawn callee boundary anchored; on-complete hooks inject the correct shell platform.
Added
  • Parallel local test path-group runner for faster suites (#6974); @babel/parser shipped for bundled Senpi codemode (#6965).

Install / upgrade:

bun i -g oh-my-opencode@beta
bun i -g oh-my-openagent@beta
bun i -g lazycodex-ai@beta
npm i -g omo-ai@beta
View originalPermalink
How v5.0.0-beta.9 went

v5.0.0-beta.8

Pre-release
Added 8
  • Run dozens of agents in parallel waves with automatic recovery if a crash occurs mid-run
  • Sign in with Cursor Pro, Ultra, or Teams subscription via `/login cursor`
  • Grok 4.6 is now a first-class model with tuned system prompt and set as default for quick lightweight tasks
  • Check background memory system status with `/facts status` and retry failed extractions with `/facts retry`
  • One canonical home for settings at ~/.omo/agent with automatic one-time migration of existing settings
  • Memory consolidation now decides between reusing active session and starting fresh based on actual token cost
  • Design reference library stops for frontend work are now binding instead of advisory with dedicated layout-mechanics reference
  • Built-in measurement of wall-clock time saved by running tool calls in parallel
Changed 6
  • Failed memory extractions back off and stop retrying after a few attempts instead of looping forever
  • Planning now derives sensible defaults for budget, tech stack, scale, and compliance needs instead of assuming nothing or interrogating
  • Planning review loop is capped at 5 rounds instead of running indefinitely
  • Browser automation stack refreshed to current Playwright baseline for web research, login-gated scraping, and screenshot workflows
  • Team Mode boundary enforcement is repaired to prevent members from stepping outside assigned scope
  • Read-only shell output in Team Mode is now capped to prevent chatty commands from blowing up agent context window
Fixed 5
  • Disk usage in background memory system is now bounded with automatic cleanup of old extraction runs and payloads capped at 128KiB
  • Background memory consolidation no longer silently fails on many model providers by falling back to available model if preferred model unavailable
  • Model names with slashes are no longer invisible to the memory system
  • Spawning background agent on Windows no longer flashes a console window
  • Timeout and race condition fixes across Windows and macOS
Removed 1
  • Standalone `/omo-telemetry` command is removed in favor of built-in parallelism measurement

From oh-my-openagent

OMO 5.0.0-beta.8

This release is about doing more work at once and trusting what runs in the background. OMO can now run dozens of agents in parallel and recover if something crashes mid-run. You can sign in with your Cursor subscription, and Grok 4.6 is supported out of the box. The background memory system, which learns from your conversations, got a major reliability overhaul after an incident where it filled a disk with retries. Rounding it out: your settings now survive every update, planning asks fewer questions, and Windows got smoother.

Highlights
Run dozens of agents at once

Give OMO a big task and it can now break it into parts, run them as parallel waves of agents, collect the results, and move on to the next wave. Before, agents mostly ran one at a time. If a crash happens partway through, OMO picks up where it left off instead of losing the work. Nothing to configure, big tasks just fan out on their own.

Sign in with Cursor, and Grok 4.6 support

You can now connect your Cursor Pro, Ultra, or Teams subscription. Run /login cursor, approve in your browser, and you're signed in. For now this is authentication only. Cursor models don't show up in the model picker yet, but the groundwork is in place.

Grok 4.6 is now a first-class model. It gets a system prompt tuned for how Grok actually works instead of a generic fallback, and when OMO picks a model for quick, lightweight tasks, Grok 4.6 is the new default.

Memory that doesn't eat your disk

OMO quietly extracts facts from your conversations so it remembers things about you and your projects. On August 14 that system hit an infinite retry loop and consumed 388GB of disk. This release fixes all five root causes:

  • Failed extractions back off and stop retrying after a few attempts instead of looping forever.
  • Disk usage is bounded. Old extraction runs are cleaned up automatically and payloads are capped at 128KiB.
  • You can check what the memory system is doing with /facts status and retry a failed extraction with /facts retry.
  • Background memory consolidation no longer silently fails on many model providers. If its preferred model isn't available, it falls back to whatever is.
  • Model names with slashes in them (like openrouter/deepseek-ai/deepseek-v4-pro) are no longer invisible to the memory system.

There's new smarts here too. Memory consolidation now decides between reusing your active session (faster, cache-warm) and starting fresh (more reliable) based on actual token cost. And the planning review loop can no longer run indefinitely; it's capped at 5 rounds.

Your settings survive every update

Updating OMO used to sometimes wipe your favorite models, fallback chains, or auth tokens, because different parts of the system looked for settings in different places. Now there's one home for your config, ~/.omo/agent, and everything (launchers, child agents, doctor, setup, the installer) uses it. A one-time migration moves your existing settings there automatically.

Smarter planning when you don't spell everything out

When you ask for something without specifying budget, tech stack, scale, or compliance needs, OMO used to either assume nothing or interrogate you. Now it derives sensible defaults, records what it assumed so you can review it, and asks only the one question that genuinely needs your input.

See how much time parallel work saves

OMO now measures the wall-clock time saved by running tool calls in parallel and reports it. The old standalone /omo-telemetry command is removed; the measurement is built in now.

Smoother on Windows

Spawning a background agent on Windows no longer flashes a console window, thanks to community contributor @sanguneo. A batch of timeout and race condition fixes landed across Windows and macOS as well.

Agents doing UI work now actually study design

OMO ships a library of design references for frontend work, but agents mostly skimmed past it: across thousands of real sessions, only about 2 in 10 ever opened it, and almost none followed through. The router now makes the reference stops binding instead of advisory, adds a dedicated layout-mechanics reference, and requires the agent to name which references it actually loaded before writing UI code. Expect more design-grounded frontends, fewer generic ones.

Fresher web automation under the hood

The bundled browser automation stack (the stealth browser and its controller) is refreshed to the current releases, with a newer Playwright baseline. Web research, login-gated scraping, and screenshot workflows track modern browser behavior instead of last quarter's.

Team Mode gets boundary repairs

Team Mode, the experimental parallel-agent coordination feature, had runtime boundary defects where members could step outside their assigned scope. Those boundaries are repaired, and read-only shell output is now capped so a chatty command can no longer blow up an agent's context window.

Edition impact
OMO Ultimate for OpenCode

The frontend design routing and browser automation refresh land here first. Grok 4.6 becomes the default for quick tasks, planning derives constraints instead of asking, and the memory reliability fixes apply through the shared memory core. Your settings now live in the canonical config directory and survive updates.

OMO Light for Codex

The planning constraint improvements reach the Codex skills, CodeGraph is refreshed, and the Git Bash installer is hardened. No new Codex hooks, tools, or CLI commands this release.

OMO Native

Everything above, plus the full Senpi engine upgrade below: Cursor sign-in, Grok 4.6, JSONC settings, mass parallel orchestration, parallelism telemetry, the memory disk fix with the new /facts commands, and the Windows console flash fix. The /omo-telemetry command is removed.

Senpi engine upgrade to 2026.8.16

Senpi is the engine that powers OMO Native (the omo-ai package). This release upgrades it from 2026.8.14 to 2026.8.16.

New things you can do:

  • Sign in with Cursor. /login cursor opens your browser, you approve with your Cursor account, and you're connected. Authentication only for now.
  • Grok 4.6 tuned prompt. Grok 4.6 gets a system prompt designed for how it thinks instead of a generic one.
  • Custom system prompts work again. The --system-prompt and --append-system-prompt flags are restored after being broken since July 19, and they compose correctly with model-specific presets.
  • JSONC settings. Your settings file can have comments and trailing commas. If both settings.jsonc and settings.json exist, JSONC wins.
  • GLM 5.3 support. GLM 5.3 models get a tuned system prompt too.
  • Per-model reasoning memory. OMO remembers each model's thinking level and fast-tier setting across sessions. New /reasoning and /efforts commands let you check and change them, and /fast now persists.
  • Dollar skill invocation. Type $skill-name in the composer to run a skill directly.
  • Eval execution events are now published for desktop clients.

Things that are fixed:

  • Background tasks no longer crash in restricted environments where they can't create a lock file. They degrade gracefully instead.
  • Aborted or oversized conversation compactions no longer freeze your session, and when a compaction doesn't apply, you're told why.
  • Claude authentication is more reliable: tokens stay scoped to the right request, are isolated from subprocesses, and the auth probe window no longer flashes on macOS.
Migration note for users coming from 4.x

The omo to omo-agent-toolkit rename from the 5.0 beta line remains in effect:

omo ...  ->  omo-agent-toolkit ...

Rerunning the installer removes only installer-managed legacy wrappers and preserves any omo files you created yourself.

Release surfaces
  • oh-my-opencode@5.0.0-beta.8
  • oh-my-openagent@5.0.0-beta.8
  • lazycodex-ai@5.0.0-beta.8
  • omo-ai@5.0.0-0.beta.8 (beta channel only: npm i -g omo-ai@beta)
  • Codex marketplace plugin omo@sisyphuslabs
  • platform launcher packages stamped 5.0.0-beta.8

Thanks to community contributor @sanguneo for the Windows console flash fix.

Full diff: https://github.com/code-yeongyu/oh-my-openagent/compare/v5.0.0-beta.7...v5.0.0-beta.8


  • ea02aa016 Merge pull request #6955 from code-yeongyu/release/v5.0.0-beta.8-source-state
  • 43b51518b Merge pull request #6956 from code-yeongyu/fix/release-pr-read-retries
  • 600089df8 fix(ci): retry every release-state PR read on HTTP 5xx
  • 988c753b7 Merge pull request #6949 from code-yeongyu/fix/release-wait-loop-resilience
  • 1d25873c2 fix(ci): retry gh pr view on transient HTTP 5xx in release-state wait loop
  • 581881f38 Merge pull request #6925 from code-yeongyu/fix/ci-real-sharding
  • 917e29dd8 Merge pull request #6943 from code-yeongyu/fix/sdk-message-lookup-non-array
  • 001d7ec11 Merge pull request #6947 from code-yeongyu/fix/quick-luna-fast-provider
  • 6c1ff1657 Merge pull request #6946 from code-yeongyu/fix/release-gates
  • 08a10e652 Merge pull request #6941 from code-yeongyu/fix/rpc-parity-local-cli
  • 054340164 Merge pull request #6939 from code-yeongyu/fix/lazycodex-parallel-fixture
  • 010ff3fe9 fix(model-core): use openai-codex provider for quick luna-fast rung
  • 3f260e801 fix(memory-core): retry git init under lock contention
  • bbebf5e1c test(opencode): cover resolved message lookup failures
  • 557ff51d7 fix(opencode): preserve array SDK response contracts
  • dbf600533 Merge pull request #6933 from code-yeongyu/feat/publish-post-verify
  • e3b6860f2 Merge pull request #6945 from code-yeongyu/fix/windows-dag-happy-timeout
  • 5b02fd4f0 docs(evidence): record release-gate repair verification
  • 469b05847 test(omo-codex): isolate LazyCodex installer source fixtures
  • 0b025ec23 Merge pull request #6942 from code-yeongyu/test/windows-dag-residency-budget
  • 397d5346b Merge pull request #6936 from code-yeongyu/docs/release-resume-path
  • 89a37db40 Merge pull request #6940 from code-yeongyu/fix/publish-rpc-parity-launcher
  • b57dcd825 Merge pull request #6928 from code-yeongyu/perf/slow-test-seams
  • 05ef1837e fix(publish): stop post-publish probes from stranding a release
  • d9cdf024c Merge pull request #6935 from code-yeongyu/feat/publish-gate-reuse
  • 4c4553fd7 docs(release): document failed publish recovery
  • f057c7e94 ci(publish): reuse successful release gates
  • c2895ee74 test(release): pin publish resume guards
  • 105258b24 Merge pull request #6932 from code-yeongyu/fix/frontend-reference-enforcement
  • 386975a36 Merge pull request #6920 from code-yeongyu/fix-beta8-command-audit
  • 2509bfcbd Merge pull request #6931 from code-yeongyu/fix/test-parallel-worker-isolation
  • 2ff7f7da7 fix(frontend): route layout mechanics beside the pattern catalog
  • aa576072f fix(frontend): make routed references binding instead of advisory
  • b280c3f6a feat(frontend): add StyleGallery spatial-structure reference
  • 2925acc11 fix(audit): make the command-string allowlist line-number-free
  • 97e0ec36c test(lsp-core): stabilize cold diagnostics delivery
  • 04ccd5943 Merge pull request #6924 from code-yeongyu/chore/dep-pins-latest
  • 1ef6b2800 docs(evidence): attribute the Windows shard 2/2 attempt-1 failure
  • 7c239c001 docs(evidence): record post-review verification for the pin refresh
  • 32f380f92 fix(script): correct stale agent-command allowlist line pins
  • 1ade4ef4b chore(deps): advance tsgo to the current native-preview release
  • 8bd0dee3c chore(shared-skills): refresh ultimate-browsing Tier-2 runtime pins
  • 3dd88267f docs: refresh knowledge base snapshot and add component guides
  • 1f87b56d2 test(memory): stabilize time-sensitive CI cases
  • 7921e9cbe docs(evidence): record executable path hardening
  • 82f3aebf0 docs(evidence): record final root verification
  • ff469464b test(team-mode): avoid global fake timers
  • b89272be7 docs(evidence): record security blocker repairs
  • 01eb5fb87 docs(evidence): record final Windows proof
  • c69a29440 test(memory-core): budget Windows cache integration
  • 174b31787 docs(evidence): record Windows CI root causes
  • ce3ff3002 test(memory): inject terminal lock record fixture
  • 0947b5055 test(init-deep): build drift history with fast-import
  • 5d097ae93 fix(memory-core): serialize worktree administration
  • ee63da500 docs(evidence): record brutal review repair
  • 8ce91d0d7 test(omo-codex): bound Git Bash installer fixture
  • 26cc99667 Merge pull request #6913 from code-yeongyu/feat/unspecified-low-grok-4.6
  • 9d0536a44 fix: keep grok-4.6 snapshot-backed on unspecified-low
  • 8825a9c36 docs: document unspecified-low grok-4.6 first lane
  • c86e34ade feat(omo-opencode): default unspecified-low to xai/grok-4.6 xhigh
  • 828c252a1 feat(model-core): put grok-4.6 xhigh first on unspecified-low
  • 8eca0d052 Merge pull request #6906 from code-yeongyu/feat/memory-facts-payload-cap
  • aeddcb5dd Merge pull request #6910 from code-yeongyu/cursor/grok-sisyphus-prompt-4c49
  • 19ea2c357 feat(memory-core): lossless byte-capped facts batch selection
  • 03b7df006 Merge pull request #6900 from code-yeongyu/feat/memory-facts-retention
  • 0661a22c0 Merge pull request #6899 from code-yeongyu/feat/memory-facts-backoff
  • bd0dc3e75 fix(memory-core): keep parked facts failures parked and reject non-ISO instants
  • d17b2fd76 feat(memory-core): durable facts failure-streak store
  • feeaede24 Merge pull request #6901 from code-yeongyu/fix/memory-journal-lock-contention
  • daa231036 fix(memory): make transcript journal lock crash-proof against contention
  • 40c4e04c4 Merge remote-tracking branch 'origin/dev' into cursor/grok-sisyphus-prompt-4c49
  • dcd43eda6 Merge pull request #6897 from code-yeongyu/feat/telemetry-parallel-latency
  • a725cbca3 docs(plan): record completed plan checkboxes for parallelism telemetry
  • 2ae457ccc docs(evidence): record verification verdicts and final QA artifacts for parallelism telemetry
  • fe9bd2ea6 docs(evidence): record post-commit bundle verification transcript
  • c1b64ca1c Merge pull request #6909 from code-yeongyu/fix/reflection-completion-stale-fixture
  • 4586c6229 docs(evidence): record Grok Sisyphus prompt QA evidence
  • a88f1e2c7 feat(sisyphus): route Grok 4.5/4.6 to a native model-specific prompt
  • 7ab5376d6 feat(model-core): add Grok 4.5/4.6 family detectors
  • 0512e0c72 test(memory): use a module-level recent timestamp instead of a hardcoded date in completion fixtures
  • 3cb1d63c4 Merge pull request #6904 from code-yeongyu/feat/ulw-plan-constraint-sweep
  • 004fe9dd4 Merge pull request #6903 from code-yeongyu/feat/ulw-loop-assumed-constraints
  • 381738a96 feat(ulw-plan): sweep extrinsic constraints (budget/stack/scale/audience) across editions
  • 1301238f2 feat(ulw-loop): derive assumed constraints when the brief is silent
  • bd9987e75 Merge pull request #6892 from code-yeongyu/fix/memory-facts-sandbox
  • c8614e617 Merge pull request #6896 from code-yeongyu/fix/windows-soul-watermark-timeout
  • 9e86f635a Merge pull request #6865 from code-yeongyu/feat/mass-ulw-dag-orchestration
  • 0360dae3d test(utils): extend codegraph upgrade test timeout
  • e00eaef7f test(memory): stabilize Windows RPC cleanup
  • c58d45e7c Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-orchestration
  • 8ff6182df test(init-deep): avoid Git drift fixtures
  • ec7d53e06 Merge remote-tracking branch 'origin/dev' into fix/windows-soul-watermark-timeout
  • 4751bb1ee Merge pull request #6893 from code-yeongyu/fix/remove-omo-telemetry-command
  • 5c3110e12 docs(evidence): record criterion-named Team Mode QA artifacts
  • 429556b83 docs(evidence): record Team Mode repair QA evidence
  • 589c33675 test(memory): harden soul watermark timeout
  • 7a15e51a5 Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-orchestration
  • 27fc628b5 docs(evidence): commit full-suite transcript for telemetry command removal
  • 95fe3be52 Merge pull request #6890 from code-yeongyu/fix/ci-optimization
  • 79e5e3ca4 test(memory): harden memory tool and integration tests for windows CI
  • 84e3381be Merge pull request #6891 from code-yeongyu/fix/work-with-pr-monitor
  • 775cb95a5 Merge pull request #6889 from code-yeongyu/fix/6881-memory-prompt-cache-stability
  • c03937076 Merge remote-tracking branch 'origin/dev' into fix/6881-memory-prompt-cache-stability
  • 25cb7c7dc Merge pull request #6886 from code-yeongyu/fix/plan-gate-user-request-channels
  • 76a6d5fbb fix(ci): build full codex plugin for platform smoke tests
  • 63d873b19 docs(work-with-pr): replace polling loops with monitor subscribe
  • 578c25b3e Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-orchestration
  • 15ad6e617 Merge pull request #6885 from code-yeongyu/fix/windows-reflection-fork-test-timeout
  • bdc712fe3 Merge remote-tracking branch 'origin/dev' into fix/plan-gate-user-request-channels
  • f5959d220 Merge remote-tracking branch 'origin/dev' into fix/6881-memory-prompt-cache-stability
  • 6f04a3461 Merge pull request #6884 from code-yeongyu/fix/memory-model-catalog-slash-ids
  • b448cfe85 test(memory): harden command fixture timeouts
  • 58cfd7450 Merge remote-tracking branch 'origin/dev' into fix/6881-memory-prompt-cache-stability
  • 06645393b Merge remote-tracking branch 'origin/dev' into fix/memory-model-catalog-slash-ids
  • 1b593cf88 Merge pull request #6888 from code-yeongyu/fix/6883-quick-chain-qwen-flash
  • 4296367cd Merge remote-tracking branch 'origin/dev' into fix/plan-gate-user-request-channels
  • aa7e475c9 Merge remote-tracking branch 'origin/dev' into fix/windows-reflection-fork-test-timeout
  • 3e324d983 docs(evidence): record memory prompt cache QA
  • 472d1e262 fix(memory): stabilize compiled prompt projection
  • 98f08396b test(memory-core): stop racing git worktree add in the concurrency test
  • 51b502857 Merge remote-tracking branch 'origin/dev' into fix/6883-quick-chain-qwen-flash
  • eca1d87e5 Merge remote-tracking branch 'origin/dev' into fix/memory-model-catalog-slash-ids
  • f2956f9c8 Merge pull request #6887 from code-yeongyu/fix/6880-rpc-child-error-classification
  • 6e583b3bc test(memory): pin the shared launch preflight for both memory surfaces
  • 56a0f52ec docs: align quick fallback providers
  • 75b82be7e fix(model-core): correct OpenCode Go quick fallback
  • 32cc2197e test(memory): harden reflection fork timeouts
  • 3536c86d4 Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-orchestration
  • 2d55567fd fix(memory): name the model when the child reports it cannot see one
  • 6cdb81d9c fix(memory): keep slash-containing model ids visible to preflight
  • 8726d98c2 test(memory): harden Windows process tests
  • 0684852a0 fix(dag): defer in-process teardown past cancellation
  • 598bd778c fix(dag): wire shipped handles and recovery cancellation
  • 24db42bf0 fix(dag): compose cancellation runtime surfaces
  • 6974ab639 fix(dag): avoid viewer protocol fsync cost
  • 1d2d814e8 fix(dag): close final conformance remainders
  • c3a0221cc Merge remote-tracking branch 'origin/dev' into feat/mass-ulw-dag-orchestration
  • 108bffa04 fix(script): pin dag eval sdk in omo-ai payload guard
  • 038ed0cbb Merge pull request #6864 from code-yeongyu/feat/memory-fork-cost-routing
  • 3122f5672 fix(memory): judge fork cache reuse from session usage, not assumption
  • 6ab5399fb feat(memory): route reflection between fork and quick by cost
  • be73200cd feat(memory): model fork-vs-quick launch cost per turn
  • b2273e997 fix(memory): honor the child sentinel as a hard disable
  • 28f184c5a Merge pull request #6859 from code-yeongyu/fix/memory-reflection-runtime-model
  • 81a21ec0a Merge remote-tracking branch 'origin/dev' into fix/memory-reflection-runtime-model
  • 3bbdf6004 Merge pull request #6860 from code-yeongyu/fix/omo-agent-dir-unification
  • 6de0f2d2c test(memory): cover the session seam and registry scan
  • a047dcb2c test(memory): pin the resolution ladder order
  • 6bd290ba4 fix(omo-native): type the adoption result and categorize the new command strings
  • f612eb661 docs(evidence): record the canonical agent-directory QA
  • 5254268cc docs: state the canonical omo agent directory and its invariant
  • ee71abff3 fix(memory): point category failures at the real fix
  • 46a3ebebc fix(memory): resolve reflection models from the live runtime
  • 0d1505be8 feat(omo-native): add the shared agent-directory resolver
  • 259fd760d Merge pull request #6856 from code-yeongyu/fix/ulw-plan-bounded-review-convergence
  • 13a034b83 fix(ulw-plan): bound high-accuracy review convergence
  • 8e71c1be5 Merge pull request #6851 from code-yeongyu/fix/windows-facts-reservation-timeout
  • 29ec975fa test(memory): budget reservation finalization on Windows
  • ac650406c Merge pull request #6839 from code-yeongyu/fix/macos-tmux-manager-timer-isolation
  • 9cfe40b76 Merge origin/dev into fix/macos-tmux-manager-timer-isolation
  • 6d206e1e9 Merge pull request #6838 from code-yeongyu/fix/windows-agent-toolkit-timeout
  • b8ae9f77b Merge pull request #6837 from code-yeongyu/fix/windows-port-auto-selection-race
  • 4d951e39c test(omo-opencode): isolate tmux polling timers
  • 9ab4cd9d1 test(utils): make port auto-selection deterministic
  • 30d7ed5af test(memory): bound cache variant coverage
  • 6d3c24f41 test(omo-native): verify provider registry map
  • c26b8febd Merge pull request #6825 from code-yeongyu/fix/memory-core-git-lock-contention
  • 1bc6dd662 Merge remote-tracking branch 'origin/dev' into fix/memory-core-git-lock-contention
  • ca30face6 Merge pull request #6824 from code-yeongyu/fix/memory-journal-stale-lock
  • ee11fba21 test(memory): pin that an unclearable lock still fails loudly
  • 564d6da58 docs(memory): state which proof covers which criterion
  • b4b6aa2b7 test(memory): assert every concurrent worktree commit lands
  • 82efbe728 docs(memory): record the git lock contention evidence
  • 164dca834 fix(memory): retry the remaining lock-taking git mutations
  • dddcbd269 fix(memory): apply the git lock retry to mutating repo operations
  • 3d03d1cc3 fix(memory): retry git operations that lose a lock race
  • a93f43869 fix(memory): use the real commit author shape in the contention probe
  • ea82b1459 test(memory): probe concurrent git mutations for Windows lock contention
  • 6281e9cc6 fix(memory): reclaim stale transcript journal locks from dead owners
  • 00bd5b2fc Merge pull request #6821 from code-yeongyu/refactor/memory-module-split-runner
  • 9c077f24c fix(memory): make runner deadline assertion deterministic
  • cb96c44d5 Merge remote-tracking branch 'origin/dev' into refactor/memory-module-split-runner
  • 757f50621 Merge pull request #6817 from code-yeongyu/feat/memory-tui-entry-polish
  • 378d56074 Merge remote-tracking branch 'origin/dev' into feat/memory-tui-entry-polish
  • f0d8e1dcc refactor(memory): split runner and sandbox modules
  • 7a00a415d Merge pull request #6812 from code-yeongyu/refactor/memory-health-alert-split
  • dc878dee8 Merge remote-tracking branch 'origin/dev' into feat/memory-tui-entry-polish
  • f59bec68a Merge remote-tracking branch 'origin/dev' into refactor/memory-health-alert-split
  • 55aaa316f Merge pull request #6814 from code-yeongyu/refactor/memory-module-split-bridge
  • 703d11d20 Merge remote-tracking branch 'origin/dev' into feat/memory-tui-entry-polish
  • 9008e11c2 Merge remote-tracking branch 'origin/dev' into feat/memory-tui-entry-polish
  • 0b39fa303 Merge pull request #6816 from code-yeongyu/fix/omo-ai-bun-global-install
  • b20c1417d Merge pull request #6820 from code-yeongyu/fix/format-beta7-changelog
  • 2eea2f9c6 fix: format the beta.7 changelog entry
  • de6e55a90 Merge pull request #6819 from code-yeongyu/docs/record-beta7-release
  • 74b700488 docs: record the OmO beta.7 release
  • 4c59f889e Merge remote-tracking branch 'origin/dev' into refactor/memory-module-split-bridge
  • 5295ad32d Merge remote-tracking branch 'origin/dev' into refactor/memory-health-alert-split
  • 4e3c361f3 Merge pull request #6811 from code-yeongyu/fix/memory-sandbox-escape-visibility
  • c2b2375c4 fix(omo-native): honor Windows runtime home for migration
  • e71d0faa8 Merge remote-tracking branch 'origin/dev' into refactor/memory-module-split-bridge
  • e0961dc5f Merge remote-tracking branch 'origin/dev' into refactor/memory-health-alert-split
  • dd4986b23 Merge remote-tracking branch 'origin/dev' into fix/memory-sandbox-escape-visibility
  • 530c2c34d Merge pull request #6815 from code-yeongyu/refactor/memory-module-split-wiring
  • b8996a61a Merge remote-tracking branch 'origin/dev' into feat/memory-tui-entry-polish
  • ceb9d4af1 docs(qa): record before/after evidence for the memory entry restyle
  • 03982613e test(memory): pin the rendered shape and semantic colour of memory entries
  • 2619e8c65 fix(omo-native): repair legacy Bun global manifests
  • 073cfdee2 Merge remote-tracking branch 'origin/dev' into fix/memory-sandbox-escape-visibility
  • 25cd1d18d Merge remote-tracking branch 'origin/dev' into refactor/memory-module-split-wiring
  • e65d76148 Merge remote-tracking branch 'origin/dev' into refactor/memory-module-split-bridge
  • 628c8e27c Merge remote-tracking branch 'origin/dev' into refactor/memory-health-alert-split
  • d1b1be69d Merge pull request #6810 from code-yeongyu/refactor/memory-shared-launch-preflight
  • 25ee0b988 fix(memory): label facts sandbox warnings
  • 61f6247e9 refactor(memory): split session wiring responsibilities
  • 91cca1d3b refactor(memory): split rpc and completion modules
  • 38baf468e docs(evidence): record health alert split and spinner assertion proof
  • f6db62e40 docs(qa): record sandbox visibility evidence
  • c93efdc4c refactor(memory): share launch preflight
  • c83c62a78 fix(memory): surface sandbox degradation
  • ca64bff41 test(memory): pin literal spinner glyphs instead of deriving from the frame table
  • dad9472be refactor(memory): move reflection health alert out of read-only health module

Thank you to 1 community contributor:

  • @cursoragent:
    • feat(model-core): add Grok 4.5/4.6 family detectors
    • feat(sisyphus): route Grok 4.5/4.6 to a native model-specific prompt
    • docs(evidence): record Grok Sisyphus prompt QA evidence
    • Merge remote-tracking branch 'origin/dev' into cursor/grok-sisyphus-prompt-4c49
View originalPermalink
How v5.0.0-beta.8 went

v5.0.0-beta.7

Pre-release
Added 7
  • Durable facts queue with crash reconciliation
  • Dream persona consolidation with skill audit and people phases
  • People card with observation formats and human card seed
  • Skills-usage ledger for dream audit
  • Memory-discipline skill
  • Memory configuration surface documentation
  • Expose HEAD commit timestamps in memory-core
Changed 3
  • OMO Native now runs on @code-yeongyu/senpi@2026.8.12-4 with all workspace pins moved in lockstep
  • omo update detects your installer (Bun or npm) and prints the matching command for your setup
  • Active learning (facts, people cards, dream consolidation) now defaults on with per-agent overrides
Fixed 6
  • Preserve favorite models when a provider is momentarily unauthenticated or unreachable
  • Update commands are correctly shell-quoted on both POSIX and Windows when custom install locations contain spaces, $, or quotes
  • Nested Senpi processes now share the single $HOME/.omo/agent state directory for identity and configuration
  • Forbid destructive recovery that can discard user memory edits
  • Close the abrupt-supervisor-death deadline hole and pin the facts watermark ordering
  • Specify Windows supervisor containment and reconciliation

From oh-my-openagent

OMO Native: your favorites stay put, and updates that just work

Favorite models stop disappearing — if a provider was momentarily unauthenticated or unreachable, opening the model picker and touching favorites used to silently erase every favorite that provider owned, sometimes wiping the list entirely. The picker only ever sees models that resolve right now, and that filtered view was being written straight back to your settings. Favorites that do not resolve at that moment are now preserved untouched.

Latest Senpi engine — OMO Native (omo-ai) now runs on @code-yeongyu/senpi@2026.8.12-4, with every workspace pin (root, native launcher, Senpi adapter, task engine) moved in lockstep.

Updates that respect your installeromo update now detects whether you installed with Bun or npm and prints the command that matches your setup. Bun global installs get a proper bun add -g path; npm installs keep npm i -g. Reinstall errors quote the same detected command, so recovery advice is never for the wrong package manager.

Update guidance safe from any install path — custom install locations with spaces, $, or quotes now produce correctly shell-quoted update commands on both POSIX and Windows.

One agent home, even nested — nested Senpi processes (reflection, child agents) now share the single $HOME/.omo/agent state directory instead of resolving their own, so identity and configuration survive every child launch.

Plus shared memory-engine improvements that ship through the OmO memory runtime: active learning (facts, people cards, dream consolidation) now defaults on, with per-agent overrides.


ade persona seed v2 + identity.md in

  • f35dd0966 docs(memory): record the unconditional full-scope APPROVED verdict
  • e2e781bd5 test(omo-codex): allow Windows installer latency
  • 6cf4e8589 fix(memory): forbid destructive recovery that can discard user memory edits
  • f10944019 fix(memory-core): narrow optional observations in the people card tests
  • 67093ab26 docs(memory): record round 31 verdict, the empirical IC-6 defect, and round 32 bind
  • 374a6bf31 fix(memory): close the abrupt-supervisor-death deadline hole and pin the facts watermark ordering
  • 3347fd4cc fix(memory-core): allow kind and aliases in the pre-commit frontmatter hook
  • c5cf7ea46 feat(memory): durable facts queue with crash reconcile
  • 82c967666 docs(memory-config): document the memory configuration surface
  • 3a56dac04 docs(memory): record round 30 verdicts and round 31 bind
  • eb8a46895 fix(memory): specify Windows supervisor containment and reconciliation
  • a4dd860bc feat(memory-core): dream persona (consolidation + skill audit + people phases)
  • 224638c56 feat(memory-core): people card + observation formats and human card seed
  • 30ce8cf20 docs(memory): record full-scope review round 30 and self-audit receipt
  • 2bba9d7b4 feat(memory): skills-usage ledger for dream audit
  • 8d0a1a5b1 feat(memory-core): seed memory-discipline skill
  • 3e00693d8 feat(memory-config): default active learning on + nudge/facts/dream/people/soul settings
  • 5bca65f69 feat(memory-core): sharpen always-on memory reminder (attention-first rewrite)
  • 14b19c787 merge: sync dev into Windows CI baseline
  • 6a50215b0 docs(memory): add memory v2 active-learning work plan
  • 9cb2b3763 fix(omo-native): preserve Windows PATH casing
  • 1495ca6e0 test(omo-native): compare canonical Windows bin paths
  • 2826d2754 test(omo-native): respect Windows test contracts
  • abbd63d3b test(memory-core): reuse validation fixtures
  • 3ce89e30f style(omo-native): restore fixture indentation
  • f4aaa82ee test(omo-native): canonicalize Windows fixture paths
  • e638c8de4 fix(ci): pin workflow yaml to LF
  • 95cbd30b7 feat(memory-core): expose HEAD commit timestamps

Thank you to 2 community contributors:

  • @ashmoonori-afk:
    • fix(omo-memory): locate standard Git on Windows
    • test(omo-memory): allow for Windows Git latency
  • @MoerAI:
    • docs: explain the three OMO editions
    • docs: add edition choice guidance
    • Merge pull request #6769 from code-yeongyu/docs/three-editions
    • Merge pull request #6771 from code-yeongyu/docs/choose-edition
View originalPermalink
How v5.0.0-beta.7 went

v5.0.0-beta.6

Pre-release
Added 2
  • Shared telemetry core now provides per-event property allowlists, primitive-only length-bounded payloads, and explicit rejection of prompt, path, text, and IP fields
  • Telemetry support for DO_NOT_TRACK environment variable and configurable GeoIP behavior
Changed 3
  • Telemetry batching and bounded shutdown with fail-closed handling for placeholder project keys
  • Codex and LazyCodex payloads refreshed with current telemetry, configuration, CodeGraph, and LSP behavior
  • Generated Codex installer now honors DO_NOT_TRACK and disables telemetry for explicit placeholder key
Fixed 2
  • LSP operations now work through symlinks and worktrees by preserving valid lexical workspace paths while safely resolving canonical ancestors
  • Memory repositories now expose commit timestamps and Git execution retries standard Git-for-Windows locations after normal ENOENT failure

From oh-my-openagent

OMO 5.0.0-beta.6

Beta.6 coordinates the OpenCode and Codex editions around a more reliable shared runtime. It fixes LSP behavior in symlinked worktrees, adds a privacy-bounded telemetry/config surface, improves Windows Git discovery, and refreshes the generated Codex and LazyCodex payloads.

Highlights
LSP operations now work through symlinks and worktrees

Read-only LSP tools preserve valid lexical workspace paths while safely resolving canonical ancestors. Diagnostics, definitions, references, symbols, and prepare-rename no longer fail merely because a monorepo or task worktree is reached through a symlink. Rename keeps strict canonical write confinement.

Shared telemetry is typed and privacy-bounded

The shared telemetry core now provides:

  • per-event property allowlists;
  • primitive-only, length-bounded payloads;
  • explicit rejection of prompt, path, text, and IP fields;
  • batching and bounded shutdown;
  • DO_NOT_TRACK support;
  • configurable GeoIP behavior;
  • fail-closed handling for placeholder project keys.

Unified configuration can disable telemetry with:

{
  "telemetry": {
    "enabled": false
  }
}

Upgrade shared config consumers together before using this strict new key.

Memory is more reliable on Windows

Memory repositories expose commit timestamps, and Git execution now retries standard Git-for-Windows locations only after a normal ENOENT failure. Other execution failures retain their existing behavior.

Codex and LazyCodex payloads are current

The generated Codex installer honors DO_NOT_TRACK, disables telemetry for the explicit placeholder key, and ships refreshed CodeGraph, LSP, configuration, and installer artifacts.

Edition impact
OMO Ultimate for OpenCode

Beta.6 primarily consumes the shared LSP worktree fix. It introduces no new OpenCode hook, tool, CLI, schema, or agent migration relative to beta.5.

OMO Light for Codex

Beta.6 refreshes installer and marketplace payloads with current telemetry, configuration, CodeGraph, and LSP behavior.

Migration note for users coming from 4.x

The runtime command introduced during the 5.0 beta line remains:

omo ...  ->  omo-agent-toolkit ...

Rerunning the installer removes only installer-managed legacy wrappers and preserves user-owned omo files.

Release surfaces
  • oh-my-opencode@5.0.0-beta.6
  • oh-my-openagent@5.0.0-beta.6
  • lazycodex-ai@5.0.0-beta.6
  • Codex marketplace plugin omo@sisyphuslabs
  • platform launcher packages stamped 5.0.0-beta.6

Full diff: https://github.com/code-yeongyu/oh-my-openagent/compare/v5.0.0-beta.5...v5.0.0-beta.6


Complete generated changelog
  • 55326d2a8 Merge pull request #6760 from code-yeongyu/fix/windows-memory-lock-beta6
  • 807b62f62 test(memory): budget Windows lazy initialization
  • 1a9d0e7da fix(memory): tolerate Windows lock sharing races
  • 150a06992 Merge pull request #6750 from code-yeongyu/release/v5.0.0-beta.6-source-state
  • 0dd0ec220 Merge pull request #6743 from code-yeongyu/fix/lsp-symlink-worktree
  • b542b7c2c fix(lsp-core): preserve resolved read paths
  • b75406420 fix(lsp-core): allow lexical symlink reads
  • b1574d648 Merge pull request #6737 from code-yeongyu/fix/omo-native-geoip-on
  • bceb9cf76 Merge pull request #6736 from code-yeongyu/fix/omo-memory-windows-git-fallback
  • 19e3d3ae3 Merge pull request #6735 from code-yeongyu/fix/coding-agent-sessions-omo
  • f332aaff8 docs(qa): record Windows memory git fallback evidence
  • f4d77d7fc test(omo-memory): allow for Windows Git latency
  • ded9d68bc fix(omo-memory): locate standard Git on Windows
  • ca95292c7 Merge pull request #6733 from code-yeongyu/fix/omo-native-placeholder-key
  • 77210223c docs(qa): record OMO session discovery proof
  • 7ad95a80b fix(telemetry-core): treat the unconfigured OmO Native placeholder key as telemetry disabled
  • 1b91e9771 Merge pull request #6721 from code-yeongyu/fix/memory-footer-evidence-eol
  • 16cbd41ef docs(qa): normalize memory footer ANSI evidence
  • 0ead4568c docs(qa): correct Git-free harness evidence
  • b3b7c54cd docs(qa): record Git-free wiring proof
  • 8ffba7fb6 Merge pull request #6719 from code-yeongyu/fix/posix-test-timeout-clobber
  • aa17a3270 docs(qa): correct deduplicated memory suite counts
  • e05f337cb docs(qa): record telemetry sync and Windows fixes
  • 7f198bb24 fix(ci): normalize stale-package report paths
  • d5b49adcb merge: sync telemetry dev before memory footer merge
  • 911c9ffe0 docs(evidence): pin the preload vs per-file timeout semantics
  • 7dbe42d00 fix(test): raise the CI test-timeout floor in the preload
  • 79bbfe0f8 docs(qa): record isolated Windows status proof
  • e0f90f923 Merge pull request #6718 from code-yeongyu/feat/omo-native-telemetry
  • d2c590f33 docs(evidence): correct the timeout mechanism with the per-file probe
  • 31bc2c286 fix(test): remove the no-op windows timeout floor
  • 0c476edab revert: restore the per-file windows test budgets
  • 1b8370a51 docs(qa): align Windows retry evidence
  • 337d3a287 docs(qa): correct Windows teardown evidence
  • ca0aac153 docs(qa): record event-bound Windows reset proof
  • 1fab035f4 fix(test): stop lowering the global test timeout on posix
  • 6571ee0dc docs(qa): record Windows wiring cleanup proof
  • 07e12a548 docs(qa): record latest dev sync proof
  • e5dcc27be fix(telemetry-core): let allowlisted non-string flags pass the content-suffix guard
  • 7e146e161 feat(telemetry-core): typed event capture wrapper with allowlist and batching
  • 93506997a feat(telemetry-core): honor DO_NOT_TRACK opt-out standard
  • 5ded3b243 merge: sync final dev before memory footer merge
  • 2837bbbef docs(qa): record stale self-package cleanup proof
  • 57cf761a3 fix(ci): remove stale self-package tests
  • de2d4acdf Merge pull request #6713 from code-yeongyu/fix/windows-ci-root-causes
  • 26db2b775 test(omo-codex): give the git bash hooks install a real windows budget
  • 511a23dd0 docs(qa): correct final memory suite evidence
  • 92fda8980 docs(qa): record final memory lifecycle proof
  • d4f675773 docs(evidence): record the green windows required-check run
  • 4aea47c1a merge: sync dev after Windows baseline repair
  • fcaf05d28 merge: sync dev after the shared build fix landed
  • 4cecf37b7 Merge pull request #6700 from code-yeongyu/fix/windows-root-ci-baseline
  • 64006f3e7 docs(qa): record final Windows timeout proof
  • cb874f655 test(ci): budget Windows integration fixtures
  • dc5c27bef docs(evidence): record the windows ci root-cause qa
  • d7e62e628 docs(agents): forbid bypassing a red required check
  • ee8cdb7aa docs(qa): record staging backup cleanup proof
  • f67d2c1c0 docs(qa): record final bundle freshness proof
  • 864c9eb59 merge: sync dev after npm install repair
  • 194175c30 docs(qa): record Windows CI round three evidence
  • 9264e7194 merge: sync dev into Windows CI baseline
  • e2e781bd5 test(omo-codex): allow Windows installer latency
  • 14b19c787 merge: sync dev into Windows CI baseline
  • 9cb2b3763 fix(omo-native): preserve Windows PATH casing
  • 1495ca6e0 test(omo-native): compare canonical Windows bin paths
  • 2826d2754 test(omo-native): respect Windows test contracts
  • abbd63d3b test(memory-core): reuse validation fixtures
  • 3ce89e30f style(omo-native): restore fixture indentation
  • f4aaa82ee test(omo-native): canonicalize Windows fixture paths
  • e638c8de4 fix(ci): pin workflow yaml to LF
  • 95cbd30b7 feat(memory-core): expose HEAD commit timestamps

Thank you to 1 community contributor:

  • @ashmoonori-afk:
    • fix(omo-memory): locate standard Git on Windows
    • test(omo-memory): allow for Windows Git latency
View originalPermalink
How v5.0.0-beta.6 went

v5.0.0-beta.5

Pre-release
Added 1
  • Hand the omo brand profile and update channel to the engine
Changed 1
  • Document the brand contract, flat home and update channel
Fixed 3
  • Stage over a removed target and assert the launcher PATH prepend on Windows
  • Resolve the hoisted shim bin dir and give git tests a real timeout on Windows
  • Make the publish-shape test line-ending independent

From oh-my-openagent

  • b5feb7746 Merge pull request #6707 from code-yeongyu/release/v5.0.0-beta.5-source-state
  • 56593dc78 Merge pull request #6708 from code-yeongyu/fix/npm-ci-stale-node-modules
  • 1b06566ed fix(windows): stage over a removed target and assert the launcher PATH prepend
  • a4d64b14b fix(windows): resolve the hoisted shim bin dir and give git tests a real timeout
  • b91a7f595 test(omo-native): gate POSIX-only contracts on Windows and surface build stderr
  • 82e76554c test(omo-opencode): wait for the clock to advance instead of a fixed sleep
  • 7bd338df6 Merge pull request #6695 from code-yeongyu/feat/omo-brand-unification
  • 65c9fc7fc test(omo-native): expand Windows short paths in the launcher fixture
  • efdd7aa4f chore(script): re-pin the publish-shape audit hit after the comment shift
  • 7ef6a432e fix(script): make the publish-shape test line-ending independent
  • 05604df78 test(omo-native): assert OMO_BIN by target instead of path spelling
  • b2ca09401 test(omo-native): guard against pinning an engine that ignores the brand
  • c3cb6c832 docs(omo-native): document the brand contract, flat home and update channel
  • 4ea82b508 feat(omo-native): hand the omo brand profile and update channel to the engine
View originalPermalink
How v5.0.0-beta.5 went

v5.0.0-beta.4

Pre-release
Fixed 1
  • Fix memory surface direct access issue

From oh-my-openagent

  • ea2b38717 Merge pull request #6693 from code-yeongyu/release/v5.0.0-beta.4-source-state
  • f065c0fcd Merge pull request #6688 from code-yeongyu/fix/memory-surface-direct
  • 8357cb5d0 docs(agents-md): refresh knowledge base against HEAD
View originalPermalink
How v5.0.0-beta.4 went

v5.0.0-beta.3

Pre-release
Added 1
  • Beta 3 memory features
Changed 1
  • Source state for v5.0.0-beta.3 release

From oh-my-openagent

  • a8ec7b130 Merge pull request #6684 from code-yeongyu/release/v5.0.0-beta.3-source-state
  • fd7a19588 Merge pull request #6683 from code-yeongyu/feat/beta3-memory
  • 4a4a24bba Merge pull request #6682 from code-yeongyu/docs/memory-letta-attribution
View originalPermalink
How v5.0.0-beta.3 went

v5.0.0-beta.2

Pre-release
  • b2018610e Merge pull request #6679 from code-yeongyu/release/v5.0.0-beta.2-source-state
View originalPermalink
How v5.0.0-beta.2 went

v5.0.0-beta.1

Pre-release
Added 5
  • Add a LaTeX final-materials route to ulw-research
  • Add Phase 2.5 surrogate retrieval to the fetch chain in shared-skills
  • Monitor every dispatched subagent to its completion condition
  • Add omo setup detection for sibling coding-agent stores
  • Implement consent-gated credential inheritance for omo setup
Changed 7
  • Rename omo bin to omo-agent-toolkit
  • Rename runtime wrapper to omo-agent-toolkit and remove legacy omo
  • Migrate remaining agent commands to omo-agent-toolkit
  • Migrate skill sources to omo-agent-toolkit commands
  • Migrate ulw-loop continuation and CLI help strings to omo-agent-toolkit
  • Implement staged plugin payload build with completeness gate
  • Bump pinned dep versions across ultimate-browsing and ast-grep
Fixed 8
  • Report posix artifact paths and normalize windows fixtures
  • Restore const declarations in the sqlite-gated suites
  • Keep the setup suites runnable without node:sqlite
  • Align repo audits with the omo-ai payload surfaces
  • Register omo-native in the package audit taxonomy
  • Finish the half-migrated ulw-loop resolver and widen the audit
  • Stop doctor re-flagging provider_options passthrough
  • Bind ulw-research report assets to a design-spec contract

From oh-my-openagent

  • 13db09a1a Merge pull request #6676 from code-yeongyu/release/v5.0.0-beta.1-source-state
  • 1e6669c6a Merge pull request #6675 from code-yeongyu/fix/reflection-child-pty-pipe
  • b836400d4 fix(omo-native): report posix artifact paths and normalize windows fixtures
  • 82220eb2e test(memory-core): windows-safe assertions (LF fixtures attr, drive-qualified paths, git-canonical hooks dir, win32 lock fail-close pin)
  • adb0767a0 Merge pull request #6674 from code-yeongyu/feat/memory-letta-parity
  • 938e02319 fix(omo-native): drive the setup consent prompt on a portable pty
  • 55148baec fix(omo-native): restore const declarations in the sqlite-gated suites
  • b5b7574b3 fix(omo-native): keep the setup suites runnable without node:sqlite
  • 79c1ac72d Merge pull request #6671 from code-yeongyu/feat/omo-ai-beta-release
  • da73c5d10 fix(script): align repo audits with the omo-ai payload surfaces
  • 5bd7bfb2f test(qa): isolated install smoke with mock-provider plugin-load proof
  • 16782bad4 feat(omo-native): consent-gated credential inheritance for omo setup
  • da17ab19a feat(omo-native): staged plugin payload build with completeness gate
  • 12e6b1d6b ci(publish): beta-only OIDC omo-ai publish with dist-tag guard and live verification
  • b22c225bc feat(omo-native): omo setup detection for sibling coding-agent stores
  • c2e102151 test(omo-native): pin the published package contract
  • cd969ebc4 fix(script): register omo-native in the package audit taxonomy
  • 9e5702ab3 docs(release): omo-ai beta channel runbook and install docs
  • 46f40b0e3 ci(publish): omo-ai tarball payload whitelist verifier
  • 70e0f5032 Merge pull request #6667 from code-yeongyu/feat/omo-agent-toolkit-rename
  • 791f560f4 test(audit): give the tracked-source scan a real time budget
  • 461d0cd9d fix(skills): finish the half-migrated ulw-loop resolver and widen the audit
  • 0018c0687 docs(evidence): record the aggregate install-smoke and gate results
  • d8d30e94d build(codex): regenerate the installer bundle for the symlink reclamation fix
  • 0f123c15e fix(cli): close the rename gaps the verification wave found
  • e72f94bd2 refactor(prompts): migrate remaining agent commands to omo-agent-toolkit with an audit gate
  • 89f09c90c feat(codex)!: rename runtime wrapper to omo-agent-toolkit and remove legacy omo
  • 5e0323896 refactor(skills): migrate skill sources to omo-agent-toolkit commands
  • 9de47ad28 docs(release)!: document the omo-agent-toolkit rename and omo removal
  • 8b4ab463a refactor(prompts): migrate ulw-loop continuation and CLI help strings to omo-agent-toolkit
  • 4abd085af feat(cli)!: rename omo bin to omo-agent-toolkit
  • bfd445cae Merge pull request #6664 from code-yeongyu/docs/light-readme-logo
  • 8e366c225 Merge pull request #6661 from code-yeongyu/code-yeongyu/cache-hit-wake-source
  • 5c977be07 docs(readme): replace rock logo with light mark
  • 8b33ac959 Merge pull request #6662 from code-yeongyu/feat/ub-surrogate-tier
  • f13bcbb17 feat(skills): monitor every dispatched subagent to its completion condition
  • 40151449d docs(skills): require provenance in cited research claims
  • 04b3e5f5d docs(shared-skills): correct archive/reader guidance from live probes
  • 50d03b419 chore(shared-skills): route WAF profiles through the surrogate step
  • ea9aee36e feat(shared-skills): add Phase 2.5 surrogate retrieval to the fetch chain
  • ef81f68a9 feat(shared-skills): reject surrogate dead ends and label fetch provenance
  • 22526d44d Merge pull request #6659 from code-yeongyu/feature/fallback-architect-runtime-gate
  • 7d2e622d2 Merge pull request #6660 from code-yeongyu/code-yeongyu/docs-drift-audit
  • acba42e44 docs: sync user-facing docs with current code across 17 files
  • b76764a23 Merge pull request #6658 from code-yeongyu/code-yeongyu/fix-doctor-deprecated-key-scan
  • ac85d1f3c fix(omo-opencode): stop doctor re-flagging provider_options passthrough
  • 778279535 Merge pull request #6500 from MoerAI/fix/start-work-external-blocker
  • dab01f20d Merge pull request #6485 from MoerAI/fix/oracle-claude-temperature-6338
  • b06be3b50 Merge pull request #6395 from MoerAI/fix/6376-shared-skills-root-path
  • 8340a05dc Merge pull request #6375 from MoerAI/fix/6141-hephaestus-bedrock-model-id
  • 2b6c729f1 Merge pull request #6569 from MoerAI/fix/6320-uninstall-bin-links
  • 76b9aa8d3 Merge pull request #6647 from code-yeongyu/feat/ulw-research-latex
  • 4655571ec feat(skills): add a LaTeX final-materials route to ulw-research
  • a5cdb6ac0 Merge pull request #6645 from code-yeongyu/fix/ulw-research-design-spec
  • fcfbc7f0c fix(codex): track the reworded ulw-research delivery gates in the sync overlay
  • 7e7db9bc0 fix(skills): bind ulw-research report assets to a design-spec contract
  • fd79bf49b Merge pull request #6632 from code-yeongyu/code-yeongyu/init-deep-agents-md-refresh
  • afebde982 docs(agents-md): refresh knowledge base to v4.19.4 snapshot (init-deep update pass)
  • 51ab1e5b6 Merge pull request #6630 from code-yeongyu/fix/ci-failing-tests
  • aa3a16dea Merge pull request #6629 from code-yeongyu/feat/momus-one-shot-plan-review
  • 77e469797 Merge pull request #6629 from code-yeongyu/feat/momus-one-shot-plan-review
  • db0e19b22 merge: sync dev into feat/momus-one-shot-plan-review (regenerate extension bundle)
  • d872b0ef9 Merge pull request #6628 from code-yeongyu/chore/bump-skills-deps-20260807
  • e483826a5 chore(skills): bump pinned dep versions across ultimate-browsing + ast-grep
  • 554236b1b fix(omo-config-core): index dynamic task settings
  • 4fabb3ede Merge pull request #6623 from Tinycute00/fix/ast-grep-scan-grok-object-oneof-20260806220324
  • 222162698 fix(ast-grep-mcp): make scan oneOf branches object-typed
  • 69a1855e6 Merge pull request #5638 from Hungdoan565/codex/test-boulder-plan-progress-20260627
  • 63e2c7f66 Merge pull request #5659 from JSap0914/fix/ulw-title-injection-order-5586
  • 987a74180 Merge pull request #5672 from Hungdoan565/codex/fix-5300-glm-max-reasoning-20260628
  • 9ffcab37f Merge pull request #6583 from ThunderRonin/fix/prompt-async-gate-path-compat-undefined
  • 7801ff35e Merge pull request #6550 from berkshirehathaways/codex/fix-flag-prefixed-installer-command
  • 6f29c4f21 Merge pull request #6591 from Atmospenguin/fix/goal-slash-objective
  • cbee00743 Merge pull request #6617 from scw1109/fix/build-time-reasoning-to-variant-lowering
  • 0133893ff Merge pull request #6545 from berkshirehathaways/codex/fix-bootstrap-invalid-only
  • 077be21d3 Merge pull request #6463 from niStee/fix/github-actions-repository-guards
  • 526b4a059 Merge pull request #6465 from niStee/chore/workflow-permissions-hardening
  • 67711137d Merge pull request #6301 from gdaegeun539/fix/lsp-initialized-param
  • ad652683a Merge pull request #6342 from WhiteGiverMa/fix/test-env-password-isolation
  • 2fbdeb629 Merge pull request #6122 from cyllas/fix-websearch-tool-name
  • 630bfca59 Merge pull request #6481 from eadbcf/patch-1
  • fc107113a fix(omo-opencode): lower canonical reasoning to variant at agent config build time
  • 74dd740e0 Merge remote-tracking branch 'origin/dev' into fix/6320-uninstall-bin-links
  • d2c0874e4 Merge remote-tracking branch 'origin/dev' into fix/start-work-external-blocker
  • 0ce3f1216 Merge remote-tracking branch 'origin/dev' into fix/6376-shared-skills-root-path
  • 42b38b1e2 Merge remote-tracking branch 'origin/dev' into manage/pr-6375
  • 643b5976b fix(model-core): canonicalize suffixed aliases
  • 4fcd53e99 fix(model-core): preserve canonical alias snapshots
  • 9673333c6 Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
  • 0da12bf1c fix(model-core): prefer provider snapshot entries
  • c235b2ac2 fix(model-core): resolve suffixed snapshot IDs
  • aa4b9961c fix(model-core): resolve prefixed capability IDs
  • 40265f7a9 fix(model-core): preserve deep-research temperature
  • 4ca872b57 Merge pull request #6610 from code-yeongyu/fix/continuation-stop-on-unrecoverable-error
  • 1d1249035 docs(evidence): note the two dispatch paths added during review
  • c922bd53f fix(todo-continuation-enforcer): keep the stop flag across split internal messages
  • 62c961648 fix(todo-continuation-enforcer): stop on a non-retryable direct dispatch failure
  • 0b93ee1c7 fix(todo-continuation-enforcer): wire the unrecoverable-error stop flag
  • 3267e2983 docs(evidence): record continuation fail-safe QA
  • f210cb831 fix(todo-continuation-enforcer): stop re-injecting after a non-retryable request error
  • 6984f3128 fix(shared-skills): record complete Codex QA evidence
  • 302c5eaec Merge pull request #6607 from code-yeongyu/fix/tool-pair-validator-real-part-model
  • f03dcd026 docs(evidence): scope the failing-first run to the conversion gate
  • 0bbef82fe docs(evidence): re-capture opencode QA with the user home isolated
  • c47dd1fec test(shared-skills): prove the installed marketplace wrapper resolves ast-grep
  • 937b42084 docs(evidence): capture the real failing-first output
  • 4d6c8052c docs(evidence): record tool-pair-validator real-part QA
  • cd6478569 test(messages-transform): assert tool-pair repair with real tool parts
  • 3873af48d test(tool-pair-validator): gate repairs on the conversion invariant
  • 5f576e6e9 fix(tool-pair-validator): operate on OpenCode's real Part model
  • a5316f6bf fix(start-work): keep the Codex stop contract out of other harnesses
  • 10098b7cf fix(omo-codex): detect a stale committed installer bundle
  • 19abf74fe Merge pull request #6603 from code-yeongyu/improve/ulw-fanout-categories
  • aa1469c3f Merge pull request #6602 from code-yeongyu/fix/config-migration-model-chains
  • 989636bc5 fix(omo-opencode): accept migrated agent model chains
  • b33a4250f Merge pull request #6594 from code-yeongyu/fix/ultrawork-once-per-session
  • e2b0102aa Merge remote-tracking branch 'origin/dev' into fix/ultrawork-once-per-session
  • bbd1c74a4 Merge pull request #6597 from code-yeongyu/feat/subagent-session-resume-revival
  • 2f2634052 Merge origin/dev into fix/ultrawork-once-per-session
  • c5f860433 Merge remote-tracking branch 'origin/dev' into feat/subagent-session-resume-revival
  • fa61dd871 style: remove em-dash comment and empty catch from F2 review
  • 9cee074da Merge pull request #6588 from 1vivy/fix/monitor-terminal-parent-wake
  • 0788a4414 Merge pull request #6595 from code-yeongyu/fix/6574-exdev-migration
  • 27c9e28ca test(omo-opencode): record EXDEV migration evidence
  • 9d2abc9d4 fix(omo-opencode): warn when config migration fails
  • f8db79608 fix(omo-opencode): handle cross-device migration backups
  • 27138a7ab fix(omo-opencode): force only terminal batches over the monitor defer ceiling
  • 9ca64eab9 docs(qa): record authentic user-session reproduction of 'got undefined' dispatch failure
  • c6cf711ce fix(shared-skills): resolve the skills directory in the Codex marketplace layout
  • 454f0bfa4 docs: suspend/revive lifecycle and resume_children documentation
  • a3af6c96d fix(model-core): resolve provider metadata for reasoning-suffixed model ids
  • c5b121518 Merge pull request #6537 from Hungdoan565/fix/6489-bug-report-opencode-version
  • 1d6f9eba9 Merge pull request #6466 from niStee/dependabot/npm_and_yarn/packages/web/next-15.5.21
  • 38f80a4d2 Merge pull request #6297 from leeyazhou/fix-tmux
  • b906e7ef0 Merge pull request #6227 from H-TTTTT/fix/lsp-mcp-cwd
  • 7f186480a Merge pull request #6225 from H-TTTTT/fix/session-search-sort
  • 6d56a9120 fix(omo-opencode): ignore expanded skills in goal fallback
  • 36274751b Merge pull request #6314 from code-yeongyu/fix/issue-6313-upstream-fallback
  • 0f5bec113 Merge pull request #6467 from niStee/fix/hashline-test-multi-model-syntax
  • af3b22c47 feat(omo-config-core): task.resume_children opt-out key (default on)
  • 36f3ebcb6 Merge pull request #6590 from code-yeongyu/fix/team-create-inline-precedence
  • f63fa583e fix(evidence): read the same database for both session counts in the #6376 driver
  • 09547db5d fix(start-work): require a stated blocker before the marker ends the turn
  • 0da7458f7 test(omo-opencode): record monitor terminal wake QA evidence
  • c7cd882cc fix(omo-opencode): wake parent on monitor terminal output
  • d1fffa14c fix(start-work): teach the initial skill the external-blocker marker, and harden its QA
  • 4ee7c7131 fix(omo-codex): keep uninstall able to find the bins it installed
  • f2e79e578 test(utils): make sg probe-contract assertions Windows-aware
  • 975245983 fix(model-core): infer temperature support from model family when metadata is silent
  • 8f8b0deee Merge pull request #6585 from code-yeongyu/fix/lsp-daemon-stale-node-path
  • 07e639c54 test(ast-grep-mcp): make runner process fixtures cross-platform
  • 23f965837 fix(lsp-daemon): recover from stale Node executable
  • 3f8b1ed5a docs(qa): add real OpenCode harness evidence for path-compat fix
  • e1a769fc1 docs(qa): record QA evidence for prompt-async-gate path-compat fix
  • 938d35003 fix(utils): support 'got undefined' error in prompt path compatibility retry
  • 4fca987ee test(omo-codex): drive the installed uninstaller and record why it cannot run
  • f39f1b0c3 fix(omo-codex): remove legacy-marketplace bins on uninstall
  • 9fdb65b6d test(shared-skills): fail the drivers on unexercised probes and unreadable counts
  • b39f1e6e0 test(shared-skills): make the evidence driver fail and add the OpenCode case
  • c024911d4 test(omo-codex): cover a user-owned bin under an installer name
  • d6ea16e31 test(omo-codex): record the Codex compatibility gate on Linux
  • 07a5e5d4b fix(omo-codex): scope uninstall bin removal to installer bin names
  • 7cfe8862e fix(ast-grep-mcp): enforce aggregate payload cap and async test discipline
  • 55ea9490b Merge pull request #6570 from code-yeongyu/fix/ulw-test-proportionality
  • 4ebfcc840 chore(ast-grep-mcp): complete package registration and regenerate packed bundles
  • aaf2a02e7 fix(ultrawork): proportion test mandates to code seams across injected prompts
  • dd5048efe feat(ast-grep-mcp): stdio MCP server on mcp-stdio-core
  • 12be076fd fix(omo-codex): remove installer bin links on uninstall
  • a174404f9 feat(ast-grep-mcp): scan tool with explicit-source YAML rules
  • 680a5471a feat(ast-grep-mcp): search tool with normalized NDJSON results
  • 7ebf6283a feat(ast-grep-mcp): rewrite tool with two-pass apply safety
  • 24f42d53b feat(ast-grep-mcp): bounded NDJSON sg runner with salvage and normalization
  • 2410fa810 feat(ast-grep-mcp): pattern-hint validation and metavariable preflight
  • 52a86ec50 feat(utils): five-tier ast-grep sg binary resolution with strict probe contract
  • c930964d4 feat(ast-grep-mcp): scaffold stdio MCP package and workspace wiring
  • fce80d9c0 Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
  • e4a3ddc61 test(codex): enforce the Stop hook in the live app-server QA
  • 0e8659e04 Merge remote-tracking branch 'upstream/dev' into fix/start-work-external-blocker
  • b4156b579 Merge pull request #6553 from code-yeongyu/feat/skill-routing-parallelism-prompts
  • 3bf4d682c docs(evidence): drop the maintainer-local absolute path from the QA note
  • 58fd101be docs(evidence): record cache hit rate QA
  • da90d7963 docs(evidence): record skill routing QA evidence
  • 7ecfb8a48 feat(skills): require a recommended task executor category per ulw-plan todo
  • 6ac5eb0a6 feat(skills): add a delegation router and parallel delivery lanes to start-work
  • e67c528fe Keep flag-prefixed LazyCodex maintenance commands on the Node installer path
  • 641981b0f chore(deps): bump next from 15.5.18 to 15.5.21 in /packages/web
  • 50540275b fix(codex): reject unknown bootstrap step filters
  • b8b58f248 docs(evidence): record QA for issue-template version bump
  • e243389cd docs(issue-template): update stale OpenCode version placeholder (fixes #6489)
  • 400661aba fix(codex): allow blockers after ultrawork opener
  • 896e9460b Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
  • 27be3651c Merge remote-tracking branch 'upstream/dev' into fix/start-work-external-blocker
  • d9337779e test(codex): record live app-server QA
  • 4c9dd3ea3 fix(model-core): honor explicit temperature support
  • 2e856c1ca fix(codex-start-work): let a conclusive external blocker end the turn
  • f16cad014 fix(plugin): normalize capability lookup IDs
  • a6a78bc2c fix(plugin): apply bundled agent capabilities
  • b4740a745 Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
  • 4c39b4e03 fix(plugin): preserve model suffix compatibility and agent order (fixes #6338)
  • 8d6d687bb Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
  • d9a125f8e Merge remote-tracking branch 'upstream/dev' into fix/6376-shared-skills-root-path
  • 342016de9 fix(agents): harden bedrock registration QA (fixes #6141)
  • 3fbc94a7a Merge remote-tracking branch 'upstream/dev' into fix/6141-hephaestus-bedrock-model-id
  • 9442455c0 fix(plugin): strip unsupported agent temperature (fixes #6338)
  • 8b08e972b fix(hephaestus): rerun isolated OpenCode QA evidence (fixes #6141)
  • a79b94981 add --verbose flag to bunx oh-my-openagent doctor command
  • 36e5f4b16 fix(hephaestus): record session-count QA proof (fixes #6141)
  • 3679d4ad8 test(hashline): fix missing closing brace in multi-model test runner
  • 6d53e7d39 ci(workflows): add repository guard checks to deployment workflows
  • 8821ddaa4 fix(shared-skills): make the root-path test symlink-safe and self-cleaning
  • 83d510b98 Merge remote-tracking branch 'upstream/dev' into fix/6376-shared-skills-root-path
  • 916c84340 fix(shared-skills): resolve the skills directory from non-root bundles
  • 81eaf29a7 Merge remote-tracking branch 'upstream/dev' into fix/6141-hephaestus-bedrock-model-id
  • 9aa474b61 chore(evidence): record the mandated session-count proof for the #6141 QA
  • b057ae54b fix(hephaestus): recognize AWS Bedrock vendor-prefixed gpt-5 model ids
  • 63e57da0a Merge latest dev before password isolation
  • accad8905 Merge debugging metadata fix before password isolation
  • 78f6400bd fix(skills): synchronize debugging metadata
  • a59ed0823 fix(model-core): add "upstream request failed" to retryable patterns (fixes #6313)
  • 70bf3fa16 fix(tmux-subagent): auto-activate panes within grace window without requiring focus
  • 1b1211fcb fix(lsp): send initialized notification params
  • ce5ad49ec fix(lsp-mcp): pass project cwd into local MCP config
  • 1b270382a fix(session-search): sort sessions by time.updated before scan limit
  • 8cfdf0e19 fix(shared-skills): remove hardcoded WebSearch tool name from ultimate-browsing skill
  • 3930f0d63 fix(model-core): support GLM max reasoning effort
  • 283073ee3 fix(keyword-detector): append mode instructions after user text to preserve session title
  • a4ab5c39f test(boulder-state): cover plan progress parsing

Thank you to 5 community contributors:

  • @MoerAI:
    • fix(model-core): infer temperature support from model family when metadata is silent
    • fix(omo-codex): keep uninstall able to find the bins it installed
    • fix(start-work): teach the initial skill the external-blocker marker, and harden its QA
    • fix(start-work): require a stated blocker before the marker ends the turn
    • fix(evidence): read the same database for both session counts in the #6376 driver
    • Merge pull request #6467 from niStee/fix/hashline-test-multi-model-syntax
    • Merge pull request #6314 from code-yeongyu/fix/issue-6313-upstream-fallback
    • Merge pull request #6225 from H-TTTTT/fix/session-search-sort
    • Merge pull request #6227 from H-TTTTT/fix/lsp-mcp-cwd
    • Merge pull request #6297 from leeyazhou/fix-tmux
    • Merge pull request #6466 from niStee/dependabot/npm_and_yarn/packages/web/next-15.5.21
    • Merge pull request #6537 from Hungdoan565/fix/6489-bug-report-opencode-version
    • fix(model-core): resolve provider metadata for reasoning-suffixed model ids
    • fix(shared-skills): resolve the skills directory in the Codex marketplace layout
    • fix(omo-codex): detect a stale committed installer bundle
    • fix(start-work): keep the Codex stop contract out of other harnesses
    • fix(tool-pair-validator): operate on OpenCode's real Part model
    • test(tool-pair-validator): gate repairs on the conversion invariant
    • test(messages-transform): assert tool-pair repair with real tool parts
    • docs(evidence): record tool-pair-validator real-part QA
    • docs(evidence): capture the real failing-first output
    • test(shared-skills): prove the installed marketplace wrapper resolves ast-grep
    • docs(evidence): re-capture opencode QA with the user home isolated
    • docs(evidence): scope the failing-first run to the conversion gate
    • Merge pull request #6607 from code-yeongyu/fix/tool-pair-validator-real-part-model
    • fix(shared-skills): record complete Codex QA evidence
    • fix(todo-continuation-enforcer): stop re-injecting after a non-retryable request error
    • docs(evidence): record continuation fail-safe QA
    • fix(todo-continuation-enforcer): wire the unrecoverable-error stop flag
    • fix(todo-continuation-enforcer): stop on a non-retryable direct dispatch failure
    • fix(todo-continuation-enforcer): keep the stop flag across split internal messages
    • docs(evidence): note the two dispatch paths added during review
    • Merge pull request #6610 from code-yeongyu/fix/continuation-stop-on-unrecoverable-error
    • fix(model-core): preserve deep-research temperature
    • fix(model-core): resolve prefixed capability IDs
    • fix(model-core): resolve suffixed snapshot IDs
    • fix(model-core): prefer provider snapshot entries
    • Merge remote-tracking branch 'upstream/dev' into fix/oracle-claude-temperature-6338
    • fix(model-core): preserve canonical alias snapshots
    • fix(model-core): canonicalize suffixed aliases
    • Merge remote-tracking branch 'origin/dev' into manage/pr-6375
    • Merge remote-tracking branch 'origin/dev' into fix/6376-shared-skills-root-path
    • Merge remote-tracking branch 'origin/dev' into fix/start-work-external-blocker
    • Merge remote-tracking branch 'origin/dev' into fix/6320-uninstall-bin-links
    • Merge pull request #6569 from MoerAI/fix/6320-uninstall-bin-links
    • Merge pull request #6375 from MoerAI/fix/6141-hephaestus-bedrock-model-id
    • Merge pull request #6395 from MoerAI/fix/6376-shared-skills-root-path
    • Merge pull request #6485 from MoerAI/fix/oracle-claude-temperature-6338
    • Merge pull request #6500 from MoerAI/fix/start-work-external-blocker
  • @1vivy:
    • fix(omo-opencode): wake parent on monitor terminal output
    • test(omo-opencode): record monitor terminal wake QA evidence
  • @ThunderRonin:
    • docs(qa): record authentic user-session reproduction of 'got undefined' dispatch failure
  • @scw1109:
    • fix(omo-opencode): lower canonical reasoning to variant at agent config build time
  • @Tinycute00:
    • fix(ast-grep-mcp): make scan oneOf branches object-typed
View originalPermalink
How v5.0.0-beta.1 went

v4.19.4

Latest
Added 3
  • The shared skill set now includes the data-scientist workflow
  • Expanded research delivery process with steering excursions and closing briefings
  • Browser-agent session discovery through the Aside history scanner
Changed 5
  • Model configuration now uses one canonical reasoning vocabulary from shared config through OpenCode and Codex
  • Updated fallback chains route Mini workloads through Luna and DeepSeek options
  • Improved Kimi-based category routing with targeted warning controls when a configured category is unavailable
  • Goal-driven work now treats an armed monitor, background child, or other live resumption channel as progress instead of incorrectly declaring the run blocked
  • Planning workflow starts only when the user explicitly requests it
Fixed 5
  • Runtime fallback now recognizes retryable usage-limit status events through shared patterns, preventing recoverable sessions from being missed
  • Windows path handling is more robust in audit jobs
  • Codex preserves executable permissions for the bundled codegraph runtime
  • Daemon ownership checks now use authenticated ping paths before reaping a process
  • Asynchronous tests were made event-driven to remove timing-dependent failures

From oh-my-openagent

LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE

This is the final release in the current product line before the OmO Native CLI becomes public. The next public release begins the native CLI era.

Smarter model routing across every harness

Model configuration now uses one canonical reasoning vocabulary from shared config through OpenCode and Codex. Updated fallback chains route Mini workloads through Luna and DeepSeek options, improve Kimi-based category routing, and expose targeted warning controls when a configured category is unavailable.

More reliable recovery during long-running work

Runtime fallback now recognizes retryable usage-limit status events through shared patterns, preventing recoverable sessions from being missed. Goal-driven work also treats an armed monitor, background child, or other live resumption channel as progress instead of incorrectly declaring the run blocked.

Stronger research and session tooling

The shared skill set now includes the data-scientist workflow, an expanded research delivery process with steering excursions and closing briefings, and browser-agent session discovery through the Aside history scanner. Planning activation is also more deliberate: the planning workflow starts only when the user explicitly requests it.

Cross-platform and daemon hardening

Windows path handling is more robust in audit jobs, Codex preserves executable permissions for the bundled codegraph runtime, and daemon ownership checks now use authenticated ping paths before reaping a process. Several asynchronous tests were also made event-driven to remove timing-dependent failures.


  • b072d2791 Merge pull request #6542 from code-yeongyu/release/v4.19.4-source-state
  • 89bd6dd18 Merge pull request #6541 from code-yeongyu/docs/release-guidance-native-cli
  • 1d689fe64 docs(evidence): record release guidance QA
  • 2acc5f54e test(release): capture failing release notes proof
  • 0ddc2b5e8 test(release): add release notes validator
  • 03121f8d2 docs(release): exclude contained adapter changes
  • bcc1b3161 docs(publish): enforce Native CLI release notes
  • d16c27b94 Merge pull request #6540 from code-yeongyu/fix/runtime-fallback-status-pattern-drift
  • 6fbf93542 fix(runtime-fallback): share retry patterns for status events
  • 7cbcc53a7 Merge pull request #6539 from code-yeongyu/feat/plan-gate-hardening
  • 7eb2f788a docs(skills): activate ulw-plan only on explicit user request
  • 532a6ca6d docs(evidence): record PR 6521 CI green
  • 22ab05de7 Merge pull request #6526 from code-yeongyu/fix/codegraph-windows-lock-drift
  • b010c1f4f Merge remote-tracking branch 'origin/dev' into fix/codegraph-windows-lock-drift
  • fb5c1c12c fix(ci): use native path in GPT Mini audit
  • 84e8c4d1b Merge pull request #6524 from code-yeongyu/fix/gpt-mini-audit-windows-path
  • f4b1b0f93 fix(ci): resolve audit root path on Windows
  • f60ab7529 Merge pull request #6518 from code-yeongyu/feat/luna-deepseek-chains
  • f9b535c7e fix(omo-codex): preserve codegraph executable modes
  • b3b45cd2a feat(model-core): migrate Mini chains to Luna and DeepSeek
  • 888a26b61 Merge pull request #6514 from code-yeongyu/fix/ci-codex-git-bash-hooks-timeout
  • 10b839953 test(omo-codex): isolate git bash hook fixture
  • d4e7b1c42 Merge pull request #6512 from code-yeongyu/feat/ulw-research-excursions-and-closing-briefing
  • c7fc22369 feat(skills): add steering excursions and a closing briefing to ulw-research
  • 252922ca1 Merge pull request #6511 from code-yeongyu/feat/category-fallback-chain-tuning
  • 96e7a028c feat(model-core): retune category fallback chains
  • 33435840a fix(skills-loader-core): align the debugging builtin description with the trimmed shared source
  • 37d4c624e Merge pull request #6508 from code-yeongyu/feat/vendor-data-scientist-skill
  • 6097b72ab test(omo-codex): classify the vendored data-scientist quick-query script
  • b4af75550 feat(skills): vendor the data-scientist skill into shared-skills
  • df2a90efe Merge pull request #6507 from code-yeongyu/feat/shared-ulw-research-delivery-workflow
  • c05008977 Merge pull request #6506 from code-yeongyu/chore/skills-remove-contract-test-guidance
  • afdf13819 feat(skills): port the ulw-research delivery workflow to the shared variant
  • 8b8eb7120 chore(skills): drop contract-test guidance from the programming skill
  • f18648e1a docs(agents): mandate the change-execution protocol for user-ordered patches
  • 4b9c1724f test(model-routing): align fallback-chain fixtures with the gpt-5.6-luna-fast swap
  • bc9295823 Merge pull request #6501 from code-yeongyu/refactor/unified-task-status-target
  • 25ae49fa0 feat(model-routing): swap gpt-5.4-mini-fast to gpt-5.6-luna-fast(low)
  • 65b788bab Merge pull request #6494 from code-yeongyu/fix/auto-update-checker-network-test
  • 64524483f test(auto-update-checker): mock npm registry fetch in getLatestVersion tests
  • f2872273d Merge pull request #6491 from code-yeongyu/fix/task-reject-category-with-model
  • 6895e89c3 Merge pull request #6483 from code-yeongyu/feat/ulw-goal-footer-animation
  • 06d1077c8 Merge remote-tracking branch 'origin/dev' into feat/ulw-goal-footer-animation
  • 258fab041 Merge pull request #6479 from code-yeongyu/fix/cleanup-session-end-async-flake
  • 317a24578 test(agent-env): use FIFO completion signal
  • 36d8d1a39 Merge remote-tracking branch 'origin/dev' into fix/cleanup-session-end-async-flake
  • 0eac4b018 test(agent-env): eliminate async cleanup timing race
  • 3236be40f Merge pull request #6478 from code-yeongyu/fix/task-child-fallback-isolation
  • 25905bcba Merge pull request #6476 from code-yeongyu/fix/codegraph-sessionstart-windows-flake
  • 9049f1847 test(codegraph): stub process sweep in SessionStart tests
  • 5c253bad7 test(ci): record daemon owner attestation evidence
  • 845f36514 fix(utils): use real daemon ping and auth paths
  • 96909d08b fix(utils): bind daemon reap to owner identity
  • 9e91e889e Merge remote-tracking branch 'origin/dev' into HEAD
  • 915c5e4a9 Merge pull request #6473 from code-yeongyu/fix/ultrawork-goal-block-monitor-wait
  • ca4ffad91 Merge pull request #6472 from code-yeongyu/feature/aside-agent-sessions-scanner
  • 5b97ecc11 fix(ulw): treat waiting on a live resumption channel as progress, never blocked
  • 82f0efbed test(omo-codex): register aside_scanner.py in the Python migration inventory
  • cb8d15136 docs(shared-skills): document the Aside session store and linkage
  • aaaba202b test(shared-skills): cover Aside scanner parsing and platform registration
  • f2a1d761b feat(shared-skills): add Aside browser-agent session scanner
  • 487e5bb2f test(ci): record macOS flake verification
  • 6c959aeda test(codegraph): signal descendant readiness before timeout
  • 5110f5479 test(lsp-core): stabilize diagnostics fallback timing
  • 0aadead8d Merge pull request #6455 from code-yeongyu/feat/reasoning-config-unification
  • dbcdab9d7 Merge remote-tracking branch 'origin/dev' into feat/reasoning-config-unification
  • 047f0889b feat(omo-opencode): consume canonical reasoning through delegation end to end
  • 77135c427 fix(omo-opencode): lower direct-agent reasoning instead of assigning variant blindly
  • 65b85d658 feat(omo-codex): thread the canonical reasoning field through the Codex installer
  • deef131f7 fix(config-migration): report the actual winner when reasoning keys conflict
  • 046afd07b Merge remote-tracking branch 'origin/dev' into feat/reasoning-config-unification
  • 04750e45b refactor(omo-config-core): keep the reasoning vocabulary inside the config core
  • 260f219c3 fix(schema): generate omo and legacy schema artifacts from their own builders
  • 17d486764 fix(omo-config-core): stop treating the account home .omo as a project layer
  • aa320d846 Merge remote-tracking branch 'origin/dev' into pr-6451-review
  • 0118768e2 fix(codex): regenerate installer dist for the 4.19.3 version sync
  • 37563bb7e feat(omo-config-core): canonicalize model tuning on a unified reasoning field
  • d2ccd7127 feat(omo-opencode): lower the canonical reasoning field to OpenCode model settings
  • e7bd8a143 feat(omo-codex): source Codex model_reasoning_effort from the unified reasoning field
  • 83009aedf feat(model-core): add unified reasoning-level vocabulary with colon model suffix
  • 82854b4cc Keep default model routing current across harnesses (#6447)
  • ba8e41f45 Keep default model routing current across harnesses
  • 5decafdf7 fix(qa): reject unsafe process tree PIDs
  • a6cd227b6 Merge pull request #6446 from code-yeongyu/feat/runtime-chain
  • efb3d152c test(opencode): make shared skills package check deterministic
  • f1d8a2987 Merge pull request #6443 from code-yeongyu/docs/chain
  • 5ca5a3f45 docs: remove apitopia and document chain overhaul
  • 1ec03deb5 Merge pull request #6441 from code-yeongyu/feat/dead-chain-warnings
  • 7c6abe231 test(opencode): quote Kimi provider fixture key
  • ace13396a Merge pull request #6439 from code-yeongyu/feat/fallback-architect-tip-and-give-me-tips
  • 91ddee749 fix(config): align category routing contracts
  • c73d1102a fix(omo-opencode): quote kimi-for-coding key in delegate-task test fixture
  • dabb9cbfb test(omo-opencode): align expectations with the new category chains
  • 0bb6f1d3e fix(omo-opencode): mirror warn_unavailable category key from omo-config-core
  • 98fb15fb8 Merge remote-tracking branch 'origin/dev' into feat/fallback-architect-tip-and-give-me-tips
  • bdbdc63fa feat(omo-opencode): port new category defaults and plumb the deep requiresModel gate
  • 9897bce97 Merge pull request #6434 from code-yeongyu/feat/model-core-chains
  • e93a8534e feat(model-core): replace apitopia rungs with kimi-for-coding and overhaul category chains
  • 5aa9bbc81 Merge pull request #6433 from code-yeongyu/feat/warning-schema
  • ab825471f feat(omo-config-core): add unavailable-category warning suppression keys
  • 511e776ce Merge pull request #6127 from vvvzhangshuo/fix/sisyphus-junior-gpt-variant-override
  • 17241fa88 test(sisyphus-junior): record real-opencode QA evidence for GPT override fix
  • 9b47ef23a fix(sisyphus-junior): apply variant and reasoningEffort overrides independently
  • e03a16e3c Merge remote-tracking branch 'origin/dev' into pr-6127-work
  • 0a43f7922 fix(sisyphus-junior): respect GPT variant and reasoningEffort overrides

Thank you to 4 community contributors:

  • @vvvzhangshuo:
    • fix(sisyphus-junior): respect GPT variant and reasoningEffort overrides
  • @etehofk1-ops:
    • fix(qa): reject unsafe process tree PIDs
  • @MoerAI:
    • Keep default model routing current across harnesses
    • Keep default model routing current across harnesses (#6447)
  • @minpeter:
    • test(lsp-core): stabilize diagnostics fallback timing
    • test(codegraph): signal descendant readiness before timeout
    • test(ci): record macOS flake verification
    • Merge remote-tracking branch 'origin/dev' into HEAD
    • fix(utils): bind daemon reap to owner identity
    • fix(utils): use real daemon ping and auth paths
    • test(ci): record daemon owner attestation evidence
    • test(codegraph): stub process sweep in SessionStart tests
    • Merge pull request #6476 from code-yeongyu/fix/codegraph-sessionstart-windows-flake
View originalPermalink
How v4.19.4 went

v4.19.3

Added 1
  • Ground interaction and UI-behavior work with curated beui.dev-based reference patterns in shared skill library
Changed 6
  • Harden config migration to automatically reclaim stale migration locks instead of blocking startup
  • Preserve migration transform diagnostics so changes are visible during migration
  • Create backup directories only when migration actually runs instead of always
  • Route config migration through unified path for Codex-side integrations
  • Re-tier visual-engineering and artistry category chains for improved model routing to frontend, design, and creative problem-solving tasks
  • Introduce single binary approval gate and hard completion contract for release workflow to prevent stalled half-announced releases
Fixed 3
  • Fix legacy config root discovery on Windows and in setups where project lives outside home directory
  • Rebuild four flaky CI test suites around explicit synchronization to reduce timing-dependent failures
  • Resolve reviewer-tier contradiction in ulw-loop planning
Removed 1
  • Remove legacy ~/.omo/config.jsonc loader and consolidate omo.jsonc as the only config surface

From oh-my-openagent

oh-my-openagent v4.19.3 — Config migration you can trust

A stability-focused patch: the unified omo.jsonc config surface is now the single source of truth, migration is far more resilient across platforms, model routing got a tune-up, and CI got noticeably more deterministic.

One config, safer migration

The legacy ~/.omo/config.jsonc loader is gone — omo.jsonc is now the only config surface, and the docs walk through exactly how migration works. Migration itself got hardened where it used to bite: stale migration locks are reclaimed automatically instead of wedging startup, transform diagnostics are preserved so you can see exactly what changed, backup directories are only created when a migration actually runs, and legacy config roots are discovered correctly on Windows and in setups where your project lives outside your home directory. Codex-side config migration now flows through the same unified path.

Smarter model routing for design and creative work

The visual-engineering and artistry category chains were re-tiered, so frontend/design and creative problem-solving tasks route to the models that currently do them best.

Interaction design, grounded

Interaction and UI-behavior work is now anchored to a curated beui.dev-based reference in the shared skill library, giving agents concrete interaction patterns to draw from instead of improvising.

A calmer, more deterministic pipeline

Four flaky CI test suites were rebuilt around explicit synchronization instead of timing luck, and the release workflow itself now carries a single, binary approval gate plus a hard completion contract — releases can no longer stall half-announced.

Also included: ulw-loop planning fixes (reviewer-tier contradiction resolved, clearer team-mode decision rule).


View originalPermalink
How v4.19.3 went

v4.19.2

Added 5
  • Team messages now use injection-driven delivery so leads and members can continue working instead of waiting for empty turns
  • Task surfaces now expose clearer role, model, turn, token, and throughput details
  • Sisyphus now has a dedicated Claude Opus 5 prompt tuned for evidence-driven execution and strict stop behavior
  • Session discovery for oh-my-pi and gajae-code session stores
  • Ultrawork hidden directive injection for Senpi
Changed 5
  • Background task output is now non-blocking and completion notifications are authoritative instead of blocking polls
  • CodeGraph now runs as a managed shared daemon by default with pinned-runtime validation and process-tree cleanup
  • Model routing and documentation have moved to Claude Opus 5 as the recommended model
  • start-work --make-pr and --ship flags now carry delivery intent through continuations
  • TypeScript dependency upgraded to 7.0.2
Fixed 7
  • cmux-backed subagent panes attach directly, avoid duplicate respawns, protect authenticated contexts, and clean up native sessions correctly
  • CodeGraph now skips sweep for excluded projects on Windows
  • CodeGraph enforces managed process lifecycle to prevent stale helpers and mismatched binaries
  • Goal command provenance is now preserved in native command handoff
  • ast-grep version probe output no longer leaks to parent process stderr
  • Ultrawork requires obsessive live todos in GPT and GLM variants
  • Ultrawork mandates goal registration and history-mimicking atomic commits

From oh-my-openagent

oh-my-openagent v4.19.2 — Smarter handoffs, cleaner runtimes

This release tightens the machinery around long-running agent work. Completion and team messages now arrive through authoritative notifications instead of blocking polls, CodeGraph runs as a managed shared daemon by default, and terminal-backed subagents behave predictably in cmux environments.

Notification-driven agent coordination

Background task output is now an immediate status or transcript peek, while completion notifications carry the final result automatically. Team messages use the same injection-driven model, so leads and members can keep working instead of spending turns on empty waits. The task surfaces also expose clearer role, model, turn, token, and throughput details.

Managed CodeGraph by default

OpenCode and LazyCodex now prefer the shared CodeGraph daemon automatically. Pinned-runtime validation, process-tree cleanup, and tighter lifecycle ownership prevent stale helpers and mismatched binaries while preserving a configuration opt-out for isolated per-session mode.

Claude Opus 5-ready orchestration

Sisyphus now has a dedicated Claude Opus 5 prompt, and the recommended model routing and documentation have moved to Opus 5. The new prompt is tuned for the same evidence-driven execution and strict stop behavior used by the rest of the current model families.

Cleaner delivery workflows and terminals

start-work --make-pr and --ship carry delivery intent through continuations, while cmux-backed subagent panes attach directly, avoid duplicate respawns, protect authenticated contexts, and clean up native sessions correctly.

Also included: hidden ultrawork directive injection for Senpi, oh-my-pi and gajae-code session discovery, quieter ast-grep version probing, native goal-command provenance fixes, and more deterministic CI and live QA fixtures.

  • 3f917a94c Merge pull request #6360 from code-yeongyu/release/v4.19.2-source-state
  • 6fbdf4599 Merge pull request #6359 from code-yeongyu/fix/codegraph-windows-exclusion
  • b3e263b61 fix(codex): skip codegraph sweep for excluded projects
  • 7fcfeb57f Merge pull request #6358 from code-yeongyu/feat/team-steer-only
  • 29c53c9dd docs(qa): note CI synchronize trigger in steer-only evidence
  • b75d9ebed Merge pull request #6357 from code-yeongyu/feature/codegraph-daemon-default-on
  • 5a41124d7 Merge remote-tracking branch 'origin/dev' into feature/codegraph-daemon-default-on
  • c27bf70b8 feat(codegraph): enable daemon by default
  • 53b775745 feat(omo-config): add codegraph daemon setting
  • aa7d3c523 Merge pull request #6353 from code-yeongyu/docs/prompt-sweep-injection
  • 6090d31ed Merge origin/dev into docs/prompt-sweep-injection
  • be979a5a5 Merge pull request #6350 from code-yeongyu/feat/team-injection
  • 0cd7ab9e1 Merge origin/dev into feat/team-injection
  • 6f1025edb Merge origin/dev into feat/team-injection
  • 1639e4d8f docs(prompts)!: teach injection-driven waiting across shipped prompt surfaces
  • 27b3bbaee Merge pull request #6346 from code-yeongyu/feat/task-output-peek
  • 2da97a0f8 feat(team): injection-driven member inbox and crash liveness events
  • f69e07350 fix(team): deliver idle injections as follow-ups
  • 0f7b86827 feat(team)!: replace team_wait with injected lead inbox delivery
  • ec823b854 chore(qa): lane QA fixtures and scanner updates
  • b17479d0e Merge pull request #6347 from code-yeongyu/feature/agent-sessions-oh-my-pi-gajae-code
  • 57d6e01c4 test(omo-codex): classify the generated pi_family scanner copy
  • d59aa6dd4 docs(shared-skills): document oh-my-pi and gajae-code session stores
  • dfc912c7f feat(shared-skills): scan oh-my-pi and gajae-code session stores
  • 430b7e68f feat(task): make task_output non-blocking and completion notifications authoritative
  • 3a56234e3 Merge pull request #6344 from code-yeongyu/feat/ultrawork-hidden-injection
  • 2e2b9b748 fix(shared-skills): realign the debugging description with its TS source
  • cd6f6cbce feat(programming): dependency-upgrade rules, cross-process test isolation, caller-response logging
  • 000542bda feat(debugging): add intermittent/flaky failure triage reference
  • 22b667a80 fix(audits): use TypeScript 7 native parser API
  • acc14b765 Merge commit '843390730ffe08638204c40fcbac0fae7cc49422' into ulw/merge-20260726
  • 8029c6c28 Merge pull request #6337 from code-yeongyu/fix/codegraph-process-lifecycle
  • 13acc2635 test(codegraph): use platform managed binary names
  • 51c08b310 test(codegraph): stabilize Windows timeout fixture
  • 468b148df Merge remote-tracking branch 'origin/dev' into fix/codegraph-process-lifecycle
  • 793485d1c fix(codegraph): enforce managed process lifecycle
  • 843390730 chore(deps): bump typescript to 7.0.2
  • c34557db0 Merge pull request #6333 from code-yeongyu/feature/opus5-model-migration
  • d422a21d5 fix(models): migrate recommendations to opus 5
  • d5a277e59 Merge pull request #6332 from code-yeongyu/feat/ulw-goal-todo-commit-discipline
  • 73a85a9b2 fix(ultrawork): require obsessive live todos in the GPT and GLM variants
  • 11003d6f2 fix(ulw-loop): pin goal registration and obsessive update_plan todos in the skill
  • 6a99b9082 fix(ultrawork): mandate goal registration and history-mimicking atomic commits
  • 50aae4272 Merge pull request #6331 from code-yeongyu/fix/sg-probe-banner-leak-6330
  • 580cbeb0e fix(utils): keep sg version probe stderr out of the parent process
  • c155fa863 Merge pull request #6321 from code-yeongyu/feature/sisyphus-claude-opus-5-prompt
  • 86ae07264 feat(sisyphus): add Claude Opus 5-native prompt variant
  • 346a054bc Merge pull request #6316 from code-yeongyu/fix/ci-flaky-test-timeouts
  • 8140f01a1 Merge pull request #6315 from code-yeongyu/fix/goal-command-blank-terminal
  • 4a84d2c3b fix(test): stabilize flaky CI tests timing out under load
  • a6f7378bc test(goal): cover native command handoff
  • 008a6c826 fix(goal): preserve native command provenance
  • 13b2701d1 Merge pull request #5811 from Yoonkeee/fix/cmux-subagent-attach
  • 5fbac89b3 test(hooks): avoid transcript mock order coupling
  • 4d77bf6df docs(qa): refresh post-merge verification
  • 7806d24e4 Merge remote-tracking branch 'origin/dev' into review/pr-5811-cmux-eligibility
  • 3a19d2a3c test(tmux): normalize Windows cwd expectation
  • 2b0e6ab4e docs(qa): record final cmux review evidence
  • e9ffb1e97 fix(tmux): enforce native session cleanup
  • e61267caa fix(cmux): reject authenticated container spawns
  • 56255ff51 fix(cmux): delegate background panes and protect auth
  • 4418ec3ee Merge remote-tracking branch 'origin/pr-5811-head' into review/pr-5811-cmux-eligibility
  • 7da0e4d3c fix(tmux): support inline cmux pane lifecycle
  • 709bf027b Fix #5809: accept cmux-compat environment without TMUX in pane gates
  • 9e766ec7e Merge remote-tracking branch 'origin/dev' into review/pr-5811-cmux-eligibility
  • e81b4dc43 Merge pull request #6308 from code-yeongyu/feature/start-work-pr-options
  • f85b39f86 feat(start-work): honor recorded PR delivery mode across continuation directives
  • cab6771cd feat(start-work): parse --make-pr/--ship and inject a PR delivery block
  • cf390e038 feat(start-work): add --make-pr/--ship options and mandate goal+todo discipline
  • 953017515 feat(ulw-plan): end planning with a structured handoff explanation
  • dcadfadab test(tmux): update attach command expectations
  • f73a79103 Fix #5809: mark deferred inline cmux attach as attach-activated
  • 7e2a8b94b Fix #5809: cover graceful pane close for cmux eager panes
  • 43e20de8d Fix #5809: mark cmux subagent sessions attach-activated to skip respawn
  • a7c908f70 Fix #5809: add cmux-detect and attach-command edge tests
  • f506d8728 Fix #5809: spawn cmux subagent pane with opencode attach directly (tmux-core)

Thank you to 1 community contributor:

  • @Yoonkeee:
    • Fix #5809: spawn cmux subagent pane with opencode attach directly (tmux-core)
    • Fix #5809: add cmux-detect and attach-command edge tests
    • Fix #5809: mark cmux subagent sessions attach-activated to skip respawn
    • Fix #5809: cover graceful pane close for cmux eager panes
    • Fix #5809: mark deferred inline cmux attach as attach-activated
    • test(tmux): update attach command expectations
    • Fix #5809: accept cmux-compat environment without TMUX in pane gates
View originalPermalink
How v4.19.2 went

v4.19.1

Added 6
  • Family-based process sweep at startup cleans up stale codegraph and LSP helpers
  • Stdio MCP server processes now carry a parent-liveness watchdog that exits when parent dies
  • LSP daemon reaps older-version daemons on startup
  • Opt-in shared codegraph daemon mode available via OMO_CODEGRAPH_DAEMON across OpenCode and Codex
  • ulw-loop gained atomic batch steering with steer --proposals-json and validation-batch review boundaries
  • Next-goal auto-advance is fused into the checkpoint so multi-goal loops advance with fewer round trips
Changed 6
  • GPT defaults including the Oracle reviewer now route through GPT-5.6 Sol with aligned prompt identity and guardrails
  • Builtin Kimi fallbacks are promoted to K3
  • Vendored CodeGraph binary is pinned to 1.4.1 with MCP init guidance aligned to new output shapes
  • ulw-plan now enforces its mandatory opening announcement
  • Stop-resume writes are contained to the session state directory
  • Cold-start SessionStart hook timeouts are raised to 15 seconds
Fixed 7
  • Silent language servers that never push diagnostics no longer stall behind freshness timeout with clean diagnostics resolution for no-pull servers
  • LSP daemon reports cancelled and timed-out requests accurately instead of mislabeling them
  • bun test now exits cleanly on win32 with held-open streams destroyed and isProcessAlive never throws
  • codex.cmd shim resolves for doctor spawns
  • Duplicate role registration is avoided
  • npm-install lock drift after local dependency rewrites is fixed
  • Lazycodex marketplace payload bundles component CLIs correctly
Removed 1
  • Retired gpt-5.5 fallback rungs are purged to prevent silent fallback to older models

From oh-my-openagent

🩹 oh-my-openagent v4.19.1 — Quieter, tougher, and routed through Sol

A stability-first patch. Nothing changes about how you drive omo, but a lot changes about how well it behaves underneath: GPT defaults now route through GPT-5.6 Sol, stray background processes get swept instead of piling up, and a wave of Windows and Codex install fixes lands so the rough edges from v4.19.0 are gone.

🧠 GPT defaults now run on GPT-5.6 Sol

Active GPT defaults — including the Oracle reviewer — now route through GPT-5.6 Sol, with the prompt identity and guardrails aligned to match. The retired gpt-5.5 fallback rungs are purged so nothing silently falls back to an older model, and the builtin Kimi fallbacks are promoted to K3. You get the newer, stronger routing automatically with no config change.

🧹 No more orphaned background processes

omo now runs a family-based process sweep at startup that cleans up stale codegraph and LSP helpers, and every stdio MCP server (LSP, git-bash, codegraph bridge) now carries a parent-liveness watchdog that exits the moment its parent dies. The LSP daemon also reaps older-version daemons on startup. If you ever noticed leftover helper processes lingering after a session, that class of leak is closed.

🔎 CodeGraph 1.4.1 + opt-in shared daemon

The vendored CodeGraph binary is pinned to 1.4.1, with MCP init guidance aligned to its new output shapes. A new opt-in shared codegraph daemon mode (OMO_CODEGRAPH_DAEMON) is available across OpenCode and Codex for teams that want a single long-lived index instead of per-session spawns.

🩺 Sharper LSP diagnostics

Silent language servers that never push diagnostics no longer stall behind a freshness timeout — omo now resolves clean diagnostics for no-pull servers and guards the fallback with a version-current pull cache. The LSP daemon also reports cancelled and timed-out requests accurately instead of mislabeling them.

⚙️ ulw-loop batch efficiency

The ulw-loop gained atomic batch steering (steer --proposals-json), validation-batch review boundaries, and next-goal auto-advance fused into the checkpoint, so multi-goal loops advance with far fewer round trips. ulw-plan now enforces its mandatory opening announcement, and stop-resume writes are contained to the session state dir.

🪟 Windows & Codex install hardening

A broad reliability pass for Windows and Codex users: bun test now exits cleanly on win32 (held-open streams destroyed, isProcessAlive never throws), the codex.cmd shim resolves for doctor spawns, cold-start SessionStart hook timeouts are raised to 15s, duplicate role registration is avoided, npm-install lock drift after local dep rewrites is fixed, and the lazycodex marketplace payload bundles its component CLIs correctly.

🎯 Model routing fixes

antigravity-gemini-3-flash ids are no longer rewritten to an invalid -preview id, and GPT-5.6 (sol/terra/luna) now carry proper 372k PostCompact context budgets so compaction stops applying the 200k fallback.


  • 9c81de52a Merge pull request #6300 from code-yeongyu/release/v4.19.1-source-state
  • 499b52358 Merge pull request #6293 from code-yeongyu/fix/config-watch-rejection-reregister
  • 166d2e1ab Merge pull request #6294 from code-yeongyu/fix/windows-flaky-coalesced-flush-wait
  • ad0085b2b test(background-agent): await guaranteed flush-settle signal, not a poll-cap race
  • 97b05026f Merge pull request #6290 from code-yeongyu/fix/139-marketplace-root-manifest
  • c3d0e683d fix(script): also write marketplace.json to the lazycodex repo root
  • 4ae3be456 Merge pull request #6289 from code-yeongyu/test/136-codex-only-install-exit-status
  • 85a1bec60 Merge pull request #6285 from code-yeongyu/fix/108-sync-component-clis
  • 8cfd05ce8 Merge pull request #6287 from code-yeongyu/fix/137-npm-ci-lock-drift
  • 66a174fe3 test(install): regression-lock codex-only install failure exit status\n\nProves cli/tui installers exit non-zero when a codex-only Codex install fails, preserving the platform=both partial-success path. Reported in lazycodex#136.
  • 102caa9bf Merge pull request #6288 from code-yeongyu/fix/131-orca-duplicate-agent-roles
  • 1dfb1f56f Merge pull request #6286 from code-yeongyu/fix/111-no-excuse-ts-resolution
  • 4368a3798 test(codex-install): parity test expects npm install after outside-plugin file dep rewrite
  • 855ff8f93 fix(script): normalize managed bin target path to POSIX for win32 validation
  • 5b302c91f fix(codex-bootstrap): do not re-register roles already declared in config.toml\n\nAvoids 13 duplicate-role warnings under Orca-mirrored CODEX_HOME. Reported in lazycodex#131.
  • 5b2a11b54 fix(codex-install): use npm install when the local file dep rewrite changed package.json\n\nAvoids npm ci EUSAGE after the rewrite desyncs the lock. Reported in lazycodex#137, approach from oh-my-openagent#6202.
  • 0e4841e4b Merge pull request #6284 from code-yeongyu/fix/windows-ci-timing-flakes
  • 90eb338c0 fix(programming): resolve typescript from caller project in check-no-excuse-rules\n\nDynamic caller-scoped resolution so the script works from an installed skill cache. Reported in lazycodex#111.
  • 1bf0f4363 fix(script): bundle component bin CLIs and drop nested gitignore from marketplace payload\n\nNested component .gitignore beat the lazycodex root negation so start-work-continuation and ulw-loop dist CLIs were skipped by git add. Reported in lazycodex#108.
  • d59736a10 Merge pull request #6281 from code-yeongyu/fix/133-sessionstart-timeout-headroom
  • 96b8c9700 Merge pull request #6282 from code-yeongyu/fix/128-service-tier-optout
  • b7ff3f1a6 Merge pull request #6280 from code-yeongyu/fix/138-doctor-codex-win-shim
  • 04c45517d Merge pull request #6278 from code-yeongyu/fix/117-antigravity-gemini-transform
  • 4c6f1872a Merge pull request #6279 from code-yeongyu/fix/124-ulw-plan-ultrawork-collision
  • 0d9180a54 docs(codex): document and lock the explorer/librarian service-tier opt-out
  • 401dda2d2 fix(codex): raise cold-start SessionStart hook timeouts to 15s\n\nTelemetry/auto-update/codegraph SessionStart manifests 5s -> 15s to survive Windows cold starts. Reported in lazycodex#133.
  • d47759973 fix(codex-install): resolve codex .cmd shim on Windows for doctor spawn\n\nAdd codex to the win32 cmd-shim set so doctor spawns codex.cmd instead of ENOENTing. Reported in lazycodex#138.
  • 454cb1630 Merge pull request #6276 from code-yeongyu/fix/129-stop-resume-path-traversal
  • 1db84c906 Merge pull request #6277 from code-yeongyu/fix/125-postcompact-gpt56-budget
  • d0b86901e fix(ultrawork): stop ulw-plan/ulw-research from triggering ultrawork mode\n\nNegative lookahead carves ulw-plan and ulw-research out of the trigger pattern; ultrawork/ulw/ulw-loop still match. Reported in lazycodex#124.
  • 71557afab fix(model-core): keep antigravity-gemini-3-flash out of the -preview rewrite\n\nNegative lookbehind so antigravity-prefixed gemini-3-flash ids are not rewritten to an invalid -preview id. Reported in lazycodex#117.
  • 9e428f568 fix(rules): add GPT-5.6 context budgets for PostCompact\n\nAdd gpt-5.6-sol/terra/luna at 372k so PostCompact stops applying the 200k fallback. Reported in lazycodex#125.
  • 60415873e fix(ulw-loop): contain stop-resume writes to the session state dir\n\nValidate goal-id path containment before writing auto-resume counter/stuck files, denying resumes for ids that escape the session state dir. Reported in lazycodex#129.
  • 2999a1790 Merge pull request #6271 from code-yeongyu/docs/codegraph-daemon-hygiene
  • 562730173 docs: codegraph daemon opt-in and process hygiene
  • d60e7511c Merge pull request #6262 from code-yeongyu/feat/omo-process-hygiene
  • 6d9583674 test(codegraph): guard held-open watchdog facade test on win32
  • f4a31019f Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
  • 8e3c6299f fix(codegraph): destroy held-open test streams so bun test exits on win32
  • c44f565d4 Merge pull request #6265 from code-yeongyu/feature/upgrade-agent-gpts-to-5-6-sol
  • 8ff0aeb52 test(opencode): keep fallback coverage zero-growth
  • 2c6872cf7 fix(mcp-stdio-core): make isProcessAlive never throw so the watchdog cannot wedge on Windows
  • 64dec99cd test(models): pin Sol fallback progression
  • cafc9e794 fix(models): close Sol routing review gaps
  • 9271f83dc fix(agents): align Sol prompt identity and guardrails
  • 35ab4c0d8 test(opencode): split model fallback coverage
  • 2173bfc51 feat(models): route active GPT defaults through 5.6 Sol
  • 58b3176cb Merge remote-tracking branch 'origin/dev' into feat/omo-process-hygiene
  • 6554b3ce8 test(omo-opencode): normalize separators before stripping trailing slash in root assertion
  • d128431b4 test(process-sweep): use a valid NodeJS.Platform value for forced kill paths
  • 0243dc4a6 test(omo-opencode): fix backslash regex in plugin-root assertion
  • b62b3fa8b test(process-sweep): pin kill paths to injected posix platform and normalize separators in root assertion
  • 8aac3c9b0 fix(mcp-stdio-core): reword watchdog comment to keep the package harness-neutral
  • 703b67c40 Merge pull request #6261 from code-yeongyu/code-yeongyu/omo-config-watch
  • a6dd5bf90 merge: sync origin/dev into omo-config-watch
  • c8bffd2c9 test(utils): add process-sweep family matrix tests
  • 20ee9eabd feat(utils): family-based omo process sweep (codegraph + lsp)
  • 2ce0f2a14 fix(omo-codex): terminate codegraph bridge when parent dies
  • e41cbc635 fix(lsp,git-bash): exit MCP server processes when the parent dies
  • 818382852 feat(lsp-daemon): add version-reap module and tests
  • 4fef01293 feat(lsp-daemon): reap older-version daemons at startup
  • 5632e6a6e feat(mcp-stdio-core): parent-liveness watchdog for stdio servers
  • d772785b9 Merge pull request #6251 from code-yeongyu/feat/codegraph-daemon-optin
  • e3d1e47a3 Merge pull request #6253 from code-yeongyu/docs/refresh-model-defaults
  • d30753d65 Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
  • cda04875a test(codegraph): compute expected CODEGRAPH_INSTALL_DIR via join for win32
  • 538df7478 Merge pull request #6252 from code-yeongyu/fix/inprocess-resident-false-lost
  • b0ff7ee77 Merge latest dev into fix/inprocess-resident-false-lost
  • de67397fb Merge origin/dev into fix/inprocess-resident-false-lost
  • e96b6f75b docs: refresh model defaults to current fallback chains
  • a3aab709c fix: preserve live in-process residents during reconcile
  • a09cb9bd7 Merge remote-tracking branch 'origin/dev' into feat/codegraph-daemon-optin
  • bf033ac46 feat(omo-config-core): export config path resolution helpers
  • 3e29a584f fix(codegraph): forward CODEGRAPH_DAEMON_IDLE_TIMEOUT_MS through the child env allowlist
  • 6d53dc8d6 Merge pull request #6249 from code-yeongyu/fix/purge-gpt55-fallbacks
  • 391e3543c Merge pull request #6250 from code-yeongyu/fix/lsp-daemon-accurate-failure-labels
  • abb059f72 test(opencode): align fallback selection coverage
  • 9c7d4c1df fix(lsp-daemon): report cancelled and timed-out requests accurately
  • aec6aa814 feat(omo-opencode): codegraph daemon opt-in and exclusion parity
  • 7cb37389a test(models): cover gpt-5.5 fallback removal
  • 05179d010 fix(models): purge gpt-5.5 fallback rungs
  • 720dcd0b6 Merge pull request #6248 from code-yeongyu/feature/ulw-loop-batch-efficiency-v2
  • 5912b9491 Merge pull request #6247 from code-yeongyu/fix/kimi-k3-defaults
  • 8ade283be chore(ulw-loop): record reviewer blocker evidence
  • 3e2adaf4a Merge remote-tracking branch 'origin/dev' into fix/kimi-k3-defaults
  • 05c47ef3e test(defaults): cover Kimi K3 builtin routing
  • 80a57345f fix(ulw-loop): close independent review blockers
  • c91d58d5d feat(omo-codex): opt-in shared codegraph daemon mode
  • 7332547f5 fix(defaults): promote builtin Kimi fallbacks to K3
  • 71752b396 Merge pull request #6246 from code-yeongyu/feature/ulw-plan-mode-announcement
  • de9c5457d Merge pull request #6245 from code-yeongyu/feat/realtime-tool-progress
  • 26f929b33 chore(ulw-loop): record final gajae-adoption verification
  • 3c661ed2a chore(ulw-loop): record codex-qa evidence for gajae-adoption features
  • 45516ec6f chore(skills): regenerate synced codex ulw-plan skill copy
  • 35837c547 feat(skills): enforce mandatory opening announcement in ulw-plan
  • 26352f678 Merge remote-tracking branch 'origin/dev' into feat/realtime-tool-progress
  • b36ecdd17 fix(ulw-loop): allow batch-final aggregate completion
  • 3b0897bc0 fix(ulw-loop): default batched steering CLI source
  • 1c41f2fff docs(ulw-loop): document auto-advance, batch steering, validation batches
  • 05df4b1fd feat(ulw-loop): enforce validation-batch review boundaries
  • 4b5e237ce feat(ulw-loop): add validation-batch schema to create-goals
  • b424d6371 fix(codegraph): exempt live detached daemons from zombie sweep
  • ce628f877 feat(ulw-loop): add steer --proposals-json atomic batch steering
  • b7f73f184 feat(ulw-loop): fuse next-goal auto-advance into checkpoint
  • 6a6b37ebc Merge pull request #6243 from code-yeongyu/fix/defaults-oracle-gpt56-opus48
  • 072882cf3 test(opencode): record isolated Oracle routing QA
  • 5c6af0eb9 test(opencode): align fallback routing coverage
  • 6b050e0de feat(opencode): route Oracle through GPT-5.6 Sol
  • d47e52e95 feat(models): update Opus aliases and migration targets
  • 58d1fd355 feat(codegraph): optional daemon mode in codegraph env builder
  • fb0fb5e2e Merge pull request #6242 from code-yeongyu/feat/codegraph-141-upgrade
  • 44f56d504 test(codegraph): block win32 hang probe in cmd.exe stdin instead of a lingering grandchild
  • 4c11abaf5 test(codegraph): bound win32 hang fake to 4s and retry probe-dir cleanup past the lock window
  • 2586ef703 test(codegraph): use index-signature env access in probeEnv (TS4111)
  • 0bdc3537b test(codegraph): inherit system PATH for the win32 status probe
  • 2634a6fff test(codegraph): make store-upgrade hook tests cross-platform
  • 60dfdbb78 build(codegraph): rebuild vendored codex component dist for the 1.4.1 pin
  • a2e27a931 fix(codegraph): align MCP init guidance with CodeGraph 1.4.1 output shapes
  • 7e499c5af test(codegraph): pin 1.0.1-era store handling under the 1.4.1 binary
  • 0f3be7079 build(codegraph): bump vendored CodeGraph pin to 1.4.1
  • 9b45c0d30 Merge pull request #6239 from code-yeongyu/fix/lazycodex-model-routing
  • 67fb6a736 fix(codex): update lazycodex agent model routing
  • 50d9307ea Merge pull request #6210 from acamq/fix/notepad-auto-scaffold-on-start-work
  • 96194aaf8 Merge pull request #6140 from MoerAI/fix/6131-lsp-diagnostics-silent-server
  • 438142a57 test(lsp-core): record QA evidence for the #6131 stale-cache fallback guard
  • d9fb51e65 fix(lsp-core): guard silent-server diagnostics fallback with version-current pull cache
  • 28571cd26 Merge remote-tracking branch 'origin/dev' into fix/6131-lsp-diagnostics-silent-server
  • d3c72a873 Merge pull request #5924 from Hungdoan565/codex/docs-glm52-model-guide-5848-20260706
  • bd496651f docs(model-matching): clarify GLM model detection
  • ec0113523 docs(model-matching): narrow GLM selector wording
  • aefc478cf Merge remote-tracking branch 'origin/dev' into review/pr-5924-repair
  • 012aa3f27 docs(model-matching): correct GLM fuzzy fallback guidance
  • 9255f472c Merge pull request #5925 from Hungdoan565/codex/docs-scarce-premium-models-5821-20260706
  • ee1e997d0 docs(orchestration): remove stale Momus criteria
  • 29a4977a5 docs(model-matching): clarify experimental GLM 5.2 guidance
  • 1f4aef3de docs(orchestration): update Momus approval contract
  • acb7f8e97 docs(orchestration): align dual-review diagrams
  • adf00f02f docs(orchestration): correct premium model placement
  • cdc560b02 Merge origin/dev into codex/docs-glm52-model-guide-5848-20260706
  • 0738f9860 Merge origin/dev into codex/docs-scarce-premium-models-5821-20260706
  • 799c0fd87 Merge pull request #5926 from Hungdoan565/codex/docs-opencode-auto-update-5367-20260706
  • 067f3fa0c docs(known-issues): preserve plugin config scope
  • f324cfb5d Merge branch 'dev' into codex/docs-opencode-auto-update-5367-20260706
  • 00235071f Merge pull request #5938 from Hungdoan565/codex/docs-community-model-tools-5346-20260707
  • d3b3db9ef Merge pull request #5936 from Hungdoan565/codex/docs-agent-policy-boundary-5404-20260707
  • 7dee01882 docs(installation): clarify community tool boundaries
  • 93417663a Merge pull request #5937 from Hungdoan565/codex/docs-brownfield-kiss-5280-20260707
  • 2c6dfb1d9 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
  • f79569af4 Merge pull request #5942 from Hungdoan565/codex/docs-known-issue-5911-worktree-status-20260707
  • 24b426582 Merge origin/dev into codex/docs-agent-policy-boundary-5404-20260707
  • 9622bc6e5 docs(orchestration): qualify brownfield guidance
  • 404da72d2 docs(known-issues): note worktree merge status gap
  • 1345dfe99 docs(notepad): notepads are auto-scaffolded; use edit/bash-append not write
  • 27beb30dd feat(start-work): auto-scaffold notepad files on plan commit
  • 8af398565 Merge pull request #6197 from acamq/fix-remove-stale-release-framining
  • 04717bff7 fix(release): remove stale framing block from generated release notes
  • 13e072cc7 fix(lsp-core): resolve clean diagnostics for silent no-pull servers instead of freshness timeout
  • 3c3f16d03 docs(installation): note community model tools
  • 70227d75b docs(orchestration): clarify Sisyphus display names
  • ae1dbc79a docs(orchestration): document brownfield KISS mode
  • a96e0f908 docs(agents): clarify policy enforcement boundary
  • 43401d671 docs(known-issues): document OpenCode update cache workaround
  • 2e83c47df docs(orchestration): guide scarce premium model placement
  • 04e86f728 docs(model-matching): add GLM 5.2 Sisyphus guidance

Thank you to 3 community contributors:

  • @Hungdoan565:
    • docs(model-matching): add GLM 5.2 Sisyphus guidance
    • docs(orchestration): guide scarce premium model placement
    • docs(known-issues): document OpenCode update cache workaround
    • docs(agents): clarify policy enforcement boundary
    • docs(orchestration): document brownfield KISS mode
    • docs(orchestration): clarify Sisyphus display names
    • docs(installation): note community model tools
    • docs(known-issues): note worktree merge status gap
  • @MoerAI:
    • fix(lsp-core): resolve clean diagnostics for silent no-pull servers instead of freshness timeout
    • feat(models): route active GPT defaults through 5.6 Sol
    • test(opencode): split model fallback coverage
    • fix(agents): align Sol prompt identity and guardrails
    • fix(models): close Sol routing review gaps
    • test(models): pin Sol fallback progression
    • test(opencode): keep fallback coverage zero-growth
    • Merge pull request #6265 from code-yeongyu/feature/upgrade-agent-gpts-to-5-6-sol
  • @acamq:
    • fix(release): remove stale framing block from generated release notes
    • Merge pull request #6197 from acamq/fix-remove-stale-release-framining
    • feat(start-work): auto-scaffold notepad files on plan commit
    • docs(notepad): notepads are auto-scaffolded; use edit/bash-append not write
    • Merge pull request #6210 from acamq/fix/notepad-auto-scaffold-on-start-work
View originalPermalink
How v4.19.1 went

v4.19.0

Added 5
  • Add first-class support for Kimi K3 with dedicated prompt variants for Sisyphus, Sisyphus-Junior, and Atlas, plus model-family detection and fallback routing in model-core
  • Add Goal feature with state, persistence, parser, config migration, and /goal command to replace Ralph Loop
  • Ship hyperplan adversarial-planning skill in omo-senpi with Boulder state platform support and codegraph MCP registration
  • Ship default shared and local skills out of the box in Senpi session platform
  • Wire start-work continuation for Codex
Changed 4
  • Replace legacy Ralph Loop wiring with Goal feature, with automatic config migration for existing Ralph Loop configs
  • Update transition detection, plugin/config compatibility, and install surfaces across package detection
  • Update task and tool behavior including delegate-task contract and runtime registration behavior
  • Harden install and publish workflow with safer release sequencing and package/install fixes
Fixed 8
  • Fix Senpi residency claims to release correctly when tasks are marked lost
  • Wire TTL cleanup into session start with proper live-handle guards in Senpi task system
  • Improve record store reliability by caching and reusing file descriptors in Senpi
  • Optimize lead poller to scan incrementally in Senpi task system
  • Fix Codex V2 thread-cap preservation
  • Add stricter ulw-plan parsing and validation in Codex
  • Add Playwright MCP custom-arg support in Codex
  • Improve codegraph git-marker handling safety in Codex

From oh-my-openagent

🚀 oh-my-openagent v4.19.0 — Open models just took the crown

This release ships with first-class support for Kimi K3, the 2.8-trillion-parameter open-weight frontier model from Moonshot AI that is now beating Claude Fable 5 on the Arena.ai Frontend Code leaderboard. OSS must win — and with K3, it just did.

🤖 Kimi K3 is a first-class citizen

Sisyphus, Sisyphus-Junior, and Atlas now carry dedicated Kimi K3 prompt variants calibrated for K3's reasoning style, plus model-family detection and fallback routing in model-core. Whether you route through OpenRouter or Moonshot's API directly, omo recognizes K3 and picks the right prompts automatically.

🎯 Goals replace Ralph Loop

The legacy Ralph Loop wiring is gone. In its place: a clean Goal feature with state, persistence, parser, config migration, and a /goal command. Existing Ralph Loop configs migrate automatically, so nothing breaks.

🛠️ Senpi task engine gets serious

The Senpi task system received a deep reliability pass: residency claims release correctly when tasks are marked lost, TTL cleanup is wired into session start with proper live-handle guards, the record store caches and reuses file descriptors, and the lead poller scans incrementally. These changes make long-running multi-agent workflows noticeably more stable.

🔌 Senpi platform expansion

omo-senpi now ships with the hyperplan adversarial-planning skill, a Senpi session platform for Boulder state, codegraph MCP registration, and default shared + local skills out of the box. Start-work continuation is also wired for Codex.

🐛 Lazycodex / Codex reliability fixes

Codex users get fixes for V2 thread-cap preservation, stricter ulw-plan parsing and validation, Playwright MCP custom-arg support, and safer codegraph git-marker handling.

🌍 Why this release matters

Kimi K3 is the largest open-weight model ever released, and independent benchmarks place it ahead of Claude Opus 4.8 and GPT-5.5 while trading blows with Claude Fable 5 and GPT-5.6 Sol. The frontier is no longer a closed garden. This release makes sure omo users can ride that wave the moment it hits.

📝 A personal note from the maintainer

Today I did not use Claude Opus 4.8 once. Kimi K3 and the open-weights wave handled the work.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 14083b89f Merge pull request #6193 from code-yeongyu/release/v4.19.0-source-state
  • b56483fc7 Merge pull request #6192 from code-yeongyu/feat/kimi-k3-junior-atlas-prompts
  • 22b91b662 feat(agents): add Kimi K3 prompt variants for Sisyphus-Junior and Atlas
  • 9aff020ab Merge pull request #6188 from code-yeongyu/docs/goal-replaces-ralph-docs
  • 1b6c47740 docs: replace ralph-loop with goal feature in user docs
  • 731bdaef6 Merge pull request #6187 from code-yeongyu/docs/init-deep-refresh-20260717
  • cd407ed11 docs: refresh hierarchical AGENTS.md knowledge base to 7d664b96b
  • fe1c3dfb1 Merge pull request #5948 from Hungdoan565/codex/docs-known-issue-5850-ulw-native-plan-20260707
  • 582e57d58 Merge latest dev into PR 5948 repair
  • 7d664b96b Merge pull request #6186 from code-yeongyu/fix/windows-team-wait-commit-order
  • 215f92df2 Merge latest dev into PR 5948 repair
  • 5459b09d0 Merge pull request #5949 from Hungdoan565/codex/docs-known-issue-5839-oracle-token-20260707
  • 58a8c1c60 docs: cover both native plan storage paths
  • 22b231e05 Merge origin/dev into codex/docs-known-issue-5839-oracle-token-20260707
  • 7676ff474 Merge dev and clarify native plan fallback scope
  • 9a1a7da6c Merge pull request #5952 from Hungdoan565/codex/docs-known-issue-5809-cmux-attach-20260707
  • f17ad7b3f Merge origin/dev into codex/docs-known-issue-5839-oracle-token-20260707
  • e9862bda1 Merge remote-tracking branch 'origin/dev' into HEAD
  • d3ba2254c Merge pull request #5957 from Hungdoan565/codex/docs-known-issue-5746-tmux-eager-attach-20260707
  • a526042df Merge remote-tracking branch 'origin/dev' into HEAD
  • 746ef6348 Merge pull request #6184 from code-yeongyu/feature/goal-replaces-ralph
  • f7a293055 Merge dev into codex/docs-known-issue-5809-cmux-attach-20260707
  • 900f0688f Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • a2ce120a1 Merge pull request #5953 from Hungdoan565/codex/docs-known-issue-5806-ulw-followup-20260707
  • 2ea9a61dd feat(goal): add ralph_loop config migration tests and fix precedence
  • c98cbd506 feat(goal): remove Ralph Loop user-facing wiring and migrate tests
  • cc97af58b Merge latest dev into docs-known-issue-5806-ulw-followup
  • 0ef32ffe4 Merge pull request #5950 from Hungdoan565/codex/docs-known-issue-5838-visual-qa-20260707
  • bbcbd4e42 Merge latest dev into docs-known-issue-5806-ulw-followup
  • 1db88ba8d Merge dev into docs-known-issue-5806-ulw-followup
  • 9355d9fe6 feat(goal): wire goal hook into plugin and chat flow
  • 6af312ded Merge origin/dev into codex/docs-known-issue-5838-visual-qa-20260707
  • 1d9cfd152 refactor(omo-opencode)!: drop shared/ skill aliases and protections
  • 9a5b2d135 feat(goal): add goal state controller and model tools
  • acda5862b Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • 1d69f8501 Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • f23c9efdc feat(goal): add goal foundation types, persistence, prompts, parser, config, and /goal command
  • 76eef171e Merge pull request #6173 from code-yeongyu/fix/momus-terra-high
  • 475149c03 Merge pull request #6178 from code-yeongyu/feature/kimi-k3-sisyphus
  • 6f9a1ac7c fix(ulw-research): restore valid YAML frontmatter after alias removal
  • b85bf047c Merge remote-tracking branch 'origin/dev' into review/pr-5957-head
  • 092efa490 refactor(prompts): migrate shared/ulw-plan → ulw-plan
  • 507a5c65b docs: recommend kimi-k3 and update sisyphus model guidance across docs and READMEs
  • c216ff236 feat(omo-opencode): add sisyphus kimi-k3 prompt variant with anti-overthinking calibration
  • 011fa228c feat(model-core): add isKimiK3Model detector, sisyphus fallback entry, and supplemental capabilities
  • c6aca8ff8 refactor(skills-loader-core)!: remove shared/ canonical alias machinery
  • 94773b4af refactor(shared-skills): finish ultraresearch→ulw-research rename; move lcx-* to codex
  • 7a3103de8 Merge pull request #5959 from Hungdoan565/codex/docs-known-issue-5604-delegation-routing-20260707
  • 433e95172 test(momus): fix warm-cache registration for terra high
  • eab6b618f docs(momus): reflect gpt-5.6-terra high reviewer default
  • 0192c7a1e fix(momus): run Codex reviewer at gpt-5.6-terra high
  • 06d9351f1 fix(momus): run OpenCode reviewer at gpt-5.6-terra high
  • b35240052 Merge dev and clarify delegation routing gap
  • 89cbb391d Merge branch 'dev' into codex/docs-known-issue-5746-tmux-eager-attach-20260707
  • 09557b20a Merge pull request #5963 from Hungdoan565/codex/docs-known-issue-5529-reasoning-effort-20260707
  • 1a6292a6a docs(known-issues): clarify compatible provider scope
  • 0f49ac382 Merge branch 'dev' into codex/docs-known-issue-5529-reasoning-effort-20260707
  • 5ef852a32 Merge pull request #6166 from code-yeongyu/code-yeongyu/fix-5976-durable-review-state
  • 3fe1edfb8 fix(ulw-plan): bind review launch identity
  • eec76390e fix(ulw-plan): harden review lifecycle state
  • ab58ff74a fix(ulw-plan): persist reviewer intake state
  • 6457ca1da Merge pull request #5973 from waynefeng92/dev
  • a5fd5d56c test(boulder-state): cover empty state objects
  • 2aa961854 Merge current dev for PR #5973 review
  • fb7d4b66f Merge pull request #5984 from EvangelosMoschou/fix/5977-handoff-session-id
  • 625c359ee fix(auto-slash-command): substitute runtime placeholders atomically
  • 16658f79c Merge pull request #5983 from EZotoff/fix/duplicate-user-args
  • 97fafb79f fix(auto-slash-command): preserve unconsumed user args
  • 238c65280 Merge pull request #6000 from cpt-sd76vg/fix/dedupe-subagent-skills2
  • 7265aeacb Merge remote-tracking branch 'origin/dev' into review/pr-6000-live
  • 79004bf85 fix(delegate-task): remove duplicate available_skills from non-plan subagent prompts
  • 81180f375 Merge pull request #6023 from alois-tr01/fix/playwright-mcp-custom-args
  • 52349d0cc Merge dev into fix/playwright-mcp-custom-args
  • 2622e145e Merge pull request #6042 from datell1357/fix/codegraph-invalid-git-marker
  • f5561aa4d Merge dev into fix/playwright-mcp-custom-args
  • 53384ef27 Merge branch 'dev' into fix/codegraph-invalid-git-marker
  • 1ef8be0a6 fix(codegraph): validate redirected git markers
  • 4b8b44b9e Merge pull request #6154 from code-yeongyu/code-yeongyu/fix-6094-ulw-plan-contract
  • cb573dd51 Merge branch 'dev' into fix/codegraph-invalid-git-marker
  • 3b8602219 fix(opencode): validate repeated plan sections
  • e59281563 fix(plans): preserve child heading scope
  • 6c97bacf5 fix(plans): harden markdown boundaries
  • 9733dda9a fix(plans): align task and fence parsing
  • 3a1bde438 fix(plans): unify checklist progress parsing
  • a2f8c3c95 test(codex): preserve final-gate fixture grammar
  • af2741a6d fix(opencode): validate each plan section
  • 4c86e5401 fix(plans): enforce canonical checklist grammar
  • 066344e2c fix(codex): parse structured plan rows
  • f8e715a14 fix(boulder): parse structured plan rows
  • 44edbb71b fix(opencode): warn on empty plan sections
  • 309b38e8a docs(codex): mirror ulw-plan task grammar
  • aa4a8d9e2 docs(skills): define ulw-plan task grammar
  • 13e560820 Merge pull request #6153 from code-yeongyu/code-yeongyu/fix-6101-preserve-thread-cap
  • c32bca008 fix(codex): preserve semantic V2 thread caps
  • 674f1991d test(codex): pin explicit V2 cap preservation
  • 84a849f47 fix(codex): default absent V2 thread caps
  • e0f365c89 fix(codex): preserve session V2 thread caps
  • 2dd05329f Merge pull request #6053 from code-yeongyu/code-yeongyu/fix-broken-test-surface-20260712
  • 01411d892 Merge remote-tracking branch 'origin/dev' into sweep/pr-6053-review
  • a98df4baf Merge remote-tracking branch 'origin/dev' into sweep/pr-6053-review
  • 1dddf271e fix(ci): reject ambiguous pack manifests
  • 0d16fd71c Merge branch 'dev' into code-yeongyu/fix-broken-test-surface-20260712
  • 804342731 fix(ci): validate npm pack manifest entries
  • 57abb3bdd fix(ci): support npm 12 pack manifests
  • 718b87e90 fix(codegraph): validate Git worktree root
  • cf68ba2eb fix(codegraph): 유효하지 않은 Git 마커 수정 방지
  • 4e10e9c08 test(playwright): sync omo-opencode mirror test with the new facade shape
  • 822537f33 fix(playwright): let users override @playwright/mcp args for sandboxed envs
  • 6336dee6e fix(boulder): treat empty {} as invalid state in readBoulderState
  • 46c83da9e docs(known-issues): note GPT reasoning effort conflict
  • 5b04a08ec docs(known-issues): note delegation routing failure gap
  • dbfff9806 docs(known-issues): note tmux focus attach behavior
  • 48d29a6fc docs(known-issues): note ULW follow-up mode gap
  • 30afb5017 docs(known-issues): note cmux pane attach gap
  • 56fcc122f docs(known-issues): note LazyCodex visual QA gap
  • ea35adc4a docs(known-issues): note Oracle verification token gap
  • c765d0a9a docs(known-issues): note ULW native plan fallback

Thank you to 3 community contributors:

  • @Hungdoan565:
    • docs(known-issues): note ULW native plan fallback
    • docs(known-issues): note Oracle verification token gap
    • docs(known-issues): note LazyCodex visual QA gap
    • docs(known-issues): note cmux pane attach gap
    • docs(known-issues): note ULW follow-up mode gap
    • docs(known-issues): note tmux focus attach behavior
    • docs(known-issues): note delegation routing failure gap
    • docs(known-issues): note GPT reasoning effort conflict
  • @alois-tr01:
    • fix(playwright): let users override @playwright/mcp args for sandboxed envs
    • test(playwright): sync omo-opencode mirror test with the new facade shape
  • @cpt-sd76vg:
    • fix(delegate-task): remove duplicate available_skills from non-plan subagent prompts
View originalPermalink
How v4.19.0 went

v4.18.2

Changed 4
  • Plan agent now inherits fallback_models from Prometheus for consistent degradation across all agents
  • Plugin discovery now honors XDG_CONFIG_HOME and treats OPENCODE_CONFIG_DIR additively across Linux, WSL, and Windows
  • Test-suite hook dependencies are now injected instead of relying on process-global module mocks, removing cross-file bun test pollution
  • Custom provider fallback priority is now preserved in plan agent configuration
Fixed 6
  • GPT-5.6 sessions no longer spend model rounds on empty polls; waiting discipline now replays accumulated context in one sized call, re-validates only when inputs change, and requires explicit STOP conditions for subagent spawns
  • Interrupting an agent mid-task no longer silently re-arms the todo-continuation enforcer; continuation boundaries and interruption provenance are now tracked
  • Prose tokens like @ts-ignore, @latest, or (@path) in skill and command bodies are no longer mangled; resolver leaves non-file tokens untouched while real file references still inline
  • Category-skill reminder is now delivered as a synthetic message part instead of appended to tool.execute.after output, preventing reminder text from leaking into model-visible results
  • LSP proxy, per-user daemon, and codegraph stdio bridge now bound their startup, cancel pending acquisitions on parent close, and propagate closed-stdio errors instead of hanging
  • Windows port-probe test flake stabilized

From oh-my-openagent

oh-my-opencode v4.18.2 — Stability & Waiting-Discipline Patch

A stability-focused patch across both editions (OpenCode Ultimate + Codex Light / lazycodex). No config changes, no new flags — upgrade in place.

⏱️ GPT-5.6 stops burning time on empty polls

Long GPT-5.6 sessions were spending real model rounds on nothing — one recent run logged 91 empty stdin polls at ~134k tokens each, plus full re-validation of every criterion on every increment. Ultrawork, ulw-loop, and Hephaestus now carry a waiting discipline: a status poll replays the accumulated context so a long command finishes in one sized call, validation re-runs only when its inputs actually changed (with one final full pass), and subagent spawns require an explicit STOP condition. Applied to both editions.

🔁 Continuation no longer re-arms after you interrupt

Interrupting an agent mid-task could silently re-arm the todo-continuation enforcer and resume against your intent. Continuation boundaries and interruption provenance are now tracked, so an intentional interruption stays interrupted (#6109).

🧩 Plan agents inherit their fallback models

The plan agent now inherits fallback_models from Prometheus, so a planning session degrades to the same backup chain as the rest of your agents instead of dropping fallback entirely. Custom provider fallback priority is also preserved.

📝 Prose @tokens stay intact in skills and commands

Literal tokens like @ts-ignore, @latest, or (@path) in skill/command bodies were being mangled into [file not found: ...] fragments. The resolver now leaves any @token that isn't a real file untouched, while real @file references still inline (#5978).

🧹 Category-skill reminders no longer corrupt tool output

The category+skill reminder was appended to tool.execute.after output, leaking reminder text into Read/Bash/edit results the model saw. It's now delivered as a single synthetic message part (#6001).

🔌 LSP / MCP startup is bounded and cancellable

The LSP proxy, per-user daemon, and codegraph stdio bridge now bound their startup, cancel pending acquisitions on parent close, and propagate closed-stdio errors instead of hanging or swallowing them. Codex's final Boulder gate is enforced and review lanes are bound to the full commit SHA.

🪟 Plugin discovery respects XDG_CONFIG_HOME

loadOpencodePlugins now reuses the shared config-dir resolver, so plugin discovery honors XDG_CONFIG_HOME and treats OPENCODE_CONFIG_DIR additively (custom wins over default) across Linux, WSL, and Windows.

🛠️ Also in this release
  • Hephaestus delegation-table contract aligned; GPT-5.6 Copilot capability + OpenAI fast-tier alias handling.
  • Windows port-probe test flake stabilized.
  • Test-suite hardening: hook dependencies are now injected instead of relying on process-global module mocks, removing cross-file bun test pollution that could produce order-dependent failures.

Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
Commit Summary
  • 23cb030bb Merge pull request #6156 from code-yeongyu/release/v4.18.2-source-state
  • d87596e58 Merge pull request #6114 from code-yeongyu/code-yeongyu/fix-windows-port-utils-flake
  • 64a069bcd test(utils): stabilize port probe sequence
  • b9d448894 Merge pull request #6155 from code-yeongyu/fix/test-mock-pollution-publish-gate
  • 4a33c1e8f Merge pull request #6082 from H-TTTTT/feat/6032-copilot-gpt-5-6
  • fb2d5d9dc Merge pull request #6152 from code-yeongyu/code-yeongyu/fix-6087-hephaestus-delegation-contract
  • 3962c9152 test(models): refresh GPT-5.6 fallback QA
  • c21e8ed0f test(hooks): make mock.module victims order-independent under single-process bun test
  • 82bf7be14 fix(hephaestus): align delegation table contract
  • 896ac48cb test(models): publish GPT-5.6 fallback QA
  • b7a2e33ac Merge pull request #6091 from FNDEVVE/fix/openai-fast-capability-alias
  • 97d45a627 Merge branch 'dev' into fix/openai-fast-capability-alias
  • 400463b54 Merge pull request #6150 from code-yeongyu/docs/codemode-prompt-orchestration
  • 2704556aa fix(models): preserve custom provider fallback priority
  • c75c47e87 Merge remote-tracking branch 'origin/dev' into sweep/pr-6091-review
  • 4635c0cb5 Merge pull request #5988 from MoerAI/fix/start-work-wrapper-at-path-5978
  • 5201f5435 Merge remote-tracking branch 'origin/dev' into sweep/pr-6091-review
  • 0e83e42fa Merge pull request #6151 from code-yeongyu/fix/hephaestus-gpt56-waiting-discipline
  • 047804213 Merge pull request #6149 from code-yeongyu/code-yeongyu/fix-6109-continuation-rearm
  • 82bb52a90 Merge pull request #6095 from c436zhan/fix/plan-fallback-models
  • 875593285 Merge pull request #6084 from Zeno2019/fix/migrate-plural-config-dirs-pattern-a
  • 9c8d1a27c docs(prompts): emphasize code-mode orchestration
  • a5b008094 docs(prompts): sharpen Hephaestus discovery
  • 293065bd2 fix(hephaestus): add GPT-5.6 waiting discipline and bounded re-validation to both editions
  • 3ec4afb20 Merge pull request #6147 from code-yeongyu/code-yeongyu/fix-6112-final-gate-ledger
  • 425c37107 fix(opencode): stop continuation rearming
  • b3dff9c6f fix(opencode): preserve interruption provenance
  • 1e8013feb fix(opencode): track continuation boundaries
  • 714d6cd82 test(config): isolate plural config directory tests
  • 469702b86 fix(opencode): wire inherited plan fallbacks
  • 43ea85f6e Merge pull request #6083 from H-TTTTT/fix/6001-clean-category-skill-reminder
  • 2e5fc7191 Merge remote-tracking branch 'origin/dev' into fix/openai-fast-capability-alias
  • 8357bada0 fix(model-core): restrict gateway alias hosts
  • f2ae890b6 fix(codex): sync durable review evidence rules
  • bf5f9d6a2 fix(codex): bind loop review lanes to full SHA
  • ba0383d7b fix(codex): persist review lane SHA records
  • 40a398107 fix(codex): defer completed plans to final gate
  • 05faacf04 fix(codex): enforce final Boulder gate
  • a1ceb8808 Merge pull request #6146 from code-yeongyu/fix/ultrawork-gpt56-waiting-discipline
  • fb5f2efd7 Merge remote-tracking branch 'origin/dev' into fix/ultrawork-gpt56-waiting-discipline
  • 9c49524a2 fix(ultrawork): teach codex directive GPT-5.6 waiting discipline and bounded re-validation
  • 520813ee0 Merge pull request #6144 from code-yeongyu/code-yeongyu/fix-lsp-mcp-startup-timeout
  • 9a00d7887 fix(codex): bound component LSP startup
  • 91e8a745e fix(codex): bound aggregate LSP startup
  • 6aa73b829 fix(lsp): bound MCP proxy startup
  • 42f5078b8 fix(hooks): deliver category-skill reminder as a synthetic text part
  • 99758f164 chore(evidence): re-encode #5978 QA artifacts from UTF-16 to UTF-8 so they render in the PR diff
  • 04d11b0e7 fix(models): resolve transformed warm-cache models
  • f72654521 fix(models): preserve Vercel GPT-5.6 resolution
  • 001b333f7 feat(models): add GitHub Copilot GPT-5.6 fallbacks
  • b5f385c24 test(file-reference-resolver): add real-OpenCode QA proving #5978 fix
  • dec381ed2 Merge pull request #6117 from code-yeongyu/code-yeongyu/lsp-daemon-migration-residual
  • 6dde357ee fix(codex): preserve final bridge output errors
  • 35bba7c0a fix(codex): terminate codegraph on bridge failure
  • 1f9d7f00c fix(mcp): release failed-write listeners
  • 61ce4dc1d fix(mcp): propagate nonterminal stdio errors
  • ed570112f fix(codex): await codegraph stdio writes
  • de0cf88e0 fix(mcp): handle closed stdio output
  • e1f081cfa fix(lsp): cancel diagnostic client acquisition
  • 6b3838cf6 test(lsp): keep reuse probe input open
  • 6e9b77aec fix(lsp): clean up proxy lifecycle
  • 044bad05d fix(lsp): cancel pending daemon startup
  • 682efe4f4 Merge pull request #6113 from code-yeongyu/docs/init-deep-20260714
  • 176bfbcb9 test(lsp): label captured QA artifacts
  • 5dcd20691 test(lsp): fail smoke on output errors
  • 6977a0569 fix(lsp): own proxy cancellation lifecycle
  • 5f20b08f9 docs(agents): document adapter support edges
  • c0e000b19 test(lsp): exit cancellation smoke after cleanup
  • 3066ebbb6 test(lsp): trace cancellation smoke cleanup
  • c03123dc8 docs(agents): correct layering boundaries
  • c14acd551 test(lsp): allow bounded Windows smoke teardown
  • ca9b56665 test(lsp): use production endpoint in cancellation QA
  • bc482eff5 docs(agents): sync release and launcher facts
  • 19cb0add2 Merge branch 'dev' into docs/init-deep-20260714
  • 1a01f743e test(lsp): stabilize diagnostics freshness timing
  • 8bc8e4839 docs(agents): reconcile hierarchy guidance
  • c7f3c6866 test(lsp): make cancellation QA clone-safe
  • ba4aa8cac test(lsp): track cancellation contract probes
  • be8e34b60 fix(lsp): cancel proxy requests on parent close
  • 71aa48ba6 fix(hashline): isolate environment parser
  • dc8c11ff0 docs(agents): clarify source snapshot and launchers
  • 39217292d fix(hashline): require explicit test credentials
  • d927c9d12 docs(agents): correct repository map drift
  • a211ba5c4 docs(agents): refresh repository knowledge map
  • 7bad0509d fix(opencode): inherit plan fallback models
  • 9f38f5c42 fix(model-core): accept gateway OpenAI fast aliases
  • bfff7d69f test(omo-opencode): cover GPT-5.6 fast routing
  • 8bd180417 test(model-core): pin OpenAI fast snapshot inheritance
  • 622131c16 fix(model-core): scope GPT-5.6 fast aliases to OpenAI
  • d0f238a17 fix(plugin-loader): reuse getOpenCodeConfigDirs in loadOpencodePlugins
  • ffcb970fb fix(cc-hooks): migrate config-loader to plural config dirs
  • 805be798d fix(skills): migrate skills reader to plural config dirs
  • 85c90e139 fix(agents): migrate agents reader to plural config dirs
  • 6d7ce96ed test(config): add contract tests for getOpenCodeConfigDirs additive semantics
  • ba40721bf fix(file-reference-resolver): leave unresolved @tokens untouched

Thank you to 4 community contributors:

  • @MoerAI:
    • fix(file-reference-resolver): leave unresolved @tokens untouched
    • test(file-reference-resolver): add real-OpenCode QA proving #5978 fix
    • chore(evidence): re-encode #5978 QA artifacts from UTF-16 to UTF-8 so they render in the PR diff
  • @Zeno2019:
    • test(config): add contract tests for getOpenCodeConfigDirs additive semantics
    • fix(agents): migrate agents reader to plural config dirs
    • fix(skills): migrate skills reader to plural config dirs
    • fix(cc-hooks): migrate config-loader to plural config dirs
    • fix(plugin-loader): reuse getOpenCodeConfigDirs in loadOpencodePlugins
  • @FNDEVVE:
    • fix(model-core): scope GPT-5.6 fast aliases to OpenAI
    • test(model-core): pin OpenAI fast snapshot inheritance
    • test(omo-opencode): cover GPT-5.6 fast routing
    • fix(model-core): accept gateway OpenAI fast aliases
  • @H-TTTTT:
    • fix(models): resolve transformed warm-cache models
View originalPermalink
How v4.18.2 went

v4.18.1

Changed 9
  • LSP tooling across OpenCode, Codex, and Senpi now converges on the same hardened daemon runtime with authenticated local IPC, private runtime directories, endpoint and ownership checks, version validation, and conservative stale-process cleanup
  • Diagnostics now wait for fresh results instead of returning stale state
  • Directory checks now preserve complete counts
  • Rename operations now preflight workspace edits, detect conflicts, and synchronize document state after a successful change
  • Codex upgrades will only terminate a legacy daemon when ownership is proven
  • Context overflow is now classified separately so OpenCode can complete native compaction without the runtime fallback interrupting it
Fixed 1
  • Continuing a background task that is still running now returns an actionable error instead of reporting a false success
Removed 1
  • Senpi project-local .pi/lsp-client.json files can no longer provide executable command or env values

From oh-my-openagent

Safer, Shared LSP Runtime

LSP tooling across OpenCode, Codex, and Senpi now converges on the same hardened daemon runtime. Diagnostics wait for fresh results instead of returning stale state, directory checks preserve complete counts, and rename operations preflight workspace edits, detect conflicts, and synchronize document state after a successful change.

The daemon now uses authenticated local IPC, private runtime directories, endpoint and ownership checks, version validation, and conservative stale-process cleanup. Codex upgrades will only terminate a legacy daemon when ownership is proven.

More Predictable Agent Continuations and Compaction

Continuing a background task that is still running now returns an actionable error instead of reporting a false success. Context overflow is also classified separately so OpenCode can complete native compaction without the runtime fallback interrupting it.

Ultrawork and delegated tasks now carry explicit observable stop conditions and evidence requirements. Review and QA approvals are bound to the exact content or review lane, reducing duplicate work without allowing stale approval to cover changed code.

Senpi LSP Migration Note

Senpi now ships and uses the shared LSP daemon instead of its adapter-local implementation. For safety, project-local .pi/lsp-client.json files can no longer provide executable command or env values. Move custom server commands and environment variables to the user-level ~/.pi/lsp-client.json; project files may continue to define non-executable settings such as extensions, language IDs, and priorities.

Release Layers
  • Pure components: shared daemon security, fresh diagnostics, safer workspace edits, and reusable post-edit diagnostics.
  • OpenCode: shared runtime integration, correct running-task continuation errors, native compaction preservation, and tighter agent completion contracts.
  • Codex / LazyCodex: packaged LSP runtime, ownership-safe legacy cleanup, and commit/tree-bound review and QA gates.

Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 80c3c81eb Merge pull request #6116 from code-yeongyu/release/v4.18.1-source-state
  • e3754dbf6 Merge pull request #6096 from impartshadow/fix/5966-running-continuation-false-success
  • dd6db6aa8 Merge pull request #6115 from code-yeongyu/docs/skill-verify-gates-20260714
  • 56c57a4f2 test(background-agent): cover running resume rejection
  • ab0411bb7 docs(prompts): bind ulw-loop evidence to tree hash instead of commit
  • 2e5e9eb90 docs(skills): drop review-work gate from work-with-pr verify loop
  • b19f65257 Merge pull request #6107 from naiba-forks/fix/context-overflow-native-compaction
  • 18ad5cb32 Merge pull request #6112 from code-yeongyu/fix/dedupe-commit-bound-reviews
  • 0657c2f29 docs(skills): fail Gate B from any lane, scoped or full-run
  • 9d71ac54c fix(prompts): bind review reuse to lane/SHA pairs and lane-scoped Gate B dispatch
  • 034fb56e3 fix(omo-codex): make the continuation final gate commit-bound
  • 158402e48 fix(prompts): scope review reuse to lanes so security and context lanes still run
  • 64eef1f4d Merge pull request #6111 from code-yeongyu/fix/ulw-gpt56-stop-line-binding
  • e3dfc6746 Merge pull request #6108 from code-yeongyu/code-yeongyu/fix-windows-team-tasklist-flake
  • e8bb713c1 fix(omo-codex): make start-work global review gate pass commit-bound
  • d55b5761a docs(ulw-loop): final quality gate approval satisfies same-SHA PR review gates
  • 12a47f12d fix(codex-rules): make hephaestus review-work approvals commit-bound
  • 628dae95c docs(skills): bind work-with-pr Gate B review approval to the PR head SHA
  • 3d33d1d41 fix(ultrawork): bind the declared WHEN TO STOP line to the full STOP GOAL
  • 3097c6b3d Merge pull request #6110 from code-yeongyu/feature/ulw-gpt56-stop-contract
  • 5c3ffbb15 fix(ultrawork): scope WHEN TO STOP to the run and propagate the stop contract to child prompts
  • 01506cc64 chore(release): regenerate v4.18.0 artifacts
  • 57e19bcbe fix(hephaestus): bind the GPT-5.6 stop contract and propagate it to spawns
  • ba3b01c06 fix(ultrawork): give the GPT ULW prompt a binding stop contract
  • 6f69134d9 test(codex): terminate Windows daemon trees
  • 3322c3d40 test(team-tasklist): verify pure adapter exports
  • c41c84384 test(team-tasklist): stabilize store coverage
  • cba9db4ec test(team-tasklist): stabilize list coverage
  • d570882ab test(team-tasklist): stabilize update coverage
  • 78a756dd4 test(team-tasklist): stabilize claim coverage
  • a0c156308 test(codex): retry Windows fixture cleanup
  • e9ba2377d test(codex): wait for LSP daemon teardown
  • 98e2b2d87 test(lsp): preserve Windows legacy endpoint paths
  • 104da03c4 fix(runtime-fallback): preserve native context compaction
  • b58312540 test(lsp): fix Windows Codex reaper fixtures
  • ca9467f42 test(lsp): fix Windows path fixtures
  • e6f2df59c test(lsp): stabilize cross-platform compatibility gates
  • 3455fa35f fix(lsp-daemon): verify fallback socket ownership
  • da0f9cd74 refactor(opencode): align LSP MCP daemon context
  • ef470ca12 refactor(codex): use shared LSP daemon contract
  • 22020db3d feat(lsp-daemon): secure shared daemon runtime
  • cf65a63ab feat(lsp-core): harden shared LSP orchestration
  • d6bbba552 fix(background-agent): reject running task continuation

Thank you to 1 community contributor:

  • @naiba:
    • fix(runtime-fallback): preserve native context compaction
View originalPermalink
How v4.18.1 went

v4.18.0

Added 2
  • Added layout-mechanics layer in OMO's frontend skill with shared spatial vocabulary including stack, cluster, content limiter, sidebar, switcher, cover, frame, reel, imposter, overlay stack, fixed sidenav shell, list-detail, and sticky aside
  • Added bun run install:codex-dev command to install local source build with an unmistakable dev version stamp
Changed 5
  • Every GPT-5.6 Hephaestus intent line must now declare the exact observable condition that ends the turn
  • Ultrawork must now register the goal through create_goal, include a binding WHEN TO STOP, and rank user problem resolution above ledger ceremony
  • Spawned subagents must now receive GOAL, STOP WHEN, and EVIDENCE so the parent can control completion by an observable contract
  • Frontend layouts now declare what scrolls, how regions shrink, and how the screen survives empty, long, unbroken, narrow, and RTL content
  • Development builds now display unmistakable dev version stamp in cache path, plugin metadata, per-turn (OmO dev) prefix, and omo get-local-version output, while skipping update checks for non-semver stamps
Fixed 2
  • Fixed a Codex run that kept going for eight hours by coupling the intent gate and stop gate across the main agent, ultrawork, and subagents
  • The Codex installer now strips inherited npm 12 allow-scripts configuration only from dependency-install subprocesses, preventing an outer npx policy from breaking the plugin install

From oh-my-openagent

GPT-5.6 That Actually Knows When to Stop

We just fixed a real Codex run that kept going for eight hours. This was not one bad loop; it was the full runaway stack: a main-agent model that does not treat stopping as the default, an ultrawork prompt designed to keep summoning help, subagents that also keep going, and a harness whose subagent lifecycle is difficult to control once all of those forces combine.

We are genuinely proud of this one. OMO now couples the intent gate and stop gate instead of treating completion as an afterthought:

  • Every GPT-5.6 Hephaestus intent line must declare the exact observable condition that ends the turn.
  • Ultrawork must register the goal through create_goal, include a binding WHEN TO STOP, and rank “is the user’s problem actually solved?” above ledger ceremony.
  • The moment the stop goal holds, the agent must answer and stop immediately: no extra verification loop, polish pass, review cycle, or bonus refactor.
  • Every spawned subagent must receive GOAL, STOP WHEN, and EVIDENCE, so the parent can control completion by an observable contract instead of trusting a vague “done.”

This is specifically tuned for gpt-5.6-sol and the persistent behavior that makes it such a strong autonomous worker. OMO keeps that persistence where it is useful, then gives it a hard, coordinated stopping boundary across the main agent, ultrawork, and subagents. For GPT-5.6 users, this update is strongly recommended; this control layer is the reason the OMO Codex experience can be substantially more disciplined than a stock harness run.

Frontend Layout Mechanics, Inspired by StyleGallery

A big shoutout to changeroa/StyleGallery. Its layout work directly inspired the new layout-mechanics layer in OMO’s frontend skill, distilled part by part rather than copied as a generic style preset:

  • Layout Brief inspired declaring scroll ownership, fixed/sticky/static regions, constraints, viewport-vs-container responsiveness, and content stress before CSS is written.
  • scroll-body-shell inspired the bounded app-shell contract: auto minmax(0, 1fr) auto, a single named scroll body, and the load-bearing min-block-size: 0 fix.
  • ram-grid inspired the overflow-safe intrinsic grid using repeat(auto-fit, minmax(min(16rem, 100%), 1fr)).
  • StyleGallery’s pattern catalog inspired OMO’s shared spatial vocabulary: stack, cluster, content limiter, sidebar, switcher, cover, frame, reel, imposter, overlay stack, fixed sidenav shell, list-detail, and sticky aside.
  • Layout Gate and the Dashboard recipe inspired the strict boundary between spatial mechanics and visual taste, plus source-order, scroll, reflow, and decision-priority checks.

OMO keeps its own visual direction, motion rules, image workflow, and QA system. The adopted lesson is narrower and extremely useful: app layouts must declare what scrolls, how regions shrink, and how the screen survives empty, long, unbroken, narrow, and RTL content.

Safer Codex Development and Installation

Codex contributors can now run bun run install:codex-dev to install the local source build with an unmistakable dev version stamp. The cache path, plugin metadata, per-turn (OmO dev) prefix, and omo get-local-version output all reveal that the development build is active, while update checks are skipped for non-semver stamps.

The Codex installer also strips inherited npm 12 allow-scripts configuration only from dependency-install subprocesses, preventing an outer npx policy from breaking the plugin install while preserving registry, authentication, proxy, build, and skill-sync environment behavior.

Layered Impact
  • omo pure components: minor. Shared frontend and programming skills gain reusable layout and behavioral-test contracts; Codex ultrawork prompts gain the coordinated goal/stop model.
  • omo opencode: minor. OpenCode receives the new frontend layout-mechanics skill and recognizes visibly stamped local development builds.
  • omo codex / LazyCodex: minor. GPT-5.6 stop control, subagent contracts, development stamping, and npm 12 installation isolation all ship in the Codex marketplace payload.

No breaking changes or migration steps are required.


  • c7c903f66 Merge pull request #6106 from code-yeongyu/release/v4.18.0-source-state
  • bb0f6fbb6 Merge pull request #5832 from JSap0914/fix/session-exists-by-id-5810
  • 7138dba01 Merge pull request #5690 from Hungdoan565/codex/fix-git-status-rename-path-20260628
  • fb8b6227a Merge pull request #6104 from code-yeongyu/fix/ulw-test-authoring-contract
  • 71959157b docs(ultrawork): require mutation proof for test-only regression coverage
  • ffec49237 Merge pull request #6102 from code-yeongyu/docs/prompt-test-rule-hardening
  • 53dc9f0a1 docs(rules): forbid prose assertions and mechanism-prescribing delegation
  • 921d08ff8 Merge pull request #6099 from code-yeongyu/fix/hephaestus-gpt56-registration
  • bbba1a15d test(agents): verify registered GPT-5.6 prompt
  • c9fe21744 Merge pull request #6100 from code-yeongyu/feature/hephaestus-56-subagent-stop-contract
  • 3262f8502 test(agents): strengthen GPT-5.6 registration coverage
  • 4cdac71d6 feat(omo-codex): require GOAL/STOP WHEN/EVIDENCE in Hephaestus 5.6 spawn messages
  • 33eb742ef test(agents): cover Hephaestus GPT-5.6 registration
  • 403ce788c Merge pull request #6098 from code-yeongyu/feat/lazycodex-dev-install
  • 5b5cbb8bc docs(omo-codex): document the dev-install workflow and dev version stamp
  • 7b1f02cf8 feat(omo-codex): dev install stamped as version dev via LAZYCODEX_DEV_VERSION
  • 830ec1e29 Merge pull request #6092 from code-yeongyu/fix/ulw-when-to-stop
  • 6b3f22691 fix(ultrawork): require a when-to-stop declaration in every goal contract
  • c05d0ca7e Merge pull request #6090 from code-yeongyu/fix/ulw-stop-goal-round2
  • 8482f2c9a fix(codex-rules): declare a binding stop condition in the hephaestus intent line
  • 6a096c2d1 fix(ultrawork): mandate create_goal registration and rank problem-actually-solved above all stop criteria
  • a0a89aa6d fix(codex-rules): make hephaestus gpt-5.6 stop mandatory and immediate at the stop goal
  • c57619895 Merge pull request #6089 from code-yeongyu/fix/ulw-stop-goal-5.6
  • 33759ba0c fix(ultrawork): make the STOP GOAL explicit in codex directive and ulw-loop stop rules
  • 03753d38c fix(codex-rules): name the stop goal in hephaestus gpt-5.6 and stop the moment it holds
  • 68942f882 Merge pull request #6086 from code-yeongyu/code-yeongyu/fix-omo-codex-npm12-allow-scripts
  • 389a0d168 chore(omo-codex): regenerate npm install env handling
  • 065fbb9cd Merge pull request #6085 from code-yeongyu/feat/frontend-layout-mechanics
  • c5ba41787 fix(codex-install): isolate npm 12 allow-scripts config
  • 7528cffd2 feat(shared-skills/frontend): add layout-mechanics ruleset from StyleGallery
  • 57f064934 fix(opencode): check session existence by id
  • 520f793d2 fix(utils): parse git status rename destinations

Thank you to 3 community contributors:

  • @Hungdoan565:
    • fix(utils): parse git status rename destinations
  • @JSap0914:
    • fix(opencode): check session existence by id
  • @MoerAI:
    • Merge pull request #5690 from Hungdoan565/codex/fix-git-status-rename-path-20260628
    • Merge pull request #5832 from JSap0914/fix/session-exists-by-id-5810
View originalPermalink
How v4.18.0 went

v4.17.1

Changed 4
  • Batch task launches are capped before work is queued
  • Senpi QA gate now requires real child completion and output
  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes
Fixed 7
  • Interrupted process-backed tasks now resume only from trusted current runtime state
  • Team members retain their scoped messaging runtime after recovery
  • Corrupt team state fails closed
  • Independent team waits cannot consume one another's messages
  • Failed child start is reported per item instead of hiding already-started work
  • Publication is now pinned to the exact prepared source commit across npm, platform binaries, and LazyCodex
  • Explicit GPT-5.6 Sol overrides retain their intended reasoning level across gateway model IDs

From oh-my-openagent

Safer Durable Task Recovery

Interrupted process-backed tasks now resume only from trusted current runtime state. Team members retain their scoped messaging runtime after recovery, corrupt team state fails closed, and independent team waits cannot consume one another’s messages.

Bounded, Observable Task Fan-Out

Batch task launches are capped before work is queued. A failed child start is reported per item instead of hiding already-started work, and the Senpi QA gate now requires real child completion and output.

Release and Routing Integrity

Publication is now pinned to the exact prepared source commit across npm, platform binaries, and LazyCodex, so provenance and payloads agree. Explicit GPT-5.6 Sol overrides also retain their intended reasoning level across gateway model IDs.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • ed0241d1a Merge pull request #6080 from code-yeongyu/release/v4.17.1-source-state
  • 616d30bdd Merge pull request #6079 from code-yeongyu/fix/publish-skill-fastpath
  • 930664124 Merge remote-tracking branch 'origin/dev' into fix/publish-skill-fastpath
  • e52cd8f47 test(ci): cover provenance dispatch summary
  • 298b743f3 fix(publish): make /publish ship-only, stop auto-triggering pre-publish review
  • 017d70c46 fix(release): pin publication provenance to source
  • c1a741dd9 fix(codex): align model and team spawn contracts
  • 23312138c Merge pull request #6068 from code-yeongyu/code-yeongyu/cleanup-codex-toml-parser
  • 848ffce93 Merge origin/dev into code-yeongyu/cleanup-codex-toml-parser
  • 82864f8e0 Merge pull request #6070 from code-yeongyu/fix/visual-qa-tag-emission
  • 12e2637e8 Merge origin/dev into code-yeongyu/cleanup-codex-toml-parser
  • e47aa9b87 fix(skills): emit [product]/[evidence] tag reviewers and unify backoff dashes
  • c660246be Merge pull request #6069 from code-yeongyu/fix/qa-loop-contradictions
  • af27b971a fix(skills): resolve QA-loop contradictions and evidence-vs-product churn
  • 5cfa6066c Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-codex-toml-parser
  • 734b1b420 refactor(omo-codex): reuse TOML string parser
  • 6e4c82627 Merge pull request #6065 from code-yeongyu/code-yeongyu/cleanup-shared-skill-helpers
  • 955214b12 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-shared-skill-helpers
  • e1e09aef6 feat(team-core): lead unread recipient + leadSessionId + consumed-ledger + consumer lease
  • 58000e267 Merge pull request #6064 from code-yeongyu/fix/ulw-loop-test-timeouts
  • 4ccba96df fix: increase bun:test timeout for load-sensitive async tests in ulw-loop
  • 5071a7c82 Merge pull request #6063 from code-yeongyu/fix/release-4-17-1-blockers
  • 20887c5d4 Merge pull request #6057 from code-yeongyu/code-yeongyu/cleanup-root-contract-tests
  • fbb56162b docs(skills): align review and Hephaestus guidance
  • d66fe09e2 fix(release): build from prepared installer version
  • 7c55a25f4 fix(skills): preserve full evidenced planning scope
  • 8bbabd65f fix(ulw-loop): route planning by uncertainty
  • e38bc3fa1 fix(teammode): gate fallback on visible capabilities
  • b5040f937 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-shared-skill-helpers
  • d8a71f0a0 refactor(skills): reuse path resolver
  • 99f124606 refactor(skills-loader): reuse initiator marker
  • e564bd4ec refactor(utils): own skill path resolution
  • efc99280a Merge origin/dev into code-yeongyu/cleanup-root-contract-tests
  • f7eb7dd2d Merge pull request #6060 from code-yeongyu/fix/plan-prompts-scope-narrowing
  • 19aabe5e1 fix(skills): make full-request scope the ulw-plan default
  • d0e2e0863 fix(agents): remove scope-narrowing MVP language from metis prompts
  • 412405b0f Merge origin/dev into code-yeongyu/cleanup-root-contract-tests
  • 0f69b09da Merge pull request #6059 from code-yeongyu/code-yeongyu/cleanup-lsp-record-predicate
  • 7a9a0d005 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-lsp-record-predicate
  • 11363611b Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-root-contract-tests
  • 8ca9a8804 Merge pull request #6058 from code-yeongyu/fix/hephaestus-review-gate-overtrigger
  • d5fa06820 fix(codex-rules): scope review-work gate to PR handoffs instead of fuzzy 'significant work'
  • 76e7e762a Merge pull request #6056 from code-yeongyu/fix/hephaestus-sol-high-default
  • 14c892c11 Merge remote-tracking branch 'origin/dev' into code-yeongyu/cleanup-lsp-record-predicate
  • 7f648cace refactor(lsp-daemon): reuse record predicate
  • a67f3d190 test(root): remove source-shape sentinels
  • 2c4c7f05b test(agents): preserve hephaestus override coverage
  • dc253ff13 fix(model-core): raise hephaestus sol default
  • d269b23ed Merge pull request #6052 from code-yeongyu/fix/teammode-transport-fallback
  • e1014230f Merge pull request #6055 from code-yeongyu/chore/ultimate-browsing-dep-bump
  • 655f0f753 chore(ultimate-browsing): bump documented runtime dependency pins to latest
  • f261104b3 Merge pull request #6054 from code-yeongyu/fix/ultrawork-plan-routing
  • 1f58a541b fix(omo-codex): align plan agent and hephaestus routing with uncertainty-based planning
  • 22d66b0c8 fix(ultrawork): mirror uncertainty-based plan trigger in gpt variant
  • 691e76a81 fix(ultrawork): size planning by design uncertainty, not step count
  • 316e635db docs(omo-codex): sync teammode component AGENTS.md with transport fallback protocol
  • d49f5f8c5 fix(omo-codex): teammode transport chain with tool_search check and subagent fallback
View originalPermalink
How v4.17.1 went

v4.17.0

Added 3
  • Exploration and deep-analysis categories use new Luna and Terra routes for stronger reasoning
  • Interrupted ULW runs can now resume automatically through a bounded Stop hook
  • Spawn guards and reviewer preflight checks prevent runaway fan-out and stop stale evidence from being relabeled as proof for a newer HEAD
Changed 5
  • LazyCodex now selects low-, medium-, or high-difficulty workers based on change size and risk instead of routing every implementation through one general executor
  • New installs default to GPT-5.6 Sol with a 372K context window
  • Evidence is isolated by attempt and tied to the commit that produced it, checked before the final reviewer starts
  • Senpi task TUI now shows resolved model details and contextual status, control, and output excerpts
  • Prompt and skill changes are now tested at behavioral seams—parsed values, runtime sentinels, and shipped-artifact equality—rather than fragile sentence matching or word-count tests
Fixed 2
  • Rows are width-bounded and terminal control sequences are sanitized to prevent narrow terminals and untrusted task output from distorting the interface
  • Codex bundles no longer ship nested component MCP manifests with invalid relative daemon paths

From oh-my-openagent

Codex Work That Scales to the Task

LazyCodex now selects low-, medium-, or high-difficulty workers from the actual change size and risk instead of routing every implementation through one general executor. New installs default to GPT-5.6 Sol with a 372K context window, while exploration and deep-analysis categories use the new Luna and Terra routes. The result is cheaper handling for narrow work and stronger reasoning where a change genuinely needs it.

ULW Loops Recover and Prove the Right Revision

Interrupted ULW runs can now resume automatically through a bounded Stop hook. Evidence is isolated by attempt, tied to the commit that produced it, and checked before the final reviewer starts. Spawn guards and reviewer preflight checks prevent runaway fan-out and stop stale evidence from being relabeled as proof for a newer HEAD.

More Useful, Safer Task Output

The Senpi task TUI now shows resolved model details and contextual status, control, and output excerpts. Rows are width-bounded and terminal control sequences are sanitized, so narrow terminals and untrusted task output no longer distort the interface.

Cleaner Plugin Installs and Honest Prompt QA

Codex bundles no longer ship nested component MCP manifests with invalid relative daemon paths. Prompt and skill changes are now tested at behavioral seams—parsed values, runtime sentinels, and shipped-artifact equality—rather than fragile sentence matching or word-count tests that block legitimate prose improvements.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • b4673bf07 Merge pull request #6050 from code-yeongyu/fix/ulw-size-tier-guidance
  • 9741e995a feat(omo-codex): size-drive the ulw worker-tier selection
  • d6a4631f6 Merge pull request #6049 from code-yeongyu/fix/ulw-agent-tier-config
  • cdc710aae feat(omo-codex): emphasize code-mode parallel fan-out in hephaestus gpt-5.6 discovery
  • 339e85b49 refactor(omo-codex): remove redundant lazycodex-executor agent; gate the workers
  • e0734a8a6 fix(ultrawork): add answer-when-answerable stop rule to codex directive
  • 7e26cae44 Merge pull request #6047 from code-yeongyu/fix/ulw-loop-evidence-commit-identity
  • be7ea8f95 fix(ulw-loop): make the tool surface V2-native for GPT-5.6 (sol/terra)
  • 940849332 Merge pull request #6048 from code-yeongyu/fix/codex-ulw-explore-first-plan-gate
  • 1cc0be6c4 fix(ulw-loop): bind QA evidence to its capture commit to stop stale-HEAD relabeling
  • 1a079089e test(ultrawork): pin explore-first scope-gated planning invariants
  • 647cf1f29 fix(ultrawork): gather context before scope-gated planning in codex directive
  • 09514c223 Merge pull request #6046 from code-yeongyu/fix/omo-codex-drop-nested-mcp-manifest
  • 367d3b007 chore(package): ship git-bash-mcp package.json for vendored-MCP parity
  • 661f9a3fe fix(lazycodex-sync): drop nested component .mcp.json from the marketplace bundle
  • 740f034cf fix(codex-install): drop nested component .mcp.json from the plugin cache
  • 28024d963 Merge pull request #6045 from code-yeongyu/fix/team-mode-deflake-windows-ci
  • 7baf2bdb1 test(team-mode): give concurrency cases an explicit 30s per-test timeout
  • 860e01cdc test(team-mode): make launch-concurrency probe waits event-driven
  • 1a2c5dcdd Merge pull request #6044 from code-yeongyu/feat/lazycodex-gate-reviewer-high
  • e278bc735 Merge pull request #6041 from code-yeongyu/feat/lazycodex-default-model-gpt-5.6-sol
  • b70edfc76 feat(lazycodex): drop gate-reviewer reasoning effort to high
  • 13addbf1d Merge pull request #6040 from code-yeongyu/feat/lazycodex-worker-medium-qa-plan-retune
  • 8d610cf64 test(omo-codex): pin gpt-5.6-sol default; keep v1 legacy paths covered
  • 81c0d8faa feat(omo-codex): default install model to gpt-5.6-sol/372k/high
  • eda430f3b Merge pull request #6039 from code-yeongyu/fix/stop-continuation-session-suppression
  • 45ac7be80 feat(lazycodex): retune worker-medium, qa-executor, and plan model tiers
  • c611246f0 fix(stop-continuation): stop continuation from every /stop-continuation entry point
  • 17104e1f6 Merge pull request #6038 from code-yeongyu/fix/worker-toml-nickname-charset
  • 7124b08c2 test(codex-plugin): pin the codex nickname charset for bundled agent TOMLs
  • 37d9b83ed fix(ultrawork-agents): worker nicknames violate codex role-loader charset
  • 2ce3caec6 Merge pull request #6036 from code-yeongyu/feat/ulw-loop-infra-hooks
  • 384cb0d26 fix(ulw-loop): harden Stop-hook deferral and resume directive per review
  • f00b58114 feat(ulw-loop): register the spawn-guard PreToolUse root manifest
  • bfd32af67 feat(ulw-loop): spawn fan-out cap and gate-reviewer artifact preflight guard
  • 067f34b0e Merge pull request #6035 from code-yeongyu/docs/omomomo-command-roster
  • ee2958b78 feat(ulw-loop): register the Stop resume hook on the root manifest surface
  • 68ea25839 feat(ulw-loop): auto-resume interrupted runs via Stop hook with two-strike cap
  • 235c0dc3d docs: fix stale agent roster in omomomo command copies
  • bbdd08042 Merge pull request #6034 from code-yeongyu/docs/model-claims-audit
  • 2b25d6492 Merge pull request #6031 from code-yeongyu/feat/ulw-loop-gate-middle-states
  • c44d199f6 docs: fix omomomo agent roster, landing writing label, sync pre-publish-review skill
  • 0b83b6aba docs(reference): sync agent and category chain tables with model-core
  • 80ef1c81f docs(guide): correct stale model claims in orchestration, installation, overview, matching
  • d463a2c73 docs: fix stale agent chains in READMEs across all languages
  • a88c7f1fa fix(ulw-loop): make component tests pass on win32 CI
  • 87b52059b fix(ci): run ulw-loop component suite before the plugin bundling build
  • 2e40dbde2 style(ulw-loop): sort quality-gate imports per biome
  • 1433f3842 chore(omo-codex): regenerate bundled installer from current source
  • aaf328fb7 docs(ulw-plan): migrate scaffold evidence templates to the attempt directory
  • fe552e683 fix(ulw-loop): make attempt containment separator-agnostic and CI-gate the component suite
  • 683fe5775 docs(ultrawork-agents): route evidence path templates through currentAttemptDir
  • b250866ee feat(ulw-loop): expose currentAttemptDir in status --json and goal handoff text
  • b62899523 feat(ulw-loop): enforce attempt-scoped evidence directories at the final quality gate
  • bccf3fa39 feat(ulw-loop): accept WATCH and reasoned not_applicable at the quality gate
  • d9f01f5e8 fix(ulw-loop): stage final gate spawn after reviewer artifacts exist and bound re-review
  • a9d76d87c Merge pull request #6030 from code-yeongyu/feature/lazycodex-difficulty-tier-routing
  • e6c0dc6e5 fix(start-work): keep the corrected v2 agent_type claim authoritative in the synced skill
  • 64624942f test(lazycodex): pin the extended SubagentStop verifier matcher
  • 29526d71c test(lazycodex-install): pin explorer/librarian effort chain to the luna/low target
  • e5f959b01 feat(lazycodex): enforce evidence receipts for difficulty-tier workers
  • 142e503be feat(start-work): delegate implementation by difficulty tier on Codex
  • ec8d5acca fix(ultrawork): restore child-liveness guidance and compress tier rows under word budget
  • 2b9d08457 feat(lazycodex): difficulty-tier delegation guidance in ulw-loop workflow and directive
  • 89766ee18 fix(lazycodex-install): chain explorer/librarian reasoning defaults to luna/low for upgraders
  • bacfe64d1 feat(lazycodex): add difficulty-tier worker agents and route explorer/librarian to luna
  • d75996574 Merge pull request #6029 from code-yeongyu/fix/ulw-verifier-calibration
  • 4851d1817 chore(lazycodex): regenerate tracked init-deep skill with backoff prose
  • a9e2e1286 fix(review-work): inline-blocker reject contract and wait backoff
  • dd06e341a fix(ultrawork): bound the verification gate loop and delta-scope re-reviews
  • 72bb08646 fix(lazycodex): rebalance reviewer burden-of-proof and inline REJECT blockers
  • fb74d777b Merge pull request #6027 from code-yeongyu/docs/gpt-5-6-model-label-sync
  • 47809d570 fix(web): correct model labels on landing page
  • 511956e76 docs: sync localized README ultrabrain routing with gpt-5.6-sol default
  • e001a917d Merge pull request #6026 from code-yeongyu/feat/gpt-5-6-category-defaults
  • 54a375c64 test(omo-opencode): assert unspecified-low xhigh variant in delegate default test
  • 1249bdd49 docs: reflect gpt-5.6 terra/luna category defaults in guides and examples
  • 9a6036a0b feat(omo-opencode): adopt gpt-5.6 terra/luna builtin category defaults
  • 9d51fb6b1 feat(model-core): route deep to gpt-5.6-terra xhigh, unspecified-low to gpt-5.6-luna xhigh
View originalPermalink
How v4.17.0 went

v4.16.3

Added 1
  • LazyCodex codex team mode can now run on native MultiAgentV2 agents with Codex App threads as fallback transport
Changed 6
  • Hephaestus, Momus, deep, and ultrabrain now prefer GPT-5.6 Sol with role-appropriate reasoning levels, with GPT-5.5 as compatibility fallback
  • OpenCode and LazyCodex select GPT-5.6-aware prompts and rule variants tuned to the model's tool surface
  • GLM fallback chains move to GLM 5.2
  • Team state records one immutable transport and validates agent and thread identities accordingly while preserving durable worktree, messaging, integration, and archive workflow
  • LazyCodex now resolves multi-agent behavior from the same custom model_catalog_json that Codex uses, including relative catalog paths beside config.toml
  • Managed Explorer, Librarian, and Momus defaults advance to their new model-appropriate efforts without overwriting custom model or effort choices
Fixed 7
  • GPT-5.6/V2 installs remove stale V2 disables and incompatible agents.max_threads settings
  • Unknown root models no longer receive a risky thread-limit key
  • Symlinked plugin-cache entrypoints execute correctly
  • Optional lifecycle tools are no longer assumed to exist
  • Dynamic bundled rules are reinjected when a session changes model
  • OpenCode background tasks now finalize and notify their parent when provider, model, or credential errors are terminal even if the failed session shell still exists
  • Live-listener routing verifies that the listener actually owns the target session before sending a parent wake, preventing completed work from disappearing into the wrong server instance

From oh-my-openagent

GPT-5.6 Orchestration, Hardened End to End

This patch makes GPT-5.6 the first-class path for OMO's deepest work while tightening the handoffs that keep long-running agent workflows alive.

GPT-5.6 for Deep Work and Review

Hephaestus, Momus, deep, and ultrabrain now prefer GPT-5.6 Sol with role-appropriate reasoning levels, while GPT-5.5 remains the compatibility fallback. OpenCode and LazyCodex also select GPT-5.6-aware prompts and rule variants, so the model gets guidance tuned to its actual tool surface instead of inheriting older assumptions. GLM fallback chains move to GLM 5.2.

Native MultiAgentV2 Teams in LazyCodex

Codex team mode can now run on native MultiAgentV2 agents when that complete tool surface is available, with Codex App threads retained as the fallback transport. Team state records one immutable transport, validates agent and thread identities accordingly, and preserves the existing durable worktree, messaging, integration, and archive workflow across both paths.

Safer Codex Installation and Rule Switching

LazyCodex now resolves multi-agent behavior from the same custom model_catalog_json that Codex uses, including relative catalog paths beside config.toml. GPT-5.6/V2 installs remove stale V2 disables and incompatible agents.max_threads settings, while unknown root models no longer receive a risky thread-limit key. Managed Explorer, Librarian, and Momus defaults advance to their new model-appropriate efforts without overwriting custom model or effort choices. Symlinked plugin-cache entrypoints execute correctly, optional lifecycle tools are no longer assumed to exist, and dynamic bundled rules are reinjected when a session changes model.

Background Agents Stop Waiting Forever

OpenCode background tasks now finalize and notify their parent when provider, model, or credential errors are terminal even if the failed session shell still exists. Live-listener routing also verifies that the listener actually owns the target session before sending a parent wake, preventing completed work from disappearing into the wrong server instance.

No manual configuration migration is required. Explicit GPT-5.5 selections, custom LazyCodex agent efforts, and Codex App thread teams remain supported.


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.
Commit Summary
  • 46a55adb1 Merge pull request #6022 from code-yeongyu/fix/codex-v2-catalog-guards-qa
  • 7e45232fa chore(codex): regenerate installer bundle
  • cb11103e5 test(codex): pin bundled agent model matrix
  • 60a8c5584 fix(codex): advance managed agent efforts
  • 6d69dc03d fix(codex): clean stale V2 installer guards
  • 5eb76107b fix(codex): resolve V2 runtime catalog paths
  • 916916105 Merge pull request #6021 from code-yeongyu/fix/preserve-explicit-gpt55-pins
  • bdf7bb49f fix(config): preserve explicit GPT-5.5 pins
  • 5c795d27b chore(skills): pin pre-publish review to Sol
  • f33957d8d Merge pull request #6018 from code-yeongyu/fix/release-model-default-docs
  • 3af258783 Merge pull request #6020 from code-yeongyu/fix/release-bg-terminal-errors
  • 0eb507b3b Merge pull request #6019 from code-yeongyu/fix/release-rules-dynamic-model
  • 7beada44e Merge pull request #6017 from code-yeongyu/fix/release-rules-hephaestus-truncation
  • cf9cc748a docs: align root model defaults
  • 8054baec4 docs: fix ultrabrain release model claim
  • 39692c963 test(background): cover alive terminal cleanup
  • effa6990c fix(background): classify terminal provider errors
  • f12a6b6b6 Merge pull request #6016 from code-yeongyu/fix/release-codex-installer-bundle
  • 4f957b39c fix(omo-codex): invalidate dynamic rules on model switch
  • 882c2284c fix(rules): limit Hephaestus truncation exemption
  • 738626605 docs: refresh GPT-native routing guidance
  • 9de07f9fe docs: complete current model fallback chains
  • c3d416678 docs: align release model default tables
  • 0a1fdfa92 fix(codex): regenerate installer bundle guards
  • 0744e084d Merge pull request #6015 from code-yeongyu/fix/codex-sync-skills-optional-lifecycle
  • a2e7f6ac8 Merge pull request #6014 from code-yeongyu/fix/codex-multi-agent-unknown-model-safety
  • a33ad7467 fix(codex): guard optional subagent lifecycle tools in generated Codex guidance
  • 9fb311045 fix(codex): resolve multi-agent version from model_catalog_json
  • 33e204c7e fix(codex): installer never introduces agents.max_threads without a root model
  • c5565dfbc fix(codex): skip v2 disable and agents.max_threads when effective model is unknown
  • 33b80556f Merge pull request #6013 from code-yeongyu/fix/live-route-session-affinity
  • bcb1e0953 fix(omo-opencode): verify live listener owns the session before routing parent wakes
  • 7719ac328 fix(utils): allow affinity as a prompt dispatch route reason
  • f1a8df12e Merge pull request #6012 from code-yeongyu/feature/omo-codex-gpt-5-6-prompt-rewrite
  • b15f2c034 chore(omo-codex): trim lazycodex-executor worktree preamble
  • de2451477 feat(omo-codex): rewrite planner-support subagent prompts for gpt-5.6
  • cf4138267 feat(omo-codex): align hephaestus gpt-5.6 rule with opencode structure
  • 14d6b2e36 Merge pull request #5998 from EvangelosMoschou/fix/5971-bg-task-death-notifies-parent
  • ae3ca8332 Merge pull request #6011 from code-yeongyu/feature/codex-teammode-v2-fallback
  • 6a3b09a65 Merge pull request #6010 from code-yeongyu/feat/momus-gpt-5-6-xhigh
  • 0348fd9db docs(codex): document teammode transports and V2-aware research routing
  • 773706e38 feat(codex): route teammode through MultiAgentV2 with codex_app fallback
  • dd22ebe49 docs: reflect momus gpt-5.6-sol xhigh default in model guides
  • a6e5abf48 feat(utils): migrate momus configs pinned to old gpt-5.5 default
  • 2dfbc2675 feat(agents): add GPT-5.6 momus prompt with xhigh reasoning
  • ac933d0da feat(model-core): route momus to gpt-5.6-sol xhigh as primary
  • d81aed4ae chore(omo-codex): set QA executor model to gpt-5.6-terra medium
  • e1edf918e feat(omo-codex): route verification agents to gpt-5.6 series
  • 9d109585e feat(omo-codex): run Momus reviews at ultra
  • 1b8bc2dfb raise omo-codex gate reviewer reasoning effort to ultra
  • 7124986b7 feat(omo-codex): model-gate Hephaestus bundled rule into gpt-5.5/gpt-5.6 variants
  • 7ef8db14c docs: update model matching guide, examples, and references for gpt-5.6-sol and glm-5.2
  • be29e0d7f test(omo-opencode): pin gpt-5.6-sol defaults for hephaestus, deep, and ultrabrain
  • 6dd171cbb feat(model-core): replace glm-5.1 with glm-5.2 in agent and category fallback chains
  • 38c703dfa docs(omo-codex): document V2-aware installer and symlink-safe entry guards
  • ddac08fee gpt-5.6 model migration across agents/categories/config; symlink-safe codex CLI entry-guard
  • b765b543d lazycodex: set explorer/librarian to gpt-5.6-terra medium, plan to gpt-5.6-sol xhigh
  • e4de69f0d fix(bg-agent): terminate task + notify parent on terminal session errors (#5971)

Thank you to 1 community contributor:

  • @EvangelosMoschou:
    • fix(bg-agent): terminate task + notify parent on terminal session errors (#5971)
View originalPermalink
How v4.16.3 went
View all

Discussion

If you publish oh-my-openagent, you can claim this product by proving you administer its repository.