function_call_arguments.done 이벤트에서 output_index와 item_id를 생략할 때 인수를 잃는 문제 해결. 이제 이러한 식별자 없는 최종 인수 이벤트를 항목 순서의 열린 함수 호출을 통해 라우팅합니다. (#1970)openai-responses) 턴이 발견된 모델이 minimal(또는 xhigh) thinking으로 실행될 때 HTTP 400 invalid reasoning value: "minimal" 오류로 실패하는 문제 해결. Ollama의 OpenAI 호환 reasoning.effort는 high|medium|low|max|none만 허용하므로, 이제 발견된 reasoning 가능 Ollama 모델은 minimal → low와 xhigh → max를 재매핑하는 compat.reasoningEffortMap을 포함합니다. Reasoning 불가능 모델은 변경되지 않습니다.agent()/llm() 작업 주변에서 발생하는 timeout-pause와 timeout-resume eval 브리지 상태 이벤트 추가/copy 피커 추가: /copy는 이제 최근 어시스턴트 메시지와 그 코드 블록이 중첩된 풀스크린 아웃라인 트리를 엽니다(/tree처럼). ↑↓로 네비게이션하고 Enter를 누르면 강조된 노드(전체 메시지, 개별 코드 블록, "All N blocks", 또는 어시스턴트 턴과 인터리브된 bash/eval 명령)를 복사합니다. 라이브 미리보기 창에는 선택된 대상이 표시되며, 프로즈와 구문 강조 코드/명령을 래핑합니다.IdleTimeout이 참조 카운트 기반 일시 중지를 지원하도록 변경되어 겹친 위임된 브리지 호출이 모든 호출이 완료될 때까지 타임아웃을 일시 중지된 상태로 유지합니다app.message.followUp 바인딩을 Ctrl+Enter에서 [Ctrl+Q, Ctrl+Enter]로 변경하여 Windows Terminal에서 follow-up 단축키가 작동하도록 합니다(Windows Terminal은 콘솔 앱에 고유한 Ctrl+Enter 이벤트를 전달하지 않습니다). Ctrl+Q는 동일한 작업의 GitHub Copilot CLI 기본값을 미러링합니다. ~/.omp/agent/keybindings.yml의 기존 리맵은 변경되지 않으며, 다른 사용자 리맵 작업이 이미 Ctrl+Q를 주장하면 해당 사용자 바인딩이 우선하고 follow-up은 Ctrl+Enter를 유지합니다. Ctrl+Q는 ExtensionRunner에서도 예약되어 있어 확장이 해당 코드를 등록하고 내장 follow-up 핸들러에 의해 자동으로 덮어쓰이지 않습니다. (#1903)ScrollView 오른쪽 모서리 스크롤바를 통해 렌더링하도록 변경하여 통일된 모양을 제공합니다. 이전의 임시방편인 (N/M) / [a-b/total] 텍스트 지표를 대체합니다(검색 힌트와 트리 필터 모드 레이블은 유지됨). 세션/재개 피커, 모델 선택기, OAuth 제공자 선택기, 히스토리 검색, 세션 트리 선택기, 에이전트 대시보드 목록, 확장 목록, 사용자 메시지 선택기, 원시 SSE 디버그 뷰어, 자동 연구 대시보드 오버레이, 세션 옵저버 오버레이를 포함합니다./model과 /switch 선택기를 변경하여 컨텍스트 윈도우가 현재 채팅 컨텍스트보다 작은 모델을 흐리게 표시하고 건너뜁니다./copy 명령 대상을 피커 끝의 별도 "Last bash command" 행이 아닌 최근 어시스턴트 메시지와 인라인으로 표시하도록 변경합니다.Working... 로더가 관찰 불가능한 네이티브 스크롤백을 가진 ED3 위험 터미널에서 고정되는 문제 해결. 첫 번째 어시스턴트 또는 도구 이벤트가 도착하기 전에 agent_start부터 agent_end까지 포그라운드 라이브 영역 렌더링을 활성화된 상태로 유지합니다.timeout eval 셀에서 진행 이벤트가 완료될 때까지 발생하지 않는 긴 브리지된 agent()/llm() 작업 중에 발생할 수 있는 TimeoutError 중단 문제 해결retry.modelFallback이 비활성화되었을 때 모델을 전환하지 않고 자동 재시도를 허용합니다.ttsr.enabled: false가 런타임에 무시되는 문제 해결. TTSR 규칙이 여전히 TtsrManager.addRule에 등록되었고 전역 토글이 꺼져 있을 때도 스트림 델타와 비교되어 TTSR을 비활성화하면 규칙 주입이나 스트림 중단이 억제되지 않았습니다. 이제 매니저는 활성화 플래그의 addRule, hasRules, #matchBuffer를 게이팅하므로 TTSR을 비활성화하면 TTSR 경로가 완전히 우회됩니다. 조건 규칙은 자동으로 삭제되지 않고 규칙북 버킷으로 넘어갑니다. (#1767)import pandas / import numpy 시 행(hang)되고 SIGINT가 셀을 복구할 수 없는 문제 해결. PythonKernel.start()가 windowsHide: true로 러너를 생성했으며, Bun에서는 이것이 Win32 CREATE_NO_WINDOW 플래그에 매핑되고 장시간 실행 자식을 상속된 콘솔에서 분리합니다. 따라서 numpy/_core/_multiarray_umath.pyd(및 번들된 OpenBLAS/SLEEF 스레드 풀 초기화)와 같은 네이티브 확장이 LoadLibraryExW 내에서 교착 상태에 빠질 수 있었고, GenerateConsoleCtrlEvent 기반 SIGINT 전달은 자동으로 무작동이 되었습니다. 이제 커널은 호스트 자체가 공유할 콘솔이 없을 때만(서비스/파이프된 실행) 창을 숨깁니다. 대화형 TUI 실행은 커널이 부모의 콘솔을 상속하도록 하여 cmd.exe에서 호출된 python.exe의 동작과 일치합니다. (#1960)extractedToolData.yield 슬롯이 배열이 아닌 값을 포함할 때 task 렌더러가 TypeError: completeData?.map is not a function으로 TUI를 중단하는 문제 해결. renderAgentResult(및 라이브 진행 형제)가 슬롯을 Array<{ data }>로 캐스트했고 ?.map을 호출했지만, 옵셔널 체이닝은 null/undefined에서만 단락되므로 일반 객체는 .map을 undefined로 만들고 던졌습니다. 이는 모든 review 작업 렌더를 중단했습니다. 두 사이트는 이제 normalizeYieldData를 통과하며, 단일 객체를 1개 요소 배열로 래핑하고 기본 값을 삭제합니다. (#1987)sdk-async-job-manager-singleton 테스트가 전체 병렬 제품군에서 불안정해지는 문제 해결. 네 개의 createAgentSession 기반 케이스가 기본 5000ms 시간 제한으로 실행되었으며, test:ts가 패키지 전체에서 머신을 포화시킬 때 두 개의 실제 세션 시작이 초과할 수 있습니다. 타임아웃 시 여전히 실행 중인 테스트 본문과 afterEach 리셋이 경쟁하여 AsyncJobManager.instance() 어설션에 거짓 "테스트 간 처리되지 않은 오류"가 표시됩니다. 이제 이들은 명시적 60000ms 타임아웃을 수행하여 이 제품군의 다른 세션 생성 테스트에서 사용되는 규칙과 일치합니다.eval, bash, ssh, task 호출 미리보기가 라이브 트랜스크립트 뷰포트를 오버플로우하고 대기 중인 상태에서 상단을 자르는 문제 해결. 뷰포트보다 큰 휘발성 도구 블록은 ED3 위험 터미널에서 네이티브 스크롤백(어디에도 커밋되지 않음, 어디에도 다시 칠해지지 않음)을 벗어나 스크롤된 헤드를 갇히게 할 수 있었습니다. 이제 대기 중인 eval 소스 미리보기는 제한된 12줄 꼬리 윈도우(최신 줄이 하단에 고정됨, 상단에 "… N earlier lines")에서 스트리밍 모서리를 따릅니다. 따라서 상자가 오버플로우하지 않고도 작성 중인 코드를 볼 수 있습니다. bash/ssh 명령과 task 컨텍스트는 제한된 헤드+테일 윈도우를 사용합니다. Ctrl+O는 여전히 전체 뷰에 대한 한계를 해제합니다.write 호출 미리보기가 Ctrl+O를 무시하여 파일 작성 중에 확장 토글이 무작동이 되는 문제 해결. eval/bash/ssh/task 스트리밍 미리보기와 달리 formatStreamingContent는 expanded 플래그를 받지 못했으며, 미리보기는 Ctrl+O를 누른 후에도 제한된 12줄 꼬리 윈도우에 고정되었습니다. 따라서 대규모 쓰기에서는 도구 결과가 도착할 때까지 스트리밍 모서리를 넘어 확대할 수 없었습니다. 이제 미리보기는 확장된 경우 전체 파일(헤드부터 테일까지)의 한계를 해제하여 다른 도구의 문서화된 스트리밍 미리보기 동작과 일치합니다.Error: … 줄로, 다시 한 번은 편집기 위의 고정된 배너에서(15.9.5에서 추가됨). 인라인 줄은 이제 동일한 오류가 배너에 미러링되고 배너가 다음 턴에서 지워질 때 트랜스크립트에 복원되는 동안 억제되므로 오류가 오류 순간의 중복 렌더링 없이 히스토리에 남습니다./copy last|code|all|cmd 서브명령 제거. 이제 모든 복사 대상은 /copy 트리에서 선택하여 도달할 수 있습니다.¶PATH#TAG에서 [PATH#TAG]로 변경하여 모델 작성 편집이 필로 기호 대신 ASCII 구분 기호를 사용하도록 합니다.setPaddingX를 Box에 추가하여 생성 후 프로그래매틱 방식으로 수평 패딩을 업데이트할 수 있습니다ScrollView, 선택 가능한 오른쪽 모서리 스크롤바와 명령형 스크롤/페이지 컨트롤이 있는 사전 렌더링된 줄을 위한 고정 높이 뷰포트 컴포넌트 추가Terminal.hasEagerEraseScrollbackRisk()를 추가하여 사용자 정의/테스트 터미널 구현이 공유 TERMINAL 객체를 변경하지 않고 전역 ED3 위험 프로필을 재정의할 수 있습니다.SelectList를 ScrollView를 통해 렌더링되는 가시 윈도우로 변경하여 (N/M) 텍스트 스크롤 지표를 통일된 오른쪽 모서리 스크롤바로 대체합니다(유형 검색 힌트 줄은 유지됨).CSI 3 J를 내보내지 않고 비파괴적으로 다시 칠합니다. (#1962)refreshNativeScrollbackIfDirty는 \x1b[3J]가 창 히스토리를 지울 수 없기 때문에 단락됨). 모든 스트리밍 프레임은 lines을 보이는 테일로 클리핑했고 #scrollbackHighWater를 0으로 리셋했으므로 뷰포트 상단으로 스크롤된 행은 어디에도 커밋되지 않았습니다 — 창 히스토리는 스트리밍이 끝날 때까지 비어 있었습니다. 한편 #planLiveRegionPinnedRender는 멀티플렉서에서 명시적으로 비활성화되었지만, 그 #emitLiveRegionPinnedRepaint는 tmux가 허용하는 정확한 기본 요소(상대 커서 이동, 줄당 \x1b[2K], \r\n이 봉인된 접두사를 뷰포트 하단으로 스크롤)에서 구성되고 \x1b[2J]/\x1b[3J]를 발생시키지 않습니다. 고정된 플래너는 이제 멀티플렉서에서도 실행되고, 캡 분기는 이들을 건너뛰고, diff/append 경로는 창 히스토리에 증분으로 커밋됩니다. 활발히 변경되는 라이브 테일은 표시 가능한 뷰포트에만 남아 있습니다.전체 변경 로그: v15.9.5...v15.9.67