All notable changes to this project are documented in this file.
Patch release focused on fast-follow operator reliability after 0.14.1: safer omx question renderer behavior outside attached tmux panes, leak-resistant MCP duplicate cleanup, tighter deep-interview session-state handling, Korean IME drift handling for the ulw ultrawork shorthand, shared tmux answer-submit semantics for omx question, clearer deep-interview background-question guidance, TypeScript/Biome baseline refresh, and release collateral alignment.
- Korean
ulwkeyboard drift handling — prompts typed asㅕㅣㅈon a Korean 2-set keyboard normalize to the existingulwultrawork shorthand before workflow activation. - Background
omx questionguidance — deep-interview skill/template/native-hook guidance now instructs agents to wait for background question terminals to finish and read the JSON answer before continuing.
- Question answer injection now reuses shared tmux submit semantics —
src/question/renderer.tsdelegates tobuildSendPaneArgvs, keeping literal text delivery, newline sanitization, and isolatedC-msubmits aligned with the reply-listener pane-send path. - Question renderer now fails closed outside attached tmux —
omx questionnow refuses to create a detached tmux session when no visible attached pane exists, surfacing a clear operator-facing error instead of launching an unseen renderer. - Deep-interview keyword intent is narrower — cleanup/state-management mentions of “deep interview” no longer trigger the workflow unless activation intent is explicit.
- TypeScript baseline refreshed — TypeScript is updated to
6.0.3, Biome lockfile metadata is refreshed to2.4.12, andtsconfig.jsonpins Node ambient types for the TS 6 build path.
- Stale duplicate MCP siblings — older duplicate stdio servers now self-exit after a safe post-traffic idle window instead of lingering indefinitely after seeing traffic.
- Session-scoped clear fallback leaks — clearing a tracked mode in an active session now writes an inactive session tombstone when needed so legacy root fallback state does not immediately report the mode active again.
- Failed question launches clear deep-interview obligations — deep-interview no longer leaves a pending question obligation behind when the renderer cannot launch.
- Release metadata drift — Node/Cargo metadata, lockfiles, changelog, release body, release notes, and release-readiness collateral are aligned to
0.14.2.
Patch release focused on hardening the new interactive orchestration surfaces shipped in 0.14.0: question-pane reliability across tmux environments, deep-interview Stop enforcement and reused-session bridging, setup/update refresh resilience, lifecycle contract deduplication, and code-review / lightweight fallback guidance polish.
- Deep-interview bridge guidance for reused sessions — prompt-side context now includes a concrete current-session CLI bridge command when bare
omx questionis unavailable. - Detached question renderer liveness coverage — regression tests now assert that detached tmux question sessions survive launch and fail closed when they disappear immediately.
- Code-review workflow guidance is stronger — the shipped code-review skill now requires a more comprehensive, dual-perspective review posture.
- Lightweight native fallback lanes are leaner —
omx explore/omx sparkshellfallback guidance stays on mini/spark lanes without polluting the general role roster. - Lifecycle normalization now delegates to the shared contract — terminal lifecycle compatibility helpers reuse the centralized run-outcome contract instead of carrying a divergent copy.
- Pending deep-interview questions now keep Stop blocked even after the mode marks itself inactive.
- Question panes stay alive under non-POSIX tmux shells and fail closed when panes/sessions disappear during launch.
- Accepted setup refreshes no longer destroy managed
AGENTS.md, and postinstall/setup refresh stays rooted to npm's install prefix. - Explicit
omx updatenow reruns setup refresh when the installed code is current but the setup stamp is stale, and update-check state write failures no longer block explicit updates. - Stale Ralph / skill-active / ultrawork Stop state no longer leaks across sessions or floods Stop handling.
- Release metadata drift — Node/Cargo metadata, lockfiles, changelog, release body, release notes, and release-readiness collateral are aligned to
0.14.1.
Minor release centered on interactive orchestration changes: the new omx question blocking-question entrypoint, deep-interview and autoresearch flow tightening, advisory triage routing, explicit runtime run outcomes, specialist-routing cleanup, and release-proof hardening for the shipped package.
omx questionCLI entrypoint — OMX now exposes an owned blocking-question command that accepts structured prompt payloads, records question state, renders tmux/native UI flows, and returns structured answers to the invoking agent/runtime.- Structured deep-interview question obligations — deep-interview rounds now create explicit pending-question obligations so OMX can track completion and prevent premature Stop while a required question is still unanswered.
- Advisory triage routing layer — non-keyword prompts can now receive PASS/LIGHT/HEAVY routing hints backed by persisted triage state and follow-up suppression.
- Deep-interview uses
omx questionend-to-end — interactive clarification now routes through the structured question UI instead of fallback ad-hoc prompting, making question ownership and lifecycle explicit. - Autoresearch is now skill-first and validator-gated — direct
omx autoresearchinvocation is hard-deprecated in favor of the prompt/skill workflow, and completion now requires validator evidence. - Runtime continuation semantics are explicit — run outcomes are normalized into a shared terminal/non-terminal contract so stop/continue behavior stays consistent across runtime loops and state surfaces.
- Specialist routing guidance is clearer — repository lookup, official-doc research, and dependency-evaluation routes now have narrower ownership boundaries in prompts and role routing.
- Lint validation now targets tracked source roots —
npm run lintvalidatessrcandbindirectly so nested local worktrees/runtime dirs with their own Biome roots no longer break release gating.
- Stop gating around interactive work — pending deep-interview questions and incomplete autoresearch validation now block Stop consistently until their required interactive/validator work is satisfied.
- Question/runtime UI integration — renderer strategy selection, answer injection, and question-state transitions are covered by the new question runtime path instead of split ad-hoc handling.
- Release metadata drift — Node/Cargo metadata, lockfiles, changelog, release body, release notes, and release-readiness collateral are aligned to
0.14.0.
Patch release covering security hardening, persistent-hook and Stop-handling correctness, Ralph activation and recovery safety, explore reentry guards, worker runtime identity preservation, skill UX refinements, and release-workflow metadata polish.
- Analyze skill revival — the
analyzeskill returns as a read-only, truth-telling investigation surface for OMX sessions. (PR #1687) - OMX skill display prefix — OMX-installed skills are now marked in
/skillswithout being renamed, so users can tell OMX-managed skills apart from local ones. (PR #1686) - Shift+Enter tmux triage docs — documented Shift+Enter newline behavior in tmux so operators can separate terminal/env issues from OMX regressions. (PR #1683, issue #1682)
- Path traversal in identifier handling — validated identifiers before they reach team/session joins and closed the parent path-traversal surface. (PRs #1658, #1674, issue #1650)
- HUD state shell and regex injection —
execFileSyncwas replaced with asyncexecFilein leader git polling, and git helpers now reject shell/regex metacharacters with regression coverage for HUDremoteNameinputs. (PRs #1662, #1652) - Reply acknowledgement redaction — notification reply acknowledgements no longer leak quoted or multi-part secrets, without reviving unrelated watcher churn. (PR #1670)
- Transitive dependency vulnerabilities —
npm audit fixapplied to patch transitive dependency CVEs. (PR #1669)
- Native Stop auto-nudge — native Stop auto-nudge now runs without being gated by the OMX runtime, while active OMX workflows still block Stop until they truly finish; Stop-hook cleanup stays green under the no-unused CI check. (PR #1707)
- Conversational Ralph mention gating — casual mentions of Ralph in conversation no longer seed workflow state, preventing accidental activation. (PR #1697, issue #1696)
- Ralph continuation recovery — Ralph stays visibly active across continuation recovery, with dead Ralph cooldown state removed so CI stays green. (PR #1681, issue #1677)
- Ralph steer-lock retry cap —
withRalphSteerLockretries are now capped to prevent unbounded stale-lock loops. (PR #1663) - Worker runtime identity preservation — worker runtime role identity survives startup and scaling, with worker identity verification collapsed into one narrow, reviewable path. (PR #1676)
- Explore shell-startup re-entry fail-closed —
omx explorefails closed on shell-startup re-entry instead of recursing. (PR #1700, issue #1698) - Explore allowlist wrapper self-resolution —
omx exploreallowlist wrappers no longer self-resolve and recurse. (PR #1695, issue #1692)
- Forked notify-hook routing — forked notify-hook activity stays attached to the active fork session instead of drifting. (PR #1680, issue #1679)
- Stale watcher PID reuse — notify-fallback-watcher verifies process identity before reaping stale PIDs, with a plain-text PID fallback, lock-directory holder PID, liveness checks, and a Windows guard. (PR #1672, issue #1657)
- tmux extended-keys stale lock recovery — tmux extended-keys lease lock now recovers from stale holders instead of hanging indefinitely. (PR #1668, issue #1655)
- MCP duplicate sibling cleanup — post-traffic duplicate MCP siblings self-exit after extended idle instead of leaking. (PR #1666)
- Project-root discovery — OMX now resolves the project root by walking to
.omxinstead of a hardcoded directory depth. (PR #1664) - AGENTS.md preservation on setup refresh — local
AGENTS.mdcontent is preserved during auto-update refresh. (PR #1673, issue #1671) - Fresh-session context isolation — new sessions are isolated from stale task-scoped startup context. (PR #1634, issue #1624)
- Canonical team phase over stale startup HUD — HUD prefers the canonical team phase over stale startup state. (PR #1646)
- Wiki Unicode title slugs —
wiki.titleToSlugpreserves Unicode characters. (PR #1645) - Worker shell startup command quoting —
processSpec.commandis properly quoted during worker shell startup. (PR #1644)
- Release contributor metadata range — release contributor metadata stays aligned with the actual release commit range, and the release-body regression test no longer breaks under CI env. (PR #1639, issue #1623)
- Doctor readiness clarity — doctor output now clarifies when setup is done versus when Codex can really run. (PR #1630, issue #1626)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, release notes, and release-readiness docs aligned to
0.13.2.
Hotfix release for the detached tmux startup regression introduced in 0.13.0.
- Detached tmux stdin preservation — detached leader shells now keep Codex stdin attached during background startup, so
omx --madmax --highand related detached launch paths no longer exit immediately on macOS/iTerm2-style interactive sessions. (PR #1631, issues #1627, #1628)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, release notes, and release-readiness docs aligned to
0.13.1.
Minor release for the new omx adapt surface, stronger Ralph / runtime session authority, safer cross-platform launch behavior, and another broad pass over hook, HUD, notification, and release-process correctness.
- OMX adapt foundations —
omx adaptnow exposes OMX-owned adapter foundations for persistent external targets, with read-only probe/status/doctor surfaces, init/envelope output under.omx/adapters/<target>/..., planning artifact linkage, and target-specific OpenClaw and Hermes evidence. (PRs #1600, #1599, #1598) - Hermes runtime observation — Hermes adaptation reports ACP, gateway, session-store, and bootstrap evidence without writing into the Hermes runtime. (PR #1598)
- OpenClaw local observation — OpenClaw adaptation summarizes local config, gateway, hook mapping, and lifecycle bridge evidence while keeping command gateways gated. (PR #1599)
- Ralph session authority — Ralph assignment and tmux Ralph nudges now stay scoped to the activating/current session instead of drifting across concurrent OMX sessions. (PRs #1604, #1591)
- Prompt-side Ralph vs PRD CLI startup — prompt activation no longer pretends to be
omx ralph --prd, and PRD story validation remains required on the explicit CLI path. (PR #1608) - Native Stop stability — Stop handling is stable across session-id drift, permission-seeking handoffs resume automatically, and native hook metadata no longer hijacks routing. (PRs #1590, #1611; direct commit
4377e1e) - MCP state transport resilience — resumed duplicate MCP state writers stay alive after reconcile/self-teardown paths. (PR #1596)
- Explore harness resolution —
omx exploreskips unusable PATH node entries, resolves POSIX Codex shims under sandboxed pnpm-style PATHs, and fails closed before Windows paths hit the POSIX allowlist wrapper. (PRs #1562, #1610; direct commit72b1e5d) - Detached leader cleanup — detached Codex children are terminated when their leader shell exits on signal, with regression coverage for the orphan path. (PR #1605)
- Windows cleanup discovery — Windows OMX cleanup finds real orphaned servers again. (PR #1589)
- Stale worktree startup — detached team startup no longer fails just because an old recorded worktree path is missing. (PR #1582)
- HUD active-session binding — HUD state stays bound to the live OMX session rather than falling back to stale root scope. (PR #1573)
- macOS leader stale polling — leader stale polling now reduces repeated git probes on macOS, lowering high-CPU polling churn in long-running sessions. (PR #1619)
- Queued startup and dispatch regressions — Codex startup banners, queued drafts, and dispatch-lock behavior are covered so inbox/worker startup cannot regress silently. (PR #1595)
- Slack mention parsing — Slack notification mention environment parsing has focused regression coverage. (PR #1585)
- Receiving-agent ownership — generated guidance now treats safe reversible OMX/runtime operations as the receiving agent's responsibility instead of asking the user to perform ordinary cleanup. (direct commit
76e808e)
- Wiki setup registration —
omx setupinstalls the shipped wiki skill/config assets consistently. (PR #1571) - Native hook doctor coverage — doctor/config output now surfaces missing native-hook coverage before it looks like a broken OMX install. (PR #1546)
- Contribution branch guardrail — normal contribution guidance now makes
devthe obvious PR base. (PR #1567)
- Release workflow dependency refresh — GitHub Actions and tooling dependencies are refreshed for the release pipeline and TypeScript/Biome baselines. (PRs #1575, #1576, #1577, #1578)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, release notes, and release-readiness docs aligned to
0.13.0.
Wiki-first knowledge workflows, notification and hook delivery hardening, launch/worktree safety improvements, and automatic closure of explicitly linked issues after dev merges across 32 PRs.
- OMX wiki workflow — local markdown wiki storage, ingest/query/lint/refresh flows, wiki MCP server support, CLI parity, and wiki-aware explore integration. (PR #1481)
- Discord job-control primitive — tracked OMX Discord sessions gain a safe first control layer plus better message/session reuse handling. (PR #1530, issue #1528)
- Dev merge issue auto-close — merged PRs into
devcan now automatically close explicitly linked local issues. (PR #1541, issue #1540)
- Needs-input watcher parity — array-backed assistant prompts now trigger the needs-input watcher correctly. (PR #1487, issue #1486)
- Local worker runtime / delivery stability — stale scrollback, queued drafts, and dispatch drain races no longer stall local worker startup or mailbox progress. (PRs #1491, #1493, issues #1490, #1492)
- Managed-session hook stability — cwd alias mismatches no longer break managed tmux ownership or hook session logic. (PR #1495)
- Ralph / release-readiness follow-up scoping — stale session-scoped suppressions and generic stop residue no longer hijack unrelated flows. (PRs #1496, #1514, issues #1494, #1513)
- Notification noise reduction — duplicate lifecycle broadcasts, stale follow-up alerts, metadata false positives, and post-stop keyword replay are suppressed. (PRs #1518, #1520, #1526, #1529)
- Dead-session HUD residue — stale HUD state is cleared before follow-up tooling reads it. (PR #1539, issue #1538)
- Reusable worktree dependency bootstrap — launch worktrees can reuse safe parent
node_modulesinstead of forcing fresh installs. (PR #1510, issue #1507) - Malformed native-hook stdin handling — runtime no longer destabilizes on broken native hook JSON input. (PR #1504, issue #1503)
- AGENTS preservation during setup —
omx setupkeeps user-authored AGENTS guidance intact. (PR #1524, issue #1521) - tmux worker environment inheritance — team workers preserve proxy access from the invoking environment. (PR #1523, issue #1522)
- Dirty worktree caution flow — reusable dirty worktrees now warn inside the caution flow while retaining hard failures outside it. (PR #1535, issue #1532)
- Claude issue approval prompts — obvious repository reads no longer stall issue sessions on unnecessary approval prompts. (PR #1537, issue #1536)
- Superseded MCP stdio sibling cleanup — live Codex app-server parents no longer accumulate stale MCP siblings. (PR #1517, issue #1516)
- Canonical skill-root docs — mixed OMX + Codex environments now document the correct skill root and wiki workflow entry points. (PR #1534, issue #1531)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, release notes, and release-readiness docs aligned to
0.12.6.
Team-runtime and multi-workflow state hardening, Windows reliability fixes, tmux/shell stability improvements, and HUD session anchoring across 25 PRs.
- Current-task baseline branch guardrails —
omx teamnow tracks a baseline branch per task so workers stay anchored to the correct starting point. (PR #1419, issue #1407) - Approved multi-workflow overlaps — canonical state now accepts approved workflow overlaps without corrupting session visibility. (PR #1427)
- Windows ps fallback for notifications —
omx notifytolerates missingpson Windows via a graceful process-list fallback. (PR #1457)
- Stalled-worker startup recovery — team launches now stay recoverable when early workers stall during startup instead of hanging the whole boot sequence. (PR #1444)
- Cross-session stale root team Stop — root team Stop no longer blocks sessions that did not originate the team. (PR #1451)
- Linux tmux startup handoff and shutdown persistence — startup handoff and shutdown-state persistence are now correct on Linux tmux paths. (PR #1438)
- session.json ownership tightened — stale session pointers can no longer revive the wrong runtime state; fallback semantics are now explicit. (PR #1447)
- Planning state preserved in mixed prompt routing —
ralplan/ralphplanning state is no longer dropped when a multi-skill prompt is re-routed mid-flow. (PR #1471, issue #1353) - Workflow handoff correctness — malformed workflow-state objects are now rejected during reconciliation; stale workflow state can no longer block real handoffs. (PR #1442)
- Flaky hook and HUD state scope — CI-aligned session-scoped hook contract; hooks and HUD no longer drift to stale session scope. (PR #1446)
- Split-pane shutdown leader-pane targeting — stale leader pane ID no longer misdirects split-pane shutdown signals. (PR #1470, issue #1353)
- Native psmux worker startup path — Windows workers now start on the resolved Codex launcher path, not a stale entrypoint. (PR #1469, issue #1361)
- MCP orphan cleanup — Windows MCP child processes no longer survive parent shutdown. (PR #1437, issue #1435)
- Retired team MCP config repair —
omx doctorand the launch path now realign retired team MCP config entries on upgrade. (PR #1436)
- Detached tmux launch cwd — detached tmux panes now start in the requested working directory, not the caller's cwd. (PR #1468, issue #1374)
- Worker cwd on shell launch — supported shells (zsh, bash) preserve the worker cwd when launching team panes. (PR #1460)
- Homebrew zsh normalization — macOS Homebrew zsh paths are now normalized before tmux pane launch so panes inherit the correct shell. (PR #1462, issue #1439)
- tmux PID resolution hardening — startup PID resolution is more robust; copy-mode is cleaned up after attach. (PR #1459)
- HUD state session scope — HUD state is now anchored to the active OMX session; cross-session HUD drift is eliminated. (PR #1453)
- Native session-id drift — native session-id drift no longer hides team transport failures from the HUD. (PR #1458)
- Stop auto-continuation in intent-first phase — native Stop no longer fires auto-continuation while deep-interview is in its ask-user questioning phase; that phase is now treated as planning for stall detection. (PR #1473, issue #1472)
- rustup shim without default toolchain —
omx explorenow emits a clear actionable error instead of surfacing a raw rustup message whencargoexists as a shim but no default toolchain is configured. (src/cli/explore.ts)
- Stop-hook Ralph session scoping — Ralph stop-hook no longer leaks across sessions; session authority is enforced before gating. (PR #1466, issue #1461)
- Auto-nudge authorization leaks — read-only and planning flows no longer receive tool-use authorization nudges intended for full-execution flows. (PR #1434, issue #1416)
- Notify hooks track live teams — notify hooks stay aligned when coarse team state drifts between turns. (PR #1428)
- Launcher-backed MCP restart stall — long-lived MCP server restart stalls are now bounded so they do not block team recovery indefinitely. (PR #1408)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, and release notes aligned to
0.12.5.
- Removed stale
prompts/invocation guidance from README. (PR #1417)
MCP-CLI parity surface, HUD recovery and reconciliation hardening, native-hook and team-runtime stability fixes, and state operations module extraction.
- MCP-CLI parity surface — new
omx state,omx notepad,omx project-memory,omx trace, andomx code-intelCLI subcommands expose MCP server tools via CLI, enabling scriptable access without MCP transport. (src/cli/mcp-parity.ts,src/cli/state.ts) - HUD reconciliation module — new
src/hud/reconcile.tsauto-reconciles HUD pane state across session boundaries. - Shared HUD tmux helpers — tmux pane management (
parseTmuxPaneSnapshot,createHudWatchPane,killTmuxPane, etc.) extracted tosrc/hud/tmux.tsfor shared use by CLI and reconciliation. - State operations module — new
src/state/operations.tsprovides read/write/clear/list-active/get-status for mode state, backing both the MCP state server and the new CLI parity surface. - Path traversal guard —
src/utils/paths.tsadds safety utilities for path validation.
- HUD recovery via OMX CLI entry — prompt-submit recovery now restores the real HUD process instead of silently skipping it. (PRs #1413, #1414)
- User-owned Codex hooks preserved —
omx setupno longer clobbers user-written hooks when refreshing OMX wrappers. - HUD prompt-submit layout churn — prompt-submit autosizing stopped while preserving recovery behavior.
- Duplicate native-hook continuations — stale Ralph state and unknown
$tokensno longer trigger duplicate hook continuations. - Stale team worktree cleanup —
startTeam()detects and cleans stale worktrees at launch. (PR #1382, issue #1354) - Stale stop-hook deep-interview suppression — deep-interview suppression after skill-state canonicalization no longer persists beyond its session.
- Native Stop stale blocker — Stop no longer trusts stale blocker skill state.
- MCP transport death recovery — transport death no longer stalls team recovery.
- Clean team shutdown — explicit shutdown without weakening dirty-worktree safety.
- Detached session trap — session cleanup only fires on normal exit (
status < 128), not on signals; trap narrowed toEXITonly. - CI hang prevention — teardown dead-time reduced; CI hangs no longer stall root-cause work. (PR #1405)
- State CLI routing —
omx staterouted consistently through the CLI viasrc/cli/state.ts. - Tmux session name truncation — smarter truncation preserves session token when name exceeds 120 chars.
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, and release notes aligned to
0.12.4.
npm run build✅npx biome lint src/✅ (435 files)npm test— 3068/3070 passing. The 2 failures (state.test.ts: dispatch request store keeps failed requests failed,runtime.test.ts: sendWorkerMessage keeps failed hook receipts failed) are pre-existing onmain(commit3a193cfb) and not regressions introduced by this release.
Follow-up patch release for the v0.12.2..v0.12.3 train: $team prompt-routing correctness and duplicate team launch teardown. This ships PR #1364 that was intended for 0.12.2 but finished its conflict resolution after the 0.12.2 cut.
$teamkeyword prompt routing —UserPromptSubmitdetection of$teamnow seeds rootteam-state.jsonand nudges operators towardomx team .../omx team --helpinstead of silently misrouting the prompt. (PR #1364)- Duplicate active same-name team launches —
startTeamnow rejects duplicate active same-name team launches with ateam_name_conflicterror before mutating team state or provisioning worktrees, so the existing team config and tasks stay intact. (PR #1364)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, and release notes are aligned to
0.12.3.
npm run buildnpm run lintnpm testnpm run smoke:packed-install
Patch release for the v0.12.1..v0.12.2 train: Windows team worker boot and shutdown hardening, postLaunch mode-state shutdown-race recovery, canonical HUD skill-state visibility, and team state preservation on monitor-driven exits.
- Windows split-pane shutdown safety —
omx team shutdown --forceno longer kills the leader pane on native Windows + psmux split-pane sessions by skipping the process-tree prekill step when leader/client ancestry overlaps. (PR #1358) - PostLaunch mode-state shutdown race — empty or truncated mode-state JSON left by concurrent writers during session exit is now recovered into a minimal inactive record instead of crashing cleanup; structurally complete malformed JSON is warned but left untouched. (PR #1360)
- Windows psmux worker boot — native Windows team workers now launch through an explicit PowerShell path instead of being routed through POSIX
/bin/sh -lc, which caused workers to never report ready. (PR #1362) - Stale HUD workflow badges — canonical session-scoped skill-active state now drives HUD badge visibility, suppressing stale root-only mode badges that outlived their session while preserving backward compatibility for legacy single-skill readers. (PR #1367)
- Team state silently deleted — monitor-detected terminal and failure conditions in
runtime-clino longer trigger shutdown cleanup; team state is preserved until operators explicitly request shutdown. (PR #1369)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, and release notes are aligned to
0.12.2.
npm run buildnpm run lintnpm testnpm run smoke:packed-install
Patch release for the v0.12.0..v0.12.1 train: team-runtime hygiene, launch/cleanup follow-through, notify-fallback hardening, and release-collateral sync.
- Machine-readable team status output — leader mailbox pruning no longer re-issues duplicate delivered-message bridge calls, so
omx team status --jsonstays parseable instead of leaking mailbox-delivery stderr noise. - Interactive worker PID capture — team startup now resolves worker PIDs from the actual pane id and persists them into worker metadata for diagnostics and cleanup.
- Launch-safe orphan cleanup — stale OMX MCP cleanup preserves live launcher/session ancestry instead of reaping processes that still belong to the active tree.
- Notify-fallback log growth — once-mode fallback watcher logs now rotate instead of growing silently on long-lived runs.
- Direct leader launch by default — outside tmux, OMX now launches the leader directly unless the operator explicitly requests detached tmux behavior.
- Prompt collateral tightening — the information-architect prompt is slimmer and the
0.12.1release/readiness collateral now matches the actual patch scope. - Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release body, and release notes are aligned to
0.12.1.
npm run buildnpx biome lint src/cli/index.ts src/cli/cleanup.ts src/cli/__tests__/index.test.ts src/cli/__tests__/cleanup.test.ts src/scripts/notify-fallback-watcher.ts src/hooks/__tests__/notify-fallback-watcher.test.ts src/team/runtime.ts src/team/state/mailbox.ts src/team/__tests__/runtime.test.ts src/team/__tests__/state.test.ts package.jsonnode --test dist/cli/__tests__/cleanup.test.js dist/cli/__tests__/index.test.js dist/cli/__tests__/version-sync-contract.test.jsnode --test dist/hooks/__tests__/notify-fallback-watcher.test.jsnode --test dist/team/__tests__/state.test.js dist/team/__tests__/runtime.test.jsnpm run smoke:packed-install
Minor release for native Codex hook ownership, first-party Bash pre/post tool guidance, runtime/team delivery hardening, and workflow-doc refresh after 0.11.13.
- First-party native Bash pre/post hooks — OMX now ships documented
PreToolUse/PostToolUseBash guidance and supporting native-hook wiring so operators can extend tool lifecycle behavior without relying on ad hoc shell glue. (PR #1316)
- Native hook ownership + continuity — repo-local native Codex hook ownership now survives session-start and stop-state continuity more reliably, and setup/uninstall flows align with the landed runtime contract. (PRs #1306, #1314)
- Team/runtime delivery + steering reliability — mailbox delivery, next-action steering, false handoff signals, persist-error surfacing, and diagnostics-without-tsconfig behavior are hardened across the live operator path. (PRs #1293, #1294, #1300, #1303, #1304, #1305)
- Windows / tmux / launcher supervision — detached launches, shift-enter handling, PowerShell command resolution, and tmux child binding stay more predictable across platform-specific edges. (PRs #1265, #1273, #1275, #1282)
- Quality-first guidance defaults — generated AGENTS/prompt guidance now leans harder on intent-deepening, evidence, and verification sequencing instead of compact-first satisficing. (PR #1281)
- Docs + localization refresh — README variants live under
docs/readme/, Ukrainian OpenClaw/docs coverage is added, and user-facing docs are refreshed around the modern deep-interview → ralplan → team/ralph workflow. (PRs #1270, #1308) - Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release notes, QA/readiness notes, and release body are aligned to
0.12.0.
npm cinpm run buildnode dist/cli/omx.js versionnode --test dist/cli/__tests__/version-sync-contract.test.jsnpm run lintnpm testcargo test -p omx-runtime-corenpm run smoke:packed-installgit diff --check origin/main...HEAD
Patch release for team/runtime delivery integrity, busy-leader nudge handling, release hygiene fixes, and Windows/worktree reliability follow-through after 0.11.12.
- Leader + mailbox delivery integrity — team leader mailbox delivery stays reliable across runtime/CLI seams, false team-coordination signals are suppressed during runtime handoff, and busy Codex leader panes can now receive queued nudges instead of silently deferring them. (PRs #1217, #1223, #1224)
- Windows / tmux worktree supervision — leader activity polling, HUD targeting, and Windows worktree/session handling stay stable across detached launches and worktree checkouts. (PRs #1212, #1213, #1191)
- Workflow hygiene around deep-interview + uninstall paths — fallback nudges honor active deep-interview input locks, uninstall warns cleanly about legacy skills, and shutdown cleanup reaps detached worker descendants more reliably. (PRs #1203, #1193, #1204)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, release notes, and release body are aligned to
0.11.13. - Release branch repair — the accidental placeholder corruption in
src/hooks/__tests__/notify-fallback-watcher.test.tsis restored before the patch cut so the release branch builds cleanly again.
cargo test -p omx-runtime-corenpm run buildnpm run lintnode --test dist/hooks/__tests__/notify-fallback-watcher.test.jsnode --test dist/cli/__tests__/version-sync-contract.test.jsnpm testnpm run smoke:packed-installgit diff --check origin/main...HEAD
Patch release for Windows flicker reductions, team/runtime seam cleanup, safer auto-nudge hygiene, cross-platform Node test execution, and workflow-doc alignment after 0.11.11.
- Windows terminal flicker reductions —
windowsHidecoverage now spans the remaining child-process launch paths, and filesystem-based git info reads avoid the extra Windows console flash path. (PRs #1104, #1107, #1123) - Team/runtime seam cleanup — team cwd metadata now resolves canonically from
manifest.v2, and dispatch/mailbox transitions no longer straddle the remaining dual-write seam gaps. (PRs #1114, #1126) - Auto-nudge / tmux session hygiene — stale-turn auto-nudges stay disarmed after cooldown, readiness checks tolerate prompt scroll-off, and nudges stay limited to OMX-managed tmux sessions. (PRs #1091, #1093, #1119)
- Cross-platform Node test runner — Node test execution can now enumerate compiled test files without depending on POSIX
find, making the release/CI test path portable across platforms. (PR #1122) - Workflow docs standardized — onboarding/docs now consistently steer users through deep-interview -> ralplan -> team/ralph, with linked legacy skill roots resolved through one canonical path. (PRs #1128, #1132)
- Release metadata sync — Node/Cargo package metadata, lockfiles, changelog, and release collateral are aligned to
0.11.12for the patch cut.
cargo check --workspacenpm run buildnpm run lintnode --test dist/cli/__tests__/version-sync-contract.test.js- release-workflow inline version-sync check from
.github/workflows/release.yml npm run test:node:cross-platformnpm run smoke:packed-install
Patch release for approved handoff alias parsing hardening and release metadata synchronization after 0.11.9.
- Approved handoff alias parsing regression coverage — planning artifact tests now protect single-quoted approved launch hints for both
$ralphand$team, preventing quoting-form drift in execution handoff parsing. (direct commite08a746)
- Release metadata sync — Node and Cargo package metadata are bumped to
0.11.10for this patch release. - Release collateral refresh — release notes and
RELEASE_BODY.mdare refreshed for the0.11.10cut.
npx biome lint src/planning/__tests__/artifacts.test.tsnpm run build && node --test dist/planning/__tests__/artifacts.test.jsnpm run test:sparkshellnpm run test:team:cross-rebase-smokenpm run smoke:packed-installnpm test
Patch release for deeper deep-interview / ralplan coordination, setup repair, and safer live team supervision after 0.11.8.
- Live ralplan state visibility — consensus planning now exposes observable runtime state so the pipeline, HUD, and attached guidance can reflect active ralplan progress more faithfully. (PR #1060)
- Analyze skill trace refresh — the shipped analyze skill now follows the OmC trace methodology with restored execution-policy contract wording, improving investigation guidance. (direct commits
fa01cb5,c0a0e1a)
- Deep-interview lock suppresses tmux-pane nudges — active deep-interview lock state now blocks fallback tmux-pane nudges, and planning handoff applies stronger deep-interview pressure before execution can proceed. (PRs #1062, #1058)
- Setup stays compatible with Codex-managed TUI configs — rerunning setup no longer rebreaks managed TUI sections, while explore-routing defaults remain aligned with setup guidance. (PRs #1048, #1053)
- HUD stateful-mode visibility restored — active stateful modes are visible in the HUD again instead of disappearing during live sessions. (PR #1055)
- Live worker supervision remains resilient — fallback orchestration now stays alive while team workers are still active, and team flows auto-accept the Claude bypass prompt when required. (PR #1043, direct commit
3f2eb67)
- Maintenance refresh — dev dependency baselines now use
c8@11.0.0and@types/node@25.5.0, and the README adds a Star History chart. (PRs #1049, #1051; docs commited96d42) - Release metadata sync — Node and Cargo package metadata are bumped to
0.11.9for this patch release.
cargo check --workspacenpm run buildnpm run lintnpm run check:no-unusednode --test --test-reporter=spec dist/cli/__tests__/version-sync-contract.test.jsnode --test --test-reporter=spec dist/cli/__tests__/setup-refresh.test.js dist/cli/__tests__/setup-scope.test.js dist/cli/__tests__/doctor-warning-copy.test.jsnode --test --test-reporter=spec dist/hooks/__tests__/explore-routing.test.js dist/hooks/__tests__/explore-sparkshell-guidance-contract.test.js dist/hooks/__tests__/deep-interview-contract.test.js dist/hooks/__tests__/notify-fallback-watcher.test.js dist/hooks/__tests__/notify-hook-auto-nudge.test.js dist/hooks/__tests__/agents-overlay.test.jsnode --test --test-reporter=spec dist/hud/__tests__/index.test.js dist/hud/__tests__/render.test.js dist/hud/__tests__/state.test.jsnode --test --test-reporter=spec dist/pipeline/__tests__/stages.test.js dist/ralplan/__tests__/runtime.test.js
Hotfix release for deep-interview nudge suppression and duplicate fresh-leader nudge prevention.
- Deep-interview nudge suppression — when deep-interview state is present, notify-hook and the fallback watcher now suppress leader nudges, worker-idle nudges, Ralph continue-steers, and auto-nudges so the interview can proceed without automated interruptions.
- Fresh leader dedupe hardening — fallback watcher leader nudges now stay stale-only, while notify-hook regression coverage proves the same fresh mailbox message does not re-trigger repeated leader nudges.
- Release metadata sync — Node and Cargo package metadata are bumped to
0.11.8for this hotfix release.
cargo check --workspacenpm run buildnode --test --test-reporter=spec dist/hooks/__tests__/notify-hook-auto-nudge.test.jsnode --test --test-reporter=spec dist/hooks/__tests__/notify-hook-team-leader-nudge.test.jsnode --test --test-reporter=spec dist/hooks/__tests__/notify-fallback-watcher.test.js
Patch release for degraded-state auto-nudge recovery, tighter team control-plane correctness, and release metadata consistency across the v0.11.6..dev hotfix train.
- Watcher / dispatch recovery — team dispatch now resolves the shared runtime binary correctly, fallback watcher cooldowns debounce across processes, persisted dispatch IDs stay aligned with runtime bridge request IDs, and successful tmux fallback delivery recovers requests back to
notified. (PRs #1002, #1004, #1020, #1021) - Leader nudge accuracy — completed or foreign-session teams no longer resurface as stale leader nudges, leader control remains mailbox-only, and advancing worker turn counts count as progress before a stall is declared. (PRs #1001, #1023)
- Linked Ralph + team lifecycle — linked Ralph now stays alive for the full team run, prompt-mode launches skip the bridge correctly, duplicate leader mailbox sends are deduplicated, and missing-team cleanup now finalizes linked Ralph instead of leaving it active indefinitely. (PRs #1011, #1012, #1013, #1017, #1025)
- Generated defaults and prompt guidance — the default status line now includes
weekly-limit, exactgpt-5.4-miniworker/subagent launches get a narrower prompt seam, and AGENTS guidance now prefers the current frontier default over stale explicit child-model pins. (PRs #1009, #1016, #1018) - Release metadata sync — Node and Cargo release metadata are realigned to
0.11.7, keeping the repo version-sync contract intact for the release branch. (release follow-up commitc4c5b75)
- Commit-window review — parallel module review across
main...devfound3main-only merge commits (#995,#997,#1000) but no main-only patch content after cherry-pick elimination, so the shipped release delta is entirely on thedevside. - Targeted hook + watcher regression suite —
notify-fallback-watcherandnotify-hook auto-nudgepass with the degraded-state coverage (49/49passing). - Real tmux smoke for degraded auto-nudge — a live Codex pane received
yes, proceed [OMX_TMUX_INJECT]from the fallback watcher after a 5s stalled-turn window with only HUD state available. - Real tmux smoke for Ralph anti-spam — two back-to-back fallback watcher ticks did not emit repeated
Ralph loop active continuesends; the persisted state stayed in cooldown (startup_cooldown).
Patch release for Ralph continue-steer restart throttling.
- Ralph continue-steer restart throttling — fallback watcher cooldown anchors now survive restarts and malformed persisted timestamps, preventing repeated continue-steer injection spam after Ralph resumes. (PR #998, closes #996)
Hotfix release for stale leader nudge false-positives and README onboarding clarity.
- False-positive leader stale nudges — leader activity freshness check now considers any recent leader activity, preventing spurious stale nudges when the leader is actively working. (PR #993)
- README onboarding refocused — README now centers onboarding around the real default OMX path for clearer first-run guidance. (PR #992)
Hotfix release for team worker delivery regressions.
- Packaged watcher entrypoint resolution — team fallback watcher startup and one-shot flush paths now resolve shipped
dist/scripts/*.jsentrypoints instead of nonexistent top-levelscripts/*.js, restoring worker message delivery and state-change delivery in packed installs. - CI smoke coverage for packaged watcher paths — smoke CI now exercises the packaged watcher path-resolution contract so future release builds catch this class of regression before shipping.
6 PRs landed since v0.11.1. Contributors: @Yeachan-Heo.
- Bidirectional Telegram/Discord reply support — reply listeners now support polling-based bidirectional messaging for Telegram and Discord integrations. (PR #984)
- OMX SDK architecture enhancements — improved SDK facade contracts and verification patterns for external integrations. (PR #985)
- Deep-interview state mode compatibility — deep-interview workflow now correctly uses OMX state APIs instead of legacy OMC state paths. (PR #987, closes #1783)
- Real tmux test isolation — tmux/session tests are now isolated from live maintainer sessions to prevent interference. (PR #980, closes #960)
- npm pack dry-run race condition — prevented parallel test runs from rebuilding dist during npm pack dry-runs. (PR #986)
- Ambient tmux bootstrap restoration — restored ambient tmux bootstrap for state tools with aligned fake tmux fixtures. (hotfix commits)
- Hook SDK documentation alignment — unified hook enablement wording and messaging across help, init, and status commands.
5 PRs landed since v0.11.0. Contributors: @Yeachan-Heo.
- Pane detection regression — auto-nudge fixtures aligned with canonical pane routing, preventing hook nudges from landing in the HUD pane. (PR #981)
- Live session interference in tests — tmux/session discovery is now isolated from live maintainer state. (PR #979, closes #963)
- Packed install strict allowlist — explore harness now fails fast for non-rg allowlist misses while keeping packed installs alive without requiring ripgrep. (PR #978, closes #964)
- Release smoke focus — smoke tests now focus on boot-safe packed installs. (PR #983, closes #982)
- CI workflow cleanup — streamlined release smoke tests and reduced external tool dependencies in test environments.
Version bump for release.
46 commits across 21 PRs from v0.10.2..dev. Contributors: @Yeachan-Heo, @lifrary (SEUNGWOO LEE).
- Lore commit protocol in AGENTS.md template — executor prompt and AGENTS.md template now include a Lore commit protocol for structured commit metadata. (PR #916)
- AGENTS.md model capability table auto-generated during setup —
omx setupnow generates a model capability table in AGENTS.md for quick reference. (PR #894) - Native skill_ref bridges and subagent tracking — skill references can now bridge to native subagents with lifecycle tracking. (PR #892)
- Codex native subagent integration phase 1 — first-pass integration of Codex CLI native subagent spawning and coordination. (PR #886)
- AGENTS autonomy directive — AGENTS.md now includes an explicit autonomy directive for self-directed agent operation. (PR #883)
- Autoresearch novice deep-interview intake bridge — autoresearch can now route novice users through the deep-interview intake flow before launching autonomous research. (PR #906)
omx cleanupfor orphaned MCP servers — new cleanup command detects and removes orphaned MCP server processes. (PR #901, closes #900)- Stale
/tmpcleanup inomx cleanup— cleanup now also removes stale temporary files from/tmp. (PR #912, closes #908) - Autoresearch showcase hub — added showcase index, runner script, and completed demos for adaptive sorting, latent subspace discovery, noisy bayesopt, and kaggle-style ML missions. (PRs #884)
- Autoresearch contracts and runtime deslopped — cleaned up autoresearch contract interfaces and runtime for clarity and consistency. (PR #918)
- Packed-install smoke deps bootstrapped in worktrees — worktree-based CI now correctly bootstraps smoke test dependencies for packed installs. (PR #919, closes #917)
- Deep-interview launch for autoresearch intake — autoresearch intake now correctly uses the deep-interview launch path. (PR #915, closes #911)
- musl Linux assets preferred before glibc — native asset resolution now prefers musl-linked Linux binaries over glibc for broader compatibility. (PRs #914, #907)
- Autoresearch worktree paths use project-local
.omx/— worktrees are now created under.omx/worktrees/instead of global paths. (PR #913) - Stale obsolete native agents cleaned up — removed leftover native agent files that were no longer in use. (PR #899)
- Skill agent generation stopped — setup no longer generates agent files for skills, reducing file bloat. (PR #897)
__dirnameESM error in autoresearch guided flow — resolved CommonJS__dirnamereference in ESM context. (PR #903)- macOS test compatibility for autoresearch — replaced
execFileSync('cat')withreadFileSyncand fixed BSDfindincompatibilities. (PR #891 — @lifrary) - High-severity transitive vulnerabilities patched — updated transitive dependencies to resolve high-severity CVEs and added dependabot config. (PR #889, closes #888)
3 PRs landed after the 0.10.1 release tag and before this 0.10.2 release-prep commit: all 3 are targeted fixes. The 0.10.1 tag landed at 2026-03-16 06:57 UTC; the last shipped merge (#878) landed at 2026-03-16 08:43 UTC, for a turnaround of about 1 hour 46 minutes before release prep closed the patch.
- Autoresearch codex args normalized for sandbox bypass — ensures
--dangerously-bypass-approvals-and-sandboxflag is correctly normalized when composing codex launch arguments, preventing double-flag or missing-flag edge cases. (PR #875) - Duplicate
[tui]config sections auto-repaired before Codex CLI launch — detects and merges duplicate[tui]sections inconfig.tomlbefore invoking Codex, preventing TOML parse failures. (PR #876) - tmux launch policy on darwin — uses the correct tmux launch policy on macOS to prevent session startup failures when tmux server is not yet running. (PR #878)
- Release workflow now sets the GitHub Release title and body from
RELEASE_BODY.mdviasoftprops/action-gh-release.
6 PRs landed after the 0.10.0 release bump and before this 0.10.1 release-prep commit: 4 urgent hotfix PRs, 1 fast-follow autoresearch UX PR, and 1 docs follow-up. The 0.10.0 bump commit landed at 2026-03-15 17:22 UTC; the urgent hotfix train was merged by 2026-03-16 03:18 UTC, and the last shipped dev follow-up merge landed at 2026-03-16 05:59 UTC, for a turnaround of about 12 hours 37 minutes before release prep closed the patch.
- Guided autoresearch setup and
initscaffolding —omx autoresearchnow supports an interactive guided setup on TTYs plus a scriptableomx autoresearch initpath for creating mission files and launching the supervisor cleanly. (PR #873, closes #863)
- Autoresearch now bypasses approvals and sandbox by default — prevents autonomous runs from stalling on approval/sandbox prompts unless callers already supplied their own flags. (PR #856, closes #855)
- Autoresearch worktree cleanliness ignores
.omx/runtime artifacts — avoids false dirty-worktree failures caused by session state and other runtime files. (PR #858, closes #857) - Installed skills are deduplicated across project and user scopes — project-local skills now take precedence and shadowed duplicates are filtered from composed AGENTS/team instructions. (PR #864, closes #861)
- Team worker readiness detection matches Codex 0.114.0 startup behavior — accepts the new welcome-helper text and uses a safer ready wait path to reduce false startup failures. (PR #868, closes #866)
- Added the Discord community server badge to the primary multilingual READMEs. (PR #869)
54 commits across 26 PRs from v0.9.1..dev. Contributors: @Yeachan-Heo, @HaD0Yun.
omx autoresearch(experimental) — new autonomous research mode that iteratively explores topics and self-terminates after repeated noop iterations. (PRs #847, #849)omx execwrapper — first-pass execution wrapper that lets users run commands through the OMX orchestration layer directly. (PR #832)- Team worktrees enforced by default — team mode now creates isolated git worktrees for each worker by default, improving parallel safety. (PR #804)
- Deep-interview intent-first mode — deep-interview now classifies user intent upfront before entering the Socratic question loop. (PR #829)
- Incremental worktree merge tracking — team worktree merges are now tracked incrementally, enabling smarter conflict detection and resolution. (PR #846)
- Deep-interview execution handoff contract documented — the bridge between interview and autonomous execution is now an explicit, testable contract. (PR #851)
- Team event/docs contract clarified — interop contract now documents canonical event reads, wakeable vs audit-only signals, and
allocation_reasonreview seam. - CI Rust runtime alignment reverted — crates runtime packaging was reverted after compatibility issues. (PRs #821, #840)
- Windows psmux bootstrap hardened — detached psmux bootstrap on Windows now handles edge cases that caused silent failures. (PR #854, closes #853)
- Team worktree continuous integration — hybrid merge strategy with auto-commit and cross-worker rebase for reliable worktree synchronization. (PR #852)
- Setup skill validation — skills are now validated before install to prevent broken skill directories. (PR #845, issue #844)
- Ralph auto-expand iterations — active Ralph sessions now auto-expand
max_iterationsinstead of halting prematurely. (PR #843, issue #842) - Setup defaults to CODEX_HOME — user skills path now correctly defaults to
CODEX_HOME. (PR #839) - Post-ralplan team context preserved — team follow-up context no longer lost after ralplan completes. (PR #833)
- Pipeline planning artifact checks unified — planning-complete artifact detection now uses a single consistent check. (PR #828, issue #827)
- Config.toml merge fix — existing notify and tui entries are now preserved during config merge. (PR #826, issue #825)
- Project .omx gitignore sync — fixed gitignore sync for project-scoped
.omxdirectories. (PR #824, issue #823) - Team HUD full-width — team HUD layout now spans the full terminal width. (PR #822, issue #822)
- tmux mouse state leak — stopped leaking server-global mouse state across sessions. (PR #820, issue #817)
- Sparkshell glibc fallback — sparkshell now falls back gracefully when encountering glibc mismatch on older Linux systems. (PR #813, issue #812)
- macOS clipboard image paste — preserved correct clipboard image paste path on macOS. (PR #810, issue #809)
- Release smoke hydration — localized smoke hydration assets for offline validation. (PR #806)
- Removed unused
sendRebaseConflictMessageToWorkerfunction. (PR #852) - Isolated dirty-worktree test helpers for better test hygiene. (PR #849)
- Release smoke hydration hotfix — cherry-picked PR #806's packed-install smoke fix onto
mainso hydration assets are localized correctly during release verification. (commitd86165d)
- Release metadata for the superseding patch release — bumped package/workspace versions to
0.9.1and added release notes/readiness docs that explicitly preserve the historical record:v0.9.0remains red, andv0.9.1is the clean superseding release.
55 non-merge commits from v0.8.15..dev. Contributors: @Yeachan-Heo, Bellman, 2233admin, @seunghwaneom, @hoky1227.
omx explorenative harness and packaging flow — OMX now ships a dedicated read-only exploration entrypoint backed by a Rust harness, packaged/source fallback logic, and release-aware native asset resolution. (commitfb07c3c)omx sparkshelloperator-facing native sidecar — added a direct shell-native specialist surface plus explicit tmux-pane summarization support for operator inspection workflows. (commit71858c3)- Cross-platform native release publishing — release automation now publishes native archives for both
omx-explore-harnessandomx-sparkshell, with generated release-manifest metadata and a packed-install smoke gate. (commit23d1cf5,559089f) build:fullone-shot build path — added a release-oriented build command that compiles TypeScript plus the packaged explore harness and sparkshell binaries, and validated it in CI. (commitd12e5f4,99ce264)
- Qualifying
omx exploreshell-native prompts can route through sparkshell — simple read-only shell tasks now use sparkshell as a backend when that is the cheaper fit, while preserving explicit fallback to the direct explore harness. (PR #782) - Default model resolution is now centralized — runtime/docs/tests now align around one OMX default-model resolution path instead of scattered model-default handling. (PR #787)
- Release/runtime guidance now documents the native exploration stack more explicitly — README and guidance surfaces better describe explore/sparkshell routing, native hydration, and raw-vs-summary expectations. (commit
25bdd23,c83223d)
- Explore/sparkshell fallback hardening — hardened sparkshell fallback behavior, missing-native-manifest handling, and release-asset/native-cache lookup so packaged installs fail more cleanly and recover more predictably. (commit
dc83dfd,7aee91d) - Sparkshell summary behavior is more stable under noisy output — summary reasoning was constrained and stress coverage added so long-output summaries stay more predictable and preserve salient facts. (PR #781, commit
a653376) - CLI/help/runtime polish around the new stack — local
ask/hudhelp routing, HUD branch/config handling, Windows Codex command probing, and team runtime lifecycle/cleanup paths were tightened during the same release window. (PRs #785, #786, #788, #793)
19 non-merge commits from main..dev. Contributors: @Yeachan-Heo, @HaD0Yun, @gobylor.
- Top-level
omx resumecommand — addedomx resumepassthrough so OMX mirrorscodex resume, with CLI/help/docs coverage. (PR #752 — @gobylor) - Team allocation and conservative rebalance policy seams — team startup assignment is now lane-aware, and runtime monitoring can safely reassign reclaimed pending work to eligible idle workers without rewriting the claim model. (PR #761 — @HaD0Yun)
- Team policy manifest boundaries are clearer — persisted transport/runtime policy is now separated from lifecycle governance so nested-team checks, approval/delegation gates, and shutdown cleanup rules come from the authoritative runtime side. (PR #753, issue #746)
- Shared tmux stall heuristics now drive both hook and runtime paths — common stall/bootstrap/ready/active-task detection moved into a shared engine reused by notify-hook dispatch/guard logic and the team tmux session runtime. (PR #758, issue #732)
- Team-mode docs and guidance were refreshed — README copy now positions OMX more clearly around Team Mode, and the root guidance wording was tightened for direct execution and evidence-backed verification. (PR #765, commit
5ced66d)
- Fallback team delivery and stale-alert latency — faster fallback watcher cadence, leader nudge evaluation on fallback ticks, and a larger default dispatch ack budget reduce lag in team message delivery and stale alerts. (PR #739, issue #738)
- Invalid Codex TOML detection in
omx doctor— doctor now flags malformed~/.codex/config.tomlwith a clearer duplicate-table hint. (PR #740, related issue #486) - Linked Team Ralph lifecycle synchronization —
omx team ralphnow establishes linked Ralph state on launch, propagates linked terminal cancellation directly from runtime transitions, and keeps continue-steer alive when the launcher parent exits while Ralph work is still active. (PR #749, issue #742; PR #750, issue #743; PR #751) - Team worker and leader nudges are more actionable — auto-nudge follow-up phrases are detected more reliably, leader nudges now derive next actions from live team state, mailbox guidance is more explicit, and stale “keep polling” wording was replaced with orchestration guidance. (PR #754; PR #759, issue #759; PR #763; PR #766)
- HUD cleanup during team shutdown — interactive shutdown now tears down the HUD pane cleanly to avoid stale panes across rapid relaunch cycles. (PR #764, issue #764)
- CLI startup no longer eagerly loads
doctor— thedoctorcommand is now lazy-loaded so unrelated CLI invocations avoid unnecessary work. (commit2503d95)
12 non-merge commits from v0.8.11..dev. Contributors: @Yeachan-Heo, @HaD0Yun, @gobylor.
- Team orchestrator brain and executor lane split — team workflow now uses dedicated
team-orchestratorandteam-executoragent roles for clearer separation of planning and execution concerns. (PR #715) - Session history search command —
omx session-history search(alias:omx sh search) enables full-text search across command history, prompts, and tool interactions with multi-field matching and interactive filtering. (PR #724) - Team idle and stall read APIs —
omx team apinow exposesidle-readandstall-readoperations for programmatic monitoring of team worker states. (PR #720) - Ralph periodic active continue steer — Ralph mode now periodically prompts active agents to continue when progress has stalled, reducing idle wait times. (PR #733)
- Team leader status monitoring hints — improved leader-side status hints for better visibility into team member progress and stalled states. (PR #734)
- Low-confidence analysis prompts stay single-lane — team decomposition now keeps analysis prompts in a single lane when confidence is low, preventing fragmentation of uncertain work. (PR #726)
- Windows psmux detached launch stability — resolved process detachment issues when launching team workers on Windows. (PR #725)
- Skip tmux bootstrap when tmux unavailable — graceful fallback when tmux is not installed or not in PATH. (PR #722 — @gobylor)
- Stalled team leader nudge before stale gate — team leaders now receive proactive nudges before hitting stale detection thresholds. (PR #729)
- Experimental Rust CLI parity harness — commits #728 and #730 were reverted from dev to maintain TypeScript CLI stability. (PR #736)
Generated from the latest merged dev runtime/model-default work and validated on dev before release.
- Additive team event-query APIs —
omx team apinow exposes dedicated event-query operations so team runtime signals can be consumed more structurally. (PR #714) - Explicit model-default contract — runtime/docs/tests now align around the intended main/spark default model behavior (
gpt-5.4/gpt-5.3-codex-spark). (PR #718)
- Team prompt decomposition is less brittle for prose prompts — natural-language task prompts are no longer fragmented into pathological subtasks as easily. (PR #712)
- Shell-pane notification cleanup after terminal team states — team notify injection now stays out of shell panes after completion. (PR #668)
- Clawhip lifecycle event noise reduction — operational event emission is quieter while preserving needed visibility. (PR #713)
- Team runtime hardening across startup/worktree/idle-launch-arg paths — includes the merged fixes from PRs #696, #697, #700, #707, #708, and #711.
- Release gate stability for setup refresh tests — setup AGENTS overwrite coverage now stays non-interactive under test so the release gate no longer hangs on a model-upgrade prompt.
5 non-merge commits from v0.8.9..dev. Contributors: @Yeachan-Heo, @HaD0Yun.
- Release-critical regression coverage and test-environment isolation — expanded CLI auto-update regression coverage across success, decline, failure, and already-up-to-date paths, and hardened CLI/OpenClaw integration suites against ambient
CODEX_HOMEleakage so release validation stays deterministic. (direct commitaedd068— @Yeachan-Heo)
- Root prompt contracts now bias more explicitly toward direct execution and evidence-backed verification — tightened the top-level
AGENTS.md/ template contracts and simplified core prompt surfaces while preserving workflow, team, and verification guarantees. (PR #646 — @HaD0Yun) - Local development artifacts are now ignored by git —
.codex/andcoverage/are ignored to avoid committing local session state and generated coverage data. (direct commit3149747— @Yeachan-Heo)
- Auto-update now refreshes OMX setup immediately after a successful global install — successful
omxself-updates now force a setup refresh so prompts, skills, andAGENTS.mdstay in sync without a separate manual refresh. (PR #648 — @Yeachan-Heo) - tmux Enter submission is more reliable in alternate-screen UIs — added a settle delay before the first
C-msubmit and mirrored that protection in the hook extensibility tmux submission path. (PR #649 — @Yeachan-Heo, fixes #647)
2 non-merge commits from v0.8.8..dev. Contributor: @Yeachan-Heo.
- Team worker startup now uses per-role instruction surfaces end-to-end — routed worker roles now persist into live team config/identity, compose per-worker startup
AGENTS.mdfiles from the resolved role prompt, and continue to apply role-based default reasoning unless explicit launch overrides are present. (PR #643)
- Scaled task bootstrap now persists canonical task state before worker handoff — dynamic scale-up writes new tasks through canonical team state first, preserving stable task ids/owners/roles for worker inboxes and role resolution instead of reconstructing synthetic task metadata during bootstrap.
5 non-merge commits from main..dev. Contributor: @Yeachan-Heo.
- Anti-slop workflow and catalog wiring — added the anti-slop workflow contract to root/template guidance, introduced a dedicated
ai-slop-cleanerskill, and updated catalog manifests/tests so the new workflow is part of the generated skill surface. (PR #634) - Per-teammate reasoning-effort allocation for team runs — team orchestration can now resolve reasoning effort per worker, with updated runtime/model-contract behavior plus regression coverage for runtime, tmux-session, and model selection paths. (PR #642)
- Team launch/model contracts were tightened — worker launch args, scaling paths, tmux session handling, and README / skill guidance were adjusted so teammate-specific reasoning effort is propagated more consistently during team execution.
- Deep-interview auto-approval injection is now lock-protected — keyword detection and notify-hook auto-nudge paths were hardened so deep-interview auto-approval injection stays bounded, with expanded regression coverage around notify-hook modules and keyword routing. (PR #637)
- Published npm bin path normalization — normalized the package bin path contract and updated the package-bin regression test to keep the published
omxentrypoint aligned. (PR #638) - Worker role reservation remains team-only — prompt-guidance contract enforcement now reserves the worker role for team mode explicitly, backed by routing regression coverage.
12 non-merge commits from v0.8.6..dev. Contributors: @Yeachan-Heo, @HaD0Yun, @marlocarlo.
- Prompt-guidance contract docs and reusable fragments — added a first-class prompt-guidance contract document, reusable guidance fragments, a sync script, and shared contract test helpers so root instructions, templates, and prompts can stay aligned more systematically. (PR #620 — @Yeachan-Heo)
- Team hardening benchmark and deeper runtime/worktree coverage — added a dedicated hardening benchmark plus broader runtime, state, worktree, and end-to-end regression coverage for expired-claim recovery and worker hygiene. (PR #624 — @HaD0Yun)
- Centralized MCP stdio lifecycle bootstrap — state, memory, code-intel, trace, and team MCP servers now share a common
autoStartStdioMcpServerhelper and a dedicated lifecycle regression suite for idle teardown. (PR #626, #627 — @Yeachan-Heo) - Package-bin contract coverage for global installs — added an explicit contract test to keep the published npm bin path aligned with global
omxinstallation behavior. (PR #633 — @Yeachan-Heo)
- Prompt surfaces were normalized around contract-driven XML structure — prompt guidance validation was centralized, shared fragments were extracted, all agent prompts were migrated from Markdown-style headings to XML-tag structure, and the 2-layer orchestrator/role-prompt model was clarified across docs, templates, and config generation. (PR #619, #623 — @HaD0Yun)
- Fast-path agent reasoning defaults were rebalanced — analyst, planner, and related fast-lane agent defaults were tuned downward to better match their intended operating posture.
- Windows native startup and tmux capability detection — OMX now checks tmux capability instead of hard-blocking on
win32, supportspsmux, uses Windows-appropriate command resolution where needed, and documents the platform setup path more clearly. (PR #616 — @marlocarlo) - Leader-only orchestration boundaries in prompt surfaces — worker-facing and role-specific prompts now preserve leader orchestration responsibilities more explicitly, with regression coverage for the boundary contract. (PR #625 — @HaD0Yun)
- npm global-install bin contract — corrected the published
omxbin path entry inpackage.jsonand locked it down with a dedicated contract test for packed tarballs and global installation behavior. (PR #633 — @Yeachan-Heo)
4 non-merge commits from main..dev. Contributor: @Yeachan-Heo.
- Event-aware team waiting and canonical event normalization — team runtime/state handling now includes additive
wake_on=event/after_event_idwaiting inomx_run_team_wait, shared event normalization/cursor helpers, canonical event typing across runtime/state/API layers, and newomx team await <team-name>CLI support. Runtime now emitsworker_state_changedwhile preserving legacyworker_idlecompatibility. (PR #609 — @Yeachan-Heo) - GPT-5.4 prompt-guidance rollout across core prompt surfaces — root/template
AGENTS.md, executor/planner/verifier prompts, generateddeveloper_instructions, and regression coverage were updated to encode compact output defaults, low-risk follow-through, localized task-update overrides, and dependency-aware tool persistence more explicitly. (PR #611 — @Yeachan-Heo, addresses #608) - GPT-5.4 prompt-guidance expansion across the wider prompt catalog and execution-heavy skills — the same guidance was extended across the remaining agent prompts plus execution-heavy skills including
analyze,autopilot,plan,ralph,ralplan,team,ultraqa,code-review,security-review, andbuild-fix, with scenario-focused regression coverage added for prompt catalogs, wave-two guidance, and skill contracts. (PR #612 — @Yeachan-Heo, follow-up to #611)
- Leader follow-up, watcher drain visibility, and idle/nudge coordination — team leader follow-up behavior was hardened without repurposing worker-only nudges; watcher/dispatch drain liveness is now surfaced more clearly in runtime/state paths, with stronger regression coverage for event-mode wait, dispatch dedupe, all-workers-idle, and leader notification flows. (PR #609)
team-opsgateway contract regression — removed an accidentalteamEventLogPathre-export so the strictteam-opscontract remains stable after the event-aware waiting changes. (PR #610)
7 non-merge commits from v0.8.4..dev. Contributors: @Yeachan-Heo, @HaD0Yun, @sjals93.
- Posture-aware agent routing — agents now carry Sisyphus-style posture metadata (
frontier-orchestrator,deep-worker,fast-lane) that separates role, reasoning tier, and operating style. Native agent configs include## OMX Posture Overlay,## Model-Class Guidance, and## OMX Agent Metadatasections. (PR #588, #592 — @HaD0Yun) - Maintainers section added to README with @Yeachan-Heo and @HaD0Yun.
- Windows ESM import crash —
bin/omx.jsnow converts absolute paths tofile://URLs beforeimport(), fixingERR_UNSUPPORTED_ESM_URL_SCHEMEon Windows. (PR #589 — @sjals93, fixes #557) - tmux capture-pane history flag — replaced invalid
-lflag with the correct-Snegative-offset form socapture-paneactually returns recent output. (PR #593, fixes #591) - Legacy model alias cleanup — removed stale
gpt-5.3-codex/o3references from 15 prompt files and runtime agent metadata generation, preventing confusion when posture routing is active. (part of PR #592)
Generated from v0.8.3..dev (non-merge commits) and release validation on dev.
- Bumped package version to
0.8.4. omx setupnow refreshes managed OMX artifacts by default while preserving backups of overwritten files where applicable.
- Setup refresh coverage for managed artifact replacement, scope-aware updates, and uninstall compatibility paths.
- Setup now prompts before upgrading managed Codex model references from
gpt-5.3-codextogpt-5.4, reducing surprise config churn during refreshes. - Config generation and setup refresh flows are more idempotent and resilient across repeated runs and scoped installs.
- Refreshed setup guidance in the README to document the new refresh/upgrade behavior.
- Hardened the notify-fallback watcher streaming test to wait for watcher shutdown before temp-directory cleanup during full-suite runs.
- Removed an unused setup overwrite prompt code path caught by the
check:no-unusedrelease gate.
Generated from the Gemini worker hotfix on dev, plus release-validation hardening and verification on dev.
- Bumped package version to
0.8.3.
- Team runtime now seeds Gemini workers with a prompt-interactive launch (
--approval-mode yolo -i <inbox prompt>) instead of relying on stdin-only startup behavior (#585). - Gemini workers now drop non-Gemini default model passthroughs unless an explicit Gemini model was requested, preventing invalid mixed-provider startup args (
#585). - Expanded runtime and tmux-session coverage for Gemini prompt-mode worker startup and argument translation (
#585).
- Hardened the notify-fallback watcher streaming test to wait for watcher readiness before asserting EOF-tail behavior during full-suite runs.
Generated from v0.8.1..main (non-merge commits) and release validation on main.
- Gemini CLI worker support for OMX team mode, including mixed CLI maps and
--modelpassthrough (#576,#579, related issue#573). - Default frontier-model fallback is now centralized through
DEFAULT_FRONTIER_MODEL(currentlygpt-5.4) instead of hardcoded references (#583). configure-notificationsis now the canonical shipped notification-setup skill, with catalog/setup behavior aligned to match docs (#584).
- Bumped package version to
0.8.2. - Setup/install now follows the catalog manifest more strictly and
--forcecleans stale shipped / legacy notification skill directories (#575,#580,#584, closes#574). - Expanded OpenClaw integration docs and localized navigation links (
#571).
omx setupnow skips writing the deprecated[tui]section for Codex CLI>= 0.107.0(#572, fixes#564).- Prevented unresolved placeholder leakage in OpenClaw hook instruction templates (
#581, closes#578). - Hardened explicit multi-skill ordering and blocked implicit keyword auto-activation for direct
/prompts:<name>invocations (#582).
- Aligned notification skill inventory/docs with the canonical
configure-notificationsmodel and improved prior release-note readability.
Generated from 4141fd6..HEAD (non-merge commits) and release validation on dev.
- Team CLI interop API (
omx team api ...) with hard deprecation of legacyteam_*MCP tools. - Finalized CLI-first team interop/dispatch reliability flow.
- Bumped package version to
0.8.1. - Refactored notification setup into a unified
configure-notificationsflow. - Updated docs to prefer the CLI-first team protocol + interop contract.
- Enforced CLI-first dispatch policy and removed dead state-server helpers.
- OpenClaw command timeout is now configurable with bounded safety limits.
- Added comprehensive team API interop tests for coverage gating.
- Added configure-notifications setup guidance to README.
- Expanded OpenClaw docs with token/command safety guidance and a dev runbook.
Generated from v0.7.6..dev (non-merge commits) and release validation on dev.
- New canonical provider advisor command:
omx ask <claude|gemini> "<prompt>". - Ouroboros-inspired ambiguity-gated deep interview workflow (
$deep-interview) for requirement clarification. - Required pre-context intake gates for execution-heavy flows (autopilot, ralph, team, ralplan, and deep-interview preflight).
- New
$web-cloneskill for URL-driven website cloning and verification loops. - Built-in
ask-claudeandask-geminiskills in the catalog. - Visual-verdict feedback loop support for visual Ralph iterations.
- Bumped package version to
0.8.0. ask-claudeandask-geminiskill guidance now routes to canonicalomx ask ...usage.- Ask docs/CLI parsing now explicitly align with provider help flags (
claude --print|-p,gemini --prompt|-p). - Legacy wrapper/npm script entrypoints remain available as transitional compatibility paths with migration hints.
- Refactored team state facade into bounded modules and extracted canonical state-root resolution.
- Improved CLI behavior around
omx ralph --prd,--versionrouting, and PRD-focused help guidance. - Hardened runtime quality/performance/concurrency paths (dispatch polling backoff, notepad atomicity, scaling rollback, shutdown guards).
- Closed multiple security issues (including shell-injection vector replacement and security hardening sweep).
- Fixed launch worktree reuse to gracefully handle pre-existing paths.
- Fixed team claim lifecycle contract enforcement (
releaseTaskClaimtoken validation) and worker bootstrap lifecycle docs. - Fixed
writeAtomicENOENT masking behavior and team rebase/typecheck regressions. - Fixed onboarding warning copy clarity in
omx doctor. - Fixed missing pre-context gate text for team/ralplan skill docs.
- Added Node
20/22CI matrix for core checks. - Added required CI lint gate and team/state coverage gate with reporting.
- Expanded tests for idle nudge branch/throttle behavior and team ops contracts.
- Completed multilingual README translations for all 12 languages.
- Package version bumped to
0.7.6after0.7.5publication.
- Detailed release notes prepared in
docs/release-notes-0.7.6.md, including smoke verification evidence.
Generated strictly from commit logs in main..dev:
- Commit window: 26 non-merge commits (
2026-02-28to2026-03-02) - Diff snapshot (
main...dev): 55 files changed, +4,437 / -242 - Source commands:
git rev-list --no-merges --count main..devgit diff --shortstat main...devgit log --no-merges --date=short --pretty=format:'%ad %h %s' --reverse main..dev
c235a5afeat(team): add dedicated ralph auto-run cleanup policy (#407) (#412)1653aa7feat(team): add dedicated tmux session mode for worker isolation (#416)7413fe3feat(team): add per-worker role routing and task decomposition
0c68a02docs: OpenClaw integration guide for notifications (#413)56091a4ci: add CI Status gate job for branch protection (#423)3f6b3fdrefactor(mcp): extract omx_run_team_* to dedicated team-server.ts (#431)6c1c4ebdocs(changelog): update unreleased notes for main...dev
8d3fef0fix(notifications): native OpenClaw gateway support (#414) (#415)383d79dfix(tmux): source shell profile (.zshrc/.bashrc) for detached session launchd4f6803fix(team): revert dedicated tmux session mode, restore split-pane default576ec9cfix(ralph): exclude option values from CLI task description (#424)6eed3c6fix(notify-hook): add structured logging for visual-verdict parse/persist failures (#428)b5dc657fix(team): fix 3 regressions in team/ralph shutdown and resume paths (#430)c3d1220fix(team): switch dedicated tmux session to opt-in with worker location hint (#432)454e69dfix(team): force cleanup on failed/cancelled runs, await worktree rollback, refresh dead-worker panes (#438)c8632fafix(team): fix leader pane targeting in notify-hook dispatch and runtime fallback (#433, #437) (#439)587ec94fix(team): harden autoscaling pane cleanup and teardown12dea24fix(team): preserve layout during scale-up and add regression testf5d47f4fix(tmux): skip injection when pane returns to shell (#441) (#442)cc64635fix(tmux): target correct session when spawning team panesd33ecfcfix(team): remove unused symbols flagged in PR reviewf0cc833fix(tmux): restore injection when scoped mode state is missingbaeb8e7fix(skills): restore visual-verdict contract and ralph visual-loop guidancee0c5974fix(skills): normalize forked OMC references to OMX canonical paths
ee72e1fRevert "fix(team): switch dedicated tmux session to opt-in with worker location hint (#432)"a5f2b77Revert "fix(skills): restore visual-verdict contract and ralph visual-loop guidance"
2026-02-28c235a5afeat(team): add dedicated ralph auto-run cleanup policy (#407) (#412)2026-02-288d3fef0fix(notifications): native OpenClaw gateway support (#414) (#415)2026-03-011653aa7feat(team): add dedicated tmux session mode for worker isolation (#416)2026-03-010c68a02docs: OpenClaw integration guide for notifications (#413)2026-03-01383d79dfix(tmux): source shell profile (.zshrc/.bashrc) for detached session launch2026-03-01d4f6803fix(team): revert dedicated tmux session mode, restore split-pane default2026-03-0156091a4ci: add CI Status gate job for branch protection (#423)2026-03-01576ec9cfix(ralph): exclude option values from CLI task description (#424)2026-03-016eed3c6fix(notify-hook): add structured logging for visual-verdict parse/persist failures (#428)2026-03-01b5dc657fix(team): fix 3 regressions in team/ralph shutdown and resume paths (#430)2026-03-013f6b3fdrefactor(mcp): extract omx_run_team_* to dedicated team-server.ts (#431)2026-03-01ee72e1fRevert "fix(team): switch dedicated tmux session to opt-in with worker location hint (#432)"2026-03-02c3d1220fix(team): switch dedicated tmux session to opt-in with worker location hint (#432)2026-03-02454e69dfix(team): force cleanup on failed/cancelled runs, await worktree rollback, refresh dead-worker panes (#438)2026-03-02c8632fafix(team): fix leader pane targeting in notify-hook dispatch and runtime fallback (#433, #437) (#439)2026-03-01587ec94fix(team): harden autoscaling pane cleanup and teardown2026-03-0212dea24fix(team): preserve layout during scale-up and add regression test2026-03-02f5d47f4fix(tmux): skip injection when pane returns to shell (#441) (#442)2026-03-027413fe3feat(team): add per-worker role routing and task decomposition2026-03-02cc64635fix(tmux): target correct session when spawning team panes2026-03-02d33ecfcfix(team): remove unused symbols flagged in PR review2026-03-02f0cc833fix(tmux): restore injection when scoped mode state is missing2026-03-02baeb8e7fix(skills): restore visual-verdict contract and ralph visual-loop guidance2026-03-02a5f2b77Revert "fix(skills): restore visual-verdict contract and ralph visual-loop guidance"2026-03-026c1c4ebdocs(changelog): update unreleased notes for main...dev2026-03-02e0c5974fix(skills): normalize forked OMC references to OMX canonical paths
55 files changed. Pipeline orchestrator, uninstall command, team dispatch hardening, and config idempotency.
- Configurable pipeline orchestrator with stage-based execution (ralph-verify, ralplan, team-exec) (#398).
omx uninstallcommand with--dry-run,--keep-config,--purge, and--scopeoptions (#389).- Openclaw dispatcher passes originating channel context to webhook hooks (#387).
- CLI subcommand
--helpflag now shows help text instead of executing the command (#404). - Team idle/dispatch detection parity between Claude and Codex workers (#402).
- Team dispatch lock timeout and binary path mismatch resolved (#401).
- Team dispatch retries on Codex trust prompt instead of rolling back (#395).
- Team dispatch draft consumption verified before marking notified (#392).
- Config generator prevents duplicate OMX blocks on repeated
omx setup(#386). - Team operator docs now clarify Claude-pane Enter (
C-m) can queue while busy and document state-first/safe manual intervention guidance for$team.
- Deprecated ultrapilot, pipeline, and ecomode modes (#399).
- Removed unused
DEPRECATED_MODE_MAPfrom state-server. - Updated pipeline test state file paths and regenerated catalog.
- Added links to CLI reference, notifications, and workflows in README.
Hotfix: team shutdown --force flag was not being parsed from CLI arguments.
- Team shutdown
--forceflag now correctly parsed from CLI args instead of being hardcoded tofalse(src/cli/team.ts). - Added
shutdown_gate_forcedaudit event when force-bypass is used, closing an observability gap in the event log.
- Updated usage string to document
[--force]option:omx team shutdown <team-name> [--force]. - Added
shutdown_gate_forcedtoTeamEventTypeunion andTEAM_EVENT_TYPESconstant.
4 files changed. Team dispatch reliability improvements — state-first routing with hook-preferred fallback.
- Team dispatch rewritten to be state-first and hook-preferred, improving reliability when leader pane targeting varies (#379).
- Leader mailbox delivery uses hook-preferred dispatch path for consistent message routing (#378).
- Leader fallback parity guarded to only target real pane destinations, preventing dispatch to stale or missing panes (#379).
- Hook dispatch reliability paths hardened with additional error guards and fallback sequencing (#378).
153 files changed, +12,852 / -1,044 lines. Major feature additions, comprehensive audit fixes, and hardened reliability.
- Dynamic team worker scaling — Phase 1 manual
scale_up/scale_downmid-session (#363). - Per-worker idle notification forwarded to leader pane (#335).
- Prompt-mode worker launch transport for interactive team workflows (#264).
- Worker model defaults resolved from config with
OMX_TEAM_WORKER_CLI_MAP(#263). - Worker hard cap raised to 20 (#343).
- Team shutdown gated on unresolved tasks to prevent premature teardown (#320, #322).
- MSYS2 / Git Bash tmux worker support (#266).
- Centralized team/state contracts module (
contracts.ts) for shared type definitions (#319, #323).
- RALPLAN-DR structured deliberation for consensus planning — planner + architect + critic loop (#366).
- Ralplan-first execution gate enforced: ralph blocks implementation until
prd-*.mdandtest-spec-*.mdexist (#261). - Task-size detector (
task-size-detector.ts) for pre-execution scoping guidance with dedicated test suite. - Keyword trigger registry (
keyword-registry.ts) as canonical single source of truth for all 31 keyword triggers.
- Full notification engine overhaul from OMC 4.5.x (#373): template engine, idle cooldown, hook-config types, session registry.
- Slack / Discord / Telegram env-var configuration via
buildConfigFromEnv(). - Reply listener per-channel gating and credential isolation for disabled channels.
- Skill-active lifecycle tracking in notify hook for auto-continuation (#262).
- Language reminder injection for non-Latin user input (#260).
- OpenClaw gateway integration (
src/openclaw/) for waking external automations and AI agents on hook events — config, dispatcher, and full test suite.
- Star-prompt CLI command (
star-prompt.ts) for prompt management with test coverage. - Setup simplified from 3 scopes to 2 (user, project) (#245).
- Setup prompts before overwriting existing AGENTS.md (#242).
- Setup
--forceoverwrite controls for both agents and skills installation (#275). - Repo name included in tmux session name for worktree launches (#360, #362).
- MCP bootstrap module (
bootstrap.ts) with auto-start guards (#317). - Memory validation layer (
memory-validation.ts) for project memory writes. includeDeclarationhonored inlsp_find_references(#299, #327).
- HUD watch render serialization to prevent overlapping writes (#274).
- Quota rendering (5-hour and weekly limit percentages) in focused preset.
- Session duration rendering (seconds / minutes / hours format).
- Last-activity rendering from hudNotify turn timestamps.
tsconfig.no-unused.json— dedicated config for unused-symbol CI gate (#312, #333).- Session lifecycle hooks with archive and overlay strip on exit.
- Direct coverage for key production modules (#321, #324).
- Dedicated hooks coverage for extensibility dispatcher and loader (#316).
KEYWORD_TRIGGERSderived fromKEYWORD_TRIGGER_DEFINITIONS— template and runtime registry always in sync, eliminating drift.- Team/swarm keyword detection tightened with intent-aware matching to avoid false triggers on natural language (#292, #356).
- Ralph contract enforces lifecycle invariants and integer counters (#355).
- Ralph contract validation enforced in direct state writers (#296, #353).
- State writes are atomic and serialized via file locking (#354).
- Max-iteration termination enforced in notify hook (#345).
- Canonical targets enforced for alias/merged catalog entries (#318, #344).
- Doctor diagnostics downgrade unattributed tmux orphan warnings (#277).
- HUD delayed reconcile fallback reduced from 10s to 2s.
- Removed unused HUD color helper exports (#280).
- Removed dead TS fallback path from CLI entrypoint (#283).
- Removed production dead code and added unused-symbol CI gate (#312, #333).
packageRootmade ESM-safe withoutrequire()(#310, #330).- Tmux hook engine type declarations synced with runtime exports (#313, #328).
- CI: Resolved typecheck (6 unused imports) and 7 test failures — HUD NaN/future timestamp handling, state mode validation, slack config
deepStrictEqual, keyword template-registry sync. - Team: Deterministic prompt worker teardown (#349). Verification protocol wired into runtime completion gates (#298, #351). False prompt-mode resume readiness prevented (#352). Shutdown continues when resize hook unregister fails (#302, #347). Team path guards for explicit state root.
- Ralph: Exclusive lock checks fail on malformed state (#357). Lifecycle invariants enforced in direct state writers (#296, #353).
- Notifications: Reply config validates and honors enabled channels (#281, #287). Notifier HTTP status and timeout checks enforced (#286). Slack config omits
mentionproperty when undefined. - Hooks: Plugin dispatch timeout resolution guaranteed (#269). Parent hook plugin import validation skipped correctly (#268). Keyword activation timestamp reset on skill switch (#290).
- Setup: Skill overwrite skipped unless
--force(#275). - Code Intelligence: AST-grep rewrites applied when
dryRun=false(#295, #358). - Code Simplifier: Untracked files included in selection (#308). CI test failures from
trim()andhomedir()resolved. - MCP: Notepad
daysOldbounds validated (#309, #334). - Config: Windows MCP server paths escaped in
mergeConfig(#307, #337). - Session: PID-reuse false positives in stale detection fixed (#338).
- Trace: Memory usage on large JSONL histories fixed (#336).
- Tmux: Hook indices clamped to signed 32-bit range (#240, #241). HUD resize noise quieted on macOS. Signed 32-bit hook hash coercion enforced (#265).
- Misc: Lifecycle best-effort failure warnings surfaced (#315, #346). Notify-hook cross-worktree tests isolated from inherited team env.
- MCP
workingDirectoryhandling hardened with validation and allowlist policy (#289). - Path traversal prevention for state and team tool calls with mode allowlist enforcement.
- HUD dynamic text sanitized to prevent terminal escape injection (#271).
- 1,472 tests across 308 suites — all passing.
- New test suites:
scaling.test.ts,task-size-detector.test.ts,session.test.ts,consensus-execution-handoff.test.ts,notify-hook-worker-idle.test.ts,template-engine.test.ts,hook-config.test.ts,idle-cooldown.test.ts,reply-config.test.ts,path-traversal.test.ts,memory-server.test.ts,memory-validation.test.ts,bootstrap.test.ts,code-intel-server.test.ts,openclaw/*.test.ts,star-prompt.test.ts,setup-agents-overwrite.test.ts,setup-skills-overwrite.test.ts,error-handling-warnings.test.ts,catalog-contract.test.ts. - Code-simplifier hook coverage made deterministic (#311, #348).
- Ralph persistence gate verification matrix in CI.
- Team Claude worker startup now explicitly launches with
--dangerously-skip-permissions, preventing interactive permission prompts during tmux team runs.
- Added regression coverage for the worker CLI override path to ensure Claude launch args are translated correctly and Codex-only flags are not forwarded.
- Client-attached HUD reconcile hook for detached-launch initial pane layout reconciliation.
- Hardened detached session resize hook flow to prevent race conditions when tmux windows drift.
- Hardened HUD/team resize reconciliation for consistent pane organization across attach/detach cycles.
- Reduced HUD delayed reconcile fallback from 10s to 2s for faster layout correction.
- Client-attached hook is now tracked and properly unregistered during rollback.
- Added tmux session and CLI sequencing tests for resize/reconcile paths.
- Team Claude worker launch now uses plain
claudewith no injected launch args, so localsettings.jsonremains authoritative. - Team startup resolution logging is now Claude-aware: Claude paths report
model=claude source=local-settingsand omitthinking_level.
- Clarified docs for Team worker CLI behavior in README and
skills/team/SKILL.mdto reflect plain-Claude launch semantics. - Added regression coverage to preserve Codex reasoning behavior while enforcing Claude no-args launch behavior.
- Added a new "What's New in 0.6.0" section to the docs site homepage with highlights for mixed Codex/Claude teammates and reliability updates.
- Clarified
skills/team/SKILL.mddocs thatN:agent-typeselects worker role prompts (not CLI choice), and documentedOMX_TEAM_WORKER_CLI/OMX_TEAM_WORKER_CLI_MAPusage for launching Claude teammates.
- Mixed team worker CLI routing via
OMX_TEAM_WORKER_CLI_MAPso a single$teamrun can launch Codex and Claude workers together (e.g.codex,codex,claude,claude). - Leader-side all-workers-idle nudge fallback for Claude teams, so leader notifications still fire even when worker-side Codex hooks are unavailable.
- Adaptive trigger submit retry guard helper and tests to reduce false-positive resend escalation.
- Team trigger fallback now uses a safer ready-prompt + non-active-task gate before adaptive resend.
- Adaptive retry fallback behavior now uses clear-line + resend instead of interrupt escalation in auto mode.
- Pre-assigned worker tasks can now be claimed by their assigned owner in
pendingstate, unblocking Codex worker bootstrap claim flow. OMX_TEAM_WORKER_CLI_MAPparsing now rejects empty entries and reports map-specific validation errors.OMX_TEAM_WORKER_CLI_MAP=autonow resolves from launch args/model detection and no longer inheritsOMX_TEAM_WORKER_CLIoverrides unexpectedly.- Team leader nudge targeting now prioritizes
leader_pane_id, improving reliability with mixed/Claude worker setups.
- Native worktree orchestration for team mode: Workers now launch in git worktrees with canonical state-root metadata, enabling true isolation for parallel team workstreams.
- Cross-worktree team state resolution: MCP state tools and the notify hook resolve team state across worktrees, so the leader always sees the correct shared state regardless of which worktree a worker is running in.
omx ralphCLI subcommand:omx ralph "<task>"starts a ralph persistence loop directly from the command line, removing the need to manually invoke the skill inside a session (closes #153).- Scoped ralph state with canonical persistence migration: Ralph state is now scoped per session/worktree and migrated from legacy flat paths to the canonical
.omx/state/sessions/layout automatically. - Claim-safe team transition tool for MCP interop: New
team_transition_taskMCP tool applies state transitions atomically with claim-token verification, preventing race conditions between concurrent workers. - Clean tmux pane output before notifications: Notification content is sanitized (ANSI escapes, tmux artifacts stripped) before being sent to notification integrations, eliminating garbled messages.
- Startup codebase map injection hook: Session start injects a lightweight file-tree snapshot into the agent context so workers have structural awareness of the project without extra exploration turns (closes #136).
notify-hook.jsrefactored into layered sub-modules: The monolithic hook script is split into focused modules (event routing, tmux integration, notification dispatch) for maintainability and easier extension (closes #177).ralplandefaults to non-interactive consensus mode: The planning loop no longer pauses for interactive prompts by default; pass--interactiveto restore the prompt-gated flow (closes #144).- Removed
/researchskill: The$researchskill has been fully removed. Use$scientistfor data/analysis tasks or$external-contextfor web searches (closes #148).
- Command injection in
capturePaneContentprevented by switching from string shell interpolation to a safe argument array (closes #156). - Command injection in notifier fixed by replacing
execstring interpolation withexecFile+ args array (closes #157). - Stale/reused PID risk in reply-listener: The process-kill path now verifies process identity before sending signals, preventing an unrelated process from being killed if a PID is recycled (closes #158).
- Path traversal in MCP state/team tool identifiers: Tool inputs are validated and normalized to prevent
../escapes from reaching the filesystem (closes #159). - Untracked files excluded from codebase map to prevent accidental filename leakage of unintended files into agent context.
- Claim lease expiry enforced in task transition and release flows — expired claims are rejected before any state mutation (closes #176).
- Duplicate
task_completedevents frommonitorTeameliminated; events are deduplicated at the source (closes #161). claimTaskreturnstask_not_found(not a generic error) for missing task IDs, improving worker error handling (closes #167).- Claims on already-completed or already-failed tasks are rejected upfront (closes #160).
- Ghost worker IDs (workers that no longer exist) are rejected in
claimTask(closes #179). - Terminal → non-terminal status regressions in
transitionTaskStatusare blocked; once a task reachescompleted/failed, its status cannot be unwound. - In-progress claim takeover prevented when
expected_versionis omitted from the request (closes #173). releaseTaskClaimno longer reopens a terminal task — release on a completed/failed task is a no-op (closes #174).task_failedevent is now emitted instead of the misleadingworker_stoppedevent on task failure (closes #171).team_update_taskrejects lifecycle field mutations (status,claimed_by) that arrive without a valid claim token (closes #172).updateTaskpayload validation added to prevent partial/corrupted task objects from being persisted (closes #163).team_leader_nudgeadded to theteam_append_eventMCP schema enum so the nudge event passes schema validation (closes #175).- Canonical session names used consistently in
getTeamTmuxSessions(closes #170).
--worktree <name>space-separated argument form is now consumed correctly; previously the branch name was silently dropped (closes #203).- Orphan
--modelflag dropped from worker argv to prevent duplicate flags causing Codex CLI parse errors (closes #162). spawnSyncsleep replaced withAtomics.waitso timing delays work reliably even when thesleepbinary is absent (closes #164).
- Copy-mode scroll and clipboard copy re-enabled in
xhigh/madmaxtmux sessions (closes #206). - Thin orchestrator restored in
notify-hook.jsafter refactor inadvertently removed it (closes #205).
ajvpinned to>=8.18.0andhonoto>=4.11.10via npmoverridesto resolve transitive vulnerability advisories.
listTasksfile reads parallelized withPromise.all, reducing task-list latency for teams with many tasks (closes #168).
- Consolidated the prompt/skill catalog and hardened team runtime contracts after the mainline merge (PR #137).
- Added setup scope-aware install modes (
user,project) with persisted scope behavior. - Added spark worker routing via
--spark/--madmax-sparkso team workers can usegpt-5.3-codex-sparkwithout forcing the leader model. - Added notifier verbosity levels for CCNotifier output control.
- Updated setup and docs references to match the consolidated catalog and current supported prompt/skill surfaces.
- Hardened tmux runtime behavior, including pane targeting and input submission reliability.
- Hardened tmux pane capture input handling (post-review fix).
- Removed stale references to removed
scientistprompt andpipelineskill (post-review fix).
- Removed deprecated prompts:
deep-executor,scientist. - Removed deprecated skills:
deepinit,learn-about-omx,learner,pipeline,project-session-manager,psm,release,ultrapilot,writer-memory.
- Added code-simplifier stop hook for automatic refactoring.
- Registered OMX agents as Codex native multi-agent agent roles.
- Fixed team mode notification spam with runtime tests.
- Removed deprecated
collabflag from generated config. - Fixed tmux session name handling.
- Added broader auto-nudge stall detection patterns (for example: "next I can", "say go", and "keep driving") with a focused last-lines hot zone.
- Added worker-idle aggregation notifications so team leaders are alerted when all workers are idle/done (with cooldown and event logging).
- Added automatic tmux mouse scrolling for team sessions (opt-out via
OMX_TEAM_MOUSE=0).
- Fixed worker message submission reliability by adding settle/delay timing before and during submit key rounds.
- Fixed CLI exit behavior by awaiting
main(...)inbin/omx.jsso/exitterminates cleanly. - Replaced deprecated
collabfeature references withmulti_agentacross generator logic, docs, and tests.
- Added coverage for
all workers idlenotify-hook behavior and expanded auto-nudge pattern tests. - Added new unit suites for hook extensibility runtime, HUD rendering/types/colors, verifier, and utility helpers.
- Added tests for tmux mouse-mode enablement behavior.
- Added hook extensibility runtime with CLI integration.
- Added example-event test coverage for hook extensions.
- Standardized tmux
send-keyssubmission toC-macross the codebase.
- Updated planner handoff guidance to use actionable
$ralph/$teamcommands instead of the removed/oh-my-codex:start-workcommand. - Updated team skill docs to describe team-scoped
worker-agents.mdcomposition (no projectAGENTS.mdmutation).
- Preserved and restored pre-existing
OMX_MODEL_INSTRUCTIONS_FILEvalues during team start rollback/shutdown to avoid clobbering leader config.
- Fixed
omxnot launching tmux session when run outside of tmux (regression in 0.3.7).
- Added guidance schema documentation for AGENTS surfaces in
docs/guidance-schema.md. - Added stronger overlay safety coverage for worker/runtime AGENTS marker interactions.
- Added broader hook and worker bootstrap test coverage for session-scoped behavior.
- Defaulted low-complexity team workers to
gpt-5.3-codex-spark. - Improved
omxCLI behavior for session-scopedmodel_instructions_filehandling. - Hardened worker bootstrap/orchestrator guidance flow and executor prompt migration.
- Improved HUD pane dedupe and
--helplaunch behavior in tmux workflows.
- Fixed noisy git-branch detection behavior in non-git directories for HUD state tests.
- Fixed merge-order risk by integrating overlapping PR branches conservatively into
dev.
- Added pane-canonical tmux hook routing tests for heal/fallback behavior.
- Added shared mode runtime context wrapper to capture mode tmux pane metadata.
- Added tmux session name generation in
omx-<directory>-<branch>-<sessionid>format.
- Switched tmux hook targeting to pane-canonical behavior with migration from legacy session targets.
- Improved tmux key injection reliability by sending both
C-mandEntersubmit keys. - Updated
tmux-hookCLI status output to focus on pane tracking with legacy session visibility. - Bumped package version to
0.2.2.