senpi 2026.11.2-1에서 실행됩니다: Claude 구독 로그인이 다시 작동합니다. (#12126)
타임아웃되거나 취소된 ultimate-browsing 템플릿은 브라우저를 정상 종료시킵니다. macOS/Linux에서 executor는 각 Playwright 템플릿을 자체 세션에서 실행하며, 타임아웃되거나 취소(Ctrl-C)되면 템플릿의 프로세스 그룹에 SIGTERM을 보내고 최대 5초 대기한 뒤 SIGKILL을 보냅니다. 이를 통해 Chrome이 정상적으로 종료되고, macOS 코드 서명 클론과 임시 프로필을 고아 상태로 남기지 않고 제거할 수 있습니다. 번들된 omowright 브라우저 엔진은, 엔진이 파이프로 실행한 브라우저를 닫을 때 정상 종료(SIGTERM 후 유예 시간 뒤 SIGKILL)를 수행하는 릴리스에 고정되어 있습니다. (#12068)
dev-browser 스킬의 macOS/Linux 독립 실행 명령이 이제 server.sh 실행 전에 릴리스 단계를 수행합니다. 9222 포트에서 응답하는 프로세스가 없으면, 9223 포트를 점유한 프로세스에 SIGTERM을 보내고 최대 5초 기다린 뒤, 살아남은 프로세스에만 SIGKILL을 보냅니다. 그러면 dev-browser의 start-server.ts는 포트가 비어 있음을 확인하고 kill -9에 도달하지 않으므로, 브라우저가 정상 종료되고 macOS Chrome 코드 서명 클론 같은 실행별 상태가 남지 않습니다. 9222에서 이미 실행 중인 서버는 건드리지 않으며, curl 또는 lsof가 없으면 이 단계는 아무 작업도 하지 않습니다. bash와 zsh에서 동일하게 동작합니다. 업스트림 수정은 SawyerHood/dev-browser#146입니다. (#12071, #12067의 일부)failure_kind: "model_chain_exhausted"로 종료되며, 시도한 각 모델과 그 이유를 나열한 오류가 표시됩니다. 제공자가 알려준 재설정 시간도 포함됩니다. 이 동작은 모든 카테고리와 워크플로 노드에 적용됩니다. omo.json에 남아 있는 categories.<name>.provider_lock 키는 무시됩니다. (#12006, #11781) (#12010)장치 서비스 SDK(@oh-my-opencode/device-service-core)가 OmO 장치 서비스를 다운로드, 검증, 설치하고 시작 부트스트랩을 실행할 수 있습니다. 릴리스 서명은 저장소의 엄격한 Ed25519 헬퍼로 컴파일된 릴리스 키에 대해 검증되며, 모든 파일은 서명된 체크섬과 대조됩니다. 릴리스는 모든 검사를 통과한 후에만 서비스의 상태 디렉터리에 배치됩니다. 아직 아무것도 이를 호출하지 않으며, 릴리스 키는 공개되기 전까지 자리표시자입니다. (#12052)
c69c3ea Merge pull request #12130 from code-yeongyu/fix/eq-omo-plugin-mcps
d8c67b0 Merge pull request #12010 from code-yeongyu/fix/category-provider-lock
b4393e2 test(eq): 실제 플러그인 MCP 표면에 맞춰 linux-x64 EQ.omo E21-E24 골든 파일을 다시 기록 (#12127)
ed841ae Merge pull request #12052 from code-yeongyu/feat/device-service-client
e88fcd0 Merge remote-tracking branch 'origin/dev' into feat/device-service-client
7c37db1 Merge pull request #12056 from code-yeongyu/test/12054-darwin-eq-omo-goldens
6240740 Merge remote-tracking branch 'origin/dev' into fix/category-provider-lock
694f0bd Merge pull request #12068 from code-yeongyu/fix/12067-chrome-term-grace
2b86d0b Merge pull request #11931 from code-yeongyu/fix/11930-rejected-close-hook-windows
df3ff7e Merge remote-tracking branch 'origin/dev' into fix/11930-rejected-close-hook-windows
0becdaa Merge remote-tracking branch 'origin/dev' into bw-12010-p0
9d35580 Merge pull request #12091 from code-yeongyu/release/v5.1.57-source-state
5504a17 Merge remote-tracking branch 'origin/dev' into feat/device-service-client
0db17a4 Merge pull request #12071 from code-yeongyu/fix/12067-dev-browser-term-first
fe76094 Merge remote-tracking branch 'origin/dev' into bw-12010-p0
f7dc405 Merge commit '6392671db73f057273111f5d8dfde7b7f5ef3d9d' into fix/12067-chrome-term-grace
4fd2017 Merge remote-tracking branch 'origin/dev' into fix/12067-dev-browser-term-first
1174643 fix(browser): graceful-quit 릴리스에 omowright 고정 (#12067)
39c4c99 fix(dev-browser): curl 필수화, zsh에서 pid 분리, 변경 로그 항목을 fragment로 이동
1cfb5a3 fix(ultimate-browsing): 취소 시에도 템플릿 그룹을 종료하도록 수정 (#12068 리뷰 반영)
c993392 Merge remote-tracking branch 'origin/dev' into feat/device-service-client
7e4131d Merge remote-tracking branch 'origin/dev' into fix/11930-rejected-close-hook-windows
c298c9a fix(dev-browser): server.sh가 kill -9를 실행하기 전에 SIGTERM으로 CDP 포트를 해제
702bcb6 fix(ultimate-browsing): 타임아웃된 템플릿의 Chrome을 정상 종료하도록 수정
6d92ad0 test(eq): 커밋된 head의 녹화본으로 darwin-arm64 EQ.omo 기준선 재설정 (#12054 리뷰 반영)
cd982cc fix(device-service-core): 네이티브 인증 번들 재생성, 새 테스트 지원 파일을 knip 항목으로 등록, 명령 감사에서 테스트 경로 제외
59c2036 Merge remote-tracking branch 'origin/dev' into bw-12010-p0
25bbe24 test(device-service-core): 다시 제공된 latest.json과 알 수 없는 checksums 항목을 거부하도록 테스트 추가, 중복된 서명 길이 분기 제거
2720d48 feat(device-service-core): 장치 서비스의 검증된 획득, 설치 및 시작 부트스트랩 구현
1804e75 test(device-service-core): RED - 장치 서비스의 검증된 획득, install-service 및 부트스트랩 테스트
050e020 Merge remote-tracking branch 'origin/dev' into fix/11930-rejected-close-hook-windows
d9153c3 Merge remote-tracking branch 'origin/dev' into HEAD
e541c51 chore(omo-codex): categories.provider_lock용 설치 번들 재생성
bun add -g omo-ai