done_reason: "length"로 끝나고 어시스턴트 콘텐츠가 없어 일반적인 빈 중단으로 표시되는 문제를 수정했습니다. 이제 빈 중단 재시도 복구에 진입하는 대신 컨텍스트 윈도우 오류가 됩니다. (#3464)output_config.effort를 직렬화하는 문제를 수정했습니다. 카탈로그 분류(packages/catalog/src/model-thinking.ts)가 buildParams의 anthropic-budget-effort 분기를 활성화했는데, Anthropic의 일차 Messages API가 Sonnet/Haiku 4.5에서 HTTP 400 This model does not support the effort parameter.로 거부했습니다. Sonnet/Haiku 4.5는 이제 순수 thinking.budget_tokens를 사용하고, Opus 4.5는 Anthropic에서 지원하기 때문에 계속 output_config.effort를 내보냅니다. (#3497)This model does not support the effort parameter.로 모든 호출에서 충돌하는 문제를 수정했습니다. 카탈로그가 전체 Claude 4.5 계열을 anthropic-messages(bedrock-converse-stream 포함)에서 anthropic-budget-effort로 분류했고, 이로 인해 Anthropic 프로바이더가 thinking.budget_tokens와 함께 output_config.effort를 직렬화했습니다. Anthropic은 Opus 4.5 및 적응형(4.6+) Messages-API 모델에서만 output_config.effort를 지원하므로, Sonnet 4.5 / Haiku 4.5는 해당 필드를 거부했습니다. inferThinkingControlMode는 이제 양쪽 Anthropic 라우팅 API에서 anthropic-budget-effort를 parsedModel.kind === "opus" && semverGte(version, "4.5")로 제한하므로, Sonnet 4.5 / Haiku 4.5가 직접 Anthropic + Cloudflare-AI-Gateway + Vertex + GitLab-Duo + Copilot + Bedrock에서 순수 mode: "budget"으로 넘어갑니다(thinking budget은 여전히 선택된 effort 단계에 따라 확장됩니다). Opus 4.5는 anthropic-budget-effort를 유지합니다. anthropic-budget-effort는 또한 해당 필드를 기본적으로 지원하는 Anthropic 호환 타사 백엔드(Umans GLM 5.2)에서 계속 사용됩니다. (#3497)ui.stop()) 프로세스는 Sl+ 상태로 계속 실행되어 사용자가 kill -9로만 복구 가능한 데드 터미널을 남겼습니다. 모든 bash 툴 호출 뒤의 임베딩된 brush-core 셸은 Process::wait에서 tokio SIGTSTP 리스너를 설치합니다(crates/brush-core-vendored/src/sys/unix/signal.rs::tstp_signal_listener → tokio::signal::unix::signal(SIGTSTP)). tokio의 계약에 따르면, SignalKind에 대한 첫 호출은 프로세스 생명주기 동안 커널 기본 핸들러를 영구적으로 교체합니다. 따라서 첫 번째 bash 호출(/usr/bin/true도)은 SIGTSTP의 "중단" 기본값을 조용히 재정의했고, InputController.handleCtrlZ의 후속 process.kill(0, "SIGTSTP")는 tokio에 의해 삼켜졌습니다. 이제 핸들러는 포그라운드 프로세스 그룹에 SIGSTOP(포획 불가, 차단 불가, 무시 불가)을 전송하므로 커널은 설치된 핸들러와 관계없이 omp를 파킹하고 셸은 omp가 래퍼(npx, pnpm exec, bunx, …) 뒤에서 실행되거나 파이프라인의 한 단계로 실행되더라도 전체 작업 중단을 봅니다. MCP stdio 서버는 이제 자신의 세션에서 분리되어 생성됩니다. 터미널 작업 제어 신호(이전에 프로세스 트리를 중단하고 JSONL 읽기 루프를 조용한 파이프에서 차단하게 함)와 새로운 pgid=0 일시 중지 자체 모두에서 격리됩니다. (#3461)omp gallery --state가 표시된 상태 레이블과 일치하지 않는 라이프사이클 토큰을 허용하고 알 수 없는 상태 값을 · undefined로 렌더링하는 문제를 수정했습니다. 표시된 레이블은 이제 별칭으로 작동하고, 잘못된 값은 유효한 토큰 목록으로 실패하며, 실패한 갤러리 픽스처는 시각적으로 실패를 렌더링합니다. (#3473)$__MISE_EXE가 비어 있어 bash 툴의 스냅샷된 mise() 셸 함수가 command: command not found:로 중단되는 문제를 수정했습니다. generateSnapshotScript가 declare -f/typeset -f를 통해 함수를 캡처했지만 PATH만 다시 내보냈으므로 rc 파일이 설정한 다른 모든 환경 변수(mise activate가 내보내는 *_EXE 사이드카 포함)가 손실되었습니다. 함수 본문은 command "$__MISE_EXE" "$@"를 command "" …로 확장한 후 종료 코드 127로 중단되었습니다. 스냅샷 스크립트는 이제 캡처된 함수 본문에서 $VAR / ${VAR…} 참조를 스캔하고 현재 설정된 각 참조 변수에 대해 export NAME='value'를 다시 내보냅니다(셸 내부 이름(PATH/HOME/BASH_*/LC_* 등)과 비밀 가능성이 높은 거부 목록(*TOKEN*/*SECRET*/*API_KEY*/*PASSWORD*/*PRIVATE_KEY*/*ACCESS_KEY*/*CREDENTIAL*/*SESSION_KEY* 등)에 대한 거부 목록 사용). 스냅샷 스크립트는 umask 077을 설정하고 JS 호출자는 스냅샷 파일/디렉토리를 0600/0700으로 chmod하므로 새 내보내기 패스가 공유 tmp 디렉토리에 비밀을 유출할 수 없습니다. mise, asdf shims, direnv 스타일 헬퍼 및 함수를 헬퍼 환경 변수와 쌍으로 묶는 기타 활성화 관례를 수정합니다. getShellConfigFile은 이제 env.HOME을 준수하고(os.homedir()로 폴백), 샌드박스 호출자가 기본이 아닌 rc를 대상으로 할 수 있습니다. (#3470)history:// 트랜스크립트 렌더링을 find 및 search에 대해 수정하여 범위가 지정된 paths 인수가 JSON 폴백 출력 뒤에 숨겨지거나 검색 pattern이 있을 때 생략되지 않고 표시되도록 했습니다. (#3482)/compact가 활성 턴 중단 정리가 대기 중일 때 session.isCompacting을 false로 남기는 문제를 수정했으므로, 압축 시작 중에 입력된 첫 번째 스티어/후속이 손실되지 않고 대신 압축 큐를 통해 라우팅됩니다. (#3485)providers.ollama-cloud.maxConcurrency)가 구성된 제한이 변경될 때마다 새로운 세마포어로 교체되는 문제를 수정했으므로, 이는 이전 인스턴스의 진행 중인 슬롯을 고아로 만들고 런타임 또는 혼합 제한 값이 상한을 초과하도록 했습니다. 제한자는 이제 제자리에서 단일 공유 세마포어를 크기 조정합니다. 상한을 높이면 큐에 있는 대기자를 즉시 허용하고, 낮추면 진행 중인 보유자를 새 상한을 초과하지 않도록 드레인합니다. (#3464)task.maxConcurrency 제한자에서 슬롯을 획득한 후 보호된 실행에 진입하기 전에 진행 상황 보고가 발생할 때 누수되는 문제를 수정했습니다. markRunning/reportProgress는 이제 세마포어를 해제하는 finally가 있는 try 내부에서 실행되므로 실패한 진행 상황 보고가 더 이상 서브에이전트 동시성을 영구적으로 줄일 수 없습니다. (#3464)yield를 성공적으로 호출한 후 후행 빈 어시스턴트 stop을 받는 활성 목표 실행이 임계값 압축을 건너뛰는 문제를 수정했습니다. yield 후 빈 중단 억제는 이제 여전히 yield를 포함하는 어시스턴트 턴에서 활성 목표 압축을 고정하므로, 장시간 실행되는 태스크는 조기에 정산되지 않고 유지보수 후 계속됩니다.TERM_PROGRAM=WarpTerminal)을 일급 터미널로 인식하여 macOS/Linux에서 Kitty 인라인 이미지를 활성화하면서 Warp의 안전하지 않은 OSC 8 하이퍼링크와 Windows Kitty 그래픽을 비활성화합니다. (#3471)전체 변경 로그: v16.1.19...v16.1.20