Skip to content

merge: dev 를 main 으로 올린다 — Colima 전환 · 로컬 개발 · 릴리스 게이트 · bench 옵션 - #1046

Merged
riskpw merged 28 commits into
mainfrom
dev
Sep 30, 2026
Merged

riskpw merged 28 commits into
mainfrom
dev

Conversation

@roggyhan

Copy link
Copy Markdown
Contributor

무엇을

브랜치 dev 에 모인 것을 main 으로 올린다. 커밋 20개(머지 커밋 제외), 파일 36개.

묶음 커밋 내용
Colima 전환 4f88d902 3efbb373 80fa8769 d7dd81bf macOS 설치가 Docker Desktop 대신 전용 Colima VM 을 쓴다. docker 접속 규칙, MCP 샌드박스, virtiofs 1초 지연 대응, 설치 로그
로컬 개발 d7e83009 omk dev setup 이 환경 설치와 같은 함수로 검색·런타임 이미지·게이트웨이·기본 모델을 준비한다
환경 dev e7013893 fe77c32d 환경 dev 가 브랜치 dev 를 따른다. 브랜치 dev 가 없는 저장소는 --ref main 을 안내
릴리스 게이트 810400eb staging 에서 확인한 커밋만 online 에 (#1036 과 같은 내용)
bench 439a9908 bench 는 옵션을 줄 때만 설치 (#1033 과 같은 내용)
CI 9f5e43ea cd58f2a3 ccc710f4 dev 에서도 검사, shellcheck·Linux 테스트 수정
의존성 d292007b 967d28b1 e66213f5 fast-uri 3.1.8(high 권고 2건 — main 의 CI 가 Gate 0.7 에서 실패하던 원인), dependabot 2건(#1037 · #1040 과 같은 내용)
문서 d5264fb7 c44f826b 04a837d7 60decd73 fe977787 인수인계 문서, 브랜치 설명, 흐름 안내서(docs/architecture/env-flow.html), 장소 이름

머지되면 #1033 · #1036 · #1037 · #1040 은 같은 커밋이 main 에 들어가므로 함께 닫힌다.

왜 지금

환경 dev · staging 을 구축할 장비가 아직 준비되지 않았다. 구축될 때까지는 feature/* 를 main 으로 바로 PR 한다 —
그 전에 dev 에 쌓인 것을 main 에 맞춰 두지 않으면 두 브랜치가 갈라진다. 브랜치 dev 는 지우지 않고 둔다.

확인한 것

확인 결과
CI Gate 0~9 통과 — #1043(PR) 과 dev 의 push 양쪽
iOS · Companion 통과
bash scripts/env/omk.test.sh 205 통과 (macOS · Linux)
npm run audit:gate 통과 (허용 0건)
로컬 개발 — omk dev setup → omk dev up (Apple Silicon · Docker Desktop 이 함께 있는 Mac) [ERR]·[WARN] 없음. /api/health 의 llm 이 online

확인하지 못한 것 — 환경 dev 를 거치지 않고 올린다

문서의 규칙은 "환경 dev 통과 전 main 으로 올리지 않는다"인데, 환경이 없어 그 확인 없이 올린다.

  • 전체 설치(omk env install)는 Mac · Linux 어느 쪽에서도 끝까지 해 보지 못했다. Linux 서버 한 대에서 시도했으나
    snap 으로 설치된 curl 이 ~/.openmake(숨김 폴더)에 쓰지 못해 Docker 단계에서 멈췄다 — 이 변경과 무관한 기존 문제다.
  • Colima 위에서 실제 에이전트 작업이 파일을 쓰는 경로(80fa8769)는 단위 테스트만 거쳤다.
  • 재부팅 뒤 Colima VM 이 올라오는지, Intel Mac.
  • 남은 검증 목록은 scripts/env/HANDOFF-colima.md 에 있다.

영향

  • online 은 바뀌지 않는다 — 릴리스 태그를 따른다. 릴리스 PR(chore(main): release 1.91.0 #1042)을 머지하고 omk env update online 을 하기 전까지는 그대로다.
  • 새로 설치하는 사람은 main 의 스크립트를 받는다 — macOS 새 설치가 Colima 경로를 탄다.
  • 다음 릴리스는 feat 커밋이 있어 minor 가 올라간다.

일반 머지로 합친다(squash 아님) — dev 와 main 의 연결을 유지한다.

🤖 Generated with Claude Code

roggyhan and others added 26 commits September 26, 2026 23:55
bench 는 add-on 에 가깝다 — 옵션 없는 'omk env install <env>' 는 llm 스택만 세운다.
--bench(또는 --bench-ref BR)로 고를 때만 openmake_bench 를 붙인다. --no-bench 는 예전 호출용으로 계속 받는다(기본과 같다).
update·status·start·reset --reinstall 은 이미 bench 디렉터리가 있을 때만 다루므로 기존 설치본은 그대로다.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
릴리스 태그는 릴리스 PR 을 머지한 순간의 main 에 찍힌다. staging 을 마지막으로
올린 뒤에 머지된 PR 은 확인 없이 릴리스에 들어가 online 까지 갔다.

- omk env verify <env> [--list]: 확인을 마친 커밋을 origin 의
  refs/omk/verified/<sha> 로 기록 (환경들이 다른 호스트에 있어도 읽힌다)
- omk env update 의 게이트(.env 의 OMK_RELEASE_GATE=1): 기록된 커밋이 태그의
  조상이고 그 사이 변경이 릴리스 메타데이터(버전·CHANGELOG)뿐일 때만 진행.
  무엇이든 바꾸기 전에 검사하고, 거부되면 종료 코드 2
- --force-unverified: 물어본 뒤 진행, logs/release-gate.log 에 기록
- omk env install --release-gate, OMK_VERIFY_PUSH_URL

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Bumps the minor-and-patch group with 2 updates: [supertest](https://github.com/ladjs/supertest) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `supertest` from 7.2.2 to 7.3.0
- [Release notes](https://github.com/ladjs/supertest/releases)
- [Commits](forwardemail/supertest@v7.2.2...v7.3.0)

Updates `typescript-eslint` from 8.70.0 to 8.70.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: supertest
  dependency-version: 7.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: typescript-eslint
  dependency-version: 8.70.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 20.19.43 to 26.6.2.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node)

---
updated-dependencies:
- dependency-name: "@types/node"
  dependency-version: 26.6.2
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
충돌 1곳(cmd_env_install 의 변수 선언) — bench 기본값(no_bench=1)과
릴리스 게이트 플래그(gate=0)를 둘 다 살렸다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- 환경 표의 dev 열이 개발 서버(local)를 설명하고 있었다 — 환경 dev(~/.openmake/dev)로 고치고 개발 서버는 따로 적음
- bench 는 --bench 로 고를 때만 설치. --bench-ref 기본값(llm 의 --ref 와 같은 이름) 주의
- 설치 순서·설치 후 할 일을 실제 단계(SearXNG·런타임 이미지·LiteLLM·기본 모델)와 요약의 [할 일] 조건에 맞춤
- 명령 목록에 빠진 옵션·명령(expose·backup·dev·--no-backup·--purge-images 등) 추가
- 래퍼가 실행하는 omk.sh(online → staging → 그 외), 설치된 환경에서 --ref 가 무시되는 것, 포트 충돌 판정의 한계
- reset 이 지우는 것·남기는 것, 개발 서버의 API 는 감시 재시작이 없음, 환경변수·고정값 목록

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Docker Desktop 은 로그인·약관·업데이트 창에서 사람을 기다린다 — 재부팅 뒤 창 하나에
멈추면 DB 와 샌드박스가 같이 멈춘다. openmake 는 자기 Colima VM(프로필 openmake)에서만
컨테이너를 돌리고, 사용자의 기본 docker 컨텍스트와 Docker Desktop 은 건드리지 않는다.

- 설치기: brew 로 colima·docker CLI·compose·buildx 를 준비하고 `--activate=false` 로 띄운다.
  로그인 시 자동 시작은 LaunchAgent(com.openmake.colima). Docker Desktop 설치 코드는 지웠다.
- VM 크기는 옵션 없이도 호스트에 맞춘다(메모리는 절반·최대 8GB, CPU 는 코어 수·최대 4,
  디스크 60GB). OMK_COLIMA_CPU·OMK_COLIMA_MEMORY·OMK_COLIMA_DISK 로 직접 정할 수 있다.
- 접속 규칙: macOS 이고 ~/.colima/openmake/docker.sock 이 있으면 DOCKER_HOST 를 그 소켓으로
  둔다(이미 정한 값은 존중). omk·openmake_llm.sh·uninstall.sh·db-backup.sh 가 같은 규칙을 쓰고,
  앱은 설치기가 .env 에 적은 값을 물려받는다.
- 이미 기본 Docker 로 openmake 를 운영 중인 호스트는 옮기지 않는다(DB 가 그쪽에 있다).
  판정은 호스트 단위다. 옮기는 절차는 scripts/env/README.md.
- Colima 는 홈 디렉터리만 VM 에 공유한다 — Colima 를 쓰는 호스트에서는 런타임 이미지 단계가
  TASK_SANDBOX_ROOT 를 환경 디렉터리 아래로 잡는다.

Linux·WSL2 는 바뀌지 않는다.

실측(2026-09-29, M1 8GB · Colima 0.10.3): `omk dev setup` 이 화면 승인 없이 5분에 끝났고,
기본 컨텍스트는 그대로였으며, uid 1000 컨테이너가 workspace 에 썼다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
MCP 샌드박스는 호스트 환경을 물려주지 않고 서버 설정값만 docker 프로세스에 넘긴다.
그래서 DOCKER_HOST 가 빠져, 전용 Colima 를 쓰는 호스트에서도 docker 가 사용자의
기본 컨텍스트로 접속했다. 호스트의 DOCKER_HOST 를 docker 프로세스에 넘긴다 —
컨테이너에는 들어가지 않는다.

서버 설정의 env 는 컨테이너에 가기 전에 호스트의 docker 프로세스를 거친다. 설정에
DOCKER_HOST·DOCKER_CONTEXT 등을 넣으면 docker 가 다른 데몬으로 접속할 수 있었다.
DOCKER_ 로 시작하는 키는 env 와 `-e` 인자 양쪽에서 뺀다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
workspace 는 호스트 디렉터리를 컨테이너에 bind mount 한 것이다. Colima(virtiofs)는
컨테이너가 방금 본 파일을 호스트가 덮어쓰면 약 1초 동안 예전 크기로 읽는다 —
더 길어진 코드가 중간에 잘려 실행된다. 실측에서 쓰고 곧바로 읽기를 20회 반복하면
18회를 잘못 읽었다.

- 쓰기를 컨테이너 안에서 한다(`docker exec -i … cat > "$1"`). 같은 실측에서 컨테이너와
  호스트 모두 20회 중 0회. 쓰기 한 번에 평균 41ms. docker 접속처가 Colima 일 때만
  자동으로 켜지고(TASK_SANDBOX_WRITE_VIA_CONTAINER 로 직접 지정 가능), 실패하면
  호스트 쓰기로 넘어간다. 경로 탈출·쿼터 검사는 그대로 먼저 한다.
- python_execute·browser·skill_run 이 쓰고 곧바로 실행하는 파일은 호출마다 새 이름으로
  만들고 끝나면 지운다(새 파일에는 지연이 없다). python_execute 는 요청한 이름의 파일도
  남기고, 출력에는 그 이름을 보여 준다.
- runProcess 가 stdin 의 EPIPE 를 처리하지 않아, 큰 내용을 넘기는 중에 docker 가 먼저
  끝나면 API 프로세스가 죽을 수 있었다.

Linux·기존 설치본의 쓰기 경로는 바뀌지 않는다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`| tee` 를 붙이지 않아도 실패를 나중에 볼 수 있다. env install·env update·env reset·
dev setup·dev reset 은 화면에 보이는 그대로를
$OMK_ROOT/logs/omk/<시각>-<명령>[-<환경>].log 에 남긴다(색 코드 제외, 권한 600).
종료 코드는 그대로다. 끄려면 OMK_LOG=off.

dev up 처럼 계속 도는 명령과 조회 명령은 남기지 않는다. curl | bash 로 실행한 경우는
다시 실행할 파일이 없어 남기지 않는다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
작업을 다른 기기에서 이어가기 위한 임시 문서 — 결정과 그 이유, 2026-09-29 실측,
남은 검증, 미룬 항목. dev 에 합치기 전에 지운다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
`omk dev setup` 뒤에 앱은 뜨지만 채팅이 되지 않았다. 게이트웨이와 기본 모델(1.7B)은
`omk env install` 에만 있었고, 개발 서버의 `.env` 는 gen-env.mjs 의 기본값
(LLM_BASE_URL=http://localhost:4000 · NODE_ENV=production) 그대로였다. 개발 서버가
준비 단계를 따로 나열하고 있어, 환경 쪽에 더한 단계가 따라오지 않았다.

- 웹 검색·런타임 이미지·게이트웨이·기본 모델을 stack_ensure 하나로 묶고 환경 설치와
  개발 서버가 같이 부른다. 옵션도 같다(--no-runtime-images · --no-litellm ·
  --no-default-model · --llm-base-url/--llm-api-key/--llm-model).
- 개발 서버가 다른 것은 셋뿐이다: 앱을 빌드하지 않고, 앱을 PM2 에 올리지 않고,
  NODE_ENV 가 development 다(직접 고른 test·staging 등은 그대로 둔다).
- 직접 넣은 LLM_BASE_URL 은 건드리지 않는다. 비어 있거나, 자리표시자이거나, omk 가
  넣은 게이트웨이 주소일 때만 바꾼다.
- DB·Redis·게이트웨이는 인스턴스 local 의 것을 따로 두고, Docker 엔진과 기본 모델
  서버는 호스트의 환경들과 같이 쓴다.
- dev up 이 내려간 게이트웨이·모델 서버를 다시 띄우고, dev down 이 게이트웨이를 멈춘다.
- dev status 가 .env 의 인스턴스 이름으로 컨테이너를 찾는다(openmake-dev-* 고정이라
  비어 있었다).
- 게이트웨이 포트가 .env 에 없으면 이미 준비된 게이트웨이의 포트를 이어 쓴다 —
  작업 클론이 둘일 때 나중 것이 포트를 옮기지 않게.

환경 설치에서 달라지는 것은 하나다. OMK_LITELLM=off 가 기억된 환경을 옵션 없이 다시
설치하면 쓰이지 않는 기본 모델 서버를 띄웠는데, 이제 띄우지 않는다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
README 는 "장수 브랜치는 main 하나"라고 적고 있었는데, 2026-09-29 부터 feature/* 는
브랜치 dev 에 모이고 dev 를 main 으로 올린다.

- 흐름도·단계표: feature/* → dev(일반 머지 · CI 없음) → main(PR · CI · 일반 머지).
  브랜치는 origin/dev 에서 딴다.
- 브랜치 dev 와 환경 dev 는 이름만 같다는 것을 적었다. 환경 dev 는 --ref 로 준
  feature/* 를 올린다.
- CI 는 main 의 push/PR 에서만 돈다 — dev 에 합치기 전의 확인은 로컬 테스트와 환경 dev
  설치가 전부다.
- dev 를 main 으로 올릴 때 squash 하지 않는 이유와 커밋 제목 형식.
- openmake_bench 는 dev 브랜치가 없다 — "두 리포 모두 같은 브랜치 모델" 문장을 고쳤다.

omk.sh 는 주석 한 줄만 바뀐다. CI 가 dev 를 검사하지 않는 것, dev 에 보호 설정이 없는 것,
ios.yml·desktop-native.yml 이 없는 브랜치 develop 을 가리키는 것은 인수인계 문서에
정해지지 않은 것으로 남겼다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
main 의 CI 가 Gate 0.7(의존성 감사)에서 실패하고 있었다. 운영 의존성 fast-uri 3.1.6 에
high 권고 두 건이 새로 나왔다.

- GHSA-qw65-cvwx-89v3  serialize 가 port 를 검증하지 않아 authority 를 주입할 수 있다
- GHSA-58mr-gqgx-xq4g  닫히지 않은 대괄호로 host 를 혼동시킬 수 있다

kordoc → @modelcontextprotocol/sdk → ajv 가 끌어오는 간접 의존성이라 lockfile 만 바뀐다.
npm run audit:gate 통과(허용 0건).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
feature/* 는 브랜치 dev 에 모이는데 CI 는 main 의 push/PR 에서만 돌았다. dev 에 합칠 때는
아무 검사도 없었고, 검사가 dev → main PR 에 몰려 실패한 커밋을 찾기 어려웠다.

- ci.yml: main 과 dev 의 push/PR 에서 돈다.
- ios.yml · desktop-native.yml: 없는 브랜치 develop 을 가리키고 있었다 — dev 로 고친다.

브랜치 dev 의 보호 설정(PR 필수 · CI Gate 필수)은 GitHub 설정이라 여기에 없다. 이 변경이
dev 에 들어가 CI 가 한 번 통과한 뒤에 건다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
환경 dev 는 --ref 로 준 feature/* 를 머지 전에 올려 보는 곳이었다. 브랜치 dev 가 생긴 뒤로는
feature/* 를 브랜치 dev 에 합치고, 합쳐진 dev 를 환경 dev 에서 확인한 다음 main 으로 올린다 —
staging 이 main 을 따르는 것과 같은 구조다.

- omk env install dev 의 기본 ref 가 main 에서 dev 로 바뀐다. 다른 환경은 그대로다
  (staging 등은 main, online 은 릴리스 태그). 브랜치 dev 가 없는 저장소는 --ref main.
- ref 가 dev 일 때 bench 는 main 을 쓴다 — openmake_bench 에는 브랜치 dev 가 없다.
- 머지 전에 따로 볼 브랜치는 임시 환경에 올린다(omk env install pr-123 --ref …).
- 순서: 로컬 개발 → feature/* 를 PR 로 dev 에 → 환경 dev → dev 를 main 으로 → staging →
  릴리스 → online. "dev 통과 전 머지 금지"는 "환경 dev 통과 전 main 으로 올리지 않는다"가 된다.

용어도 맞춘다. 개인 장비의 작업 클론에서 omk dev up 으로 핫 리로드하는 것을 "개발 서버"라고
불렀는데, 그 말은 환경 dev 를 설치하는 호스트를 가리키는 데 쓰인다 — "로컬 개발"로 바꾼다.
명령(omk dev)과 함수 이름은 그대로다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
scripts/env/README.md 의 흐름을 한 파일로 정리한다. 왼쪽에 페이지 목록, 첫 페이지에 용어와
전체 흐름도, 이어서 단계별 작업 순서(명령 · 통과 조건)와 환경별 할 것 / 하지 말 것.

빌드 없이 브라우저에서 바로 열린다. 기준 문서는 README 다 — 어긋나면 README 가 맞다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
환경 dev 의 기본 ref 가 dev 가 되면서, 브랜치 dev 가 없는 저장소(포크 등)에서
`omk env install dev` 는 git 의 "Remote branch dev not found" 와 "clone 실패"만 남기고
멈췄다. 빈 환경 디렉터리도 남았다.

- clone 전에 원격에 브랜치가 있는지 보고, 없으면 `--ref main` 을 안내하고 멈춘다.
  디렉터리를 만들기 전이라 남는 것이 없다.
- 다른 브랜치로 넘어가지 않는다 — 요청한 것과 다른 것을 설치하지 않는다.
- --ref 를 직접 준 경우와 이미 클론이 있는 환경은 보지 않는다. 원격을 읽지 못한 것
  (오프라인 등)은 "없음"으로 보지 않고 clone 에 맡긴다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
PR 의 CI 가 Gate 0.5(인스톨러 lint)에서 실패했다.

  omk_docker_host references arguments, but none are ever passed.

omk_docker_host 는 OS 이름과 홈 경로를 인자로 받을 수 있는데, omk.sh 안에서는 인자 없이만
부르고 인자는 omk.test.sh 가 준다. shellcheck 는 파일을 하나씩 보므로 이를 알 수 없다 —
함수에 지시문을 붙인다. 동작은 바뀌지 않는다.

이 브랜치가 CI 를 지난 적이 없어 이제 드러났다. 로컬의 shellcheck 0.11.0 은 이 경고를 내지
않아, 고친 것이 CI 에서 통하는지는 CI 가 확인한다.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
이름(로컬 개발 · 환경 dev · 환경 staging · 환경 online)은 그대로 두고, 그것이 도는 장소를
한 가지 이름으로 부른다. "개인 장비", "staging 호스트", "online 호스트"처럼 섞여 있었다.

- README: 흐름도와 단계표에 장소를 적고, 용어 표를 이름 · 장소 · 경로 · 무엇으로 나눈다.
- 장소는 역할의 이름이다 — 한 대가 여러 역할을 맡아도 된다는 것을 적는다.
- 안내서(env-flow.html): 흐름도의 도는 곳을 이름 · 장소 · 경로로 적는다. 명령은 화살표
  사이가 아니라 화살표 위에 둔다(어느 화살표의 것인지 알 수 없었다). 실제로 입력하는
  그대로 omk 를 붙인다. 03 로컬 개발의 주소가 #devserver 였다 — #local-dev 로.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CI(Linux)에서 omk.test.sh 의 "run: 파일 권한 600" 이 실패했다. 204 통과, 1 실패.

테스트는 `stat -f '%Lp' … || stat -c '%a' …` 로 macOS 형식을 먼저 시도했는데, Linux 의
`stat -f` 는 실패하지 않고 파일시스템 정보를 출력한다 — 뒤의 대안으로 넘어가지 않았다.
순서를 바꾼다. macOS 의 stat 는 -c 를 몰라 실패하므로 그때 -f 로 넘어간다.

omk.sh 의 동작은 바뀌지 않는다(로그 파일은 600 으로 만들어지고 있었다). Linux 컨테이너
(node:24, bash 5.2)에서 omk.test.sh 205 통과, mac-toolchain.test.sh 34 통과.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
macOS 전용 Colima 전환, 로컬 개발·환경 dev 정리, dev 브랜치 CI.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

평가 회귀 리포트 (631a7f3)

평가 통과율 통과/전체 베이스라인 상태
Routing (Gate 5) 100.0% 120/120 50.0% ✅
Response (Gate 6) 100.0% 30/30 50.0% ✅
Prompt·Tool Budget (Gate 7) 13/13 지표 증가율 ≤ 10% 기준선 2026-09-16 ✅
Tool Selection (Gate 8) 100.0% 40/40 97.0% ✅
Runtime Red Team (Gate 9) 100.0% 18/18 100.0% ✅
  • 데이터셋 버전: routing=0.9.0, response=0.9.0
  • 베이스라인은 OMK_EVAL_PASS_THRESHOLD / OMK_EVAL_RESPONSE_THRESHOLD 환경변수 기준 (이력 비교 아님)
  • 상세 결과: Actions 실행의 evaluation-results-631a7f35e3b31643538998aa268e39c736dbea5f 아티팩트 참조

dev → main PR(#1046)의 CI 가 Gate 0.7(의존성 감사)에서 실패했다. 같은 커밋이 네 시간 전
dev 의 push 검사에서는 통과했다 — 그 사이에 brace-expansion 의 high 권고가 새로 나왔다.

- GHSA-qhr7-859c-m2p7  중첩된 중괄호 그룹에서 재귀가 제한 없이 깊어져 스택이 고갈된다
- GHSA-6j4f-fj2g-mc7p  parseCommaParts 의 같은 문제

2.1.4 → 2.1.7, 5.0.9 → 5.0.12, 1.1.18 → 1.1.21. babel-jest → test-exclude → glob·minimatch 가
끌어오는 간접 의존성이라 lockfile 만 바뀐다. npm run audit:gate 통과(허용 0건).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
fix(deps): brace-expansion 을 올린다 — high 권고 2건
@riskpw
riskpw merged commit 91785cb into main Sep 30, 2026
4 checks passed
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