본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 06. 15. 15:19

oh-my-agent: vendor hook를 단일 ABI로 통합, oma-refactor 스킬 추가, hook 실행 시간을 0.54초에서

요약

oh-my-agent가 벤더 hook을 단일 ABI로 통합하고 리팩터링 전문 스킬인 oma-refactor를 추가했습니다. 에이전트 기능 강화, 보안 취약점 해결, 성능 최적화 등 다양한 업데이트가 포함되었습니다.

핵심 포인트

  • 벤더 hook을 단일 oma hook ABI로 통합하여 관리 효율성 증대
  • 코드 리팩터링 전문 스킬 oma-refactor 및 신규 에이전트 추가
  • SSRF, XSS 등 보안 취약점 개선 및 런타임 안정성 강화
  • 커맨드 트리 지연 로딩을 통한 hook 실행 속도 개선

이번 주 oh-my-agent는 7일 동안 175개의 커밋을 기록했으며, 릴리스는 CLI 8.42.0에서 9.0.2까지 진행되었습니다. 핵심은 벤더 hook 기반의 쇄신입니다. 지금까지 8개의 벤더에게 개별적으로 복사하던 hook 스크립트 군을 단일 oma hook ABI로 집약하였으며, 이와 함께 리팩터링 전문 스킬인 oma-refactor가 추가되었습니다.

oma hook ABI: 벤더별 스크립트 복사 방식을 폐지하고, oma hook --vendor <v> --event <e>의 단일 디스패치(dispatch)로 통합했습니다. hook 대응 8개 벤더 모두에서 로직의 실체가 한 곳으로 모입니다 -
oma-refactor 스킬: 동작을 바꾸지 않고 코드를 단계적으로 정리하는 리팩터링 (refactoring) 전문 스킬입니다. 코드 스멜(code smell)・SATD・핫스팟(hotspot)을 대상으로 선정하며, characterization test를 안전망으로 사용합니다. utility eval에서는 베이스라인 대비 +57.1%의 리프트(lift)를 확인했습니다 -
refactor-engineerresearch-explorer 2개의 에이전트 (agent)를 추가했습니다. 전자는 예산 범위가 지정된 리팩터링을, 후자는 출처와 신뢰 라벨이 포함된 크로스 소스(cross-source) 조사를 담당합니다 -
신규 벤더 대응: commandcode를 hook・에이전트・인증 탐지를 포함하여 지원하며, 멀티 프로바이더(multi-provider)의 proxy 런타임(runtime)인 pi를 per-agent 디스패치 대상으로 추가했습니다 -
serena-primer: Serena를 활성화한 프로젝트에서 세션 시작 시 symbolic 도구 이용 가이드를 주입하는 prompt handler입니다 -
oma ralph:verify: ralph 워크플로우의 EXEC 게이트를 절차서에 의존하는 체크에서 CLI를 통한 기계적인 판정으로 옮겼습니다. 부족한 아티팩트(artifact)와 대처 방법을 구조화된 JSON으로 반환합니다 -
oma update가 템플릿에는 존재하지만 사용자의 oma-config.yaml에는 없는 최상위 키(top-level key)를 자동으로 추가하게 되었습니다. 기존 키에는 손대지 않으며, 사용자의 기술은 바이트 단위로 유지됩니다 -
에이전트 ID를 retrieval에서 explore로 변경했습니다 (v9.0.0의 파괴적 변경). migration 014가 사용자의 config를 자동으로 다시 작성합니다 -
docs 검증의 오탐(false positive)을 크게 줄였습니다. 리포지토리 전체의 broken refs는 6,611건에서 394건으로, web/docs 서브셋(subset)은 491건에서 29건으로 줄었습니다 -
보안 강화로서, shell 문자열 실행을 execFileSync의 argv 전달 방식으로 교체하여 SSRF・경로 탐색(path traversal)・--inline-fonts의 XSS를 각각 차단했습니다 -
antigravity에서 사용자 등록 hook을 덮어써 버리는 문제를 수정했습니다. oma가 관리하는 엔트리(entry)만 머지(merge)하고, 사용자 정의는 그대로 남겨둡니다 -
크래시(crash)가 발생한 oma install / oma update가 남기는 락(lock) 회수를 최대 10분에서 60초로 단축했습니다 -
벤더가 stdin을 닫지 않을 경우 hook 디스패치가 18초 이상 블록(block)되는 문제를 2초의 fail-open 타임아웃으로 해결했습니다 -
워크플로우 이름에 언급하는 것만으로 ralph의 영속 모드(persistence mode)가 실행되는 오탐을, 프롬프트 언어에 의존하지 않는 판정 로직으로 근본적으로 수정했습니다

oma hook의 기동을 가속화했습니다. 커맨드 트리(command tree)의 지연 로딩(lazy loading)과 argv의 fast path를 통해 실행 시간이 약 0.54초에서 약 0.32초로 단축되었습니다 - 500행을 초과하는 비테스트 파일 28개를 서브모듈(submodule)로 분할했습니다. 최대 파일은 491행이며, 공개 API는 변경되지 않았습니다 (vitest 3043건 통과) -
15개 모듈에 중복되어 있던 isRecord 가드, 벤더별 auth probe 정형 코드, exit code 정의 등을 공통 모듈로 집약했습니다 - 5개 계통 이상에 흩어져 있던 백업 대상을 .agents/backup/ 하위로 통일했습니다. .gitignore는 한 줄로 해결되며, oma update 성공 후 자동으로 클리어(clear)됩니다 - cross-slice 경계 체크인 check-boundaries.mjs를 수리하여 CI 게이트로서 부활시켰습니다

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.sh | bash
# Windows (PowerShell)
irm https://raw.githubusercontent.com/first-fluke/oh-my-agent/main/cli/install.ps1 | iex

여러 코딩 에이전트 CLI를 하나의 SSOT (Single Source of Truth, 단일 진실 공급원)로 운영하고 있는 엔지니어, 특히 벤더(vendor)별 hook 동작의 차이나 리팩터링 (refactoring)의 안전성 문제로 고민하고 있는 분들에게 유용한 업데이트입니다. v9.0.0에서 explore가 명칭 변경됨에 따라, oma-config.yaml을 수동으로 편집하고 있다면 새로운 키 (key) 이름을 확인하시기 바랍니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0