AgentLoopConfig.getAsideMessages / Agent.setAsideMessageProvider). Aside는 각 단계 경계(도구 배치 후, 다음 모델 호출 전)와 yield 체크에서 처리되므로, 패시브 알림(예: 백그라운드 작업 완료, 지연된 LSP 진단)이 에이전트를 멈추지 않고도 요청 사이에 모델에 도달하며, steering처럼 진행 중인 도구를 중단하지 않습니다.developer 메시지로 변환하도록 변경했습니다.buildOpenAiNativeHistory가 매번 history를 포함한 메시지에서 전체 known/custom tool-call id 세트를 다시 수집하고, 매번 전체 증가하는 native history를 다시 스캔했습니다 — history 항목 수에서 O(N²) — 이로 인해 이벤트 루프가 수 초간 블록되어 로더의 애니메이션 타이머와 렌더 스케줄러를 기아 상태로 만들었습니다. 이제 세트를 증분식으로 유지(선형)하므로, 압축 요청을 빌드할 때 더 이상 메인 스레드를 독점하지 않습니다.transformMessages가 더 이상 발출하지 않으므로, OpenAI 압축 출력 user-message 필터에서 이제 사라진 <turn-aborted> 마커를 제거했습니다.AbortSignal을 무조건 수신합니다.transformMessages가 주입했던 synthetic <turn-aborted> developer 지침(및 해당 turn-aborted-guidance.md 프롬프트)을 제거했습니다. 호출별 synthetic "aborted" 도구 결과는 이미 모델에 turn의 도구가 종료되었음을 알리므로, 추가 "재시도 전에 현재 상태 확인" 노트는 불필요했습니다. 그리고 turn이 재개될 때 모델이 의도적인 사용자 인터럽트를 의심하도록 편향시켰습니다.<system-reminder> 블록에 대한 레거시 Anthropic first-user-message 스킵을 제거했습니다.replace block/delete block 편집에 resolved-span 에코를 추가했습니다. 성공적인 블록 작업은 이제 섹션 헤더와 diff 미리보기 사이에 replace block N → resolved lines A-B (K lines)를 인쇄하므로, 모델이 tree-sitter가 의도한 구성과 매칭되었는지 확인할 수 있습니다(예: 블록 밖에 남겨진 데코레이터 포착). 나중에 diff에서 span을 추론하는 대신입니다.find 도구를 변경했으므로, 검색이 요청된 경로로 범위가 지정되어 유지됩니다.find 처리를 변경했습니다.job 폴링 승인은 여전히 에이전트가 이미 본 결과를 억제합니다.Late diagnostics 항목으로 표시하도록 변경했습니다. edit/write 도구가 사용하는 것과 동일한 그룹화된 tree 렌더러(파일별 노드, 심각도 아이콘, :line:col 위치)를 통해 렌더링되며, 글로벌 도구 출력 확장 토글을 준수합니다(축소된 항목은 5개 진단으로 제한되며 … N more 힌트 포함).developer 메시지로 도달하도록 변경했습니다. 따라서 시스템 리마인더는 더 이상 압축된 사용자 히스토리를 오염시키지 않습니다.prompts/system/plan-mode-active.md)를 처음부터 다시 작성했습니다. 이를 brevity-capped 요약이 아닌 실행 사양으로 재구성했습니다. 계획 대화가 정리/압축된 후 새로운 에이전트가 실행됩니다(구현자를 위한 설계 결정 없음). 높은 합의 요구사항을 기존 섹션에 인라인, 조건부 규칙으로 통합했습니다 — 새로운 보일러플레이트 섹션 없음: 각 단계 후 빌드/테스트를 녹색으로 유지하는 정렬된 Approach 단계(시퀀싱); 새로운 또는 하중 지지 기호의 정확한 시그니처/리터럴(contracts); 이름 변경/시그니처 변경/제거를 위한 전체 callsite 목록 + 깔끔한 전환; 새로운 동작을 실행해야 하는 검증(입력 → 관찰 가능한 출력). 단순히 빌드/typecheck만이 아닙니다. 사용자 재정의 가능한 선택 및 하중 지지 가정을 위한 사전 결정된 폴백으로 제한된 Assumptions; provenance 규칙(계획 사실은 이 세션의 read에서 출발해야 함; 검증되지 않은 주장은 인라인으로 표시); conversation 역참조 및 결정 없는 섹션(Non-Goals/Alternatives/Risks/Future Work) 금지. 결정 완료 자가 체크 및 brevity-vs-completeness 타이브레이크(완전성 승리)를 유지했습니다. Render contract(Handlebars 변수/조건)는 변경 없음. 모든 planExists/reentry/iterative 분기 조합에서 검증됨.find 일치를 수정했습니다.find 부분 업데이트를 수정했습니다.read를 수정했습니다. 이러한 read는 결정론적이고 빠르므로, execute는 이제 이를 취소하지 않고 완료까지 실행합니다. 느린/비결정론적 read(archive, sqlite, document, image, summary, conflict scan, URL)는 취소 가능하게 유지됩니다.file:// 하이퍼링크를 대상으로 하도록 수정했습니다.Interrupted by user assistant transcript 행을 렌더링하지 않도록 수정했습니다.typescript-language-server는 publishDiagnostics에서 document 버전을 절대 에코하지 않으므로(upstream #983), 정확한 버전 gate는 절대 통과하지 않았습니다. waitForDiagnostics는 이제 정확한 버전 매칭을 즉시 허용하고, 그렇지 않으면 짧은 quiescence 윈도우 후 최신 publish에서 정산하며, 진행 중인 superseded 진단을 제거합니다.tsserver)는 도구를 3–5s 지연시키는 대신 follow-up 메시지로 진단을 전달합니다. 백그라운드 fetch도 더 긴 예산을 받아서 느린 서버는 여전히 late로 표시되지만 제거되지는 않습니다.c/. continue shortcut이 에이전트를 자기의심하게 만드는 문제를 수정했습니다. Continuing은 empty user turn을 제출했는데, 이로 인해 모델은 중단된 turn 컨텍스트만 남았으므로, 일시 정지된 상태를 다시 설명하고 진행할지 여부를 묻는 경향이 있었습니다. shortcut은 이제 empty turn 대신 hidden agent-authored developer 지시("keep going — don't stop to summarize or re-confirm the plan")로 재개됩니다. 여전히 보이는 transcript 항목을 생성하지 않습니다. 이전과 동일합니다.read 결과에 대한 read-group 요약을 result-provided display 대상을 사용하도록 수정했으므로, 각 resolved 경로는 자신의 행으로 표시됩니다.read 호출이 개별 read 행으로 렌더링되고, 동일 파일의 반복된 read가 full-file/range 자식으로 하나의 파일 아래에서 축소되도록 read-group TUI 요약을 수정했습니다.read 행이 pending "⏳ Read " 미리보기에서 고정되는 것을 수정했습니다. read-group 블록은 이제 항목이 settle될 때까지 repainting 가능한 라이브 영역에 머물러, late success 결과가 stranded되지 않고 다시 칠해집니다. seal() escape hatch(turn end / transcript rebuild)는 여전히 never-delivered read가 라이브 영역을 고정시키는 대신 고정될 수 있습니다./resume 검색 순위를 수정했습니다.omp --resume <id> / --fork <id>가 [Uncaught Exception]으로 크래시하는 것을 수정했습니다. createSessionManager는 이제 dedicated SessionResolutionError를 throw하며, runRootCommand가 이를 포착하여 Error: Session "..." not found.를 stderr에 인쇄하고 code 1로 종료합니다. 동일한 경로는 --fork를 --no-session과 결합한 경우, 이전에 raw stack 추적을 표시했던 비대화형 cross-project / moved-cwd 프롬프트를 다룹니다(#2084).bash, eval, 및 ssh 실행 블록의 animated pending border("shimmer")를 제거했습니다. 대기 중일 때, 블록은 이제 아래쪽 모서리 주변을 스웩하는 어두운 세그먼트 대신 정적 accent border를 표시합니다. display.shimmer는 여전히 working-status 라인 및 task 행 애니메이션을 제어합니다.write 및 edit이 활성 turn AbortSignal을 준수하도록 도구 레벨 nonAbortable 바이패스를 제거했습니다. read는 느리거나 비결정론적인 모든 항목(URL/internal-URL read, archive, sqlite, document 변환, image decode, 구조적 요약, conflict scan, suffix glob)에 대해 중단 가능합니다. 결정론적 plain-file line/range read와 디렉토리 목록만 완료까지 실행됩니다.BlockResolution 타입을 추가하고 resolved 블록 span을 ApplyResult.blockResolutions / PatchSectionResult.blockResolutions에 표시했습니다. resolveBlockEdits는 이제 각 replace block N: / delete block N 앵커의 resolved [start, end] span(및 delete 여부)을 보고하는 onResolved 콜백을 허용합니다. Span은 resolved 라인 번호가 호출자가 읽은 태그와 일치하는 no-drift apply 경로에만 표시됩니다.edit 도구 프롬프트(prompt.md)를 재구성했습니다: replace block N vs replace N..M 결정 규칙을 추가했으며, 선행 decorator/attribute/doc-comment가 블록으로 swept되지 않는 별도의 노드임을 문서화했습니다(첫 decorator 행에 N을 가리키거나, Rust 스타일 /// sibling 주석의 경우 replace N..M 사용). blast-radius 지침을 재구성했으므로 "block replace"는 더 이상 위험한 옵션으로 읽히지 않습니다. decorated-definition 예제를 추가했습니다.CSI 48;rows;cols;hpx;wpx t)가 리터럴 텍스트로 포커스된 편집기에 유출되는 문제를 수정했습니다. 윈도우가 빠르게 resize될 때, 이벤트 루프가 StdinBuffer flush timeout이 리포트 중간에 실행될 만큼 오래 바쁩니다. \x1b[48;… 접두사는 하나의 이벤트로 내보내지고 tail(예: 8;125;1156;1125t)이 편집기가 삽입한 일반 인쇄 문자로 도착했습니다. ProcessTerminal은 이제 split in-band 리포트(\x1b[4 타입 필드의 split 포함)를 종료자까지 다시 조립한 후 resize를 구동합니다. split kitty 키(예: \x1b[48;5u (codepoint 48 = 0))와 같이 resize 리포트가 아닌 것으로 판명된 다시 조립된 시퀀스는 제거되거나 유출되지 않고 단일 escape 시퀀스로 입력 핸들러에 전달됩니다.Full Changelog: v15.10.2...v15.10.3
분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.