OmO Native의 init-deep 커밋 모드가 더 이상 막다른 길에 도달하지 않습니다. 커밋 모드는 이제 OmO Native에 포함되지 않는 스킬을 가리키는 대신 자체 pull-request 전달 방식으로 완료되며, PR을 열 수 없을 때는 수동으로 마무리하는 방법을 안내합니다. 문제를 보고해 주신 @HolisticDeveloper님과 수정해 주신 @surlymochan님께 감사드립니다. (#11228, 수정 대상 #9686)
stale-reflection-lock 테스트가 임시 루트를 삭제할 때 백그라운드 작성자를 남기지 않습니다. 이 테스트의 teardown은 삭제 전에 memory 연결을 닫고 facts reconciliation과 maintenance가 끝나기를 기다립니다. 따라서 늦게 발행된 lock이 디렉터리를 다시 만들어 temp-leak 가드가 다른 테스트를 잘못 지목하는 일이 없습니다. (#11225)
ulw-research에 Markdown 및 게시 결과물 검사를 위한 Markdown 블록 모델이 추가되었습니다. Markdown 보고서를 정확한 텍스트 오프셋을 가진 제목, 단락, 목록 항목, 표 행, 코드 블록, 인용문으로 나누고, HTML 검사와 같은 분류기로 섹션을 분류합니다. 닫히지 않은 코드 펜스는 조용히 통과하지 않고 오류로 보고되며, 아직 이를 사용하는 검사는 없습니다. HTML 검사도 제목이 정확히 "Closing"인 섹션을 마무리 섹션으로 취급하게 되었습니다. (#11153, #11009의 일부)
ulw-research에 검증된 연마(polish) 편집과 연마 diff 기능이 추가되었습니다. 연마 변경은 텍스트 노드에만 적용됩니다. 태그, 모든 속성(속성 순서와 따옴표 포함), 주석, script/style/template 내용은 바이트 단위로 동일하게 유지됩니다. polish-apply는 마크업 변경과, 사실·숫자·단위·티커·필수 유보 표현을 바꾸는 편집을 거부하며, 누적 편집을 원본 보고서와 대조해 검사합니다. polish-diff는 같은 규칙을 보고서 전체에 적용합니다. 편집에는 <, >, &를 포함할 수 없고, 이들이 없더라도 문자 참조를 건드릴 수 없습니다. 두 게이트 모두 문서 골격 전체(모든 마크업 토큰과 모든 문자 참조를 바이트 단위로)를 비교하므로, 엔티티와 마크업은 손대지 않은 상태로 유지됩니다. 검사기가 정확하게 모델링할 수 없는 마크업이 포함된 문서는 두 게이트 모두 거부합니다. 마크업 변경에는 전체 충실도 게이트가 필요합니다. 심각도는 defect registry에서 가져옵니다. 아직 CLI에서는 이를 호출하지 않습니다. (#11152, #11009의 일부)
대화를 다시 추출해도 같은 합의 정정이 중복으로 계산되지 않습니다. 정정은 검증된 사용자 턴에 묶이며, replay receipt와 함께 원자적으로 기록됩니다. 같은 날짜의 서로 다른 턴은 여전히 각각 따로 계산됩니다. 승인, 삭제, 축출 시에도 replay 이력은 유지됩니다. 이전 버전에서 남은 보류 레코드는 문서화된 agreement/date 마이그레이션을 사용합니다. (#11214, 수정 대상 #11191)
LSP MCP 서버가 지원되는 프로토콜 버전을 협상합니다. 지원되는 클라이언트 버전은 그대로 유지하고, 지원되지 않거나 누락된 버전에는 임의의 프로토콜 리비전을 주장하지 않고 2025-06-18로 응답합니다. (#11208)
Skill MCP 도구 오류가 오류로 보고됩니다. 구조화된 출력과 결과 메타데이터가 호출자에게 전달되고, 도구 실패는 연결 실패처럼 재시도되지 않으며, 일반 텍스트 콘텐츠는 기존 출력 형식을 유지합니다. (#11207)
저장소에 보안 정책이 추가되었습니다. SECURITY.md에서 GitHub Security 탭을 통해 취약점을 비공개로 신고하는 방법, 포함해야 할 내용, 분류(triage)와 확인 응답을 받을 시점을 설명합니다. CONTRIBUTING.md에서 이 문서로 연결됩니다. #10752에서 @marklapointe님이 제안한 정책을 각색했습니다. (#11221)
ulw-research는 보고서의 문장이 출처의 의미를 유지하는지 확인할 수 있습니다. 각 보고서 문장을 그 근거가 되는 인용문, 주장 또는 원문과 짝지어 비교하며, 두 명의 독립적인 검토자가 같은 종류의 변화를 지적한 경우에만 의미 변화(drift)를 기록합니다. 검토자 한 명의 지적은 경미한 경고로 남깁니다. 어떤 검토자도 판단하지 않은 쌍, 또는 강력한 검토자가 필요했는데 저비용 검토자만 거친 쌍은 깨끗한 것으로 통과시키지 않고 미검증으로 보고합니다. 아직 CLI에서는 이를 실행하지 않습니다. (#11151, #11009의 일부)
Skill MCP 카탈로그가 모든 페이지를 포함합니다. 도구, 리소스, 프롬프트는 불투명한 페이지네이션 커서를 순서대로 따르며, 서버가 100페이지를 초과하면 명확한 오류를 표시합니다. (#11204)
Windows에서 omo update가 다른 프로세스가 점유 중인 패키지 파일이 있어도 완료됩니다. 설치 파일 중 하나가 사용 중이어서 bun add -g가 EPERM(NtSetInformationFile)으로 실패하면, omo update는 짧은 백오프를 두고 두 번 재시도합니다. 파일이 계속 점유되어 있으면 해당 파일과 이를 점유 중인 omo 프로세스를 표시하고, 프로세스를 종료한 뒤 omo update를 다시 실행하라고 안내합니다. 설치된 버전은 그대로 유지하며, 실패한 실행으로 읽을 수 없는 설치 상태가 남은 경우에만 이전 버전을 다시 설치합니다. (#10090, #11125)
점유된 채 남은 테스트 디렉터리 때문에 새 실행이 preload 단계에서 실패하지 않습니다. 정리 작업은 공유 트리 제거기를 통해 재시도하며, EBUSY, EPERM, ENOTEMPTY 또는 EACCES로 여전히 점유된 루트는 건너뛰고 나머지 버려진 루트를 계속 처리합니다. 관련 없는 파일 시스템 오류는 여전히 실행을 실패시키며, Bun의 panic 전용 재시도도 기존 테스트 실패 검사를 그대로 유지합니다. (#11190, 참조 #11135 및 #8990)
이전 버전의 사용량 요약이 업그레이드 후에도 디스크에 남지 않습니다. 5.1.34부터 5.1.44까지의 버전은 세션 요약을 더 이상 아무도 읽거나 전송하지 않는 rollups 폴더에 보관했습니다. 업그레이드 후 처음 시작할 때 텔레메트리 설정과 관계없이 이 폴더를 삭제하며, 이 폴더 밖으로 나가는 링크는 따라가지 않습니다. omo.json에서 텔레메트리를 끈 경우에는 충돌로 중간에 잘린 요약 파일도 함께 삭제합니다. (#10234) (#11147) (batch #11168)
Computer-use 취소 시 엔진 충돌 진단 정보가 보존됩니다. 취소되거나 시간 초과된 호출은 오류 코드를 유지하고, 엔진 종료 진단 정보를 원인(cause)으로 함께 전달합니다. 기능 조회 권한 실패는 구조화된 도구 결과로 유지되며, 관련 없는 성공 응답이 있어도 심각한 엔진 진단 정보는 남습니다. 레거시 실행 거부도 이제 구조화된 레코드와 같은 종료 코드 및 UTF-8 크기 규칙을 따릅니다. (#11150) #11086의 후속 작업이며, #11073의 일부입니다. (batch #11168)
Reflection 및 dream 자식 프로세스가 머신 전체에 걸친 FIFO 동시성 상한을 공유합니다. 기본값은 메모리 식별자와 관계없이 실행 중인 자식 프로세스 하나이며, memory.reflection.max_concurrent_runs로 설정할 수 있습니다. 대기 중인 실행은 실행 예산을 유지하고, 시작이 허용될 때까지 충돌 reconciliation으로부터 보호됩니다. (#11161, 수정 대상 #11154) (batch #11168)
실행 중 호스트가 종료되어도 메모리 reflection이 영구히 멈추지 않습니다. 실행이 끝난 뒤 결과가 발행되기 전에 호스트가 죽으면 runtime/reflection/active.lock이 계속 잡혀 있었고, 누군가 파일을 수동으로 삭제하기 전까지 이후의 모든 reflection 요청이 그 뒤에서 대기만 했습니다. 이제 /reflect와 이후의 모든 턴은 launcher와 publish 주체가 모두 사라졌고 결과가 기록된 실행을 정리하므로, 대기 중이던 요청이 실행됩니다. 소유자를 확인할 수 없는 lock은 절대 회수하지 않으며, 세션과 omo doctor에서 다음 단계와 함께 보고합니다. 문제를 보고해 주신 @Bearmancer님께 감사드립니다. (#10377, #10388, #10528) (batch #11168)
잘못된 메모리 항목 하나 때문에 reflection 실행 전체가 버려지지 않으며, 자격 증명처럼 보이는 문장은 비밀 정보로 취급하지 않습니다. 이전에는 항목 하나라도 거부되면(비밀 정보처럼 보이는 내용, 잘못된 frontmatter, 1024자를 넘는 description) 완료 검증이 실행 전체를 실패시켰고, 자동 reflection은 몇 번 실행 후 멈췄습니다. 이제 실행 브랜치를 거부된 항목을 제외한 하나의 커밋으로 다시 작성하고, 유효한 항목은 유지하며, 제외된 각 경로와 그 이유를 보고합니다(일치한 값은 표시하지 않습니다). 모든 항목이 거부된 실행은 변경 없음으로 처리됩니다. 비밀 정보 스캐너와 pre-commit hook은 값이 비밀 정보를 가리키기만 하는 할당(process.env.X, $VAR, {{ slot }}, [FILTERED], Bearer 단어, null/예시 리터럴)을 더 이상 표시하지 않으며, 실제 값은 여전히 감지합니다. dream의 path_orphan 발견 항목은 이제 파일에 frontmatter가 없다는 사실을 알려주며, persona는 단순 git mv 대신 이동과 같은 커밋에서 description을 추가하도록 안내합니다. 기존 방식은 매번 검증에서 거부되었습니다. 문제를 보고해 주신 @PGY0403님(#10385)과 @floweredao님(#10511)께 감사드립니다. (#10385, #10511, #10528) (batch #11168)
보류 중인 패키징 테스트 디렉터리는 정리 작업을 실패시키지 않고 기록됩니다. 패키징된 memory-sync 프로브와 버려진 루트 정리 작업은 재시도 없이 하나의 best-effort 제거 가드를 공유합니다. 점유된 모든 루트는 테스트 로그에 출력됩니다. Windows 진단은 30초로 제한되며, 식별된 경우 점유 프로세스의 pid, 이미지, 부모 pid를, 식별하지 못하면 진단 실패 사유를 포함합니다. 관련 없는 파일 시스템 오류와 기록되지 않은 누수는 여전히 실패로 처리됩니다. (#11218, #11135의 일부)
- 7d8dc2b Merge pull request #11156 from code-yeongyu/feat/11009-t15
- 86eb554 Merge pull request #11228 from surlymochan/fix/9686-init-deep-pr-fallback
- 6a467c7 Merge branch 'dev' into fix/9686-init-deep-pr-fallback
- 1306fb7 Merge remote-tracking branch 'origin/dev' into feat/11009-t15
- 120da8c Merge pull request #11233 from code-yeongyu/chore/remove-unused-extension-loader
- 517a170 fix: 리뷰 노트와 CI 검사 반영; 번들 재생성(고정된 linux/amd64 컨테이너, bun 1.4.3)
- f153b5b fix(ulw-research): 의미 기록을 전달된 산출물에 연결 (Part of #11009)
- 087d69f docs: 오래된 loader 노트 정리
- 8627ba5 Merge remote-tracking branch 'origin/dev' into chore/remove-unused-extension-loader
- a9b5515 fix(ulw-research): 전달 장벽이 의미 결함을 읽도록 하고 이견 재실행을 하나의 실행으로 묶음 (Part of #11009)
- 271f00e Merge remote-tracking branch 'origin/dev' into feat/11009-t15
- f65dbc3 Merge pull request #11225 from code-yeongyu/fix/11219-stale-lock-settlement
- cf3dc22 Merge remote-tracking branch 'origin/dev' into lm-11225
- b47e930 Merge pull request #11153 from code-yeongyu/feat/11009-t14
- 5095261 Merge remote-tracking branch 'origin/dev' into lm-11153
- 4c67b7c Merge pull request #11152 from code-yeongyu/feat/11009-t13
- 9e0178c Merge remote-tracking branch 'origin/dev' into lm-11152
- 2cc33f4 Merge pull request #11218 from code-yeongyu/fix/11135-probe-exit
- 90e70ad Merge remote-tracking branch 'origin/dev' into lm-11218
- 1a6ab71 Merge remote-tracking branch 'origin/dev' into lm-11225
- 3286d78 Merge remote-tracking branch 'origin/dev' into feat/11009-t13
- fdbbb53 fix(ulw-research): 연마 편집 전반에서 문자 참조를 온전히 유지 (Part of #11009)
- cb92940 Merge pull request #11214 from code-yeongyu/fix/agreement-source-event-dedup
- de61c73 Merge remote-tracking branch 'origin/dev' into lm-11214
- b29fada docs(changelog): #9686 보고와 init-deep 커밋 모드 수정에 대한 크레딧 추가
- 29582e4 Merge remote-tracking branch 'origin/dev' into feat/11009-t13
- a1644f1 fix(ulw-research): 마크업 문자를 포함한 연마 편집 거부 (Part of #11009)
- 15343cb fix(memory): agreement replay 강화 및 facts 계획 지연
- 9277531 Merge pull request #11224 from code-yeongyu/fix/thread-qa-harness-lows
- c6a805e Merge pull request #11208 from code-yeongyu/fix/11201-lsp-mcp-version
- b5565d7 Merge remote-tracking branch 'origin/dev' into lm-11208
- 9877d60 Merge pull request #11207 from code-yeongyu/fix/11200-skill-mcp-tool-result
- 6912f41 Merge remote-tracking branch 'origin/dev' into lm-11207
- e9386a1 Merge remote-tracking branch 'origin/dev' into lm-11225
- 83b65ec Merge pull request #11221 from code-yeongyu/docs/security-policy
- 6fd2b11 fix(ulw-research): 연마 편집을 텍스트 노드로 제한 (Part of #11009)
- c7bb419 docs(changelog): stale-lock 픽스처 정리 기록
- 987652c Merge remote-tracking branch 'origin/dev' into feat/11009-t13
- 022a5c5 fix(ulw-research): 숨겨진 영역을 바이트 단위로 비교하고 연마 기준선 공유 (Part of #11009)
- dc75c8d test(memory): stale-holder 파일시스템 읽기 import 유지
- 0ade808 test(memory): 실제 bind 요청 시점에 reconciliation 게이트 적용
- f2ece20 Merge remote-tracking branch 'origin/dev' into lm-11208
- 30a911f Merge remote-tracking branch 'origin/dev' into lm-11207
- efe547e test(thread-qa): 중단된 실행에서도 분리된 호스트를 먼저 중지하고 늦은 shard 포착 (#11209)
- b379692 test(memory): 루트 삭제 전에 stale-lock 픽스처 정리
- 3173525 Merge pull request #11212 from code-yeongyu/fix/thread-qa-harness-drift
- c048f0a docs(changelog): 새 보안 정책 기록 (#11221)
- 8c7f944 docs: 보안 정책(SECURITY.md) 추가
- 1da96d1 Merge pull request #11151 from code-yeongyu/feat/11009-t12
- 3194845 Merge remote-tracking branch 'origin/dev' into lm-11208
- 502622f Merge remote-tracking branch 'origin/dev' into lm-11207
- 8b2b347 refactor(ulw-research): 의미 및 검증 명령에서 공유 테이블을 소유 모듈에서 import (Part of #11009)
- 7c7c81d docs(changelog): 보류된 테스트 루트 진단 기록
- 4d7a7c4 Merge remote-tracking branch 'origin/dev' into feat/11009-t15
- 7669cd0 Merge remote-tracking branch 'origin/dev' into feat/11009-t13
- 864cc4b fix(ulw-research): 연마 심각도를 defect registry에서 읽고 숨겨진 사실 범위 거부 (Part of #11009)
- 3e4a2cc Merge remote-tracking branch 'origin/dev' into lm-11151
- 78ea2b3 Merge pull request #11204 from code-yeongyu/fix/11199-skill-mcp-pagination
- 1ce63be Merge remote-tracking branch 'origin/dev' into feat/11009-t14
- 913b75d fix(ulw-research): 섹션 분류기를 공유하고 markdown 블록 파서 강화 (Part of #11009)
- 014673d docs(changelog): agreement replay 중복 제거 기록 (#11214)
- 7107e65 fix(memory): 합의 정정을 source event 기준으로 중복 제거
- 0123fe1 Merge remote-tracking branch 'origin/dev' into feat/11009-t12
- c07b1e4 fix(ulw-research): 조용히 통과시키지 않고 미검증 의미 쌍을 보고 (Part of #11009)
- 4bf4751 test(thread-qa): thread-tool QA 하네스를 dev 및 desktop main에 맞춰 재정렬 (#11209)
- 37592cd Merge pull request #11195 from code-yeongyu/fix/test-jwt-fixture-runtime
- 4a1d271 docs(changelog): LSP MCP 버전 협상 기록
- 0cd9308 fix(lsp): 지원되는 MCP 프로토콜 버전 협상
- 03b186b docs(changelog): skill MCP 결과 보존 기록
- 6abf79c fix(mcp): skill 도구 결과 의미 보존
- 408ea39 Merge remote-tracking branch 'origin/dev' into feat/11009-t15
- 20d17f3 docs(changelog): 완전한 skill MCP 카탈로그 기록
- 8650cb3 fix(mcp): 제한된 skill 카탈로그 페이지네이션 따르기
- 647181f docs(changelog): ulw-research 연마 apply 및 polish diff 기록 (Part of #11009)
- b2c8e2b docs(changelog): ulw-research markdown 블록 모델 추가 (Part of #11009)
- d3887e3 docs(changelog): ulw-research 의미 검사 쌍 기록 (Part of #11009)
- 2b39fae Merge remote-tracking branch 'origin/dev' into feat/11009-t13
- d1f72b4 Merge remote-tracking branch 'origin/dev' into feat/11009-t14
- c036930 Merge remote-tracking branch 'origin/dev' into feat/11009-t12
- 61a71aa Merge pull request #11149 from code-yeongyu/feat/11009-t11
- c4ca55a Merge remote-tracking branch 'origin/dev' into feat/11009-t11
- 85483c9 test(memory): JWT 형태의 redaction 픽스처를 런타임에 생성
- 937be35 Merge pull request #11125 from code-yeongyu/fix/10090-windows-update-held-package
- 5798617 Merge remote-tracking branch 'origin/dev' into lm-11125
- 943bacb Merge pull request #11190 from code-yeongyu/fix/abandoned-root-lock-sweep
- 078eefa Merge remote-tracking branch 'origin/dev' into fix/10090-windows-update-held-package
- d0cb7e8 fix(ulw-research): fidelity not_run 예외를 게이트가 없던 전달물로만 제한 (Part of #11009)
- daa9845 docs(changelog): #11190의 버려진 루트 정리 기록
- 08ea59f fix(test): preload 정리 중 점유된 버려진 루트 건너뛰기
- bc113ea Merge remote-tracking branch 'origin/dev' into feat/11009-t11
분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.