done 및 error 이벤트가 최종 어시스턴트 콘텐츠를 전달하도록 허용하면서, 이를 생략하는 이전 프록시 서버의 델타 재구성 콘텐츠를 유지합니다 (#6703).prompt_cache_key, Anthropic 호환 요청의 경우 metadata.user_id입니다. 명시적 키는 부채널 세션 ID를 유지하고, cacheRetention: "none"은 여전히 자동 어피니티를 비활성화합니다 (#6049).anthropic-messages 엔드포인트 문제를 수정했습니다. 서명된 연속 기록을 소스 순서로 유지하면서 선행 텍스트 서명을 이후 서명되지 않은 블록으로 전달하지 않습니다 (#6703).kimi-code)가 모든 모델에 대해 maxTokens: 32000을 보고하는 문제를 수정했습니다 — /coding/v1/models 검색 매퍼와 번들된 카탈로그가 일괄 상수를 적용했으며, k3/k3-256k 출력을 실제 131072 한계 대비 약 4배 이하로 자르고 kimi-for-coding/kimi-for-coding-highspeed를 32768 한계 이하로 잘랐습니다. 이제 출력 상한은 패밀리별로 파생되며, 모델 캐시가 무효화되어 다음 네트워크 새로 고침까지 제공하는 대신 업그레이드가 오래된 maxTokens: 32000 행(검색 전용 k3-256k 포함)을 삭제합니다 (#6711)./v1 접미사 없이 번들된 모델에서 프로바이더 기본 URL을 파생할 때 Anthropic 모델 검색이 404 되는 문제를 수정했습니다 (https://api.anthropic.com/models 대신 /v1/models). 이로 인해 오래된 텍스트 전용 캐시 행이 새로운 models.dev 비전 메타데이터를 숨겼습니다 — claude-opus-5에서 snapcompact가 실행을 거부하는 것으로 나타났습니다. 이제 검색이 항상 /v1/models를 대상으로 하고 모델 행은 프로바이더 기본 URL을 유지합니다 (#6563).inspect_image 도구에 대해 구성 가능한 요청별 타임아웃을 추가했습니다(inspect_image.timeoutMs, 기본값 5분; 비활성화하려면 0으로 설정). 정지된 비전 모델 프로바이더가 수동 중단까지 차단되지 않고 명확한 오류로 빠르게 실패합니다 (#4165).glob이 안전한 memory://root/<directory>/** 패턴을 거부하는 문제를 수정했습니다. 메모리 glob은 이제 프로젝트 메모리 루트 내에서 디렉토리 접두사를 확인하면서 전체 glob 경로에 걸쳐 순회 및 퍼센트 인코딩된 경로 구분 기호를 거부합니다.omp --resume <id>가 다른 기존 디렉토리에서 세션을 포크하도록 프롬프트하지 않고 프로세스 및 cwd 범위 설정을 재개된 세션의 기록된 디렉토리로 전환하는 문제를 수정했습니다 (#6752).EPIPE: broken pipe, write로 충돌하는 문제를 수정했습니다. LSP 쓰기는 이제 비동기 FileSink.write() 오류를 관찰하고 기존 요청/알림 오류 경로로 라우팅합니다.stat 빌트인이 모든 호출에 대해 stat: unsupported on this platform(종료 1)으로 실패하는 네이티브 Windows 문제를 수정했습니다. 공급된 uu-stat는 이제 GNU 형식 지시어를 std::fs::Metadata로, windows_by_handle 메타데이터 확장(inode, 하드링크 수, GetFileInformationByHandle를 통한 디바이스), --file-system 모드의 Win32 볼륨 API로 매핑하는 Windows 네이티브 백엔드를 제공합니다. Unix 동작은 변경되지 않습니다 (#6723).assistant removal missed를 기록했지만 재시도는 여전히 continue()를 스케줄했으며, 이는 프로바이더 요청 전에 로컬로 최종 어시스턴트 오류 메시지를 거부했습니다(Cannot continue from message role: assistant) — auto_retry_end가 실행되지 않았고, TUI는 계속 재시도 진행률을 표시했으며, 인플라이트 prompt()는 수동 후속 조치까지 중단되었습니다. 재시도 경로는 이제 백오프 후 위치상 여전히 실패한 어시스턴트 테일을 제거하고, 여전히 로컬로 실패하는 연속은 실패한 auto_retry_end로 재시도 사가를 닫습니다 (#5382).config.yml 파일이 빈 설정으로 처리된 후 다음 설정 변경으로 덮어씌워지는 문제를 수정했습니다. 이로 인해 브로커 토큰, 모델 역할 및 프로바이더 구성이 영구적으로 삭제될 수 있습니다. 이제 잘못된 YAML이 타임스탬프가 지정된 .broken-* 백업으로 이동되고, 읽기 오류가 소스를 건드리지 않고 중단되며, 보류 중인 변경 사항은 마지막으로 성공적으로 로드된 설정으로 재시도할 수 있으며, 원자성 쓰기는 심링크 대상을 보존하고 Windows EPERM 대체를 처리하며, 동시 시작 오류는 완전히 관찰되고 경합 오류는 닫혀 실패하며, omp config set/reset은 성공을 보고하기 전에 지속성을 기다립니다.xd:// 경로 맵을 포함하고 스키마 가상화를 비활성화하지 않고 카탈로그 변경 시 새로 고칩니다.inspect_image가 무한정 차단되는 문제를 수정했습니다. 호출자의 중단 신호를 AbortSignal.timeout()과 결합하고 서로 다른 타임아웃 ToolError(사용자 트리거 중단과 분리)를 표시합니다 (#4165).bash.exe가 없을 때 omp가 Windows에서 시작을 거부하는 문제를 수정했습니다 — 가장 눈에 띄게 scoop에서 설치한 Git의 경우 매니페스트가 sh.exe/git.exe를 shimming하지만 bash.exe는 never하므로 PATH 조회가 놓쳤습니다. 시작이 bash 도구 설명을 구성하기만 했을 때 No bash shell found를 throw했는데, 비록 bash 도구 명령이 항상 임베디드 brush-core 셸에서 실행되고 호스트 bash가 필요 없습니다. 셸 검색은 이제 GIT_INSTALL_ROOT, scoop 및 사용자별 Git for Windows 설치 루트, 및 PATH의 sh.exe도 확인한 다음 스폰 전용 경로(인터랙티브 PTY, ACP 클라이언트 터미널)로 cmd.exe로 폴백합니다. cmd 폴백은 사용자 셸 명령을 래핑하는 데 사용되지 않습니다 — brush는 POSIX 라인을 직접 실행합니다./live 실시간 세션에 대해 선택 가능한 음성 설정을 추가했습니다 (#6566).DEL 235.258과 같은 정수 범위 엔드포인트 사이의 단일 점을 명확한 범위 구분 기호로 허용했습니다 (#6671).sort 빌트인이 SendError(..) at chunks.rs:248로 패닉하는 문제를 수정했습니다. 이제 리더는 실패한 전송을 언래핑하는 대신 우아하게 중지하고, 패닉하는 외부 정렬 작업자 스레드는 잘린 출력을 무음으로 내보내는 대신 오류로 표시됩니다 (#6736).getShellConfig가 더 이상 발견 가능한 bash가 없는 Windows 호스트에서 No bash shell found를 throw하지 않습니다. resolveWindowsShell은 Git for Windows 설치 루트(컴퓨터, 사용자별, GIT_INSTALL_ROOT, scoop 앱 디렉토리 — scoop은 sh.exe/git.exe를 shimming하지만 bash.exe는 never), PATH의 bash.exe/sh.exe, ComSpec에서 cmd.exe로 /c 인수로 폴백을 검색하므로 셸 해석이 항상 성공합니다.Full Changelog: v17.1.4...v17.1.5