github Yeachan-Heo/oh-my-claudecode v4.9.3
v4.9.3 — MCP Bridge Fix, 30+ Bug Fixes & Hardening

2 hours ago

oh-my-claudecode v4.9.3: MCP Bridge Fix, 30+ Bug Fixes & Hardening

🔥 Critical Fix

MCP bridge server crash on startupsetRequestHandler was extracted without .bind(server), causing this === undefined in strict mode. All MCP tools (state_clear, state_list_active, lsp_diagnostics) were broken in v4.9.2. Fixed. (#1979)

Release Notes

Hotfix release with 1 critical MCP fix, 30+ bug fixes, and release pipeline improvements across 32 merged PRs.

Highlights

  • fix: MCP bridge crash — unbound this in setRequestHandler (#1979)
  • fix(team): parse only complete lines in outbox-reader (#1982)
  • fix(hooks): escape regex metacharacters in detectPipelineSignal (#1977)
  • fix(lib): guard against prototype pollution in deepMerge (#1955)
  • fix(installer): strip corrupted markers to prevent mergeClaudeMd unbounded growth (#1966)

Bug Fixes

  • fix: bind server context in standalone MCP handler registration (#1979)
  • fix(team): parse only complete lines in outbox-reader (#1982)
  • fix(team): strip tmux- prefix and add claude to provider type (#1981)
  • fix(notifications): move clearTimeout to finally block in sendCustomWebhook (#1980)
  • fix(hud): preserve session fields when clearing background tasks (#1978)
  • fix(hooks): escape regex metacharacters in detectPipelineSignal (#1977)
  • fix(hooks): use correct field name for ralph mode in keyword-detector (#1970)
  • fix(lib): accept dots in extractRepoSlug for repos like next.js (#1976)
  • fix(hooks): clear timeout in finally block for session-start scripts (#1975)
  • fix(hud): add PID tracking to prevent session-summary process accumulation (#1974)
  • fix(team): count both failed and error tasks in team status (#1973)
  • fix(notifications): remove Slack fallback to prevent unrelated session injection (#1972)
  • fix(team): add locking to teamCreateTask for safe concurrent task creation (#1971)
  • fix(team): add file locking to removeWorkerWorktree metadata update (#1962)
  • fix(scripts): use tail reading in persistent-mode to prevent OOM on large transcripts (#1967)
  • fix(installer): strip corrupted markers to prevent mergeClaudeMd unbounded growth (#1966)
  • fix(tools): escape $ replacement patterns in AST grep replace (#1965)
  • fix(interop): add file locking to updateSharedTask (#1964)
  • fix(cli): increase generateJobId entropy from 4 to 8 hex chars (#1963)
  • fix(hud): propagate directory parameter to initializeHUDState (#1961)
  • fix(model-routing): replace require() with ESM import to prevent crash (#1960)
  • fix(lib): add RALPLAN to mode name maps (#1959)
  • fix(providers): include auth token in Gitea REST API fallback (#1957)
  • fix(notifications): add Slack user authorization with fail-closed pattern (#1956)
  • fix(lib): guard against prototype pollution in deepMerge (#1955)
  • fix(team): revert task to pending when tmux pane creation fails (#1940)
  • fix(lib): use atomicWriteJsonSync in mode-state-io to prevent race condition (#1938)
  • fix(hooks): return fresh:false for missing heartbeat file (#1937)
  • fix(setup): remove duplicate dev paths in plugin-setup (#1943)
  • fix(team): run dedup check before writing worker inbox (#1942)

Infrastructure

  • fix(release): add version sync hook to prevent satellite file drift
  • fix(release): generate fresh release notes at tag time (no more stale body)
  • fix(ci): sync version markers to 4.9.3

Stats

  • 32+ PRs merged | 30+ bug fixes | 1 critical MCP fix | 3 infrastructure improvements

Install / Update

npm install -g oh-my-claude-sisyphus@4.9.3

Or reinstall the plugin:

claude /install-plugin oh-my-claudecode

Full Changelog: v4.9.2...v4.9.3

Contributors

Thank you to all contributors: @sercankaya @riftzen-bit

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

NewReleases is sending notifications on new releases.