AGENTS.override.md를 사용하여 특정 디렉토리의 컨텍스트 파일을 교체합니다. Context Files를 참고하세요.samplingParams 및 opt-in vLLM thinking_token_budget 값을 구성합니다. Sampling Parameters를 참고하세요.상속된 pi-ai ModelsStreamTransforms 인터페이스를 ModelsRequestTransforms으로 이름 변경했습니다. 헤더 변환이 이제 모든 인증된 프로바이더 요청에 적용됩니다.
JSON 및 RPC message_update 이벤트를 변경하여 assistantMessageEvent 델타만 발출하고, 이차 출력 증가를 야기하던 누적 message 및 assistantMessageEvent.partial 필드를 제거했습니다. 부분 메시지가 필요한 클라이언트는 message_start와 message_end 사이의 델타를 조립해야 하며, 후자가 신뢰할 수 있는 값으로 유지됩니다 (#7290).
ModelRegistry.getApiKeyAndHeaders()는 이제 string | null 값을 가진 ProviderHeaders를 반환하고 null 헤더 삭제 마커를 보존합니다. 반환된 헤더를 검사하는 확장은 null을 처리해야 합니다. pi-ai 스트림으로 헤더를 전달하는 확장은 변경되지 않은 상태로 전달해야 합니다. 이렇게 하면 자리 표시자 OpenAI 자격 증명이 Cloudflare AI Gateway를 통해 전송되지 않습니다 (#7030).
ModelRegistry.refresh()를 변경하여 ModelsRefreshOptions를 받고 취소 및 프로바이더 오류를 폐기하는 대신 ModelsRefreshResult를 반환하도록 했습니다.
ModelRuntime.setRuntimeApiKey()를 변경하여 카탈로그 새로 고침 옵션 대신 인증 취소 옵션을 받도록 했습니다. 원격 신선도가 필요한 경우 별도로 refresh({ providers: [providerId], signal })을 호출하세요.
필수 config-form 확장 OAuth refreshToken(credentials, signal) 콜백이 구체적인 abort 신호를 받고 준수하도록 요청했습니다.
동적 프로바이더 새로 고침 컨텍스트 저장소 접근을 읽기 전용 context.stored 스냅샷 및 생성 검사 context.publish() 트랜잭션으로 교체했습니다.
createProvider({ fetchModels })로 빌드된 프로바이더: 카탈로그 발행 마이그레이션이 필요하지 않습니다. 이전과 이후 모두 페칭된 모델을 반환하고 결과 프로바이더를 등록합니다. createProvider()는 복원, 지속성 및 메모리 내 발행을 소유합니다.
// 이전 const beforeProvider = createProvider({ // ... fetchModels: async ({ signal }) => { const response = await fetch(catalogUrl, { signal }); return parseModels(await response.json()); }, }); pi.registerProvider(beforeProvider);
// 이후: 변경 없음 const afterProvider = createProvider({ // ... fetchModels: async ({ signal }) => { const response = await fetch(catalogUrl, { signal }); return parseModels(await response.json()); }, }); pi.registerProvider(afterProvider);
직접 작성한 네이티브 Provider.refreshModels(): 직접 저장소 접근 및 발행 전 변경을 생성 보호된 발행으로 교체하세요.
// 이전 refreshModels: async (context) => { const stored = await context.store.read(); if (stored) currentModels = stored.models; if (!context.allowNetwork) return;
const refreshed = await fetchModels(context.signal); currentModels = refreshed; await context.store.write({ models: refreshed, checkedAt: Date.now() }); },
// 이후 refreshModels: async (context) => { if (context.stored) { const restored = context.stored.models; if (!(await context.publish({ update: () => { currentModels = restored; }, }))) return; } if (!context.allowNetwork) return;
const refreshed = await fetchModels(context.signal); if (context.signal.aborted) return; await context.publish({ persist: { models: refreshed, checkedAt: Date.now() }, update: () => { currentModels = refreshed; }, }); },
config-form pi.registerProvider(name, { refreshModels })의 경우, 모델만 반환하는 콜백은 변경되지 않습니다. pi가 반환 리스트를 발행합니다. 이전에 context.store을 커스텀 지속성에 사용한 콜백은 context.stored를 읽고 context.publish({ persist: entry })를 호출하세요. publish()에서 저장소를 변경하지 않으려면 persist를 생략하고, ModelsStoreEntry를 전달하여 쓰거나, persist: null을 전달하여 삭제하세요.
상속된 pi-agent-core 하네스 세션 모델을 v4 레인 기반 Session, SessionStorage 및 SessionRepo API로 교체했으며, 여기에는 내구성 있는 작업 레코드, 글로벌 팩트, 공유 시퀀스 번호 및 트리 범위 레인 보기가 포함됩니다.
상속된 v2 세션 및 AgentHarness API를 pi-agent-core의 실험 진입점에서 기본 내보내기로 승격하고 실험 하위 경로를 제거했습니다.
상속된 레거시 JSONL 및 메모리 내 저장소 API를 제거했습니다. pi-agent-core의 v4 JsonlSessionRepo 또는 InMemorySessionRepo를 사용하세요. 둘 다 새로운 SessionRepo 계약을 구현합니다.
JSONL 발행의 원자성을 위해 상속된 필수 pi-agent-core FileSystem.renameFile() 작업을 추가했습니다. 커스텀 하네스 파일 시스템 구현은 동일 파일 시스템 대체 의미를 제공해야 합니다 (#7707 by @davidbrai).
실험용 원격 세션 목록 요약을 내구성 있는 SessionMetadata로 교체했습니다. RemoteSession.sessions는 더 이상 런타임 단계, 모델, 생각, 첨부파일 또는 잠금 상태를 노출하지 않으며, 이는 획득한 SessionSnapshot 값에서 계속 사용 가능합니다 (#7708).
BASETEN_API_KEY 인증 및 zai-org/GLM-5.2를 기본 모델로 하는 내장 Baseten 프로바이더 지원을 추가했습니다.PiClient, CBOR 프로토콜, Unix 소켓 전송 및 대화 기록 리듀서가 있는 @earendil-works/pi-coding-agent/client RemoteSession 컨트롤러입니다. Pi Client 및 Remote Protocol을 참고하세요 (#7344, #7348, #7371, #7409).CredentialSynchronizationError를 추가했습니다.pi.registerMarkdownTransformer() 훅을 추가했습니다. pi.registerMarkdownTransformer()를 참고하세요 (#7231 by @xl0).--tui-mode fullscreen 또는 /settings를 통해 선택 가능한 실험용 전체화면 TUI 모드를 추가했습니다 (#7304)./settings를 통해 일반 모드와 전체화면 TUI 모드 간 런타임 전환을 추가했습니다./settings를 통해 구성 가능한 auto, always 및 hidden 모드를 포함하여 전체화면 모드에 드래그 가능한 대화 기록 스크롤바를 추가했습니다. always는 맨 오른쪽 열을 예약합니다.scrollbarThumb 테마 색상을 추가했으며, selectedBg로 폴백합니다.Ctrl+P/Ctrl+N 프롬프트 히스토리 네비게이션을 추가했습니다.AGENTS.md 또는 CLAUDE.md를 교체하면서 다른 디렉토리의 컨텍스트를 보존하는 디렉토리별 AGENTS.override.md 컨텍스트 파일을 추가했습니다. Context Files를 참고하세요 (#7681 by @Marvae).AI_AGENT=pi를 추가했습니다. Environment Variables를 참고하세요 (#7493 by @renaudhartert-db).models.json, 모델 오버라이드, 확장 프로바이더 및 스트림 옵션의 samplingParams를 통해 임의의 OpenAI 호환 모델 샘플링 파라미터를 추가했습니다. Sampling Parameters를 참고하세요 (#7568 by @mrexodia).thinking_token_budget 지원을 추가하여 최종 답변을 위한 출력 토큰을 예약합니다 (#7638 by @bnsd55).finish_reason을 생략하는 OpenAI 호환 스트림에 대한 상속된 지원을 추가하여 일반적인 중단 및 도구 사용 중단을 추론하기 위해 compat.supportsFinishReason을 사용합니다. OpenAI Compatibility를 참고하세요.AgentOptions.shouldStopAfterTurn을 추가했습니다. Agent Options를 참고하세요 (#7367 by @acmerfight).JsonlSessionRepo 지원을 추가했습니다 (#7611 by @davidbrai).AgentHarness v2 스캐폴드를 추가했습니다. 완료되지 않은 작업 경로는 내구성 있는 실행이 구현되는 동안 HarnessNotImplemented로 거부합니다.ModelsStore 읽기, 쓰기 및 삭제에 추가했습니다. 카탈로그 오케스트레이션은 이러한 대기를 프로바이더 새로 고침 신호에 바인딩합니다.(sub)를 표시하는 푸터를 수정했습니다. 확장 OAuth 프로바이더는 isSubscription으로 opt-in할 수 있습니다.anyOf/oneOf 유니온 암에 일치하는 값을 보존하도록 상속된 도구 인수 검증을 수정하여 null 가능 유니온이 null을 다른 원시값으로 변환하는 것을 방지했습니다 (#7328).prompt_cache_retention 필드를 전송하는 상속된 Fireworks GLM 5.2 요청을 수정했고, 자동 프롬프트 캐싱을 위해 세션 친화성을 활성화했습니다 (#7676).JsonlSessionRepo이 작업 디렉토리 간에 세션 ID를 전역적으로 강제하던 것을 수정했습니다. ID는 이제 각 작업 디렉토리 내에서 고유합니다.find 글로브가 결과를 반환하지 않던 문제를 수정했습니다 (#6817)./compact 중에 대기 중인 메시지가 실패 대신 압축 완료 후 전송되도록 수정했습니다.--model ID가 명확한 모호성 오류 대신 첫 번째 카탈로그 항목 또는 유일한 인증된 프로바이더를 선택하도록 수정했습니다 (#7327).Ctrl+X 복사 확인이 일시적 Copied! 마커를 표시하는 대신 대화 기록 상태 줄을 추가하던 문제를 수정했습니다./settings 검색의 공백이 TUI mode 또는 Quiet startup 같은 다중 단어 쿼리를 입력할 때 강조 표시된 설정을 토글하던 문제를 수정했습니다.setToolsExpanded(false)이 도구 출력이 이미 축소되어 있을 때 no-op이 되도록 수정하여 확장에서 불필요한 Tool output: collapsed 시작 알림을 피했습니다 (#7292).auth.json을 업데이트한 후 오래된 자격 증명을 사용하는 장시간 실행 세션을 수정했습니다 (#7319).models-store.json 읽기가 파일 잠금 호송을 형성하고 시작을 지연하던 문제를 수정했습니다.brace-expansion 종속성을 5.0.8로 업데이트하여 GHSA-mh99-v99m-4gvg를 해결했습니다 (#7316)./model 카탈로그 새로 고침 실패가 실패한 모든 카탈로그를 식별하도록 수정했습니다./scoped-models가 대기하던 문제를 수정했습니다 (#7153)./model <name>을 수정했습니다 (#7443).undici를 8.9.0으로 및 패키지된 brace-expansion을 5.0.9로 업데이트했습니다.Home, End, PageUp 또는 PageDown 변형을 에디터에서 접근할 수 없도록 남겨두던 문제를 수정했습니다. Ctrl 수정 에디터 바인딩을 추가했습니다 (#7574)./copy가 클립보드 텍스트를 읽지 못하던 문제를 수정했습니다 (#7387).git clean이 무시된 종속성 디렉토리를 제거할 수 없을 때 Git 패키지 업데이트가 종속성을 손실하던 문제를 수정했습니다 (#7570 by @mrexodia).find 결과가 첫 번째 경로 세그먼트를 손실하거나 중복 후행 구분자를 얻던 문제를 수정했습니다 (#7569 by @petrroll).qwen3.8-max-preview 모델을 qwen3.8-max로 대체했습니다 (#7670 by @QuintinShaw).qwen/qwen3.6-27b 모델로 업데이트했습니다.WT_SESSION을 제공하지 않을 때 상속된 Windows 콘솔 참색 감지를 수정했습니다.