toolCall.steeringSignal로 보는 소프트 스티어링 신호가 이제 reason으로 큐에 쌓인 메시지의 출처("user", "irc", …)와 함께 중단되므로, 도구는 자신이 응답해야 할 출처에만 양보할 수 있습니다 (#17537)stopReason: "length"로 끝나는 불완전한 로컬 컴팩션, 턴 프리픽스, 핸드오프, 브랜치 요약을 완전한 컨텍스트로 사용하는 대신 거부하도록 변경했습니다. 완료된 전체 요약을 버리지 않고, 불완전한 표시 전용 짧은 요약은 생략합니다 (#17499, @Xytronix 작성).isLoopGuardedModel을 loopGuardLevel로 교체했습니다. 이 함수는 모델의 thinking-loop-guard 카탈로그 규칙에 따라 "off", "exact", 또는 "semantic"을 반환합니다FactoryDroidOptions와 SimpleStreamOptions에 disableServerSideFallback을 추가했습니다. 이 옵션이 설정된 Factory Droid 요청은 서버 측 거부 폴백 체인을 사용하지 않으며, 다른 모델이 응답하는 경우 콘텐츠가 스트리밍되기 전에 실패합니다 (#12229, @Xytronix 작성)AuthStorage.close()와 replaceStore()가 회전된 OAuth 리프레시 토큰을 잃던 문제를 수정했습니다. 내구성 있는 리프레시 리스가 있든 없든 동일합니다. 이제 저장소는 해당 토큰이 저장될 때까지 열려 있고, 새 갱신은 거부됩니다 (#17518)/usage가 Cursor의 "Other Models" 미터를 부풀려진 달러 금액으로 표시하던 문제를 수정했습니다. 이제 Cursor Models와 같이 Cursor가 보고하는 백분율을 표시합니다 (#17462, @eggpeat 작성)omp auth-gateway Responses 엔드포인트가 temperature, top_p, 출력 한도, reasoning, reasoning summary에 대해 문서화된 null 값을 거부하던 문제를 수정했습니다 (#17466, @Xytronix 작성).omp auth-gateway chat-completions 엔드포인트를 통한 Gemini 도구 호출이 다음 턴에서 실패하던 문제를 수정했습니다. 게이트웨이는 이제 각 호출의 thought signature를 extra_content에 담아 반환하고, 클라이언트가 되돌려 보낸 서명을 재전송합니다 (#17509, @justdoGIT 작성)thinkingLoopGuard를 제거했습니다. thinking-loop-guard는 이제 모든 호스트에 적용되는 카탈로그 축이며, Gemini, DeepSeek, Grok은 "semantic", Claude는 "off"입니다claude-opus-5, claude-opus-5.5, claude-sonnet-5, claude-sonnet-5.5)이 -1m 변형의 1M 윈도우를 보고하던 문제를 수정했습니다. 발견된 한도는 번들 값으로 되돌아가지 않고 캐시 읽기 후에도 유지됩니다 (#17481)task.perCallModel을 추가했습니다(기본값 off, eval, on). 이를 통해 task 항목이나 eval의 agent()/workpool() 호출이 운영자가 이미 지정한 정확한 모델에서 실행될 수 있습니다. 사용 가능한 모델은 사용자 본인의(프로젝트가 아닌) 설정의 채팅 역할 모델, 선택된 에이전트의 자체 모델, 또는 부모의 현재 모델입니다. Glob 값(anthropic/*)은 모델을 승인하지 않습니다. task.perCallModelAllow로 이 목록을 좁힐 수 있고, task.maxEffort로 워커의 effort를 제한하며, 워커는 다른 모델로 전환하지 않습니다. 프로젝트 설정은 이 기능을 좁히기만 할 수 있으며, 켜거나 모델을 승인할 수 없습니다 (#12229, @Xytronix 작성)Settings.reloadFromDisk({ includeParents: true })를 추가했습니다. 이 함수는 오버레이의 자체 재정의를 유지하면서 오버레이 뒤의 저장된 설정을 다시 불러옵니다 (#12229, @Xytronix 작성)model이 선언됩니다. 운영자의 설정이 허용하지 않는 모델을 전달하는 task 호출, eval의 agent() 또는 workpool()은 오류와 함께 거부됩니다 (#12229, @Xytronix 작성)omp stats는 실행되는 블록 대신 대시보드를 표시하며, 대시보드에는 Close 버튼(또는 Esc, Ctrl+C)이 있어 이를 중지하고 터미널을 되돌립니다. /stats는 시스템 브라우저 대신 omp 옆의 브라우저 블록에서 대시보드를 엽니다bash 도구 명령에서 실행 중인 호출의 ID인 PI_TOOL_CALL_ID를 볼 수 있게 되었습니다. 이를 통해 에이전트가 실행하는 스크립트가 세션 기록에서 해당 호출을 가리킬 수 있습니다 (#17489, @will-bogusz 작성)judgment.attemptTimeoutMs로 설정 가능)이 지나면 폴백으로 이동하며, 시간 초과된 경로는 잠시 건너뜁니다. 폴백이 설정되지 않은 경우 느린 판단기는 중단되거나 교체되지 않습니다 (#17465, @Xytronix 작성).! 또는 $ 명령이 Tern에서 composer 위에 떠서, 출력을 펼치면 대화를 가리던 문제를 수정했습니다. 이제 대화의 끝에 위치합니다out:// 응답(out://로의 tool.write, 또는 > out://를 사용하는 tool.bash)이 "Shown to the user."라고 보고되었음에도 전혀 표시되지 않던 문제를 수정했습니다. 이제 eval 카드 뒤에 응답으로 그려지며, 표시될 곳이 없는 경우(백그라운드 셀, 브라우저 탭 스크립트)에는 거부됩니다out://baselines.md와 같은 out:// 대상으로의 write가 산문으로 스트리밍되는 응답 대신 줄 번호가 있는 Write 카드로 그려지던 문제를 수정했습니다ratio 또는 speedup 열이 계산된 기준 시간 옆에 시리즈로 그려지던 문제를 수정했습니다. 이로 인해 기준 대비 "719× less"로 읽히던 문제가 있었습니다read가 기존 dist, build, node_modules, .git 및 기타 의존성/빌드/캐시 하위 디렉터리를 숨겨 존재하지 않는 것처럼 보이게 하던 문제를 수정했습니다 (#17539)ask를 기다리는 동안 큐에 넣은 메시지가 응답되지 않은 대화상자 뒤에 머물던 문제를 수정했습니다. 이제 대화상자는 턴을 취소하지 않고 닫히며, IRC 메시지와 백그라운드 완료 알림은 대화상자를 열어 둡니다 (#17537).output()이 문서화된 offset, limit, query, format 옵션을 무시하고 원시 read 도구 결과를 반환하던 문제를 수정했습니다. 이제 Python의 output()처럼 선택된 텍스트(또는 format: "json" 메타데이터)를 반환합니다 (#17455)read가 내용을 반환하지 않던 문제를 수정했습니다(:raw로 읽은 압축 페이지 등). 이제 해당 줄의 처음 50KB를 표시합니다 (#17500, @will-bogusz 작성)Drafting is active. → ctive)을 저장하거나, 여러 단어로 된 객체를 잘라내거나, has an … 문장에 대해 아무것도 저장하지 않던 문제를 수정했습니다 (#17511)listWorkspace({ pruneExcludedDirs: false })를 추가했습니다. 표준 의존성/빌드 디렉터리 이름의 제외를 중단합니다. .git 같은 숨김 디렉터리는 여전히 hidden: true가 필요합니다 (#17539)setStatsCloseHandler를 추가했습니다. 호스트가 이를 설정하면 대시보드 상단 바에 Close 버튼이 표시되고, 텍스트가 선택되지 않은 상태에서 Esc 또는 Ctrl+C로 닫힙니다. 터미널 대신 이를 표시하는 호스트용입니다assertModelSupportsEffortCeiling()을 추가했습니다. 모델이 task.maxEffort 상한 이하에서 지원되는 thinking effort를 갖지 않으면 예외를 던집니다 (#12229, @Xytronix 작성)native/overlay에 iconButton(), quietButton(), segmentedTabs()를 추가했고, actionButton()에 disabled, busy, icon 옵션을 추가했습니다Composer.setRuntimeChildren 옵션에 nativeTail을 추가했습니다. 자식이 독(dock)에 머물지 않고 트랜스크립트 뒤에서 네이티브 화면의 main을 이어 가는 컨테이너용입니다isHighlightLanguage와 createCodeFrameStyler를 추가했습니다. 파일의 언어로 소스 줄을 하이라이트하는 렌더러용입니다 (#17550, @JustasMasiulis 작성)… 간격 행은 줄 번호 거터에 맞춰 정렬됩니다button 종류를 그리는 Tern 빌드에서는 omp의 버튼이 실제 버튼(포인터 커서, 접근 가능한 pressed/disabled 상태, 비활성 버튼의 툴팁에 이유 표시)으로 표시되고, 세그먼트 컨트롤은 tabs variant: "segmented"로 표시됩니다. 이전 Tern 빌드는 역할 스타일 행을 유지합니다C++ (ms) 옆의 ratio 0.997이 "719× less"로 그려짐). analyzeTable은 다른 두 열의 몫과 같은 열을, 그대로 또는 × 형태로 적혀 있더라도 원래 값을 다시 서술하는 것으로 봅니다/mcp와 /ssh 힌트 나머지 부분(Run /mcp list to see all configured servers.)이 흐린 색을 유지하지 않고 기본 텍스트 색으로 돌아가던 문제입니다 (#17521, @JustasMasiulis 작성)Found 1 definition(s): 텍스트로 표시되던 문제를 수정했습니다. 이제 결과 수를 세어 (1 definition) 표시하고, 각 위치를 소스 줄과 함께 보여주며, 해당 줄은 grep 일치처럼 표시됩니다 (#17549, @JustasMasiulis 작성)accent와 success 색상이 같거나 거의 같은 테마(dark-terminal, dark-poimandres, light-poimandres)에서 세션 트리의 사용자 턴과 어시스턴트 턴이 똑같이 보이던 문제를 수정했습니다. 이제 사용자 행은 굵게 표시되고, assistant: 라벨은 경로 색으로 바뀌며, 사용자 정의 및 어드바이저 메시지는 흐리게 표시됩니다 (#17520, @wolfiesch 작성)oklabDistance를 추가했습니다 (#17520)code props(TspCodeProps)에 nums를 추가했습니다. 각 줄의 번호를 지정하여, 번호가 건너뛰는 곳에 … 간격 행을 두고 연속되지 않은 줄을 하나의 블록으로 표시할 수 있습니다.button 종류(TspButtonProps: label, icon, keycaps, default/primary/quiet/danger 변형, sm/md 크기, pressed, 이유가 있는 disabled, busy)와 tabs variant: "segmented"를 추가했습니다.Full Changelog: v18.14.1...v18.14.2