error 정지 이유로 우아하게 종료됩니다. 정당한 모든 숫자/공백/구두점 반복(hexdumps, zero-fills, 숫자 테이블)은 루프로 잘못 분류되지 않습니다 (#2549 by @usr-bin-roygbiv).thinking 블록을 하나의 대표 사본으로 축약하는 반복 루프 처리를 수정했습니다text와 thinking 스트림 경계를 넘는 거짓 양성 반복 루프 확인을 수정했습니다OMP_AUTH_BROKER_URL)가 제공자별 확장 필드(예: 자체 포함된 토큰 새로고침을 위한 MCP 서버의 tokenUrl/clientId/clientSecret/resource)를 포함하는 OAuth 자격증명을 거부하는 문제를 수정했습니다. OAuth 자격증명 와이어 스키마가 .strict()였으므로 POST /v1/credential이 400 unrecognized_keys로 실패했고, 브로커 기반 MCP 재인증이 성공을 보고했으나 다시 로드된 자격증명에 새로고침 자료가 없어 더 이상 새로고침할 수 없었습니다. OAuth 와이어 스키마는 이제 .loose()를 사용하여 미지의 필드를 보존합니다. 이는 필드 보존 로컬 SQLite 저장소와 일치합니다. 따라서 추가 OAuth 필드는 브로커 설정→획득을 통해 왕복합니다 (봉투 및 API 키 스키마는 계속 strict 상태입니다).@oh-my-pi/pi-catalog/identity에 modelFamilyToken(modelId) 추가했습니다: "두 모델이 같은 계열인가?" 비교를 위한 대략적인 공급업체 계열 토큰(anthropic/openai/gemini/kimi/…)이며, parseKnownModel 정규 ID 정규화로 지원됩니다. 불투명하고 비교만 가능합니다. kind/variant는 공급업체 토큰으로 축약됩니다 (#2406)minimax 및 minimax-cn이 업스트림 512K 가격 책정 경계 대신 문서화된 1M 장문맥 계층을 보고하도록 했습니다 (#2576).tool_choice를 생략하도록 했습니다 (#2509).kimi-k2.7-code 카탈로그 메타데이터를 수정하여 resolve-gate 요청이 Moonshot이 거부한 강제 tool_choice 대신 자동 도구 선택을 사용하도록 했습니다 (#2546).github-copilot 호스트에 대한 Anthropic 호환성을 수정하여 supportsEagerToolInputStreaming이 도구별 eager_input_streaming 필드를 거부하는 Copilot 프록시와 일치하는 false로 기본 설정되도록 했습니다 (#2558).--profile <name> / OMP_PROFILE을 통한 격리된 프로필 지원 및 --alias <command>를 통한 셸 별칭 부트스트랩을 추가했습니다. 여기에는 launch/ACP 부트스트랩 처리, 확장 플래그 안전 파싱, 프로필 범위 사용자 구성 검색, 심볼릭 링크된 확장 디렉터리 검색이 포함됩니다.omp bench 기본 프롬프트를 주어진 스키마 및 데이터로부터 선택도, 카디널리티 및 I/O/CPU 비용을 도출해야 하는 구체적인 쿼리 계획 추적으로 대체했습니다. 기존 프롬프트는 개방형 산문 회상이었으며, 이는 생각하지 않는 것에 보상했습니다. 적응형 사고 모델(Opus 4.6+/Sonnet 4.6+)은 사소한 작업에서 추론을 최소화하고 더 빠르게 스트리밍하여 처리량 비교를 왜곡했습니다. 새로운 작업은 다단계 추론을 강제하므로 적응형 사고가 작동하고 벤치마크는 실제 인지 부하 아래에서 생성을 측정합니다. 프롬프트는 또한 명시적인 사전 숙고와 모든 조인 순서의 철저한 열거/비용 계산을 요구하므로 적응형 사고 모델은 빠른 답변으로 단축할 수 없으며 각 모델은 토큰 제한까지 지속된 생성에 대해 측정됩니다.read, search 및 ast-grep의 해시라인 편집을 수정하여 도구 출력에 표시되지 않은 라인을 대상으로 하는 교체가 거부되도록 했습니다/tan이 시작을 거부하는 문제를 수정했습니다. 이 명령은 활성 세션 옆에 접선 작업을 포크하기 위해 존재하므로 이제 스트림 중간에 전달되고 대신 현재 진행 중인 것을 조종하는 대신 다음 턴을 위해 핸드오프 탐색경로를 큐에 넣습니다./tan 백그라운드 에이전트가 에이전트 허브에 남아 있지 않는 문제를 수정했습니다. 포크된 복제본은 이제 <agentId>.jsonl 세션 파일을 사용하므로 (지속된 부분 에이전트 스캔이 라이브 참조를 사용하는 동일한 ID로 이를 키 지정) 등록 취소 대신 완료 시 주차되므로 나열된 상태로 유지되고 해당 트랜스크립트는 읽을 수 있습니다./tan 디스패치 탐색경로가 트랜스크립트에 전체 원본 <system-notice> 블록을 렌더링하는 문제를 수정했습니다. 이제 단일 컴팩트 라인(Tangent dispatched [task] <jobId> — <work>)을 표시하며, "Background job completed" 라인의 형제로 스타일이 지정됩니다.--plan과 같은 기본 제공 문자열 플래그가 더 이상 프로필 경계 표시자를 사용하지 않고 후행 사용자 메시지를 삭제하지 않도록 했습니다none으로 설정되어 OMP가 세션 기록 데이터베이스에 모드 변경을 none으로 쓰지 못하면서 메모리 내/UI 상태를 최신 상태로 유지하는 버그를 수정했습니다.session_shutdown 처리기가 중단되었을 때 Ctrl+C 종료가 최대 30초를 대기하는 문제를 수정했습니다 (Windows의 omp-discord-presence 0.1.2에서 오래된 Discord IPC 파이프에 멈춤이 관찰됨). ExtensionRunner.emit은 이전에 화재-후-잊음 종료 이벤트를 포함한 모든 이벤트에 대해 일반 30초 EXTENSION_HANDLER_TIMEOUT_MS 예산을 공유했으며, 확장은 이를 관찰할 수 없습니다. session_shutdown은 이제 전용 2초 SESSION_SHUTDOWN_HANDLER_TIMEOUT_MS 상한을 사용하며, 이벤트별 handlerTimeoutForEvent() 조회를 통해 라우팅되므로 중단된 타사 처리기가 더 이상 dispose를 보류할 수 없습니다. 심화 방어 계층으로서, 대화형 종료가 이미 실행 중인 동안 도착한 Ctrl+C는 이제 코드 130으로 하드 종료됩니다 (세션 JSONL은 이미 첫 번째 누르기로 동기 플러시되었음). 새로운 읽기 전용 InteractiveModeContext.isShuttingDown을 통해 표시됩니다 (#2600)./todo edit)이 사용자가 시스템의 기본 편집기를 예상했을 때도 Windows에서 No editor configured 경고를 표시하는 문제를 수정했습니다. getEditorCommand()는 이제 $VISUAL/$EDITOR를 참고한 후 Windows에서 notepad로 폴백하며 (이러한 값을 트림하여 실수한 공백이 무시됨), Windows 사용자는 기본 제공 편집기가 작동하는 반면 POSIX는 여전히 구성을 권장합니다 (#2604).@huggingface/transformers 런타임을 로드하여 onnxruntime-node@1.26.0을 더 오래된 libonnxruntime.so.1에 바인딩할 수 있고 VERS_1.26.0 누락으로 실패하는 문제를 수정했습니다 (#2591).scripts/ci-release-notes.ts가 개입하는 무음 태그(예: v15.12.5/v15.12.6 사상자로부터의 사전#2564 릴리스 취소 버그)에서 선별된 변경 로그 항목이 남아 있는 문제를 수정했습니다. 생성기는 이제 (latest-published-release, target]를 탐색합니다 (릴리스 GitHub CI 작업에서 gh release list를 통해 확인됨). 각 패키지마다 ## [X.Y.Z] 섹션을 병합하고, ### <category>로 그룹화하며, 글머리 기호 수준 중복 제거하므로 릴리스 후 변경 로그 평탄화는 항목을 복제할 수 없습니다. 선행 공개 릴리스가 확인되지 않을 때 레거시 단일 버전 추출로 폴백하고, OMP_RELEASE_NOTES_FLOOR=v15.12.4는 수동 재구성을 위한 조회를 재정의합니다 (#2596).Test & smoke (TS) CI 타임아웃이 프로세스 전역 설정 싱글톤에서 병렬 테스트 파일이 경쟁하여 발생하는 문제를 수정했습니다. CustomEditor는 이제 magicKeywordsEnabledOverride 주입 지점을 허용하므로 shimmer-gate 테스트는 resetSettingsForTest() / Settings.init() 호출 없이 동작을 어설션할 수 있습니다. "streaming tool call preview height" describe는 불필요한 설정 재설정+초기화를 삭제합니다. 프로덕션 와이어링은 변경되지 않았습니다 (#2582)eval/bash/ssh 상자)가 상자가 뷰포트보다 커지면 "이상하게 잘림"으로 읽혀지는 문제를 수정했습니다. 최상위 테두리 및 헤드 행 누락, ctrl+o로 확장될 때만 전체로 스냅백 및 축약될 때 다시 깨짐. 스트리밍 미리보기는 축약될 때마다 커밋 불안정하로 분류되었으므로 트랜스크립트는 네이티브 스크롤백의 행을 제공하지 않았습니다. 상자가 창보다 커지면 헤드는 커밋 경계와 창 상단 사이의 간격으로 떨어졌고, 어디에도 커밋되지 않았으며 어디에도 다시 칠해지지 않았습니다. provisionalPendingPreview 플래그는 이제 보류 중인 호출 미리보기(결과 전)에만 적용됩니다. 스트리밍 결과가 존재하면 결과 렌더러는 라이브 상단 앵커 모양이고 블록은 축약 및 확장 상태 모두에서 커밋 안정적이므로 해당 영속 헤드는 항상 스크롤백에 도달합니다.#checkTodoCompletion은 <system-reminder>를 추가한 다음 agent.continue()를 예약했으므로, 텍스트 전용 승인 ("paused at your instruction")이 동일한 검사를 다시 실행하는 또 다른 agent_end를 트리거하고 다음 미리 알림을 발생시켰습니다 (사용자 입력 필요 없음). AgentSession은 이제 #todoReminderAwaitingProgress를 추적합니다: 미리 알림이 설정하고, 모든 toolResult (실제 진행 상황) 또는 새 사용자 프롬프트가 지우며, #checkTodoCompletion은 설정된 동안 조용합니다. todo.reminders.max를 통한 상향 조정은 에이전트가 중지 사이에 도구 수준 진행을 할 때 여전히 작동합니다 (#2590).--plan 플래그가 더 이상 다음 전역 --profile을 사용하지 않도록 했습니다./mcp unauth 중에 발견된 정의 전용 서버 인증을 지우도록 했습니다./mcp unauth가 다른 프로필의 MCP OAuth 자격증명 행을 삭제하는 문제를 수정했습니다: 공유된 mcp.json이 다른 프로필로 범위 지정된 명시적 auth.credentialId (mcp_oauth:profile:<other>:<url>)를 고정할 때, 제거는 이제 비활성 프로필로 범위 지정된 ID를 건너뜁니다 (이미 _사용_을 거부하는 읽기 경로 미러링). 레거시 URL 키 (mcp_oauth:<url>) 및 활성 프로필 ID는 여전히 지워집니다.16px 글꼴 크기 재정의를 추가하여 iOS Safari가 포커스 시 페이지를 자동 확대하는 것을 방지합니다env(safe-area-inset-*))을 추가했습니다overscroll-behavior-y: none)를 비활성화하여 스크롤 중 실수로 당겨서 새로고침 페이지 재로드를 방지했습니다touch-action: manipulation 및 탭 강조 제거)를 적용하여 모바일 응답성을 향상했습니다text-size-adjust: 100% 설정으로).minmax(0, 1fr) 열에 고정했습니다. 제목이 이제 모든 행의 오른쪽 가장자리를 클리핑하는 대신 생략됩니다replace block, delete block 및 insert after block 작업을 거부하고 사용자에게 일반 단일 라인 형식을 사용하거나 진정한 구성 오프너를 앵커하도록 지시했습니다\을 페이로드 구분 기호로 처리하여 독립형 페이로드 행과 일치합니다.\\ TEXT)이 페이로드 구분 기호로 허용될 때 발생하는 경고를 복원했습니다.분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.