tool.execute에 진입하지 않은 호출(SyntheticToolResultDetails, executed: false)을 부분 작업을 수행했을 수 있는 처리 중 호출(execution: "started")과 구분하므로, UI/텔레메트리 소비자가 실행 상태를 잘못 보고하지 않고 일반 스티어링 제어 흐름을 렌더링할 수 있도록 했습니다 (#7199).model.compat.streamIdleTimeoutMs를 무시하는 문제를 수정했습니다. streamAnthropic을 통해 전달된 요청은 이제 이벤트 간 유휴 감시자를 확장하거나 비활성화하도록 0으로 설정할 수 있습니다. 호출자 옵션과 환경 재정의는 우선권을 유지합니다. 호환성 값을 0으로 설정하면 이벤트 간 감시자만 비활성화되고 첫 이벤트 감시자는 활성화된 상태로 유지됩니다. 더 넓은 유휴 값은 기존 타임아웃 계약 아래에서 첫 이벤트 예산의 최소값을 계속 설정합니다.SqliteAuthCredentialStore.open()이 생성자의 #initializeSchema()가 바쁨 처리기를 설치하기 전에 Bun의 기본 busy_timeout=0으로 auth_credential_refresh_leases DDL(CREATE TABLE/CREATE INDEX)을 실행하는 문제를 수정했습니다. 동시 쓰기 잠금(예: 병렬 omp 시작 시 WAL 복구) 아래에서 잠금 취득 DDL이 즉시 실패했고, 오류가 BUSY로 분류되지 않았으므로 open()의 제한된 재시도 루프를 우회했습니다. 바쁨 처리기는 이제 연결이 열린 직후, 모든 잠금 취득 문 전에 설치되어 이슈-#2421 불변식을 모든 진입 경로에서 유지합니다. (#7298)agent.db)가 모든 지속형 속도 제한 차단을 자동으로 비활성화하는 문제를 수정했습니다. AuthStorage가 debug 수준에서 래치 없이 지속형 블록 읽기/쓰기 경로에서 복구 불가능한 SQLite 오류(SQLITE_CORRUPT 계열 / SQLITE_NOTADB)를 포착했으므로, 손상된 저장소가 모든 자격 증명 평가에서 다시 쿼리되는 동안 블록이 조용히 적용 중지되었습니다. 첫 번째 복구 불가능한 오류는 이제 error 수준에서 저장소 위치 및 복구 지침과 함께 한 번만 보고되고, 이후 모든 지속형 블록 읽기/쓰기는 프로세스 수명 동안 단락되며, 메모리 내 백오프는 여전히 가용성을 유지합니다 (#7296).AnthropicCompat.streamIdleTimeoutMs를 추가하고 buildAnthropicCompat을 통해 전파하여 직접 Anthropic 공급자 스트림이 이벤트 간 유휴 감시자를 구성할 수 있도록 했습니다.deepseek-v4-flash:0731과 같은 날짜 태그 변형 포함)이 배포의 적용된 65536-토큰 출력 한계에 고정하여 잘못된 최대 출력 토큰 수를 보고하는 문제를 수정했습니다 (#7266).gen:models Codex 검색이 저장된 모든 OAuth 계정에서 모델을 통합하고 부분 해결 시 폐쇄 실패하도록 런타임 검색과 일치시키는 문제를 수정했습니다 (#6265). 단일 계정 재생 시 삭제된 번들 gpt-5.4, gpt-5.6-sol, gpt-5.3-codex-spark 항목을 복원했습니다.google-antigravity 모델이 항상 $0 비용을 보고하는 문제를 수정했습니다: Antigravity 검색에는 가격 책정이 없으므로 생성기가 이제 각 모델을 Google 목록 가격으로 백필합니다(google 공급자의 Gemini ID(예: -preview ID 별칭 포함), google-vertex의 Claude ID(기본값: anthropic)).deepseek/deepseek-v4-flash-0731이 라이브 reasoning.supported_efforts 및 default_effort 메타데이터를 사용하고 low/high/max 사다리를 번들로 묶어 high 사고력만 노출하는 문제를 수정했습니다. (#7307)requestIdFormat("string" | "number", 기본값 "number")를 추가했으며, stdio, HTTP 및 SSE 전송에 의해 준수됩니다. JSON-RPC 2.0은 두 ID 형태를 모두 허용하지만, Apple의 xcrun mcpbridge는 id를 정수로만 디코드하고 문자열 ID를 자동으로 삭제합니다(mcpbridge.DecodeError Code=1), 모든 요청을 타임아웃할 때까지 중단시킵니다. 옵션은 OMP 소유 구성(.omp/mcp.json, ~/.omp/agent/mcp.json, 프로젝트 mcp.json/.mcp.json, 또는 OMP 플러그인)에서 설정합니다. 다른 도구의 구성에서 가져온 서버는 이를 무시합니다 (#7053).tool.execute가 시작되었는지 여부를 유지하면서 중립적인 정보 카드로 렌더링됩니다 (#7199).Shift+Up을 두 번째 기본값으로 추가했으므로, 옵션이 문자 구성을 위해 소비되는 macOS Terminal.app에서 바로 가기에 도달할 수 있습니다.pgrep, pkill, pidwait 및 top 셸 내장 함수를 추가했습니다.busy_timeout을 사용하므로, 잠금 경합이 더 이상 전체 대화형 5초 타임아웃 동안 프로토콜 루프를 동결하지 않습니다. 대화형 호스트는 5초 타임아웃을 유지합니다. 대화형 호스트 플래그는 이제 설정이 로드되기 전에 선언되므로 첫 번째 데이터베이스 열기에서 올바른 타임아웃을 봅니다./switch, alt+p)는 더 이상 라이브 세션보다 작은 컨텍스트 윈도우가 있는 모델을 차단하지 않습니다: 초과 컨텍스트 행은 회색으로 표시되지만 선택 가능하며, 하나를 선택하면 현재 모델로 먼저 압축한 다음 전환합니다. 취소되거나 실패한 압축은 현재 모델을 유지합니다.xcrun mcpbridge와 같은 정수 전용 디코더가 구성 없이 작동하도록 합니다. 서버당 requestIdFormat: "string"을 설정하여 충돌 방지 문자열 ID를 복원합니다 (#7053).secret-placeholder.key는 이제 에이전트 구성 디렉토리 대신 XDG 상태($XDG_STATE_HOME/omp/secret-placeholder.key)에서 확인되므로, 다른 상태 파일과 동일한 XDG 레이아웃을 따릅니다.run/daemons/<hash>) 및 공급자 처리 중 추적(run/provider-inflight)은 이제 구성 루트 대신 XDG 상태($XDG_STATE_HOME/omp/run/)에서 확인되므로, 임시 런타임 상태를 ~/.config 밖으로 유지합니다.marketplaces.json은 이제 구성 루트 대신 XDG 데이터($XDG_DATA_HOME/omp/marketplaces.json)에서 확인되어, 사용자 범위 레지스트리 파일에 대한 XDG 데이터 카테고리와 정렬합니다.~/.omp/agent/secret-placeholder.key 및 ~/.omp/marketplaces.json은 첫 번째 해결 시 XDG 위치로 복사됩니다.write 도구가 없는 세션이 검색 가능한 도구와 MCP 도구를 사용 불가능한 xd:// 전송 뒤에 숨기는 문제를 수정했습니다. 이제 이러한 세션은 디바이스 마운팅을 비활성화하고 쓰기 액세스를 얻지 않고 도구를 직접 노출합니다./memory stats 및 /memory diagnose가 "Memory stats is not available for the off backend"를 표시하는 문제를 수정했습니다(TUI 및 ACP/RPC 슬래시 명령 처리기 모두에서). 꺼진 백엔드는 이제 자신을 지원되지 않는 백엔드로 명명하는 대신 메모리가 꺼져 있음을 직접 말합니다 (#7251 by @KennethHoff)./reload-plugins가 현재 시스템 프롬프트에서 오래된 컨텍스트 파일 내용 및 활성화 상태를 유지하는 문제를 수정했습니다 (#7258).@oh-my-pi/pi-coding-agent/slash-commands/helpers/active-oauth-account와 같은 중첩된 와일드카드 내보내기 부분 경로를 가져오는 데 실패하는 문제를 수정했습니다. Node는 exports 패턴에서 /를 통해 *과 일치하지만, 번들된 레지스트리는 최상위 수준만 열거하고 슬래시가 포함된 키를 건너뛰었으므로, 이러한 가져오기는 소스에서 확인되고 bunfs에서 실패했습니다 — 게시된 17.2.1 바이너리에서 재현 가능합니다./move 중 동시 세션 추가가 이전 세션 디렉토리에서 고아 .jsonl 조각을 다시 생성하는 문제를 수정했습니다 (#7270)..env가 NODE_ENV=test 또는 BUN_ENV=test를 설정할 때 대화형 실행이 자동으로 중단되는 문제를 수정했습니다 (#7261).x)에서 종료된 서브에이전트가 로컬 세션에서 허브를 닫고 다시 연 후 parked 행으로 다시 나타나는 문제를 수정했습니다. 종료는 이제 ref를 등록 취소하는 대신 터미널 aborted로 등록된 상태로 유지하므로, 지속형 서브에이전트 재스캔이 더 이상 생존 트랜스크립트를 다시 채택하지 않습니다 (#7250).call_id|id 전송, 또는 도구 이름/인수가 ID 전에 전달되는 모든 스트림 — 블록이 처음 빈 또는 부분 ID로 나타나고 나중 델타에서 채워집니다. 트랜스크립트가 변경 가능한 ID로 라이브 카드를 키 설정했으므로, 변경된 ID가 두 번째 카드를 생성했습니다: 이전 ID 카드가 파란색 대기 중 미리보기로 고아되는 동안 새 ID 카드가 결과를 받았습니다. 스트리밍된 도구 카드는 이제 ID가 변경될 때 스트리밍 메시지의 블록 위치를 안정적인 ID로 사용하여 제 위치에서 다시 키 설정됩니다 (#6879).-e/--extension 및 --hook 패키지를 --no-extensions 아래 유지하면서 설정 또는 설치된 OMP 패키지에서 주변 확장 팩토리 및 형제 기능을 제외합니다.models.yml 사용자 정의 정의 및 modelOverrides의 명시적 thinking 메타데이터가 정규 카탈로그 정책으로 대체되는 문제를 수정했습니다. (#7307)normalizeGeneratedTitle은 이제 과도하게 긴 출력(>80자 또는 >12단어)을 거부하므로, 호출자는 전체 문장을 수락하는 대신 다음 사용자 턴으로 제목 지정을 미룹니다 (#7303).kill 내장 함수가 신호를 검증하고, 음수 PID 피연산자를 유지하고, 파이프라인 작업의 모든 프로세스에 신호를 보내고, 잘못된 대상 후 계속하고, 호스트 프로세스 또는 프로세스 그룹을 대상으로 하는 비프로브 신호를 거부하도록 수정했습니다.NODE_ENV=test 또는 BUN_ENV=test를 설정할 때 대화형 터미널이 모든 출력과 입력을 억제하는 문제를 수정했습니다 (#7261).getSecretPlaceholderKeyPath(), getDaemonRuntimeDir(), getProviderInFlightRoot() 및 getMarketplacesRegistryPath()를 추가했습니다(구성 루트 대신).~/.omp/agent/secret-placeholder.key 또는 ~/.omp/marketplaces.json이 첫 번째 해결 시 XDG 위치로 복사되므로, 지속형 트랜스크립트가 여전히 제거 보호를 해제하고 추가된 마켓플레이스가 이동을 생존합니다.getDbBusyTimeoutMs()를 통해 1초 SQLite busy_timeout을 사용하므로, 잠금 경합이 더 이상 전체 대화형 5초 타임아웃 동안 프로토콜 루프를 동결하지 않습니다. 대화형 호스트는 5초 타임아웃을 유지합니다.NODE_ENV=test 및 BUN_ENV=test 값을 테스트 러너 신호로 처리하는 문제를 수정했습니다 (#7261).전체 변경 로그: v17.2.3...v17.2.4