toolcall_end 이전의 불완전한 스트리밍 tool call을 유지하여 잘못된 형식의 tool-call ID가 재생으로 지속될 수 있던 문제 수정undefined/NaN으로 표시되는 것을 방지하도록 스트리밍 JSON 파싱 강화NaN 및 Infinity 값을 거부하도록 JSON 파서 구성parseJsonWithRepair, parseStreamingJson)를 처음부터 만든 관용적 파서(RelaxedJson)로 교체했으며, 이는 단일 따옴표 문자열, 따옴표 없는 객체 키, 후행/분산된 쉼표, // 및 /* */ 주석, Python True/False/None, 원시 제어 문자, 잘못된 이스케이프, 이스케이프 처리되지 않은 아포스트로피('it's')를 허용합니다. 최종 파싱은 여전히 잘린/쓰레기 입력에서 오류를 발생시키며(따라서 잘못된 형식의 tool call은 반형성된 인수로 실행되지 않고 건너뜁니다) JS 전용 NaN/Infinity를 거부합니다. 스트리밍 파싱은 오류 없이 동작하며 불완전한 후행 토큰을 롤백하여 undefined/NaN을 표시하지 않습니다. Cursor 제공자의 임시 regex + JSON5 tool-argument 파서는 이제 공유 파서를 통해 라우팅됩니다.tool_use.id / tool_result.tool_use_id 쌍을 전송하지 않도록 수정response.id로 키가 지정됩니다 — 이전 응답의 ID를 가진 프레임은 삭제되고, 세 번째 ID를 가진 프레임(또는 회귀된 sequence_number)은 폐쇄 상태로 실패하여 두 응답의 스트림을 혼합하는 대신 차례를 재시도합니다. ID 없는 프레임(델타, 속도 제한/메타데이터 프리앰블, response.created 없는 스트림)은 여전히 통과되어 업스트림 codex-rs와 일치합니다.transformMessages가 이전의 고아된 tool result을 같은 ID를 재사용하는 이후의 tool call로 끌어당기던 문제 수정(압축이 발신 tool_use를 요약으로 접었을 때 남겨진 문제). pending-call 플러시는 이제 각 호출을 보조 차례 _이후_에 위치한 결과와 쌍을 이루므로, 재사용된 ID는 이전 차례의 출력이 아닌 자신의 출력을 표시합니다.401 Insufficient balance 할당량 오류가 알 수 없는 오류가 아닌 사용량 제한 오류로 처리되어 자격 증명 회전 및 폴백 체인이 복구되도록 수정 (#3169)partial-json 종속성 제거; 스트리밍 JSON 파싱은 이제 사내 RelaxedJson 파서를 사용합니다.tab.ariaSnapshot(selector?) 추가tab.ref("e5") 추가 및 모든 tab 작업 메서드에서 aria-ref=e5 선택자 지원 추가write 및 find 도구를 필수 항목으로 만들어 tools.discoveryMode === "all"이 숨겨도 초기에 항상 사용 가능하도록 하여 파일 작성/찾기 지시사항이 즉시 실행 가능하도록 보장 (#3165)$ …, Write: …, 빈 인수 트리)에서 고정되던 문제 수정: pending 카드는 인수가 스트리밍되는 동안 생성되었지만, 닫는 전체 인수 message_update가 도착하지 않으면(smooth-streaming 비활성화로 스로틀된 인수가 오래됨, 소유된 방언 프로젝터, 또는 여전히 호출을 실행하는 대체된/중단된 차례) 최종 인수가 다시 적용되지 않았습니다. tool_execution_start — 모든 실행 경로가 결과 바로 전에 검증된 전체 인수로 내보내는 유일한 이벤트 — 는 이제 기존 pending 카드에서 인수를 조정하고 비행 중인 모든 표시를 취소하여 늦은 틱이 본문을 다시 자를 수 없도록 합니다.job 폴링, 또는 리플로우하는 마크다운 회신) 아래에서 네이티브 스크롤백이 손실되던 문제 수정 — 그 내용이 뷰포트에 오버플로우하면. 엔진은 네이티브 스크롤백을 barrier의 솔기까지만 커밋했으므로, barrier 아래에서 창 위로 스크롤한 행은 어디에도 커밋되지 않고 어디에도 다시 칠해지지 않아서 사라졌으며, 이후 barrier의 shift/finalize/제거는 그 아래 행을 자동으로 삭제했습니다. 추가 전용 커밋 바닥은 이제 모든 비동결 페인트 경로(일반 업데이트, 축소 재조각, 전체 페인트)에서 windowTop이므로, 창 위로 스크롤되는 모든 항목은 항상 기록에 도달합니다. 솔기 경계는 이제 커밋된 행이 바이트 안정 감사를 유지할지 vs. 내구성 면제인지만 분류합니다. 커밋된 접두사 감사는 범위 인식입니다: 강제 오버플로우 접미사를 완전히 감사하고(barrier가 최종화될 때 재앵커링 — 중복, 손실 아님), 내구성 중간을 재앵커 스프레이에서 면제하며, 커밋 경계 훨씬 위의 단일 행 최종화 편집이 삭제되지 않고 재앵커되도록 행이 새로 영구로 표시하는 전체 하드 스캔을 실행합니다.Full Changelog: v16.1.9...v16.1.10