senpi 2026.10.21-1으로 엔진 업데이트: 엔진 호스트 시작이 빨라지고 유휴 상태 부하가 크게 줄어들며, Claude 구독에서 네이티브 1M 컨텍스트를 다시 사용하고, 데스크톱 스레드가 더 가벼워집니다 (#10740). 새 엔진 호스트는 약 0.1초 더 빨리 시작되며, 유휴 상태의 엔진 호스트는 90초당 1,106회 대신 405회만 깨어납니다. 현재 Claude 구독 모델(Fable 5, Sonnet 5, Haiku 5.5, Opus 4.7 이후 버전)은 추가 사용량 요청 없이 네이티브 1M 윈도우를 되찾으며, Claude 구독 경로는 Claude Code 2.1.306을 실행합니다. 각 데스크톱 스레드의 엔진 슈퍼바이저는 전체 CLI 대신 자체 작은 프로그램에서 시작되며, 메시지와 도구 카드가 중복 사본을 더 이상 보관하지 않습니다(메시지당 약 640바이트, 도구 카드당 약 2KB 절약). models.dev에서 deprecated로 표시된 모델은 사라지지 않고 deprecated 라벨과 함께 계속 사용할 수 있으며(GitHub Copilot Claude Opus 4.7, GPT-5.5, GPT-5.4, Baseten Kimi K2 등), 모델 카탈로그도 새로고침됩니다. 일부 모델은 업데이트된 thinking 레벨을 받습니다(예: Nemotron 3 Ultra에서 off가 이제 none). 이미 전달된 메시지는 Steering 아래에 더 이상 남아 있지 않으며, 한 제공자에 여러 계정이 있을 때 사용량 한도는 초기화 시점이 지나면 턴 실패를 멈춥니다. 할당량 실패 시에는 이제 언제 초기화되는지도 표시됩니다.
메모리 동기화가 약한 Ed25519 키로 만든 서명을 거부합니다. Bun의 WebCrypto는 소규모 차수(small-order) 공개 키(예: identity key)로 만든 서명을 어떤 메시지에 대해서든 허용합니다. 이제 동기화 클라이언트는 직접 검증하는 모든 키와 서명을 스스로 확인하며, 약하거나 형식이 잘못된 서명 키를 계정의 키링에 들이는 키링 레코드는 거부합니다. fork 해결의 증거(evidence) 안에만 나타나는 키도 포함됩니다. (#10743, #10742 수정)
전체 액세스 권한이 없는 경우, 컴퓨터 사용은 화면 전체에 대해 작업하기 전에 확인을 요청합니다. 데스크톱이나 디스플레이를 대상으로 한 클릭, 타이핑, 키 입력, 스크롤, 드래그, 포인터 이동, 누르고 있기 입력은 실제 포인터와 최상위 앱에 적용되므로, 이제 포그라운드 입력과 동일한 "Allow foreground computer control?" 승인이 필요합니다. 승인이 없으면 ControlRequired와 함께 실패하며 아무것도 전송되지 않습니다. 백그라운드의 단일 창에 대한 입력은 여전히 승인이 필요 없으며, 전체 액세스는 헤드리스 실행을 포함해 프롬프트 없이 계속 동작합니다. macOS 백그라운드 점검은 사용자가 포인터를 옮긴 뒤 포인터를 되돌리지 않으며, 중지된 세션은 데스크톱 엔진이 재시작되어도 중지 상태를 유지합니다. (#10788, #10790)
OmO가 상시 지침을 몇 번 반복해야 했는지 셉니다 (#10780, #10786). "모니터 출력을 절대 필터링하지 마" 같은 규칙은 이제 카운트와 함께 system/agreements.md에 저장됩니다. 이미 합의된 내용에 대해 에이전트를 다시 바로잡으면 카운트가 올라가고, 세 번째부터(memory.agreements.needs_human_threshold) 에이전트에게 해당 규칙이 계속 어겨지고 있다고 알려주며 사용자에게 알림이 표시됩니다. /agreements는 이 목록을 보여주고, 사용자가 직접 항목을 추가하거나, 하나를 확인 처리하거나, 삭제할 수 있게 합니다. 사용자가 추가한 합의 항목은 사용자만 변경할 수 있습니다. 이 설계는 roach의 dinobot(PolyForm Noncommercial 1.0.0)에서 영감을 받았으며, dinobot 코드는 사용하지 않았습니다.
런처가 중간 로그인 빌드가 남긴 레거시 ~/.omo/credentials.json을 삭제합니다. 이 파일에는 기기의 개인 키와 계정 갱신 자료가 평문으로 담겨 있었고, 때로는 모든 사용자가 읽을 수 있는 상태였습니다. 업그레이드하면 이 파일이 제거됩니다. 정확히 레거시 형식과 일치하는 파일만 삭제됩니다. (#10697, #10698)
OmO 안에서 문제를 신고할 수 있습니다 (#10546). /feedback(또는 /bug)을 입력하면 버그 리포트나 아이디어를 한 번에 OmO 팀에 보낼 수 있습니다. 설명과 함께 계정, 이 기기, 버전, 이 대화의 최근 메시지, 최근 로그, 설정이 포함됩니다. 비밀번호, 키, 토큰은 /share와 같은 리댁터로 먼저 제거되며, 메모리는 절대 전송되지 않습니다. OMO_DISABLE_FEEDBACK=1을 설정하면 업로드 대신 리포트가 로컬 파일로 저장됩니다. 데스크톱 앱의 Report a problem 대화상자도 같은 리포트를 사용합니다.
인프라 문제로 자식 노드가 죽은 DAG 노드는 전체 브랜치를 무너뜨리는 대신 재시도됩니다. mass-ulw 노드의 자식이 하트비트에 응답하지 않거나 호스트 세션을 잃으면, 이제 해당 노드는 백오프와 함께 최대 두 번까지 자동으로 재시도됩니다. 재시도도 모두 실패할 때만 후속 노드가 건너뛰어집니다. 이전에는 한 번의 자원 부족 웨이브가 실패하면 이후 모든 노드가 건너뛰어졌습니다(과부하된 기기에서 61개 노드 중 54개가 건너뛰어짐). 작업 실패와 취소된 노드는 이전과 같이 동작하며, TUI와 데스크톱 앱이 이 동작을 공유합니다 (#10605, #10616).
Windows에서 언어 서버를 중지할 때 예기치 않은 broken-pipe 오류가 더 이상 발생하지 않습니다. OmO가 서버를 종료하는 도중 LSP 서버의 파이프가 닫히면, 정리 작업이 이미 파이프를 놓은 뒤에 Windows가 실패한 쓰기를 보고할 수 있었고, 이때 EPIPE가 처리되지 않은 오류로 빠져나갔습니다. 이제 실행된 언어 서버의 모든 파이프는 수명 전체에 걸쳐 오류 핸들러를 유지하므로, 이 실패는 무시된 정리 과정의 잡음으로 기록됩니다 (#9601, #10725).
프론트엔드 스킬이 HTML 리포트, 그림, 슬라이드까지 다루며, 스트라이프 검사가 사각형 콜아웃도 잡아냅니다. 이제 이 스킬은 웹 UI뿐 아니라 시각적 출력을 위해 만든 모든 HTML, CSS, SVG(PDF로 인쇄한 리포트, 그림, 다이어그램, 슬라이드, Notion이나 Slack용 이미지)에서도 로드됩니다. check-accent-stripes.ts 린터는 상자가 둥글든 사각형이든 한쪽 면을 따라 있는 색 막대를 실패 처리하며, 둥근 카드의 2px 이상 강조 외곽선도 실패 처리합니다. 중립 가는 선, 표 구분선, 인용문의 중립 규칙선, 포커스 링, 입력 검증 상태는 여전히 허용됩니다. visualize 스킬은 모든 페이지를 미리 보거나 표시하기 전에 린터를 실행합니다 (#10774, #10776).
ulw-research가 리포트를 인라인으로 보여주고, 시각적 재현물을 원본과 대조해 확인합니다 (#10812). 호스트가 스레드 안에 HTML 페이지를 표시할 수 있을 때(show_html_page, html_render), 실행은 파일 경로보다 앞서 스레드에 리포트를 표시하며 끝나고, 모든 티어에서, 조사가 축약된 경우에도 그렇게 합니다. 인라인으로 표시된 빌드 앱이나 3D 장면이 리포트를 대신하지는 않습니다. 3D로 재구성한 클립처럼 시각적인 대상을 재현해 달라고 요청하면, 실행은 같은 시점의 원본 실제 프레임을 자신의 결과물 옆에 두고, 차이점을 기록하며, 가장 큰 차이를 수정하고, 나란히 놓인 비교 쌍을 리포트에 보여줍니다.
macOS 루트 테스트 샤드와 Codex/Senpi 호환성 작업을 하나의 러너 작업으로 묶었습니다. 기존 체크 이름은 Ubuntu 상태 작업을 통해 그대로 유지됩니다. 전체 매트릭스 CI는 헤드당 macOS 러너 5개 대신 2개만 요청하며, 변경되지 않은 네이티브 바이너리 패리티 검사도 포함합니다. 빠른 경로는 묶인 할당을 건너뜁니다 (#10804).
CI: 풀 리퀘스트는 플랫폼별 경로가 변경될 때만 macOS와 Windows 단계를 실행합니다. 여기에는 macOS/Windows 전용 CI 단계가 지정한 모든 경로(워크플로에서 도출), 네이티브 크레이트, 런처와 플랫폼 패키징, Windows Git Bash 런타임, Codex 설치 프로그램, 플랫폼 이름이 붙은 소스, CI 워크플로가 포함됩니다. dev에 대한 푸시와 머지 그룹은 여전히 모든 OS를 실행하며, run-full-ci 라벨은 풀 리퀘스트에서 전체 매트릭스를 강제로 실행합니다 (#10856). (#10859)
5b1bbe0 docs(changelog): 미출시 변경 조각을 5.1.41로 정리
b2cbe05 Merge pull request #10875 from code-yeongyu/ci/platform-paths-followup
16bf941 Merge pull request #10877 from code-yeongyu/ci/fixture-no-bin-omo
edd8dec test(ci): 네이티브 런처 픽스처 경로가 더 이상 /bin/omo 감사를 트리거하지 않도록 수정 (#10856)
2b48530 Merge pull request #10743 from code-yeongyu/fix/10742-memsync-weak-ed25519-keys
862664e Merge pull request #10859 from code-yeongyu/ci/pr-platform-path-matrix
cb23bfc Merge pull request #10833 from code-yeongyu/fix/10681-mock-audit-parse-only-matches
faa9e80 Merge pull request #10804 from code-yeongyu/ci/macos-combined-job
9ea7bb2 Merge remote-tracking branch 'origin/dev' into ci/macos-combined-job
949b363 docs(changelog): dev 병합 중 누락된 문단 나눔 복원
6607685 Merge pull request #10786 from code-yeongyu/feat/agreement-violation-ledger
091df1a Merge pull request #10845 from code-yeongyu/fix/ulw-reload-cleanup-budget
d1aca9f Merge remote-tracking branch 'origin/dev' into HEAD
06949e1 Merge pull request #10834 from code-yeongyu/fix/10711-infra-retry-test-progress
ed586b4 test(audit): 수명 주기 감사에서 mock.module 후보만 파싱
e60f5e3 Merge remote-tracking branch 'origin/dev' into feat/agreement-violation-ledger
d98fe7a Merge pull request #10790 from code-yeongyu/fix/10788-cua-desktop-grant
eb6be62 Merge remote-tracking branch 'origin/dev' into feat/agreement-violation-ledger
59836e4 Merge pull request #10812 from code-yeongyu/feat/ulw-research-inline-report-compare
1e3033f Merge remote-tracking branch 'origin/dev' into feat/agreement-violation-ledger
d27f823 fix(ulw-research): 참조 비교 추출이 항상 선택한 시점에서 잘린 mp4를 생성하도록 수정
c516ac3 Merge remote-tracking branch 'origin/dev' into fix/10788-cua-desktop-grant
61b6a60 docs(changelog): ulw-research 인라인 리포트와 참조 비교 (#10812)
8a06523 feat(ulw-research): 축약된 실행도 인라인 리포트와 참조 비교를 제공하도록 수정
a5b34b5 feat(ulw-research): 인라인 페이지가 모든 티어에서 리포트가 되도록 하며, 제품 페이지만 단독으로 표시하지 않도록 수정
c5e4f05 fix(memory): 합의 원장에 대한 2차 리뷰 사소한 수정
567e7a0 feat(ulw-research): 인라인 전달과 참조 비교를 성공 기준으로 만들고 브리프에 기록
fbca231 feat(ulw-research): 최종 리포트를 인라인으로 표시하고 시각적 재현물을 원본과 비교
b73b596 fix(computer-use): 동의 확인과 전역 입력 전송을 한 단계로 처리하고, 활성화된 코드로 중지 래치를 고정 (#10788)
9219fec Merge pull request #10776 from code-yeongyu/fix/slop-gate-accent-stripes
6f5a042 test(memory): 계산된 합의 줄을 교체하여 삭제하도록 테스트
f51728c fix(memory): 합의 원장을 고정 상태로 유지하고, 상한에 도달하면 규칙 기준으로 제거
5af3619 fix(memory): 자동화가 needs-human 합의가 남아 있는 원장을 삭제할 수 없도록 수정 (#10780)
9c8888c Merge remote-tracking branch 'origin/dev' into fix/slop-gate-accent-stripes
7c80be4 test(computer-use): 창 클릭 시 엔진 오류 코드 트윈 검사가 프레임을 확인하도록 수정 (#10788)
f964e08 test(computer-use): 세션 통합 테스트가 데스크톱 입력 전에 권한을 부여하도록 수정 (#10788)
8365a67 Merge remote-tracking branch 'origin/dev' into feat/agreement-violation-ledger
d68286c test(computer-use): 적합성 테스트의 데스크톱 클릭이 먼저 제어 권한을 받도록 수정 (#10788)
8c62e13 Merge remote-tracking branch 'origin/dev' into tk10743
7ae8b5f test(computer-use): 권한 부여 상태에서 데스크톱과 디스플레이 입력에 대한 실제 macOS QA (#10788)
90d6417 fix(computer-use): 전체 액세스 밖에서는 데스크톱과 디스플레이 입력에 제어 권한이 필요하도록 수정 (#10788)
b128fbd test(computer-use): 제어 권한 없이 데스크톱과 디스플레이 입력이 실패하는 RED 테스트 (#10788)
b3ce568 Merge pull request #10698 from code-yeongyu/fix/10697-legacy-credentials-cleanup
6badf66 fix(memory): 자동화가 합의 카운트를 낮추거나 파싱되지 않은 원장 줄을 삭제할 수 없도록 수정 (#10780)
9611b21 fix(frontend-skill): Tailwind 클래스와 인라인 스타일 경로에서 table과 form 태그 예외 처리, 디자인 README와 밑줄 지침 정렬
4b79926 docs(changelog): 프론트엔드 스킬 범위와 강조 막대 검사기 변경 기록
c5469a9 fix(frontend-skill): 모든 상자의 색 테두리 막대와 둥근 카드의 강조 외곽선을 실패 처리하고, visualize 렌더링 전에 린트 실행
59abb42 test(native): 레거시 자격 증명 보호 분기 고정
63d4622 Merge remote-tracking branch 'origin/dev' into fix/10697-legacy-credentials-cleanup
c6e4b62 refactor(memory-core): omo-relay-spec 2dcd0cf3b8에서 strict-ed25519를 다시 벤더링, oracle은 테스트 전용 (#10742)
0261a49 refactor(memory-core): omo-relay-spec 9c077cc2dd에서 strict-ed25519 벤더링 (#10742)
ad29fdd refactor(memory-core): 로컬 검사 대신 공유 strict-25519 헬퍼 사용 (#10742)
fd5b670 docs(changelog): 메모리 동기화가 약한 Ed25519 키를 거부함 (#10743)
484542a fix(memory-core): 메모리 동기화에서 약하고 정규형이 아닌 Ed25519 키와 서명을 거부하도록 수정 (#10742)
c00a058 Merge pull request #10725 from code-yeongyu/fix/9601-lsp-stdin-epipe
8e34143 docs(changelog): Windows LSP 정리 중 EPIPE 수정 기록
201bb7d fix(lsp-core): 모든 LSP 서버 파이프에 수명 전체 동안 오류 가드 유지
bf5901c Merge pull request #10546 from code-yeongyu/feat/feedback-core-10543
f7c3d95 Merge remote-tracking branch 'origin/dev' into fix/10697-legacy-credentials-cleanup
a1b8350 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
f90d451 Merge pull request #10616 from code-yeongyu/fix/10605-dag-infra-retry
f61198b Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
5dec9bd Merge pull request #10701 from code-yeongyu/release/v5.1.40-source-state
b6d0bb6 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
0aea8e2 fix(native): 실행과 업그레이드 시 레거시 ~/.omo/credentials.json 삭제
d2b9aa0 fix(changelog): 5.1.39 이후에도 #10616 항목을 미출시 아래에 유지; 61노드 인프라 재시도 테스트 범위 제한
84c3184 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
61ac7a9 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
5bc0ff7 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
ddfdd08 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
1b3ab20 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
20c0328 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
72bdffd Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
de4cfb5 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
96fdd2b Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
4dadac6 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
3139b8f Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
a846c56 Merge remote-tracking branch 'origin/dev' into fix/10605-dag-infra-retry
ee45ed3 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
590a559 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
18df88e Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
5c754b7 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
6b44c0b Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
d935574 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
1b596c8 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
99a8a67 Merge remote-tracking branch 'origin/dev' into feat/feedback-core-10543
bun add -g omo-ai