transformProviderContext와 buildSideRequestContext가 Promise를 반환하도록 변경됨Agent 클래스에 buildSideRequestContext를 추가하여 사이드 채널 또는 임시 요청을 위한 프롬프트 캐시 친화적 provider Context를 구성compactionContextTokens(providerContextTokens, storedConversationEstimate) 추가: 압축 결정을 위해 저장된 대화의 로컬 추정치로 provider가 보고한 컨텍스트 토큰을 제한하여, 요청을 축소하는 before_provider_request 페이로드 변환(압축 확장, 난독화기 또는 인라인 snapcompact)이 실제 히스토리 크기보다 아래로 provider 사용량을 감소시키고 자동 압축을 억제할 수 없도록 함packages/agent/src/agent-loop.ts에서 헬퍼 함수 normalizeMessagesForProvider와 resolveOwnedDialectFromEnv 내보내기parallel_tool_calls를 설정하지 않도록 변경하여 직렬 도구 호출을 강제하지 않음; Codex responsesLite는 도구가 있을 때 병렬 도구 호출을 여전히 비활성화함toolUse/toolResult 블록이 포함되어 있을 때마다 필수 sentinel toolConfig를 전송하여 이전 도구 호출 이후 Bedrock /btw 및 기타 도구 없는 임시 턴이 실패하는 문제 수정 (#3124)bad record MAC 서버 전송 오류가 표면화되는 문제 수정 (#3134)openai-codex-responses가 샘플링 제어(temperature, top_p, top_k, min_p, presence_penalty, repetition_penalty)를 Codex 요청 본문으로 전달하는 문제 수정 — ChatGPT 구독 Codex 백엔드는 각각을 400 {"detail":"Unsupported parameter: temperature"}로 거부하므로, 기본값이 아닌 StreamOptions를 설정한 호출자는 모든 턴이 실패함. provider가 이제 전체 샘플링 세트를 삭제(codex-rs와 일치)하며, auth-gateway의 방어적 제거는 buildStreamOptions와 pi-네이티브 경로 모두에서 {temperature, topP}에서 stopSequences/frequencyPenalty가 포함된 동일한 세트로 확대됨 (#3117)tls: bad record MAC (type=server_error)와 같은 일시적 TLS/서버 오류 실패에 대한 Anthropic Messages 재시도 분류 수정. 이러한 사전 콘텐츠 전송 문제는 이제 세션이 오류 배너를 표시하기 전에 provider 루프 내에서 재시도됨fireworks/qwen3.7-plus)이 400 Extra inputs are not permitted, field: 'enable_thinking'로 실패하는 문제 수정. Fireworks는 OpenAI 스타일 reasoning_effort를 통한 제어 가능한 생각을 사용하여 Qwen3를 제공하고 Alibaba DashScope가 사용하는 최상위 enable_thinking 부울을 거부함; buildOpenAICompat는 호스트와 관계없이 qwen id 패턴에서 thinkingFormat: "qwen"을 선택하고 있었음. Fireworks 호스팅 Qwen 모델은 이제 thinkingFormat: "openai"로 확인됨low, medium, high 추론 계층만 노출하고 지원되지 않는 원본 minimal/xhigh 요청을 안전한 와이어 값으로 매핑하도록 수정 (#2864)/btw 답변에 복사 affordance를 추가하여 사용자가 패널을 분기하거나 해제하기 전에 표시된 사이드 답변 텍스트를 복사할 수 있음SnapcompactInline 및 SDK 세션 컨텍스트 구성을 비동기 렌더링 지원으로 업데이트/btw, /omfg, IRC 자동 회신)이 메인 턴의 도구 카탈로그를 전달하여 프롬프트 캐시 레이아웃을 유지하면서 도구 사용 억제 상기를 주입하고 생성된 도구 호출 삭제/btw, /tan, /omfg, /memory, /rename, /move가 입력된 명령 텍스트를 TUI 프롬프트 히스토리에 저장하여 위 화살표로 호출할 수 있도록 변경/model로 역할 모델 할당 지점 (#2952)AsyncDrain의 new Promise((resolve, reject) => ...) 를 리포지토리의 promise-construction 관례에 따라 Promise.withResolvers()로 대체InteractiveModeContext 모의 객체의 누락된 settings 속성으로 인해 정의되지 않은 항목에서 .get을 호출하는 EventController 테스트의 TypeError 수정rewind 도구 사용 시 세션 히스토리가 비동기화되는 문제 수정rewind 도구 출력 및 임시 어시스턴트 사이드 채널 데이터가 프롬프트 캐시를 오염시키는 문제 수정read가 모든 셀을 줄임표로 렌더링하고 오른쪽 모서리를 자르는 문제 수정. ASCII 테이블 축소기가 MIN_COLUMN_WIDTH=1에서 바닥을 쳐서 모든 멀티 문자 셀이 …로 축소되었고, 최종 라인 절단이 오른쪽을 잘라냄. 렌더러는 이제 열당 하한을 3으로 올리고 열 개수가 수평 너비 예산을 초과할 때 행당 수직 column: value 블록 레이아웃으로 폴백함 (#3107)skill://, local://, memory://, vault:// 디렉토리 경로를 수정하여 read가 이들을 나열하고 search/find가 백킹 디렉토리를 탐색할 수 있음 (#3116)__omp_worker_tiny_inference를 재생성하는 문제 수정하고 지원되지 않는 Qwen3 1.7B ONNX 메모리 모델을 로드 전에 차단 (#3132)/join이 timed out waiting for the host's welcome으로 실패하는 문제 수정. 호스트는 이제 작은 welcome 프레임(헤더 + 상태 + 에이전트 + entryCount)을 보낸 후 final: true로 종료되는 대상 snapshot-chunk 프레임의 열차를 보내고, 게스트는 각 청크 도착 시 리셋되는 청크당 진행 타임아웃 아래에 이들을 누적함. 첫 welcome은 기본 릴레이에서 1초 이내에 도착하므로 게스트의 30초 첫 welcome 예산은 더 이상 스냅샷 전송에 소비되지 않음. 양쪽에서 새로운 COLLAB_PROTO = 2 필요; 이전 호스트/게스트는 기존 프로토콜 불일치 오류로 거부됨 (#3144)embed()는 이제 각 입력을 MNEMOPI_EMBEDDING_MAX_INPUT_CHARS(기본값 8192 문자)로 제한하고 head/tail 분할로 자르므로 긴 멀티턴 MnemopiSessionState.retainMessages 트랜스크립트가 llama.cpp의 /embeddings 서버에 request (N tokens) exceeds the available context size로 요청을 거부하게 하고 그 메모리에 대한 벡터 회수를 자동으로 삭제할 수 없음. head/tail 자르기는 개설 설정과 가장 최근 턴을 모두 유지하므로 나중 에피소드가 같은 접두사 벡터로 축소되지 않음 (#3126)yield로 끝나는 /goal 연속 턴이 활성 목표가 compaction.thresholdTokens 이상일 때 임계값 자동 압축을 건너뛰는 문제 수정 (#3146)/resume 및 omp --resume은 현재 폴더에 세션이 없을 때 더 이상 "모든 프로젝트" 피커로 자동 전환하지 않음. 피커는 이제 cwd로 범위가 지정되고 기존 "현재 폴더에 세션이 없습니다. Tab을 눌러 모두 보기." 힌트를 표시하므로 빈 프로젝트의 사용자는 요청하지 않고 다른 프로젝트의 세션 히스토리를 절대 보지 않음 (#3099)/todo export 및 /todo import를 ACP/text 및 TUI 모드에서 활성 세션 cwd에서 경로를 해석하고, 공백이 있는 인용 경로를 수용하며, 충돌하지 않고 잘못된 경로 스키마를 보고하도록 수정buildSystemPrompt 헬퍼가 기본 프롬프트 인벤토리로 폴백하는 대신 호출자가 제공한 도구를 렌더링하고, read를 통해 폴백을 사용할 수 있을 때 도구 맵이 없는 스킬을 보이도록 유지하도록 수정/omfg 저장됨 상태 복사가 저장 및 규칙 라이브 등록 후 Esc dismiss를 광고하도록 수정@oh-my-pi/pi-ai 패키지 루트에서 getModel/getModels를 가져오는 레거시 Pi 확장이 로드되지 않는 문제 수정하여 @oh-my-pi/pi-catalog의 getBundledModel/getBundledModels에 대한 호환성 별칭으로 복원. 루트 StringEnum 호환성 shim은 값 배열에 추가하여 TypeScript enum 객체도 수용함 (#2907)blocker를 제기하는 문제 수정(예: "계획 파일을 작성하지 마세요") 왜냐하면 주입된 plan-mode 규칙의 120문자 절단만 보았기 때문에 NEVER create, edit, or delete files — excep…에서 자르고 "단일 계획 파일 제외" 예외를 숨김. advisor 델타는 이제 기본 에이전트의 제약 컨텍스트(plan-mode-context, plan-mode-reference)를 XML 이스케이프된 <primary-context> 래퍼 내의 낱말식으로 확장하고, AdvisorRuntime은 다시 주입된 프롬프트를 중복 제거하여 변경되지 않은 복사본이 모든 턴에서 전체 규칙을 다시 피드하지 않고 마커로 축소됨before_provider_request 확장이 아웃바운드 요청을 실제 저장된 대화 아래로 축소할 때 자동 압축이 억제되는 문제 수정(예: Headroom과 같은 컨텍스트 압축 프록시 또는 공격적 난독화기). provider는 그러면 수축된 프롬프트 토큰을 보고하므로 임계값 확인이 실행되지 않았고 저장된 히스토리는 컨텍스트 윈도우를 오버플로우할 때까지 제한 없이 증가했고 더 이상 압축될 수 없음. 압축 결정(사전 프롬프트 및 응답 후 경로 모두)은 이제 에이전트 자신의 저장된 대화의 로컬 추정치로 provider가 보고한 컨텍스트 토큰을 제한하므로 온와이어 압축은 더 이상 자동 압축기에서 너무 큰 히스토리를 숨길 수 없음. 컨텍스트 표시 및 비용 회계는 여전히 정확한 provider 사용량을 사용하며, 압축 트리거만 하한을 사용함mnemopi.polyphonicRecall / mnemopi.enhancedRecall 설정과 달리 MNEMOPI_PROACTIVE_LINKING 환경 변수를 통해서만 구성 가능한 문제 수정: mnemopi.proactiveLinking config.yml 설정 추가(기본값 off, /settings → Memory → Mnemopi) 새 메모리를 저장할 때 episodic 그래프에 수집하여 관련 엔티티 및 메모리에 연결; MNEMOPI_PROACTIVE_LINKING은 설정할 때 구성된 값을 여전히 재정의함 (#2440)COLLAB_PROTO를 2로 업데이트: welcome 프레임은 이제 메타데이터만(헤더/상태/에이전트/entryCount) 전달하고 트랜스크립트는 final: true로 종료되는 대상 snapshot-chunk 프레임의 열차로 이어짐. proto v1을 사용하는 이전 게스트는 기존 프로토콜 불일치 오류로 거부됨snapshot-chunk 프레임을 트랜스크립트 스냅샷으로 누적하고 최종 청크가 도착한 후에만(또는 호스트의 스냅샷이 비어있을 때 즉시) live로 전환 (#3144)SWAP이 다른 hunk가 이미 일치하는 opener를 제거했을 때(의도적 래퍼 제거) 더 이상 유지하지 않도록 함; 누락된 closer 복구는 이제 각 그룹을 전체 패치의 residual 구분자 균형에 대해 무게를 재고 — hunk당 합산되어 quote/comment 상태가 contiguous하지 않은 hunk 전체에 걸쳐 누수되지 않음 — 복구당 residual을 소비하여 다른 곳의 진정한 누락된 closer가 여전히 발생함 (#3142)분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.