github code-yeongyu/oh-my-openagent v5.0.0-beta.60

latest release: v5.0.0-beta.62
3 hours ago

Cursor keeps your whole conversation, and a long-lived Native session keeps spawning sub-agents past turn 60. Engine: senpi 2026.9.12-2.

Engine: senpi 2026.9.12-2

Cursor keeps the whole conversation. Admission used to enforce a fixed 50 KB aggregate budget on every Cursor request and delete the oldest whole turns when blanking tool results was not enough: a conversation with zero tool calls could lose its first turn, and a nominal 1M-token window was reduced to roughly 6K tokens of retained history. Admission now caps each tool result, blanks the oldest tool bodies if the model input still exceeds the effective window, and never deletes a turn. The effective window follows the ceiling Cursor itself reports for the model on every conversation checkpoint — recorded per model id, persisted across restarts, and applied to context usage and compaction thresholds — with the committed capability table as the bootstrap. An oversized history is admitted, logged, and answered by overflow compaction instead of being silently shortened (senpi #1603, #1624).

Long-lived RPC hosts never starve session spawns. A worker's 64 session-write grants counted every path it had ever been granted for the life of the worker, so after about 40-60 turns of helper sessions, forks and switches every sub-agent, task and workflow spawn inside one conversation died permanently with session_path_in_use. Grants now track writers that are still alive: the worker reports its live session-write paths on every snapshot, the host releases superseded grants, an explicit open no longer burns a phantom grant on a path that is never created, and a genuinely exhausted budget reports the distinct session_reservation_limit instead of a path conflict (senpi #1612, #1622).

The async ask-user shortcut works in default macOS terminals. Terminals that let Option compose characters (Terminal.app, iTerm2, Ghostty, kitty) deliver option+a as å, so the advertised option+a expansion did nothing there; on macOS the composed glyph now expands the pending question too, alt+a keeps working everywhere, and other platforms keep treating those glyphs as text (senpi #1620, #1621).

Agent toolkit

The toolkit SDK is typed. Workflow and task code drive the toolkit through a typed ULW SDK with an in-process Native adapter instead of stringly command shapes, and the toolkit is exposed as a typed tool; the packed plugin pins the lazy toolkit runtime with a deterministic no-spawn proof (#8172).

The plugin installer knows the toolkit bundle. The required-artifact manifest lists the new lazy toolkit bundle, so a fresh local install no longer misses it.

Breaking

The retired metis / momus agent ids are gone. Their one-release read alias shipped in 5.0.0-beta.51 and is now removed: omo.json agents.metis / agents.momus no longer resolve to plan-consultant / plan-reviewer (such a key now defines an ordinary custom agent under that name and emits no startup notice), subagent_type: "metis"|"momus", allowed_subagents entries, team members, and workflow node routes are all taken verbatim, and the deprecation notices that named them are gone. Rename them to plan-consultant / plan-reviewer.

  • cfb4daf Merge pull request #8204 from code-yeongyu/release/v5.0.0-beta.60-source-state
  • bc74cbc Merge pull request #8203 from code-yeongyu/fix/8202-git-bash-teardown-ebusy
  • 304571e fix(git-bash-mcp): let a Windows lock race defer temp cleanup instead of failing the test
  • 9c45282 Merge pull request #8200 from code-yeongyu/fix/kibitzer-retention-direct-prune-clock
  • db39911 fix(git-bash-mcp): manual EBUSY retry in afterEach teardown for Windows CI
  • 5908a6c Merge pull request #8184 from code-yeongyu/fix/memory-frontmatter-strict-yaml
  • 1915087 fix(memory): render frontmatter as strict YAML and gate every writer
  • beda5fd Merge pull request #8197 from code-yeongyu/fix/8196-kibitzer-retention-test-clock
  • e0746bc Merge pull request #8180 from code-yeongyu/feat/8112-agent-toolkit-sdk-w2
  • 876f49b chore(script): categorize the new omo ulw-loop unavailable notices
  • a0731a7 Merge pull request #8183 from code-yeongyu/fix/lazycodex-smoke-readiness-budget
  • 7acc5bf fix(qa): run the cross-session probe CLI from source instead of a built artifact
  • 3fff6bd test(publish): record remote RED/GREEN evidence for the LazyCodex smoke budget
  • 1819ea3 test(publish): pin the LazyCodex smoke loop to its readiness budget variables
  • e3ed21b ci(publish): give the LazyCodex smoke the same 15-minute registry budget as omo-ai
  • 8da9cbd docs(omo): route Native ULW guidance through SDK
  • 48506e5 build(omo-native): remove Native toolkit CLI payload
  • 0a32534 refactor(ulw-loop): make CLI a compatibility adapter
  • c6c2233 Merge pull request #8172 from code-yeongyu/feat/8112-agent-toolkit-sdk-w1
  • e825943 test(script): stage the lazy toolkit artifact in the packed-plugin fixture
  • 6be71c4 Merge pull request #8177 from code-yeongyu/fix/lazycodex-beta-release-channel
  • da5646c ci(publish): reword the version-reuse refusal so the agent command audit stays clean
  • a64d708 test(publish): record remote RED/GREEN evidence for the LazyCodex channel contract
  • 67f1403 ci(publish): keep the #7743 badge rule on the LazyCodex mirror and tolerate an unset LAZYCODEX_ONLY
  • c313976 ci(publish): propagate LazyCodex prereleases and add a LazyCodex-only release mode
  • b3b1bff Merge pull request #8176 from code-yeongyu/chore/sanitize-drop-alias-evidence
  • 8c96fdf test(agent-toolkit): pin SDK session scope and lock ordering
  • 03a5962 refactor(agent-toolkit): split SDK factory and tighten contract
  • c006cad feat(agent-toolkit): extract typed ULW SDK
  • debfe8d Merge pull request #8174 from code-yeongyu/chore/drop-retired-agent-name-alias
npm i -g omo-ai@beta

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

NewReleases is sending notifications on new releases.