메모리가 켜져 있을 때 MCP 도구가 다시 작동합니다. 5.1.10 이후로 완료된 메모리 자식이나 위임된 작업이 전체 프로세스의 공유 MCP 서버를 종료하여 모든 MCP 호출이 MCP server <name> is disabled 오류로 실패했습니다. 이 릴리스는 senpi 2026.10.3에서 실행되며, 각 세션이 공유 서버에 자체 바인딩을 가질 수 있게 해주며, 제공되는 번들로 검증되었습니다. 아직 업데이트할 수 없다면 메모리를 꺼두세요: ~/.omo/omo.json에서 "memory": { "enabled": false }를 설정하거나, --omo-senpi-memory-disabled=true로 omo를 시작하세요.
Fixed
자식 세션이 종료된 후 MCP server <name> is disabled 오류로 MCP 호출이 더 이상 실패하지 않습니다. 완료된 메모리 자식이나 위임된 작업이 프로세스의 모든 세션에 대해 MCP 서비스를 해제했지만, 이제는 자신의 바인딩만 해제하고 공유 서버는 계속 실행됩니다. 보고해주신 @Tygb99에게 감사합니다. (#9461, senpi#2524)
Codex 에디션(LazyCodex): 프로젝트의 자체 등록된 에이전트 역할을 생성할 수 있습니다. 스폰 가드는 LazyCodex의 12개 기본 제공 역할만 허용했으므로 .codex/agents 또는 $CODEX_HOME/agents에 등록된 역할이 Codex에서 제공했음에도 거부되었지만, 이제 등록된 역할 파일이 있는 모든 역할을 허용하고 여전히 등록되지 않은 역할은 거부합니다. 보고해주신 @aconley-vultr에게 감사합니다. (lazycodex#171, lazycodex#164, #9462)
호스트가 세션을 나열할 수 없는 동안 위임된 작업을 취소하면 취소를 계류 상태로 유지합니다. 대신 세션이 열린 상태로 완료되고, 호스트가 다시 응답하면 완료됩니다. (#9450, #9459)
스킬이 안정적인 순서로 나열됩니다. 따라서 프롬프트의 도구 접두사가 턴 간에 동일하게 유지되고 프롬프트 캐시를 계속 활용합니다. (#9433)
OpenCode 에디션 수정, @cynkai 감사합니다: 명시적으로 선택된 모델이 더 이상 기본 제공 체인으로 폴백하지 않습니다 (#8808); 플러그인 로드 텔레메트리 실패가 더 이상 TUI에 출력되지 않습니다 (#8804); 세션이 오류로 중지된 백그라운드 작업이 완료됩니다 (#8814) 그리고 연결된 공급자가 없는 폴백 모델을 건너뜁니다 (#8844); Hephaestus가 등록되지 않았을 때 Sisyphus가 사용 가능합니다 (#8841); 그리고 omo.schema.json이 [opencode] 스키마를 한 번만 포함하고 더 이상 기본값이 있는 필드를 필수로 표시하지 않습니다 (#8871, #8873). OpenCode 에디션의 도구 인수 재작성도 원본 인수 객체를 유지합니다 (#9466).
omo host status --all과 omo thread list는 마지막 JSONL 항목이 크거나 부분적이거나 유효하지 않을 때 더 이상 이전 세션 항목을 최신 활동으로 표시하지 않습니다. 두 표면 모두 동일한 경계 최종 레코드 정책을 사용하고, 신선도를 증명할 수 없을 때 null을 표시하며, 알려진 활동을 최신 우선으로 나열하고 알 수 없는 활동을 마지막에 나열합니다. (#9222)
엔진이 여전히 응답하지 않는 것으로 보고하는 게시된 터미널 세션으로의 메시지는 소켓으로 직접 보내지 않고 오프라인 상태로 유지되므로 omo thread list, 전송 및 스티어가 해당 세션에 지금 도달할 수 있는지 여부에 동의합니다. 메시지는 나중에 수행된 세션을 실시간으로 나열하는 확인 후 전달됩니다. 세션의 이름을 지정하는 바인딩된 전송은 더 이상 같은 조회를 두 번 수행하지 않습니다. (#9222)
Changed
omo는 senpi 2026.10.3에서 실행됩니다. (위의 MCP 수정과 Bun -e 호스트 시작 및 WebView 준비 완료 수정). 전체 목록: senpi 2026.10.3.
OpenGateway 작업은 기본적으로 동시성 제한 없이 실행됩니다. (#9427)
Added
아래의 세션 게이트웨이 항목은 해당 저장소 기초입니다. 스레드 도구는 5.1.14에서 사용 가능합니다.
모든 세션은 터미널 세션을 포함한 다른 모든 세션에 도달할 수 있습니다. (#9143) 세션 간 메시지는 이제 세션 게이트웨이를 통해 이동합니다: 에이전트 디렉터리에 있는 작은 데이터베이스로, 실행할 데몬이 없고 구성할 것도 없습니다. 터미널 세션은 개인 제어 소켓을 열므로 데스크톱 스레드, 작업 자식 또는 스크립트가 이를 나열하고, 읽고, 이로 보낼 수 있습니다. 스레드 도구는 터미널 세션을 실제 이름과 시간으로 나열합니다. 메시지는 절대 당신이 하고 있는 일을 중단하지 않습니다: 입력 중이거나 제출이 진행 중이면 대기하고, 세션은 원격 메시지가 대기열에 있음을 나타내는 한 줄을 표시합니다. 실행되지 않는 세션으로 보낸 메시지는 24시간 동안 유지되었다가 세션이 다시 실행될 때 가져갑니다. 고정된 한계는 폭주 루프를 중지합니다: 세션은 자신에게 메시지를 보내거나 이를 메시지한 체인으로 직접 회신할 수 없으며, 메시지 체인은 4홉 또는 64개 메시지 후 중지되고, 한 턴은 최대 16개 세션에 도달하며, 한 발신자는 세션에 8개 메시지의 버스트를 받은 후 5초마다 하나씩 받습니다.
omo thread는 스크립트와 채팅 커넥터에서 실행 중인 세션으로 통신합니다. (#9143) omo thread list|send|read|bind|unbind|rebind|bindings|report|answer|outbox|ack은 에이전트 세션 없이 스레드 도구의 작업을 실행하며, --json 출력은 하나의 JSON 값이고(실패 시에도) 스크립트가 분기할 수 있는 종료 코드입니다: 0 완료, 1 거부됨, 2 사용법, 3 응답 없음, 4 여기서 지원되지 않음, 5 내부 오류. JavaScript는 플러그인(runtime/thread-sdk/sdk.js)에서 omo를 생성하지 않고 동일한 작업을 가져올 수 있습니다. 호스트를 시작하지 않습니다. 참조: docs/reference/omo-thread.md.
세션을 채팅 스레드에 바인딩할 수 있으며 이를 통해 다시 보고할 수 있습니다. (#9143) 바인딩은 하나의 세션을 하나의 외부 스레드에 연결합니다(모든 플랫폼, OmO는 자체 채팅 커넥터를 제공하지 않음). 스레드의 메시지는 omo thread send --binding으로 도착하며, 플랫폼 이벤트당 한 번 승인됩니다. 세션은 thread_report로 바인딩의 아웃박스에 마일스톤, 보고서, 질문 및 완료를 게시하며, 커넥터는 omo thread outbox로 이를 읽고 승인합니다. 질문은 같은 바인딩을 통해서만 답변할 수 있는 회신 토큰을 전달합니다. 완료는 요청할 때만 작성되며 재시작 후에도 유지됩니다. 최대 하나의 활성 바인딩이 스레드를 유지합니다. 바인딩 해제 및 재바인딩은 예상하는 수정 사항을 이름으로 지정하며, 재바인딩은 바인딩의 수명을 절대 연장하지 않습니다.
채팅 커넥터는 각 메시지를 작성한 사람과 메시지를 어떻게 도착해야 하는지 말할 수 있습니다. (#9143) omo thread send --binding은 --author-id와 --author-name을 가져갑니다(그리고 --author-user-id). 세션은 저자를 메시지의 출처 헤더에 인용된 필드로 봅니다(텍스트 외부). 메시지는 다른 사람으로부터 왔다고 주장할 수 없습니다. 각 저자는 바쁜 스레드에서 자체 속도 제한 예산을 가집니다. --mode follow_up을 사용하면 한 메시지가 바인딩이 허용하는 것보다 더 부드럽게 도착할 수 있으며, 절대 더 강하게 도착할 수 없습니다. answer는 동일한 저자 플래그를 가져가며, 아웃박스는 질문에 답변한 사람을 기록합니다. 커넥터는 <agent dir>/gateway/outbox.marker를 시계 보기하여 새로운 아웃박스 행에 대해 알아볼 수 있습니다. 참조는 이제 아웃박스 전달이 최소 한 번이고 (binding_id, cursor)가 중복 제거를 위한 키임을 명시합니다.
omo host status --all은 각 터미널 세션이 마지막으로 활성화되었던 시간을 표시합니다. (#9143) 모든 터미널(tui) 행이 이제 last_activity_at을 포함합니다: 세션 파일의 가장 최신 항목 시간, omo thread list가 표시하는 동일한 시간, 또는 알 수 없을 때 null.
omo daemon adopt는 세션을 호스트에서 터미널로 이동합니다. (#9143) omo daemon adopt <session>은 데스크톱 스레드 또는 백그라운드 세션을 보유하고 있는 호스트에 넘겨달라고 요청한 후 세션의 자체 디렉터리에 있는 현재 터미널에서 재개합니다. 턴 중간의 세션은 --interrupt를 전달하지 않는 한 거부되며, 인터럽트가 큐에서 제거한 입력이 처음 프롬프트가 됩니다. 데스크톱 창이 열려 있는 세션은 --force를 전달하지 않는 한 거부됩니다. omo daemon status는 이제 터미널 세션을 tui 행으로 나열하며, handoff와 stop --all은 이를 무시합니다.
Removed
omo daemon attach와 공유 호스트 옵트인 환경변수(OMO_ENABLE_SHARED_HOST)가 제거되었습니다. 대화형 세션은 항상 독립 실행형으로 실행됩니다. (#9143) 터미널 세션은 더 이상 엔진 호스트에 가입하지 않습니다. 항상 자신의 프로세스에서 자신의 세션을 실행하며, 다른 세션은 게이트웨이를 통해 이에 도달합니다. OMO_ENABLE_SHARED_HOST는 더 이상 아무것도 변경하지 않습니다. 호스트에 있는 세션을 터미널에서 계속하려면 omo daemon adopt를 사용합니다.
- 294a165 Merge pull request #9488 from code-yeongyu/release/v5.1.13-source-state
- 35aa2fd Merge pull request #9479 from code-yeongyu/fix/9477-isolation-git-tests-no-wallclock
- 96dfa60 test(isolation-core): 벽시계 한계 없이 git 트리 정리를 증명합니다
- c37f9ef Merge pull request #9462 from code-yeongyu/fix/lcx171-registered-spawn-roles
- 14fcbfc Merge pull request #9222 from code-yeongyu/feat/session-gateway
- 3e622df test(thread): 모든 게시된 엔드포인트 테스트에 명시적인 15초 예산 제공
- c2650d7 fix(thread): thread_list처럼 게시된 소유자를 나열하므로 list, send 및 steer이 동의합니다
- c51d8c2 fix(thread): 게시된 전송 경로에 레거시 검색 및 라이브 소유자 유지
- 15cf5a5 docs(changelog): 5.1.10 이후 [Unreleased]에 세션 게이트웨이 항목 유지
- d33d52f test(thread): 소켓 파일이 남겨진 채 부주의하게 종료된 소유자 커버
- 55ec7b8 fix(thread): 정확한 내구성 ID가 라이브 세션의 이름보다 우선
- 2541250 test(thread): 발생 이벤트를 도구 항목과 연결
- 6d17016 test(thread): 게시된 소유권 주장 범위 좁히기
- 06a2a9d fix(thread): 게시된 대상을 한 번 검증하고 유지된 소유권 모델링
- 39783cc test(thread): 발생 턴 및 메시지 이벤트를 별도로 캡처
- 72097e4 fix(thread): 바인딩된 전송에 대해 범위가 지정된 소유권 해결 유지
- feed483 test(thread): 발생 대상 수용을 통해 도구 항목 측정
- 1365909 perf(thread): 게시된 대상 엔드포인트를 통해 정확한 ID 전송 해결
- d3fddd0 feat(thread): 세션 제어 엔드포인트 소유권 게시 및 펜싱
- 42e384d docs(omo-thread): win32의 청구자 생존 및 바인딩 신뢰 모델 문서화
- 0391ca6 fix(omo-native): omo daemon adopt 사용법 오류에 JSON으로 답변
- c5230a9 docs(omo-thread): 인수 신청으로 범위 지정된 답변 닫음
- 4b6534d feat(thread): question_closed 아웃박스 이벤트 종류 예약
- 57a9a3e test(thread): bun:sqlite를 통해 영수증 쓰기 잠금 유지
- 52910c7 test(thread): 저장소가 파일을 쓰지 않는 동안만 원본 게이트웨이 행 재작성
- 55281ed fix(thread): arm_seq 없이 완료 보고서를 내구성 arm을 통해 재생
- 3afa1f2 fix(thread): 겹치는 승인 전체에서 복구 바인딩 유지
- d91d3fb fix(thread): 도구 표면의 영수증 복구 키 제한
- 48a8af4 fix(thread): 각 정착된 실행은 시계 읽기가 아닌 순서대로 완료 arm을 소유
- 538e1f0 fix(thread): 만료된 키를 재사용하는 호출은 최대 하나의 영수증 배치 삭제
- dff9be5 test(gateway): 매처 금지가 대기 중이 아닌 호출도 포함함을 명시
- 9241031 test(thread): mock.module이 아닌 복원 가능한 스파이로 git 프로브 관찰
- 284e291 test(thread): settled()를 통해 게이트웨이 저장소 약속 대기 및 매처 형식 감사
- 48f2411 test(thread): 영수증 쓰기 실패로 게이트웨이 저장소 계속 서빙
- 060786f fix(thread): 재시도한 도구 호출이 수신 회신이 손실된 영수증 복구
- f60ae59 fix(thread): 결정된 이벤트는 영수증이 준비된 상태로 유지되었어도 바인딩 해제 후 재생
- fe5d0df fix(thread): 재무장된 바인딩이 이전 실행의 완료 유지
- 00ab369 fix(thread): 피어 도구 호출이 만료된 영수증 다시 쓸기
- ffb394d test(thread): CLI arm 테스트의 제어 엔드포인트 대기 제한
- cae641f fix(thread): 레거시 turn-N 표기법만 스티어의 턴 마이그레이션
- ba22a23 fix(thread): 재시도한 커넥터 이벤트가 바인딩 해제 후 결과 재생
- eb7a87c fix(thread): 바인딩 스냅샷은 이후 생성된 바인딩을 가져가지 않음
- fc6164a fix(thread): 바인딩 식별자가 C1 제어 및 줄 구분자 거부
- 5cddaa4 fix(thread): 윈도우 경계에서 시작하는 꼬리-윈도우 줄 유지
- 0baaa55 fix(thread): 실행의 전송이 결과 쓰기에 실패한 사용된 배달 계속
- 52055df fix(thread): 만료된 영수증을 배치 단위로 삭제
- 0f26984 test(thread): 보존 일정은 하나의 저장소에서 연습함
- 7667164 fix(thread): 재시도한 전송이 자신의 프로세스가 시작한 결정된 배달 재생
- b2ea6ea fix(thread): 질문을 기다리는 세션으로의 스티어가 not_steerable
- f69b1c7 fix(thread): 영수증된 도구가 실패한 영수증 시작에 데이터로 답변
- e1e316d fix(thread): 모든 정착된 실행의 완료를 자신의 결과로 기록
- be61ed2 fix(thread): 세션의 화신을 엔드포인트가 실시간으로 나가기 전에 기록
- c18b6b5 fix(thread): 아웃박스 ack가 다른 바인딩의 커서 거부
- 3dbf5ae fix(thread): 실행의 전송이 소비한 메시지의 체인 계속
- f9c6cab fix(thread): 저하된 레거시 호스트의 스레드를 디스크에서 나열
- 5b12ad6 fix(thread): 마이그레이션된 레거시 스티어가 의도된 턴 유지
- 1c7ab49 docs(thread): binding_id 없는 보고서를 거부하게 하는 입력 이름 지정
- c2cf1b7 fix(thread): binding_id 없는 보고서가 사용자 메시지만 답변할 수 있는 유일한 스레드로 이동
- 9812cbc fix(thread): 입력된 프롬프트가 스레드의 답변을 공유할 때 binding_id 없는 보고서 거부
- e48728d fix(thread): binding_id 없는 보고서를 세션이 답변 중인 스레드로 전송
- 4dffb4d test(thread): 가짜 호스트의 회신 테이블 입력 및 저장소를 목록 fixture로 전달
- 29f9028 fix(omo-native): omo daemon attach를 adopt로 지정 및 저장소가 닫기에 실패할 때 adopt의 결과 유지
- f38c73d fix(omo-native): omo daemon adopt가 재생하는 메시지를 재시작 전에 인쇄
- 4dbc598 fix(omo-native): SDK가 로드 또는 닫기에 실패할 때 omo thread의 --json 계약 유지
- 44a262d refactor(omo-native): 컴파일된 시작 관리자의 죽은 attach 분기 제거
- 68f2f68 test(thread): 가짜 시계에서 취소된 릴리스 재시도 구동
- cccb529 fix(thread): 세션 경로 없는 릴리스 회신을 실패한 릴리스로 처리
- 189e2ae refactor(thread): 도구 표면 옵션에 게이트웨이 저장소 필요
- 6b255a8 perf(thread): SQL에서 아웃박스 행 및 바인딩 페이지 매김
- ea13eac refactor(thread): 호출되지 않은 requeueReleased 저장소 작업 삭제
- a69fda3 docs(thread): 아웃박스 커서는 저장소 전체이므로 바인딩이 갭 확인
- 30628ef feat(thread): 만료되고 취소된 아웃박스 질문 상태 예약
- 511ba85 feat(thread): notion과 feishu를 바인딩 플랫폼으로 수락
- 8d6bcec docs(thread): 세션 라이프사이클, 완료 텍스트 및 저자 속도 키
- aa3c8ea fix(thread): 실행 중인 호스트 없이 bind, rebind, report 및 bindings에 대한 세션 해결
- 5d9a674 fix(thread): binding_id 없는 보고서를 실행을 시작한 스레드로 전송
- 5634de6 fix(thread): 범위 없이 증가한 게이트웨이 테이블 정리
- 3e7b34b fix(thread): 로케일 및 시간대와 무관하게 청구자 시작 시간 기록
- 8ffa096 fix(thread): 프로덕션에서 게이트웨이 이전 우편함 가져오기 및 건너뛴 항목 보고
- df819d8 fix(thread): 실패한 열기 또는 워커 종료 후 게이트웨이 저장소 다시 열기
- 40727c1 docs(changelog): 세션 게이트웨이 항목을 [Unreleased]로 다시 이동
- 11e2bc5 test(omo-native): win32 omo daemon adopt 답변 주장
- 8ac70d3 test(thread): 잠금 소유자를 실제 작업 제어 신호로 일시 중단 및 win32에서 게이트웨이 테스트 실행
- 3eadb52 docs(changelog): 세션 게이트웨이 항목을 [Unreleased]로 다시 이동
- 2257b99 fix(thread): 활동 판독기 및 순서 정렬
- 9cdb4ab fix(thread): 최종 항목 구조 검증
- 53defe9 fix(thread): 활동 스냅샷 이동 거부
- c3e2cc9 fix(thread): 알려지지 않은 목록 활동 유지
- 277aa55 fix(thread): 최신 활동 진정성 유지
- c7624f4 test(thread): 스레드 SDK 항목도 readSessionFacts 내보내기
- e4d5a63 build: 번들을 linux/amd64 컨테이너에서 재생성 (node:24-bookworm, bun 1.4.2)
- 789feff feat(thread): 바인딩 저자, 메시지별 모드, 아웃박스 웨이크 마커 및 tui 상태 행의 last_activity_at
- f1cd7e0 build: 로컬 linux/amd64 컨테이너에서 번들 재생성 (node:24-bookworm, bun 1.4.2)
- 7853cb9 build: 로컬 linux/amd64 컨테이너에서 번들 재생성 (node:24-bookworm, bun 1.4.2)
- a444986 docs(changelog): 5.1.5로 리베이스 후 [Unreleased] 아래에 세션 게이트웨이 항목 유지
- 2f72744 test(script): 게이트웨이 QA 활용 도구의 명령 문자열 조회 분류
- 77a1e50 docs(omo): omo thread send는 아무것도 라이브가 아니거나 대상이 한 번도 나타나지 않았을 때 오프라인에서 대기
- 6af68b0 test(omo-native): 압축된 페이로드는 게이트웨이 저장소 워커를 가져가야 함
- 6324462 docs(changelog): [Unreleased] 아래에 세션 게이트웨이 항목 유지
- b7e7512 docs(omo): thread answer: 선언되지 않은 yes/no는 확정된 상태로 나가고, 거부된 응답한 질문의 인수 신청은 배달 상태로 유지
- d688086 docs(omo): thread answer: 세션이 결국 수용한 포기된 시도가 배달된 답변
- be3cb07 docs(omo): thread answer: 요청 종류 없음, 확인 트리밍, pre-v3 청구 및 후기 정착
- 6256799 docs(omo): thread answer: 거부, answer_in_progress 및 요청 종류당 답변 양식
- 9378198 docs(omo): 세션 게이트웨이, 스레드 CLI, daemon adopt; attach 및 공유 호스트 산문 제거
- aa78dab feat(omo-native): omo thread report --request-kind; 스레드 SDK가 질문의 요청 종류 전달
- 10a6062 fix(omo-native): adopt의 재생된 메시지는 절대 시작 플래그가 아님; omo thread가 잘못된 --mode/--direction 거부
- 025dddc feat(omo-native):
omo thread CLI 및 omo daemon adopt
분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.