AgentTool에 선택 사항인 approvalCacheTargets 훅이 추가되었습니다. always-ask-cached 승인 모드가 이 훅을 사용해 파일별 허용 기록을 확인하고 저장합니다 (#16049 by @Peribunt)lenientArgValidation이 적용된 도구는 닫힌 스키마에서 그대로 버려졌을 알 수 없는 루트 인자를 이제 전달받으므로, 해당 인자를 거부할 수 있습니다 (#16317)validateToolArguments(tool, call, { keepUnknownRootKeys: true })가 추가되었습니다. 인자 복구 과정에서 닫힌 스키마가 그대로 버렸을 알 수 없는 루트 키를 유지합니다 (#16317)message_delta 전에 끊은 Claude 스트림이 재시도되지 않고 턴을 실패시키던 문제를 수정했습니다 (#16341 by @lz-lunzi)task 도구의 model 필드처럼) Factory Droid Gemini 요청이 "For schema with items, schema type should be ARRAY" 400 오류로 실패하던 문제를 수정했습니다 (#16249 by @will-bogusz)PI_REQ_DEBUG=1 요청 덤프가 API 키, 베어러 토큰, 응답 쿠키를 평문으로 디스크에 쓰던 문제를 수정했습니다. 이제 인증 헤더는 거부된 요청 덤프와 같이 [redacted]로 표시됩니다 (#16293 by @will-bogusz)MiniMax-M3.1-Flash(출시 ID)에 이제 번들된 MiniMax-M3.1-Flash-Preview 항목과 동일하게 항상 켜진 low–max 사고 설정이 적용되며, 거부되는 샘플링 파라미터(temperature, top_p, top_k)는 전송하지 않습니다 (#16315 by @SaladDay)google/gemma-4-31b-it, google/gemma-4-26b-a4b-it 등)이 모든 요청에서 Thinking budget is not supported for this model로 실패하던 문제를 수정했습니다. 이제 사고는 thinkingLevel로 전환됩니다(켜짐 = high, 꺼짐 = minimal) (#16350)tools.approvalMode: always-ask-cached, --approval-mode always-ask-cached). 이 모드는 파일 읽기 전에도 확인을 요청하며, 파일 프롬프트에서 폴더나 파일을 이번 세션만 또는 여러 세션에 걸쳐 기억하도록 선택할 수 있고, 이 기록은 approval-cache.db에 저장됩니다 (#16049 by @Peribunt)/forget-approvals가 추가되었습니다. Ask and remember가 기록한 모든 파일 및 폴더 승인을 잊게 합니다 (#16049 by @Peribunt)ui.approve() 호스트는 새 prompt.grants 선택지를 렌더링하고 { grant, always }로 응답할 수 있습니다. 이를 무시하는 호스트는 계속 once/session/deny로 응답합니다 (#16049 by @Peribunt)approvalCacheTargets를 선언해 Ask and remember 허용에 참여할 수 있습니다 (#16049 by @Peribunt)proc://<id>/streams가 추가되었습니다. 명령의 파이프 목록을 보여주며, proc://<id>/streams/<n>은 파이프 n을 지금까지 통과한 내용을 보여줍니다. 따라서 cmd | tail -5를 cmd를 다시 실행하지 않고도 실시간으로 따라볼 수 있습니다widget 모델 역할로 작업별로 설계됩니다(지정 전까지는 smol과 같이 해석됨). 요청 한 번으로 작업 출력과 파이프(cmd | tail 포함)를 읽는 규칙이 작성되며, 이후의 모든 업데이트는 추가 모델 호출이나 에이전트로의 메시지 없이 로컬에서 계산됩니다. 서브에이전트는 진행 상황을 보여주는 출력을 알려준 경우에만 위젯을 받으며, 차트로 표시할 가치가 없는 작업은 위젯이 없습니다. async.widgets: false로 끌 수 있습니다wait 카드는 감시 중인 작업을 타일 행으로 보여줍니다. 각 타일에는 상태, 이름(서브에이전트는 전체 이름), 현재 하는 일, 그리고 헤드라인 수치와 라이브 위젯(처리량 차트와 목표선, 모델별 막대, CI 작업 상태, 시험 진행률 등)이 표시됩니다. 서브에이전트 자체의 완료 예상치는 채워질수록 파란색에서 초록색으로 바뀌는 링으로 표시됩니다(백분율은 타일에 마우스를 올리면 확인 가능). HUD 작업 필은 가장 최근 작업의 헤드라인과 미니 차트를 보여주며, 마우스를 올리면 실행 중인 작업들을 타일로 담은 카드가 열립니다. 작업 시트는 선택한 작업의 위젯을 출력 위에 보여주고, 터미널 상태 줄은 작업 수 뒤에 헤드라인을 덧붙입니다/model, /switch, /effort, Alt+P, Ctrl+P, Shift+Tab은 메인 세션으로 돌아가라고 안내하는 대신 해당 서브에이전트의 모델과 사고 수준을 변경합니다(세션 한정). /model과 Alt+M은 그곳에서 세션 한정 선택기를 엽니다. 역할 할당은 메인 세션을 설정하기 때문입니다skills.customDirectories 항목이 ~로 시작할 때 omp skill list가 해당 스킬을 누락하던 문제를 수정했습니다. 이제 이 항목은 스킬 로더와 동일하게 홈 디렉터리 기준으로 해석됩니다 (#16347 by @yuzu-octopus);로 구분된 내부 URL 목록(예: artifact://44;artifact://43)을 하나의 URI로 취급해 검색을 거부하던 grep 문제를 수정했습니다. 이제 나열된 모든 리소스를 검색합니다 (#14091):raw(또는 :conflicts) 선택자가 붙은 웹 URL을 grep이 거부하던 문제를 수정했습니다. 이제 선택자가 fetch까지 전달되므로 :raw는 원본 응답 본문을 검색합니다 (#14092)observe()로 복사한 많은 이름이 브라우저 role/<role>[name="…" exact] 선택자와 일치하지 않던 문제를 수정했습니다. 보이는 텍스트가 있는 버튼이나 링크는 더 이상 title로 매칭되지 않습니다 (#16252 by @will-bogusz)/tan 클론이 부모의 회상 메모리를 추가 시스템 프롬프트 블록으로 다시 보내, 메모리가 중복되고 부모의 프롬프트 캐시를 놓치던 문제를 수정했습니다 (#16337)pi-claude-bridge 등 pi-ai에서 contentText를, pi-coding-agent에서 formatSkillsForPrompt를 가져오는 레거시 pi 확장이 로드에 실패하던 문제를 수정했습니다 (#16313 by @Jerryx333)SettingsManager로 셸 설정을 읽을 때 세션 시작 시 충돌하던 pi-ssh-remote 등 레거시 Pi 플러그인을 수정했습니다 (#16256)/model 선택기와 모델 순환에 나타나지 않던 문제를 수정했습니다. 활성 모델이나 설정된 범위는 변경되지 않습니다 (#16234 by @lazy1523)computer 도구의 control.acquire가 아무에게도 확인할 수 없을 때(서브에이전트 또는 헤드리스 실행)와 사용자가 거절했을 때 모두 { active: false }를 반환하던 문제를 수정했습니다. 이제 각각 reason: "no-ui" 또는 reason: "denied"를 보고합니다 (#16295 by @will-bogusz)todo 도구와 그 지침을 달고 깨어나던 문제를 수정했습니다. 서브에이전트는 이것들 없이 생성됩니다 (#16281 by @will-bogusz)wait가 "Skipped due to a queued background completion"으로 실패하던 문제를 수정했습니다. 이제 해당 작업의 결과를 반환하며, 같은 순간에 도착한 steer, 피어 메시지, aside가 이미 끝난 작업이나 대기 중인 피어 메시지를 이 건너뛰기로 바꾸지 않습니다 (#16301 by @will-bogusz)pi.sendMessage(…, { deliverAs: "aside" })) 중 두 번째가 유실되던 문제를 수정했습니다. 이제 첫 번째 뒤에 에이전트에 전달됩니다 (#16292 by @will-bogusz)agent://all 브로드캐스트로 깨어난 모든 유휴 에이전트가 발신자에게 자동으로 답장하던 문제를 수정했습니다. 대부분 메시지가 자신을 위한 것이 아니라고 말하기 위한 답장이었습니다. 직접 메시지는 여전히 깨어난 에이전트의 턴을 받습니다 (#16312 by @will-bogusz)Checking.Answer.)를 수정했습니다. 이제 최종 답변만 전달합니다 (#16302 by @will-bogusz)agent:// 결과를 바꾸지 않고 부모의 완료 처리를 건너뛰던 문제를 수정했습니다 (#16305)yield가 지원되지 않는 루트 필드를 조용히 빼고도 성공을 보고하던 문제를 수정했습니다. 이제 이런 호출은 필드 이름을 밝히는 오류와 함께 거부됩니다 (#16317)brew install과 brew upgrade가 403으로 실패하던 문제를 수정했습니다 (#16264 by @debanjanbasu)Og: Navigation timeout of 7000 ms exceeded 같은 원시 오류로 노출되던 문제를 수정했습니다. 타임아웃된 tab.goto 또는 browser.open은 대기 중인 로드를 중단하고 탭을 유지합니다. 소스에서 실행할 때와 같습니다 (#16266 by @will-bogusz)find, glob, ast_grep이 ssh:// 경로를 항상 "ssh:// access needs exec approval; this command was approved at read"와 함께 거부하던 문제를 수정했습니다. 이제 read와 grep처럼 exec 승인을 요청합니다 (#16285 by @will-bogusz)1: foo, 2: bar)을 가진 줄 단위 conflict://* 쓰기가 모든 충돌 블록에 전부 기록되고 성공을 보고하던 문제를 수정했습니다. 이제 파일을 건드리지 않고 실패하며, 블록별 conflict://<N> 쓰기를 사용하도록 안내합니다 (#16267 by @will-bogusz)read가 전부 보여주지 않은 줄(열 한도에서 잘린 줄 등)에 hashline 블록 편집(PUT N*:, CUT N*)이 적용되어 해당 줄의 끝부분이 조용히 사라지던 문제를 수정했습니다. 이제 동등한 명시적 범위와 같이 거부됩니다 (#16209)[Session persistence truncated large content]를 프레임에 남기던 문제를 수정했습니다. 이제 아카이브의 원본 텍스트가 전체로 저장됩니다 (#16282 by @will-bogusz)/compact, /new 또는 세션 전환이 일어나면 해당 도구의 결과가 세션 파일에서 사라져, 모델과 재개된 세션이 도구가 반환한 내용 대신 "No result provided"를 보던 문제를 수정했습니다 (#16241 by @will-bogusz)read가 큰 파일 페이지를 아티팩트로 중간 생략하던 문제를 수정했습니다. 출력 분할 임계값을 넘는 페이지는 줄 경계에서 멈추고 정확한 :N 이어읽기 위치를 표시합니다 (#16277)read 또는 grep에서 열 한도에서 잘려 보인 줄을 대체하면서 그 줄의 나머지를 조용히 버리던 문제를 수정했습니다. 이제 이런 편집은 먼저 해당 줄의 전체 :raw 읽기를 요구하며, 한도 안의 줄에 대한 편집은 그대로 적용됩니다 (#16171)/not-a-command처럼 알 수 없는 슬래시 명령에서 Enter를 누르면, 우연히 설명이 일치하는 명령(예: /loop, 이후 매 턴마다 모든 후속 프롬프트를 다시 보내던 명령)이 실행되던 문제를 수정했습니다. 이제 제안 항목을 먼저 선택하지 않는 한 Enter는 입력한 내용을 그대로 보내며, 대기 중인 도구 승인의 거부 및 steer 메시지로 보내는 경우도 포함합니다 (#16265)read할 때 아코디언이나 확장 패널 같은 접힌 섹션(예: 제품 페이지의 "Item details" 표)이 누락되던 문제를 수정했습니다. <template>, <noscript>, 스크립트의 내용은 여전히 제외됩니다 (#16246)/mcp reauth와 /mcp add가 관련 없는 origin-root 인가 서버의 로그인 페이지를 여던 문제를 수정했습니다. 이제 광고된 서버만 사용하며, 발급자 불일치를 서버 이름과 함께 보고합니다 (#16339)/rename 제목처럼 카드가 붙습니다~/.omp/agent/history.db에 픽스처 제목(PLAN, renamed session 등)이 추가되던 문제를 수정했습니다htmlToMarkdown에 hiddenContent 옵션이 추가되었습니다. "drop"(기본값)은 숨겨진 콘텐츠를 제외하고, "reachable"은 접힌 섹션이나 비활성 탭 패널처럼 페이지에서 표시할 수 있는 콘텐츠를 유지하며, "all"은 <template>과 <noscript> 콘텐츠도 유지합니다. 다른 값은 예외를 던집니다 (#16246)normalizePtyDimensions(cols, rows)가 추가되었습니다. 화면 에뮬레이터의 크기를 네이티브 PTY 세션과 같은 실효 크기로 맞춥니다 (#16192 by @C-W-Z)LineMatcher가 추가되었습니다. matchLines는 배치의 매치 결과를 타입 배열의 열 단위로 반환합니다(줄, 패턴, groupNames() 순서의 각 명명 그룹의 UTF-16 범위)PipeStreams와 Shell.run의 streams 옵션이 추가되었습니다. 실행이 여는 모든 파이프는 가장 최근 1MB의 읽기 가능한 사본을 유지하므로, 뒤 단계(| tail)가 출력을 붙잡고 있는 동안에도 앞 단계의 출력을 볼 수 있습니다ssh 명령의 출력을 바꾸던 문제를 수정했습니다. 원격 줄이 120자에서 잘리고 빈 줄이 사라지던 문제였으며, ssh 자체의 로그인 및 연결 안내는 여전히 제거됩니다 (#16314 by @will-bogusz)Cancelled를 보고하던 문제를 수정했습니다. 이제 키 해제가 항상 전송되며 호출은 성공합니다 (#16235 by @will-bogusz)wrapTextWithAnsi가 중국어와 일본어 텍스트에서 줄을 절반만 채우던 문제를 수정했습니다. CJK 구간은 이제 글자 사이에서 줄바꿈해 각 줄을 채우며, ,。!」 같은 닫는 문장부호는 줄 머리에 오지 않고, 여는 괄호는 줄 끝에 오지 않습니다 (#16219)computer 호출이 다음 요청을 실행하기 전에 시트, 팝오버, 메뉴 창의 조회를 최대 5,000개의 접근성 요소까지 끝까지 마치던 문제를 수정했습니다 (#16233 by @will-bogusz)IrcMessage.broadcast가 추가되었습니다. agent://all 브로드캐스트의 각 사본에 설정되어 수신자가 직접 메시지와 구분할 수 있습니다 (#16312 by @will-bogusz)AutocompleteItem.descriptionMatch는 설명으로만 일치한 슬래시 명령을 표시합니다. 사용자가 선택 위치를 그 항목으로 옮기지 않으면 Editor의 Enter는 이런 항목을 적용하지 않습니다 (#16265)ApprovalDialogComponent가 grants와 onGrant를 받습니다. Approve Once 위에 허용 선택지가 표시되며, 세션 간 유지 여부를 정하는 토글이 맨 앞에 옵니다 (#16049 by @Peribunt)describeJobWidget/renderJobWidgetLines가 추가되어 백그라운드 작업 위젯을 네이티브 및 터미널 줄로 그릴 수 있습니다. describeJobTiles/renderJobTileLines는 작업을 타일(상태, 제목, 수치, 위젯)로 그리며, renderSparkline(peakBuckets/fitSparkValues 포함)은 한 줄짜리 블록 스파크라인을 그립니다tools.outputMaxColumns)를 건너뛰어, 한도보다 넓은 줄이 통째로 모델에 전달되던 문제를 수정했습니다. 원본 출력은 아티팩트에 그대로 남습니다 (#16314 by @will-bogusz)unicode 프리셋은 이제 📷/🎬 칩 아이콘을 사용합니다 (#16270)/skill:<name>과 함께 보낸 사용자 텍스트가 접힌 스킬 카드 안에 숨겨지던 문제를 수정했습니다. 이제 로드된 스킬 프롬프트만 숨겨집니다 (#16311)chart 노드에 min, max, 점선 기준선 marks가 추가되었습니다. 시리즈 열마다 tone이 추가되었고, 공통 hovercard 속성도 추가되었습니다. 이는 포인터가 노드 위에 머무는 동안 Tern이 그 위에 띄우는 노드 트리입니다분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.