# oh-my-openagent v5.0.0-beta.13 - Product: oh-my-openagent (https://whatsnew.fyi/product/oh-my-openagent) - Vendor: oh-my-openagent - Date: 2026-08-20 - Version: v5.0.0-beta.13 - Original notes: https://github.com/code-yeongyu/oh-my-openagent/releases/tag/v5.0.0-beta.13 - Permalink: https://whatsnew.fyi/product/oh-my-openagent/releases/v5.0.0-beta.13 - Labels: Pre-release What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **added** — 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 - **added** — 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 - **added** — 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 - **added** — /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 - **added** — Three new journaled event types: dag.node.retried, dag.node.steered, and dag.definition.amended to record deliberate re-runs and amendments - **added** — JS SDK gains retry, send, and amend wrappers - **added** — Status widget shows x badge on re-run nodes and /dag shows amended x with node errors prefixed by error code - **fixed** — Model fallback no longer goes silent when the same error occurs on a different model by scoping dedupe keys per model - **fixed** — Skipped retry now returns its key instead of burning it forever - **fixed** — Model identity including provider, model, and variant travels through the fallback path so reasoning-effort selection survives fallback and recovery - **fixed** — Watchdog timers are now generation-scoped so timers from abandoned attempts cannot hijack later turns - **fixed** — Manual model change resets the fallback watchdog, in-flight retry flag, and retry-key set - **changed** — Per-node result artifacts are written atomically with temp file, fsync, and rename to prevent truncated results from crashes mid-retry - **changed** — Fallback-architect notices, tips, task-completion cards, team-member liveness warnings, and memory notices now render through one shared padded notice box - **changed** — Completion cards lead with a tone glyph and task name, with metadata on a dim second row and continuation hints behind expansion - **fixed** — /doctor reflection health is now deterministic using an injectable clock instead of wall clock - **changed** — Senpi adapter is now a first-class mandatory-QA surface with machine-enforced evidence-path contract - **added** — Two DAG wait-hang classes are pinned by bounded regression tests for resident-cap saturation and terminalization during subscription setup - **changed** — Bun upgraded from 1.3.14 to 1.4.0 stable across all CI, publish, and platform-build workflows - **changed** — 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 - **changed** — 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 ##### 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` badge on re-run nodes; `/dag` shows `amended x` 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 ` (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 no _[Truncated at 4000 characters — full notes: https://github.com/code-yeongyu/oh-my-openagent/releases/tag/v5.0.0-beta.13]_