Skip to content

v4.16.1

Latest

Choose a tag to compare

@code-yeongyu code-yeongyu released this 09 Jul 09:45
f75227d

🩹 The ulw-loop Memory Leak Is Fixed

If a long ultrawork run ever ballooned your RAM or spun up a swarm of stuck bun processes, this release is for you. What looked like one "memory leak" was actually two separate bugs, and both are now gone:

  • Fork-bomb stopped. A broken install could make the omo runtime wrapper call itself in an infinite loop — wrapper → CLI → wrapper → … — spawning thousands of wedged processes until memory ran out. Delegation now carries a one-hop sentinel and refuses to target a generated wrapper, so the chain can never recurse.
  • Ledger no longer bloats. Every steering entry used to embed the full plan four times, so .omo/ulw-loop/ledger.jsonl grew quadratically over a long run. Entries now store a compact snapshot of only the goals that changed — a real 189 KB entry dropped to 7.8 KB (~24× smaller), and reads/dedup stream the file instead of loading it all into memory.
  • No more stuck child processes. The senpi ulw-loop status spawn no longer wedges on a full stderr pipe; it runs detached with a 30-second hard timeout.

🛠️ Release Pipeline Hardening

This version also repairs the publish pipeline itself: npm is pinned off a broken npm@12.0.0 (which crashed provenance publishing), and the release process now keeps the omo-senpi package version in lockstep with the root on every bump.

Plus the accumulated fixes since 4.16.0 — Bun runtime regression (#3824), planner correctness (#5481), pinned-version mismatch warnings (#4734), and more (see below).


Minor Compatibility and Stability Release

This release carries compatibility-facing behavior changes and operational hardening. Read the summary below before upgrading or publishing.

  • Rename transition updates across package detection, plugin/config compatibility, and install surfaces.
  • Install and publish workflow hardening, including safer release sequencing and package/install fixes.

Commit Summary

  • 9036899 fix(codex): show version in hook statuses
  • c754cab fix(codex): limit git bash hooks to windows
  • a4e29f5 Merge pull request #5993 from code-yeongyu/ci/pin-npm-sigstore
  • 8289997 ci(publish): pin npm to 11.18.0 to fix provenance sigstore crash
  • 06c8a71 Merge pull request #5990 from code-yeongyu/release/v4.16.1-source-state
  • f4b0dad Merge pull request #5989 from code-yeongyu/fix/ulw-loop-memory-fork-bomb
  • 0cbb0a5 fix(codex): guard ulw-loop delegation against fork bomb recursion
  • f7ea729 fix(codex): compact ulw-loop steering ledger to end quadratic growth
  • 7421e1b Merge pull request #5980 from code-yeongyu/code-yeongyu/fix-3824-bun-runtime-regression
  • 997d802 test(omo-opencode): audit raw bun module imports
  • 216301f Merge pull request #5979 from code-yeongyu/feature/xterm-tui-qa-harness
  • e3082fd fix(opencode): route Bun runtime calls through shims
  • 0806e41 docs(qa): route TUI visual evidence to the xterm.js web terminal, forbid tmux
  • 406ccdf feat(qa): render TUI evidence through real xterm.js + node-pty, not tmux
  • 8fe6674 Merge pull request #5974 from code-yeongyu/code-yeongyu/frontend-skill-research-contract
  • 0526d7c fix(shared-skills): scope the non-negotiable line to the design-system gate and tighten contract pins
  • 6aa29c7 fix(shared-skills): align stale 7-section pointers and unify the designpowers load condition
  • 8ec538b feat(shared-skills): promote the primitive-showcase gate and wire ui-ux-db sanity checks
  • 59748e6 feat(shared-skills): fold designpowers lane-c and a11y/debt schema into the default frontend flow
  • f21aff7 feat(shared-skills): make frontend greenfield research a logged deliverable contract
  • fa8e5bf Merge pull request #5965 from MoerAI/fix/lazycodex-ulw-planner-result
  • f39cc5b Merge pull request #5930 from MoerAI/fix/pretooluse-bash-command-cwd
  • baf722b Merge pull request #5783 from MoerAI/fix/version-check-warn-pinned-mismatch
  • 25ba306 Merge pull request #5755 from MoerAI/fix/ulw-loop-require-session-id-value
  • 8082b51 Merge pull request #5570 from MoerAI/fix/start-work-atlas-label
  • 66e826d Merge pull request #5357 from BenjaminHalko/fix/model-fallback
  • c4dfcde docs(omo-json): add a $schema-bearing example so the freshness gate validates it
  • 9537092 fix(codex): mirror planner barrier into ulw-loop (fixes #5481)
  • 8ad8a4f fix(codex): keep planner liveness guidance (fixes #5481)
  • bd99a5e fix(codex): preserve parallel planner waves (fixes #5481)
  • a70e667 fix(codex): prevent planning from outrunning spawned agents
  • 2fbc4b0 feat(omo-config-core): generated omo.schema.json artifact with freshness gate
  • 05288db Preserve Bash hook validation in the active worktree
  • d857891 Merge remote-tracking branch 'upstream/dev' into fix/model-fallback
  • 5684dc8 fix(runtime-fallback): clear internallyAbortedSessions on session teardown
  • ff5ee46 Merge remote-tracking branch 'origin/dev' into fix/start-work-atlas-label
  • 4bdb2a7 fix(cli): warn when a pinned plugin version differs from the running version (fixes #4734)
  • f2ed3b1 fix(ulw-loop): require a value for explicit --session-id (fixes #5752)
  • 4e1a4d7 Merge remote-tracking branch 'origin/dev' into fix/start-work-atlas-label
  • e7f5002 fix(start-work): name Atlas (not Sisyphus) in /start-work template and labels (fixes #5499)
  • 4e788f6 fix(runtime-fallback): stop subagent stall on provider auto-retry signal

Thank you to 2 community contributors:

  • @BenjaminHalko:
    • fix(runtime-fallback): stop subagent stall on provider auto-retry signal
    • fix(runtime-fallback): clear internallyAbortedSessions on session teardown
    • Merge remote-tracking branch 'upstream/dev' into fix/model-fallback
  • @MoerAI:
    • fix(start-work): name Atlas (not Sisyphus) in /start-work template and labels (fixes #5499)
    • Merge remote-tracking branch 'origin/dev' into fix/start-work-atlas-label
    • fix(ulw-loop): require a value for explicit --session-id (fixes #5752)
    • fix(cli): warn when a pinned plugin version differs from the running version (fixes #4734)
    • Merge remote-tracking branch 'origin/dev' into fix/start-work-atlas-label
    • Preserve Bash hook validation in the active worktree
    • fix(codex): prevent planning from outrunning spawned agents
    • fix(codex): preserve parallel planner waves (fixes #5481)
    • fix(codex): keep planner liveness guidance (fixes #5481)
    • fix(codex): mirror planner barrier into ulw-loop (fixes #5481)
    • Merge pull request #5357 from BenjaminHalko/fix/model-fallback
    • Merge pull request #5570 from MoerAI/fix/start-work-atlas-label
    • Merge pull request #5755 from MoerAI/fix/ulw-loop-require-session-id-value
    • Merge pull request #5783 from MoerAI/fix/version-check-warn-pinned-mismatch
    • Merge pull request #5930 from MoerAI/fix/pretooluse-bash-command-cwd
    • Merge pull request #5965 from MoerAI/fix/lazycodex-ulw-planner-result