omo models discover, omo schedule and the other one-shot engine commands run again instead of opening the TUI. 5.1.18 runs on senpi 2026.10.9. The launcher passed only a fixed list of commands straight to the engine and put --extension <plugin> in front of everything else, so the engine never saw its own command and started an interactive session with the arguments. Every engine command is now handed over unchanged. Thanks to @ushion0a for the report and the repro. (#9572, #9573)
Fixed
omo holds every Bun to the 1.4 floor the engine needs. A bun add -g install, or OMO_RUNTIME=bun, ran under whatever Bun it found, so on Bun 1.3.x /computer on failed with No such built-in module: node:sqlite. Now a Bun you chose that is older than 1.4 stops at startup and says to run bun upgrade; an older Bun nobody chose hands off to Node, as other installs already did. (#9563, #9564)
A task child that has its own fallback models falls back through them on the shared task host. Its category's or agent's chain used to be ignored there, so a child whose model hit a limit failed even with a chain configured. Children without fallback models behave as before. On a host that can't carry the chain (an older engine, or the per-child process runner) the child runs as today and you are warned once instead of losing the chain silently. (#9512, #9518)
An empty /tasks answer says when other sessions have tasks and that /tasks --all lists them. Thanks to @cynkai. (#9569, #9588)
The ulw-plan skill names only delegation categories that exist. It listed git and the retired deep, so a plan following it delegated to a category the session didn't have. Thanks to @DevNewbie1826 for the report. (#9561, #9565)
Added
Code mode's wait() and handle() work on omo's own task children and workpools, not only on engine runs. (#9541)
Changed
omo runs on senpi 2026.10.9. A permission prompt sent to an app names the tool call it approves, so each prompt shows its own call's input; a reply that only answers a question is just the answer, never wrapped in a quote; code mode gets Python agent(prompt, tools=[...]), cell-defined tools for workpool, %load <path> and %pip install without a kernel restart. Full list: senpi 2026.10.9.
/memfs maintenance commands load on first use, which trims the plugin bundle by about 8 KB; their output is unchanged. Thanks to @Dante-dan. (#9526)
Thanks also to @Dante-dan (#9575, #9579) and @MoerAI (#9589) for test and release-pipeline fixes.
- 7fae60c Merge pull request #9598 from code-yeongyu/release/v5.1.18-source-state
- 6dc063d Merge pull request #9588 from cynkai/fix/9569-tasks-empty-state-names-all
- dc18f48 Merge pull request #9589 from MoerAI/fix/9492-registry-readiness-window
- 8e4eae4 ci(publish): bound post-publish-verify at 120 minutes
- eafe154 fix(publish): wait up to 60 minutes for omo-ai registry readiness (fixes #9492)
- b7a7023 Merge pull request #9518 from code-yeongyu/feat/9512-host-runner-fallback-chain
- 9d06d26 Merge pull request #9580 from code-yeongyu/fix/9578-test-agent-dir-isolation
- f2aa063 Merge pull request #9579 from Dante-dan/fix/9576-shard-only-accounting
- 59b5a0b Merge remote-tracking branch 'origin/dev' into feat/9512-host-runner-fallback-chain
- 18d0487 Merge pull request #9541 from code-yeongyu/codemode/n25-eval-handle-host
- bcff3e0 Merge pull request #9564 from code-yeongyu/fix/9563-bun-version-floor
- dc0ff80 Merge remote-tracking branch 'origin/dev' into fix/9563-bun-version-floor
- 606bb1f Merge origin/dev into codemode/n25-eval-handle-host
- b346160 Merge pull request #9526 from Dante-dan/refactor/9515-lazy-memory-memfs
- 0339aac Merge remote-tracking branch 'origin/dev' into fix/9578-test-agent-dir-isolation
- d9bd2e0 Merge pull request #9565 from code-yeongyu/docs/9561-ulw-plan-categories
- e61c1ce Merge pull request #9557 from code-yeongyu/test/9556-provisioned-handoff-teardown
- c0fed96 Merge remote-tracking branch 'origin/dev' into docs/9561-ulw-plan-categories
- 4b86d57 Merge remote-tracking branch 'origin/dev' into fix/9563-bun-version-floor
- a520e43 Merge remote-tracking branch 'origin/dev' into test/9556-provisioned-handoff-teardown
- dfea807 Merge pull request #9575 from Dante-dan/test/9558-manifesto-no-js-rendering
- cdf5c62 Merge origin/dev into codemode/n25-eval-handle-host
- 1370128 Merge pull request #9573 from code-yeongyu/fix/9572-engine-commands-first
- dfe1e79 test(omo-native): compare the launcher's long Windows path, not the 8.3 short tmpdir
- ce268c9 test(web): check rendered no-JS manifesto brightness
- e401a54 fix(omo-native): hand every one-shot engine command over unchanged
- b65d9ce Merge origin/dev into codemode/n25-eval-handle-host
- 8bec5b6 test(omo-native): share one npm-install launcher path across the runtime tests
- 60a07a3 fix(omo-native): hold every bun to the engine's 1.4 floor
- 36d8074 Merge origin/dev into codemode/n25-eval-handle-host
- 02076a2 Merge origin/dev into codemode/n25-eval-handle-host
- 3699d59 test(omo-native): clean up the provisioned-handoff root with the shared retrying removeTree
- 0d88b7b Merge origin/dev into codemode/n25-eval-handle-host
- 72ba712 Merge dev into refactor/9515-lazy-memory-memfs
- 08296c1 Merge origin/dev into codemode/n25-eval-handle-host
Thank you to 2 community contributors:
- @Dante-dan:
- test(web): check rendered no-JS manifesto brightness
- wip(web): clamp manifesto order and compare uniform glyph rendering
- fix(web): cluster visual lines and tolerate glyph antialiasing
- test(web): preserve spatial evidence for split-word failures
- fix(web): preserve reading order across font metrics and persist glyph evidence
- test(web): normalize glyph screenshot antialiasing
- @MoerAI:
- fix(publish): wait up to 60 minutes for omo-ai registry readiness (fixes #9492)
bun add -g omo-ai