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

6 hours ago

Fixed

  • Task child processes are reclaimed on session shutdown even when the closing context no longer exposes its session ID. Cleanup recovers ownership from that engine's resident handles, preserves resumable task records, and leaves sibling sessions alone. (#8562)

A task child survives its daemon dying or dropping the connection. A lost connection to the shared session daemon used to end every delegated child at once as crashed (transport_gone), even though the child's session went on running on the daemon - or sat complete in its transcript after the daemon process itself died. The child now reconnects: it re-ensures the daemon, reopens the same session, and when the daemon still had the session the running turn simply continues over the new connection; when the daemon had to reopen the session from its transcript, the interrupted turn is re-prompted once to continue from where the transcript ends. Commands sent while the reconnect is in flight wait for it instead of failing. Only a daemon that never comes back ends the child as before. A daemon that refuses a new child because it is above its memory watermark (host_memory_pressure) is now a bounded wait for the retry hint it sends, never a reason to start a separate process. (#8563)

The "Memory updated" notice shows the reflection report again. The omo-senpi component logger wrote its info lines to stdout, and a reflection worker's stdout is the report, so the notice previewed omo-senpi ulw-execute-continuation skipped { reason: "not-continuable" } in place of the first lines of the report. Component diagnostics now go to stderr on every level. (#8564)

Changed

Native launchers no longer keep a redundant runtime alive on POSIX. The Node-to-Bun handoff, engine launch and compiled runtime relocation now replace the launcher process with execve, preserving its PID and stdio. Windows and runtimes where replacement is unavailable or fails keep the existing signal-aware child fallback. omo daemon attach remains spawn-based. (#8560)

Every direct dependency moves to its latest release inside its current major, and the security overrides move with them.

bun audit reports one advisory row where it reported 43. The hono, fast-uri and express-rate-limit overrides now sit past their advisories, and @hono/node-server moved to the 2.1.1 the engine already asks for. Nothing in the tree needs a 1.x copy, so the old ^1.19.13 override was itself what held the package below the serve-static path-traversal fix. qs and ip-address gained overrides because the engine pins both to exact versions and no range refresh reaches the fixed releases; brace-expansion and browserslist needed none, since their existing ranges already cover theirs. What remains is one low-severity @babel/core file read, held in place by the exact pin @opentui/solid puts on it.

Then the sweep: vitest 4.1.11, @opencode-ai/plugin and sdk 1.18.31, opentui 0.5.11, zod 4.6.5, typebox 1.3.34, js-yaml 5.4.2, posthog-node 5.52.4, @clack/prompts 1.8.1, terser 5.51.2, puppeteer-core 25.11.0, yaml 2.9.1, @types/node 26.6.2 and biome 2.5.14 wherever they are declared, and in the web package react 19.3.0, three 0.186.0, tailwindcss 4.3.3, wrangler 4.135.0, next-intl 4.14.5 and the rest of its set. next, eslint and the ai SDK keep their majors; those belong to their own change.

Two generated artifacts moved with the versions. zod 4.6.5 writes a boolean-or-string union as a single type array instead of an anyOf pair, so both JSON Schema files were regenerated. And because the Senpi extension inlines zod, js-yaml and posthog-node into one non-split file, its bundle grew from 1,202,188 to 1,260,200 bytes; the size budget moved to 1,300,000 with the measurement written into the test comment.

The frontend skill now refuses the coloured accent border.

A selected row no longer earns a border-l-2 border-primary stripe, and a focused card no longer gets a primary-tinted outline — the skill names that pattern as the most recognizable AI-generated-UI tell and treats it as a defect, including instances that already exist on a surface it touches. State is expressed the way this repo's design systems already express it: washes of one ink, a check glyph for selection, tonal layering for focus. Keyboard focus rings stay coloured.

Fixed

LSP requests stop repeatedly launching daemon candidates when startup is deferred. Each request makes one startup attempt and only probes on later retries. After a failed startup, the same client process waits five seconds before spawning another candidate for that endpoint; a reachable daemon is still reused immediately. Probes allow two seconds for a busy daemon to answer, and expected deferred startups produce one log line instead of a stack trace. Authentication, ownership and written-request replay rules are unchanged. (#8561)

A session that reattaches to another host generation keeps its memory. Your memory identity was derived from the directory the host process happened to be started in, not from the session's own workspace. One shared host serves sessions from many projects, so a host ensured from somewhere else handed its own identity to every session that reattached to it: the session was told memory identity conflict: session is bound to <workspace>-<hash>, but config resolved server-<hash>, and its memory tools went away while the workspace had not moved at all. Identity now comes from the session's own working directory, and a reattach that still disagrees rebinds to the identity recorded in the session and notes it in the log instead of stopping. The error is kept for the case it was written for: you pointed memory.agent at a different identity yourself. (#8556)

  • a5eb7c1 Merge pull request #8582 from code-yeongyu/release/v5.0.0-beta.81-source-state
  • 70a1af6 Merge pull request #8586 from code-yeongyu/fix/web-omo-cat-app-icons-20260921
  • 0d71b76 fix(web): render the OmO cat app icons and list PNG icons in the manifest
  • 6379f7e Merge pull request #8580 from code-yeongyu/refactor/omo-native-launcher-dead-code
  • d00f79c refactor(omo-native): remove launcher dead code
  • 2b6fa29 Merge pull request #8577 from code-yeongyu/fix/rpc-host-resilience-20260921
  • 4ae777c Merge pull request #8578 from code-yeongyu/chore/hashline-ai7-20260921
  • 0ac361a refactor(hashline): follow the ai 7 API in the headless harness
  • 0ba9d95 chore(hashline): bump ai to 7.0 and @ai-sdk/openai-compatible to 3.0
  • 823bfc8 Merge pull request #8567 from code-yeongyu/fix/lsp-daemon-deferred-spawn-storm
  • 0066d85 Merge pull request #8568 from code-yeongyu/perf/omo-native-execve-launchers
  • 0b6be64 test(qa): scenario J drives a daemon host SIGSEGV under four mid-turn children and proves they reattach and finish (#8563)
  • c2fe243 docs(changelog): describe the host-session reattach, admission wait and logger stream fixes (#8563, #8564)
  • 521806d Merge remote-tracking branch 'origin/dev' into perf/omo-native-execve-launchers
  • bae0c64 Merge remote-tracking branch 'origin/dev' into fix/lsp-daemon-deferred-spawn-storm
  • bb02a85 Merge pull request #8570 from code-yeongyu/fix/omo-task-bundle-regen-8565
  • d387aea test(task): align the no-session-id shutdown cases with the live-handle fallback (#8565)
  • 6555997 Merge pull request #8572 from code-yeongyu/chore/web-next16-eslint10-20260921
  • 2127e47 fix(lsp-daemon): do not delay the first daemon attempt
  • d7e0a9c docs(web): record the Next 16 baseline
  • 8b0ce89 chore(web): migrate to Next 16.3 and ESLint 10
  • 22abb08 Merge pull request #8571 from code-yeongyu/chore/deps-vitest5-20260921
  • e258989 chore(deps): bump vitest to 5.0.1 across the Codex plugin components
  • 40596f7 chore(deps): bump vitest to 5.0.1 in the LSP packages
  • 1836323 perf(omo-native): launchers exec into the engine on POSIX instead of staying resident
  • bd505e1 fix(lsp-daemon): stop respawning the daemon on deferred startups and log them in one line
  • edf76f8 fix(memory): resolve identity from the session workspace and rebind on reattach (#8558)
  • 04f035e fix(memory): resolve identity from the session workspace and rebind on reattach
  • 2623298 Merge pull request #8559 from code-yeongyu/chore/deps-within-minor-20260921
  • 7f64709 docs(changelog): describe the within-minor dependency refresh
  • 2f47a43 build(schema): regenerate the JSON Schema artifacts for zod 4.6.5
  • 6c1d512 chore(deps): bump zod to 4.6.5 in the hashline test fixture
  • b33611f chore(deps): bump the web package within its majors
  • 0837264 chore(deps): bump @biomejs/biome to 2.5.14 everywhere
  • b29aa70 chore(deps): bump @types/node to 26.6.2 across every declaring package
  • 72af78d chore(deps): bump shared runtime dependencies within their majors
  • 93e8136 chore(deps): bump @opencode-ai/plugin and sdk to 1.18.31
  • 38f95c9 chore(deps): bump vitest to 4.1.11 in the LSP packages
  • ff6e478 chore(deps): refresh security overrides and vulnerable transitives
  • 8fd4c01 Merge pull request #8553 from code-yeongyu/fix/frontend-no-accent-borders-20260921
  • 593b0de fix(skills): frontend bans coloured accent borders for state
npm i -g omo-ai@beta

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

NewReleases is sending notifications on new releases.