Skip to content

oh-my-openagent

v4.4.0 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 11d AI Coding Tools
βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’
This release patches 1 known CVE

Topics

ai ai-agents anthropic chatgpt claude claude-skills
+9 more
codex cursor gemini ide openai opencode orchestration tui typescript

Affected surfaces

breaking_upgrade

ReleasePort's take

Moderate signal
editorial:auto 11d

The release adds a /security-research team mode skill with exploitability calibration and CVSS v4.0 scoring, addressing multiple bug fixes across tooling components.

Why it matters: Introduces security‑focused research capabilities using CVSSβ€―v4.0 while fixing critical race conditions, configuration overrides, model handling, and Windows path issues that affect stability and reliability.

Summary

AI summary

Broad release touches Commit Summary, πŸͺŸ Cross-Platform Tooling Hardening, migration, and }.

Changes in this release

Security Medium

Adds /security-research team mode skill with exploitability calibration and CVSS v4.0 scoring.

Adds /security-research team mode skill with exploitability calibration and CVSS v4.0 scoring.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Breaking Medium

Removes top‑level `lsp` config key; migration required to `.opencode/lsp.json`.

Removes top‑level `lsp` config key; migration required to `.opencode/lsp.json`.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Bugfix Medium

Fixes parent-wake race condition that duplicated assistant streams.

Fixes parent-wake race condition that duplicated assistant streams.

Source: llm_adapter@2026-05-23

Confidence: high

β€”
Bugfix Medium

Restores Atlas model override when resolution fails.

Restores Atlas model override when resolution fails.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Allows multimodal-looker to trust any user‑specified vision model without provider declaration.

Allows multimodal-looker to trust any user‑specified vision model without provider declaration.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Prevents automatic rewrite of `openai/gpt-5.3-codex` to `gpt-5.4`.

Prevents automatic rewrite of `openai/gpt-5.3-codex` to `gpt-5.4`.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Reuses bundled ripgrep from OpenCode cache to avoid duplicate downloads.

Reuses bundled ripgrep from OpenCode cache to avoid duplicate downloads.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Locks Windows ast‑grep path matching to handle backslash and UNC suffixes consistently.

Locks Windows ast‑grep path matching to handle backslash and UNC suffixes consistently.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Preserves CJK terminal headers by avoiding NFC normalization mangling.

Preserves CJK terminal headers by avoiding NFC normalization mangling.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Makes late‑arriving session IDs clickable for TUI subagent entries.

Makes late‑arriving session IDs clickable for TUI subagent entries.

Source: llm_adapter@2026-05-23

Confidence: low

β€”
Bugfix Medium

Ensures `look_at` exits gracefully when child sessions produce no output.

Ensures `look_at` exits gracefully when child sessions produce no output.

Source: granite4.1:30b@2026-05-23-audit

Confidence: low

β€”
Bugfix Low

Respects `/stop-continuation` after boulder completion, preventing stray nudges.

Respects `/stop-continuation` after boulder completion, preventing stray nudges.

Source: granite4.1:30b@2026-05-23-audit

Confidence: low

β€”
Bugfix Low

Continues tool‑pair validation after repairing missing `tool_result` blocks in multi‑message conversations.

Continues tool‑pair validation after repairing missing `tool_result` blocks in multi‑message conversations.

Source: granite4.1:30b@2026-05-23-audit

Confidence: low

β€”
Full changelog

πŸ›‘οΈ /security-research β€” New Team Mode Skill

Spin up an adversarial 5-member security team in one command: 3 vulnerability hunters (surface, auth/data, runtime/supply) + 2 PoC engineers, all running in parallel. Every finding is calibrated by actual exploitability β€” no severity without an attack path. CWE classification + OWASP WSTG/ASVS methodology + CVSS v4.0 scoring built in.

/security-research

Requires team_mode.enabled: true in your oh-my-opencode.jsonc.

⚑ Parent-Wake Race Fixed β€” No More Duplicate Assistant Streams

Background-agent completion edges were duplicating parent-wake injections, occasionally starting a second assistant stream on the same task. The new parent-wake-dedupe layer catches this at BOTH the flush-time AND the prompt-async gate hold, so completion notifications now collapse to exactly one per logical event. (#4256 / #4019)

πŸ”§ Model Configuration Edge Cases Restored

Three fixes for users hitting model resolution corners:

  • Atlas honors your override even when resolution fails (cold cache, no system default). Instead of silently dropping Atlas, it now registers with your chosen model. (#4255)
  • multimodal-looker trusts your vision model β€” set agents.multimodal-looker.model to any provider/model and the vision-cache will accept it, no provider declaration needed. (#4209)
  • openai/gpt-5.3-codex stops getting auto-rewritten β€” the canonical Codex powerhouse is no longer mistakenly migrated to gpt-5.4. (#3777)

πŸͺŸ Cross-Platform Tooling Hardening

  • OpenCode-bundled ripgrep reused β€” ~/.cache/opencode/bin/rg is probed first, so we stop duplicate-downloading ripgrep when OpenCode already has it. (#3805)
  • Windows ast-grep path matching locked β€” backslash + UNC suffixes now match the dist CLI consistently. Regression test pins this. (#4220)
  • CJK terminal headers preserved β€” NFC normalization in oh-my-opencode run output stops Hangul/CJK from mangling. (#4170)

✨ TUI Quality of Life

  • Clickable subagent entries β€” late-arriving session IDs are now captured before metadata publish, fixing the perpetual-spinner subagent bug. (#4252)
  • look_at no longer hangs β€” child sessions that produce no output exit gracefully via allowStableIdleWithoutActivity instead of waiting for the 120s timeout. (#4238)
  • /stop-continuation respected after boulder completion β€” no more stray completion nudges fired after you explicitly stopped. (#4149)
  • tool-pair-validator continues after repair β€” multi-message conversations with missing tool_result blocks now repair every affected message in one transform pass. (#4123)

⚠ Breaking (cleanup): Top-level lsp Config Key Removed

Read this if your oh-my-opencode.jsonc had an lsp: block. If you did not, you can ignore this section.

The migration in this release explicitly removes the top-level lsp config key and creates a timestamped .bak file next to your config. Move your server definitions to project-root .opencode/lsp.json β€” the new home, consumed by the lsp MCP server (backed by packages/lsp-tools-mcp).

Why this looks like a break but isn't: this key was already being silently stripped by the Zod schema since v3.x β€” custom LSP servers in this location have not been functional for several releases. This migration just makes the loss visible (via log + .bak backup) so you can actually recover.

To restore your servers (one-time):

# 1. Find the most recent backup created by this migration
ls -t ~/.config/opencode/oh-my-opencode.jsonc.bak.* 2>/dev/null | head -1
# or in your project:
ls -t .opencode/oh-my-opencode.jsonc.bak.* 2>/dev/null | head -1

# 2. Open the .bak file, copy the `lsp: { ... }` contents into project-root
#    .opencode/lsp.json with this shape:
#    {
#      "$schema": "...",
#      "servers": {
#        "typescript": { "command": "typescript-language-server", "args": ["--stdio"] }
#      }
#    }

(#4225 / #4279)


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.
  • Task and tool behavior updates, including delegate-task contract and runtime registration behavior.

Commit Summary

  • 20d67be4 @EvangelosMoschou has signed the CLA in code-yeongyu/oh-my-openagent#4357
  • 5e2f12fd Merge pull request #4348 from Yeachan-Heo/omc-team/you-are-one-of-5-parallel-work/worker-4
  • 0c14c473 Merge pull request #4350 from Yeachan-Heo/omc-team/you-are-one-of-5-parallel-work/worker-3
  • f390d365 Merge pull request #4352 from Yeachan-Heo/fix/atlas-config-model-override-4255
  • 54513137 Merge pull request #4356 from Yeachan-Heo/fix/issue-3805-auto-tools-path
  • bfc50789 fix: trust user-configured multimodal-looker model for vision (#4209)
  • 779e2d2f fix(task): capture late-arriving sessionId so TUI subagent entry is clickable (#4252)
  • 7d444eed fix(agents): honor user atlas model when resolution returns undefined (#4255)
  • 6c691a1a fix(grep): probe OpenCode cache-backed bin for auto-downloaded rg (#3805)
  • c0a6c667 Merge pull request #4346 from code-yeongyu/fix/agent-loop-dedupe-race-4256
  • b3097e56 fix(background-agent): suppress redundant parent wakes
  • 2bfad490 feat(skills): add security-research orchestration
  • 1ecf4f64 @chouzz has signed the CLA in code-yeongyu/oh-my-openagent#4312
  • 01d21962 Merge pull request #4238 from islee23520/fix/look-at-status-map-hang
  • f511b4bc Merge pull request #4263 from YOMXXX/fix/gpt-5-3-codex-migration
  • d06a5d7a Merge pull request #4272 from YOMXXX/fix/ast-grep-windows-cli-suffix-test
  • 9da30095 Merge pull request #4279 from MoerAI/fix/migrate-orphan-lsp-config-key
  • 74db81df Merge pull request #4285 from SpencerJung/fix/issue-4123-tool-pair-retrigger
  • 6cac80fe Merge pull request #4290 from SpencerJung/fix/issue-4170-cjk-agent-header
  • 12d7d104 Merge pull request #4282 from SpencerJung/fix/issue-4149-terminal-continuation-guard
  • 6062df82 fix(migration): make 'lsp' migration guidance self-contained and update stale docs (addresses codex P2 on #4279)
  • ed4c04e5 fix(cli): preserve CJK agent header text
  • 28569307 fix(tool-pair-validator): continue after synthetic repairs
  • 7dae2711 fix(atlas): honor stopped continuation after boulder completion
  • a7429cc2 fix(migration): drop orphan 'lsp' config key so users see LSP moved to .opencode/lsp.json (fixes #4225)
  • ccaf61e0 test(ast-grep): lock Windows backslash matching for ast_grep dist cli suffix (#4220)
  • d788c3d1 fix(migration): stop rewriting explicit gpt-5.3-codex to gpt-5.4 (#3777)
  • c4a51bee Cover look_at permanently absent session output
  • b3a195d6 Avoid look_at status map wait hang

Thank you to 5 community contributors:

  • @islee23520:
    • Avoid look_at status map wait hang
    • Cover look_at permanently absent session output
  • @YOMXXX:
    • fix(migration): stop rewriting explicit gpt-5.3-codex to gpt-5.4 (#3777)
    • test(ast-grep): lock Windows backslash matching for ast_grep dist cli suffix (#4220)
  • @MoerAI:
    • fix(migration): drop orphan 'lsp' config key so users see LSP moved to .opencode/lsp.json (fixes #4225)
    • fix(migration): make 'lsp' migration guidance self-contained and update stale docs (addresses codex P2 on #4279)
  • @SpencerJung:
    • fix(atlas): honor stopped continuation after boulder completion
    • fix(tool-pair-validator): continue after synthetic repairs
    • fix(cli): preserve CJK agent header text
  • @Yeachan-Heo:
    • fix(grep): probe OpenCode cache-backed bin for auto-downloaded rg (#3805)

Breaking Changes

  • Top-level `lsp` config key removed; move definitions to `.opencode/lsp.json`

Security Fixes

  • /security-research adds calibrated exploitability assessment and CVSS v4.0 scoring closing unspecified abuse vectors

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track oh-my-openagent

Get notified when new releases ship.

Sign up free

About oh-my-openagent

omo; the best agent harness - previously oh-my-opencode

All releases β†’

Related context

Earlier breaking changes

  • v4.6.0 Removed broken direct public binary entrypoints from platform launcher packages, keeping them internal.
  • v4.6.0 Removed legacy context-window monitor hook path from active hooks and config surfaces.

Beta — feedback welcome: [email protected]