alibaba-token-plan/qwen3.8-max 메타데이터를 수정하여 생각 제어 및 이미지 입력을 사용할 수 있도록 했습니다 (#8019).opencode-go/deepseek-v4-flash를 OpenAI responses API를 통해 라우팅했습니다 — OpenCode Go 게이트웨이는 /zen/go/v1/chat/completions에서 이 모델을 제공하지 않으며 /zen/go/v1/responses에서만 제공합니다 (deepseek-v4-pro는 채팅 완성을 유지합니다).rustc --print 출력을 OK로 바꾸는 문제를 수정했습니다./models에 표시되는 모델별 TPS/TTFT 집계에서 생략되는 문제를 수정했습니다 (#8022).task/scout 서브에이전트에 대해 장기 실행 세션이 메모리를 누수하는 문제를 수정했습니다. 폐기된(주차된) 서브에이전트의 AgentSession은 수명 주기 채택 기록의 reviver 클로저를 통해 고정된 상태로 유지되었으며, dispose()는 메시지 배열, 추가 전용 공급자 기록, 세션 관리자 항목 또는 원본 SSE 디버그 버퍼를 해제하지 않아 많은 기록과 캡처된 공급자 전송 프레임이 프로세스 수명 동안 누적되었습니다 (#8003)./handoff가 빈/공백만 있는 생성과 장치 시작 중단을 "Handoff cancelled"로 마스킹하는 문제를 수정했습니다. 이제 수동 빈 생성은 로깅된 실패를 표시하고, 장치 중단은 해당 이유를 유지하거나 "Handoff aborted by session"을 보고하며, 자동 인도는 여전히 컨텍스트 완전 압축으로 대체됩니다 (#7993).PUT N.=M @name은 @name이 절대 캡처되지 않았을 때 경고하고 범위를 삭제하는 대신 예외를 throw합니다. 절대 캡처되지 않은 레지스터를 span에 붙여넣으면 아무것도 돌아쓰지 않았으므로, 오타가 있거나 환각으로 생성된 레지스터 이름이 무자비하게 컨텐츠를 삭제했습니다. 갭 붙여넣기(PUT >N @name)는 17.2.11의 경고된 no-op 동작을 유지합니다.applyEdits는 이제 path를 받아 네이티브 tree-sitter 파서를 사용하여 구분 기호 _의미론_에 따라 달라지는 모든 경계 복구를 결정합니다. 작성된 편집은 먼저 구체화됩니다. 결과가 파싱되면 수정되지 않은 채로 반환되므로, 정규식 리터럴, 문자열 또는 마크다운 산문 내의 }는 블록 closer로 잘못 인식되지 않습니다. closer 스페어 복구는 복구된 결과가 _표시_될 때만 파싱되므로 — 구분 기호 산술만으로는 — 인식되지 않은 언어 또는 증명 불가능한 후보는 편집을 정확히 작성된 상태로 둡니다. Patcher, 복구, 섹션 적용 및 편집 도구 미리보기를 통해 연결되었습니다.}): closer는 스페어되고 페이로드는 그 뒤에 랜딩되며, 같은 파싱 증명으로 게이트됩니다.PUT N*:)을 가리킵니다. 기준선이 파싱되고 작성된 결과는 파싱되지 않을 때만 발생하므로 산문이나 알 수 없는 언어에서 발생할 수 없습니다.+ 본문 행이 자체로 유효한 hunk 헤더(+CUT 5.=9)인 경우 경고. 그러한 행은 정의상 리터럴 컨텐츠이며 텍스트로 파일에 삽입됩니다. 발생 시점에 이름 지정하면 무자비한 소스 파일 손상을 실행 가능한 진단으로 바꿉니다.N:TEXT 읽기 출력 행이 소스 행 번호를 반복하는 패치를 거부했습니다. 각 행은 단일 줄 PUT N.=N:으로 복구되므로, 한 번호 아래에 연속 줄로 작성된 본문은 같은 범위 합치기를 통해 축소되어 마지막 행만 유지하고 나머지는 무자비하게 드롭했습니다 — 한 사건에서 블록 opener를 }로 바꾸고 다음 문을 삭제했습니다. 오류는 이제 반복된 줄을 명시하고 명시적 PUT 형식을 알려줍니다.crates/pi-builtins (이름이 변경되고 de-vendored된 brush-builtins fork)로 통합하고, 명령당 하나의 모듈을 사용합니다. 46개의 crates/vendor/uu-* crate들, crates/vendor/jaq, crates/pi-uu-grep, crates/pi-uu-diff 및 pi-shell에 인라인으로 축적된 모든 것 (fd, cmp, which, moreutils 세트 및 ps/top/pgrep/pkill/pidwait/kill/sleep/timeout/nohup 프로세스 builtin들)은 이제 실행 시 옆에 앉는 bash builtin들 옆에 있으며, pi_builtins::utility_builtins() 및 pi_builtins::process_builtins()을 통해 등록합니다. pi-shell/src/shell.rs는 약 4,200줄 줄어들었습니다.sort --compress-program이 압축기 및 압축 해제기를 shell의 작업 디렉터리 또는 내보낸 환경 없이 생성하는 문제를 수정했으므로, shell의 PATH에만 설치된 프로그램을 찾을 수 없었고 호스트 프로세스에서 stderr를 상속받아 진단이 TUI를 손상시킬 수 있었습니다. 두 자식은 이제 shell의 자식 컨텍스트를 통해 시작되며 stderr는 명령의 자체 파일 디스크립터로 전달됩니다.realpath -q가 실패한 피연산자 후 종료 코드 0으로 종료되는 문제를 수정했습니다. GNU와 일치하도록 진단을 억제하지만 이제 실패를 보고합니다.crates/pi-uutils-ctx를 제거했습니다. Utility builtin들은 이전에 각 호출 주위에 설치된 스레드 로컬 컨텍스트를 통해 stdio, 작업 디렉터리 및 환경에 도달했습니다. 이제 명령의 파일 디스크립터, shell 작업 디렉터리, 내보낸 환경, 취소 및 누적된 종료 상태를 전달하는 명시적 Host 값 (pi-builtins/src/host.rs)을 받습니다. uutils 엔트리 포인트 배관 (uumain, UResult/UError, set_exit_code, crate_version!)은 함께 제거되었으며, 각 유틸리티는 이제 host::Utility를 구현하는 일반적인 brush builtin입니다.$$…$$) 분수가 단편화된 텍스트로 렌더링되는 문제를 수정했습니다. latexToBlock은 \frac{num}과 {den} 사이의 최상위 줄바꿈을 행 바꿈으로 취급하여 \frac를 분모에서 분리했습니다. 이러한 argument-continuation 줄바꿈은 이제 보존되어 분수가 스택된 상태로 유지됩니다 (#7996).전체 변경 사항: v17.2.11...v17.2.12