Skip to content

fix(scripts): replace sed -i with perl for macOS compatibility#2179

Merged
Yeachan-Heo merged 1 commit intoYeachan-Heo:devfrom
jonckr:fix/sync-version-macos-sed
Apr 5, 2026
Merged

fix(scripts): replace sed -i with perl for macOS compatibility#2179
Yeachan-Heo merged 1 commit intoYeachan-Heo:devfrom
jonckr:fix/sync-version-macos-sed

Conversation

@jonckr
Copy link
Copy Markdown

@jonckr jonckr commented Apr 5, 2026

Summary

  • sync-version.sh uses sed -i "s/..." which is GNU sed syntax
  • On macOS, BSD sed -i requires a backup extension argument (e.g., sed -i '' "s/...")
  • Without it, BSD sed treats the substitution pattern as the backup extension, causing silent failure or corrupted files
  • The rest of the codebase (setup-claude-md.sh) already uses perl for cross-platform text manipulation

Fix

Replace all 3 sed -i calls with perl -i -pe, which behaves identically on both GNU/Linux and macOS. The regex patterns are unchanged.

Test plan

  • Verified perl -i -pe produces identical output on macOS
  • Confirmed regex patterns are preserved exactly
  • No sed -i calls remain in the file

BSD sed on macOS requires a backup extension argument with -i (e.g.,
sed -i '' "s/..."), while GNU sed does not. Without it, the substitution
pattern is treated as the backup extension, causing silent failure.

The rest of the codebase (setup-claude-md.sh) already uses perl for
cross-platform text manipulation. Align sync-version.sh with that
pattern.
@chatgpt-codex-connector
Copy link
Copy Markdown

Codex usage limits have been reached for code reviews. Please check with the admins of this repo to increase the limits by adding credits.
Repo admins can enable using credits for code reviews in their settings.

@Yeachan-Heo
Copy link
Copy Markdown
Owner

CI green, merge-ready.\n\n—\n*[repo owner'''s gaebal-gajae (clawdbot) 🦞]*

@Yeachan-Heo Yeachan-Heo merged commit df7f884 into Yeachan-Heo:dev Apr 5, 2026
6 of 8 checks passed
Yeachan-Heo added a commit that referenced this pull request Apr 5, 2026
This restores the pre-jonckr runtime, hook, and team behavior by
reverting the five owner-scoped merge commits on top of origin/dev.
The rollback stays narrowly focused on the affected source/script
surfaces so reviewers can audit the history against the original PRs.

Constraint: Owner-directed rollback to pre-jonckr runtime behavior after CI/base-red fallout
Constraint: Must revert merge commits #2175 #2176 #2177 #2178 #2179 with mainline parent 1 semantics
Rejected: Manual file-by-file rollback | weaker audit trail and easier to miss behavior edges
Rejected: Partial rollback that keeps #2177-#2179 fixes | conflicts with the requested rollback scope
Confidence: medium
Scope-risk: moderate
Reversibility: clean
Directive: Reassess the reverted hook contract, fd-cleanup, and macOS version-sync behavior before reintroducing any of these changes
Tested: npx vitest run src/team/__tests__/tmux-session.test.ts
Tested: npx vitest run src/__tests__/pre-tool-enforcer.test.ts src/__tests__/bedrock-lm-suffix-hook.test.ts
Tested: npx vitest run src/hooks/persistent-mode/stop-hook-blocking.test.ts
Tested: node version consistency check for package/plugin/marketplace versions
Tested: npx tsc --noEmit
Tested: npm run lint
Tested: npm run build
Tested: npm pack + local prefix install smoke (`omc --version`, `omc --help`)
Not-tested: Full `npm test -- --run` remains red on `src/__tests__/hooks-command-escaping.test.ts` with an unrelated Windows-style plugin-root path failure outside the reverted files
Related: PR #2175
Related: PR #2176
Related: PR #2177
Related: PR #2178
Related: PR #2179
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants