encrypted_function_args 평문 협업 마커의 보존을 추가했습니다. 서버에서 표시한 평문 도구 인자가 이후 턴에서 암호화된 것으로 재해석되지 않도록 합니다./login exa를 통한 대화형 Exa API 키 로그인을 추가했습니다. 공식 API 키 대시보드를 열고 붙여넣은 키를 자격증명 저장소에 저장합니다 (#1798).agent.proto는 현재 Cursor CLI 빌드가 발출하는 프레임을 모델링합니다. 일곱 가지 Pi 도구(ExecServerMessage 45-51), 훅, 하위 에이전트, 허용 목록 사전 확인, MCP 상태, 스마트 모드 분류, 캔버스 진단, 대화 검색, 에이전트 저장소 충돌 및 git diff입니다. 그리고 이들 각각은 타입이 지정된 응답을 받습니다. Pi 프레임은 로컬 동등물(read/bash/edit/write/grep/glob)을 실행합니다. 나머지는 오류, not-found 또는 이 클라이언트에 실제로 적용되는 비어있지만 유효한 변형으로 응답합니다. 이 빌드가 전혀 명명할 수 없는 프레임은 이제 unknown_exec_variant와 함께 ExecClientControlMessage.throw를 발생시키며, 진실된 응답이 없는 인식된 프레임(GetDiffResponse에 오류 변형이 없는 git_diff_request)은 서버를 대기 상태로 남겨두는 자동 ack 대신 exec_variant_unsupported를 발생시킵니다.lsp가 MCP 도구 카탈로그에 다시 광고됩니다. 이전에는 Cursor 기본 도구로 필터링되었으나, 기본 diagnostics 프레임은 약 열 가지 LSP 작업 중 하나만 다루므로 나머지 아홉 개는 도달할 수 없었습니다.options.lastUsedAtMs)를 역행 설정하기 위한 pinSessionOAuthAccount 지원을 추가했습니다. 지속된 세션에서 복원된 핀은 제공자의 따뜻한 윈도우 의미론을 유지합니다. 프롬프트 캐시 TTL 내 재개는 계정을 재사용하고, 만료된 재개는 여전히 순위를 매기게 됩니다.code_mode_tool_names 키를 예약하여 호출자가 제공한 클라이언트 메타데이터 추가 사항이 핵심 소유 필드와 충돌하는 것을 방지합니다.PI_CODEX_ZSTD=0으로 비활성화할 수 있습니다.piReadPath, piJoinPath, piLsPath, piEscapeRegexLiteral, piLimit)이 providers/cursor-pi-args로 이동되었으며, providers/cursor/exec-modern에서 다시 내보내져 기존 가져오기는 영향을 받지 않습니다. 레거시 pi shim은 이러한 헬퍼를 공유하고 번들된 가상 모듈 레지스트리로 컴파일되므로 중첩된 providers/<dir>/<mod> 지정자는 bunfs 아래에서 해결할 수 없습니다. 이를 exec 모듈에서 가져오면 두 문자열 함수를 위해 전체 protobuf 그래프를 끌어옵니다.retry-after 힌트에 대해 maxRetryDelayMs를 무시하는 문제를 수정했습니다. 이제 예산을 초과하는 지연이 응답 세부사항을 잃거나 중단 정리를 수행하지 않고 즉시 표시됩니다 (#7003).enum 배열을 수정했습니다. 지원되지 않는 enum은 생략되고 유효한 문자열 enum은 제약을 유지합니다.GET /v1/usage를 가져오고 롤링 5시간 요청 윈도우 + 동시성 제한을 /usage, omp usage 및 TUI 상태 표시줄에 표시합니다.read가 윈도우의 라인 개수를 파일의 라인 개수로 보고하는 문제를 수정했습니다. total_lines 및 file_size는 페이로드에서 파생되었으나, 이는 범위 없는 읽기에서만 전체 파일입니다. 100줄 파일의 20줄 페이지는 total_lines: 20으로 답변했으며, 페이징 서버는 이를 파일 끝으로 읽었습니다. 이제 개수는 읽기 자체의 파일 기록(details.meta.truncation.totalLines)에서 가져오며, 읽기가 전체 파일을 반환했을 때 페이로드 계산으로 폴백됩니다.pi_grep이 한정되지 않은 성공으로 답변하는 문제를 수정했습니다. GrepTool은 그 상한을 평면 details.truncated에만 포함시키며, details.truncation 또는 perFileLimitReached를 설정하지 않습니다. 이 두 필드는 Pi 결과가 구성된 필드입니다. 따라서 호출자가 감지하거나 페이징할 수 없는 유일한 잘림이 절대 알려지지 않은 것입니다. 이제 평면 플래그가 PiTruncation으로 변환되며, 특정 상한이 이미 자신을 보고한 경우에만 사용됩니다.pi_grep 프레임의 context와 limit이 기록에서 사라지는 문제를 수정했습니다. 브리지는 범위가 지정된 grep을 구성하여 둘 다 준수하지만, 어느 것도 모델 대면 스키마에서 표현할 수 없습니다. 따라서 합성된 블록은 평문 패턴/경로 검색을 기록했습니다. 이제 일반 grep이 생성하지 않는 출력 옆에 있는 것처럼 context 확대 또는 상한이 지정된 검색이 재생됩니다. 이제 둘 다 블록에 기록됩니다.Listed N MCP resource(s)을 기록했습니다. 재구성된 기록이 해당 결과에서 직렬화되므로 한 번의 다시 로드 후 모델은 N개의 리소스를 확인했다는 것을 알았지만 그 중 아무 것도 명명할 수 없었습니다. 쌍을 이루는 결과는 이제 답변이 전달한 내용을 나열합니다.pi_read 범위 변환이 요청한 슬라이스에 패딩을 추가하는 문제를 수정했습니다. piReadPath는 평면 :N+K 선택자를 구성했으며, 로컬 read 도구는 이를 앞에 하나의 후행 컨텍스트 라인 3개로 확장합니다. 따라서 오프셋 5/제한 20을 명명하는 프레임은 라인 4-27을 수신했습니다. 이제 범위가 지정된 Pi 읽기는 :raw:N+K를 구성합니다. 와이어 결과는 불투명한 출력 문자열이므로 라인 번호 거터 raw도 계약이 필요로 하지 않는 것을 수행하지 않습니다.listMcpResourcesExecResult, readMcpResourceExecResult, recordScreenResult 및 computerUseResult는 이제 각각 ListMcpResourcesSuccess{resources: []}, ReadMcpResourceNotFound{uri}, RecordScreenFailure 및 ComputerUseError를 보냅니다.CursorExecHandlers는 listMcpResources/readMcpResource를 획득했으므로 라이브 MCP 연결을 보유한 호스트가 광고합니다. 위의 빈 카탈로그 및 not_found은 핸들러가 제공되지 않을 때 답변으로 남습니다. 발생하는 핸들러는 "없음이 존재함"으로 축소되는 대신 ListMcpResourcesError/ReadMcpResourceError로 표시되며, 모델이 재시도할 수 없습니다. download_path를 전달하는 읽기는 이를 전달하고 ReadMcpResourceSuccess.download_path 및 콘텐츠 없음으로 응답하며, 이것이 그 모드의 의미입니다.connect_scm 호출이 리포지토리를 잃고 제작된 판정으로 정착하는 문제를 수정했습니다. 대상은 ConnectScmArgs.target oneof에 있으므로 평면 github 속성을 읽으면 항상 undefined가 표시됩니다. 정식 success/error/rejected 결과는 완료 프레임에만 도착하므로 알림 시 응답하면 모든 호출에 대해 고정된 실패가 지속되며, 서버가 계속 수용하는 호출도 포함합니다. 이제 블록은 시작 프레임에서 열리고 완료의 디코딩된 결과에서 정착합니다.toolCallCompleted에서 이를 정착시키면서 엔벨로프의 call_id를 무시했습니다. 한 호출에 대한 완료는 열려 있는 모든 블록을 닫았고 이를 잘못된 결과와 쌍을 이루었으며, start A, start B는 A를 완전히 고아로 만들어 자신의 완료가 B를 정착시키는 동안 A는 절대 쌍을 이루지 않았습니다. 이는 재구성된 모든 기록에서 전체 상호작용을 제거했습니다. 이제 열린 블록은 엔벨로프 call_id 당 유지되며, 마지막 블록만이 아닌 스트림 끝에서 모든 블록을 닫습니다.search_conversations 호출이 기록 블록을 남기지 않는 문제를 수정했습니다. 프레임은 고정된 판정에서 응답되므로 다운스트림의 아무 것도 이에 대한 결과를 쌍으로 만들지 않으며, 쌍을 이루지 않은 호출은 전체 상호작용을 재구성된 모든 기록에서 제외합니다.read_mcp_resource 호출이 기록 블록을 남기지 않는 문제를 수정했습니다. 프레임은 로컬로 실행되고 다운로드 모드에서 워크스페이스 파일을 작성하지만 도구 호출을 합성하지 않았고 결과를 쌍으로 만들지 않았으므로 읽기는 UI에서 보이지 않고 재구성된 모든 기록에서 부재했습니다. 리소스 다운로드는 기록이 없이 워크스페이스를 변경할 수 있었습니다. 이제 프레임은 read_mcp_resource 블록(read이 아님: 이는 원격 MCP 작업이며 이름이 렌더링 및 제거 의미론을 제어함)을 합성하고 성공, not-found 및 오류에서 결과를 쌍으로 만듭니다. 핸들러 없이 응답된 프레임은 여전히 아무 것도 합성하지 않습니다. 아무 것도 실행되지 않았기 때문입니다.list_mcp_resources 호출이 기록 블록을 남기지 않는 문제를 수정했습니다. 모델은 카탈로그를 소비했지만 프레임은 도구 호출을 합성하지 않았고 결과를 쌍으로 만들지 않았습니다. 스트리밍된 ListMcpResourcesToolCall 알림도 마찬가지로 인식되지 않았으므로 나열은 UI에서 보이지 않고 재구성된 모든 기록에서 부재했습니다. 핸들러가 응답한 프레임은 이제 list_mcp_resources 블록을 합성하고 와이어에 나가는 동일한 답변에서 파생된 결과를 쌍으로 만듭니다. 핸들러 없음 카탈로그에서 응답된 프레임은 여전히 아무 것도 합성하지 않습니다. 아무 것도 실행되지 않았기 때문입니다.pi_edit/pi_write가 오류 변형으로 응답하는 문제를 수정했습니다. 두 결과 모두 거부 및 실패를 별개의 oneof 케이스로 모델링하며, 거부는 error로 보고되면 "도구가 실행되었고 손상됨"으로 읽혀 절대 허가되지 않은 작업의 재시도를 초대합니다. 도구가 부여되지 않은 프레임 또는 핸들러가 아무 것도 생성하지 않은 프레임은 이제 PiEditExecRejected/PiWriteExecRejected로 응답합니다. 실행 실패는 오류 변형을 유지합니다.mcpArgs 프레임이 smart_mode_approval_only를 전달하면 호출 자체가 아닌 호출 허용 여부만 요청합니다. 디코더는 플래그를 버렸으므로 프레임은 사용자에게 묻지 않은 부작용이 있는 MCP 도구를 실행한 후 실제 호출이 이어질 때 다시 실행했습니다. 이제 플래그는 전달되며 프로브는 실행 없이 호스트의 정책에서 응답됩니다. 확정된 허용에만 승인되고, 거부에는 거부되고, 프롬프트를 요구하는 모드에는 거부되고, 세션에 없는 도구에는 거부됩니다. 아무 것도 실행되지 않았으므로 기록 블록도 합성되지 않습니다.{}이 생깁니다. 따라서 잘린 또는 연결이 끊긴 턴은 이러한 호출을 인자 없이 재구성했습니다. 이제 실제로 인자를 스트리밍한 블록만 다시 파싱됩니다.connect_scm 및 네이티브 todo 블록은 열리는 순간 해결됨으로 표시되므로 에이전트 루프는 자리 표시자를 합성하지 않으며 완료 프레임만이 결과를 쌍으로 만듭니다. 먼저 닫힌 전송은 카드를 애니메이션하고 호출을 쌍으로 만들지 않았으며, 이는 재구성된 모든 기록에서 전체 상호작용을 제외합니다. 터미널 오류 경로는 이제 열린 블록을 닫고 이러한 서버 소유 호출을 중단된 결과와 쌍으로 만듭니다. 플러시는 깨끗한 완료 시에만 실행되었으며, 이는 죽는 스트림이 취하지 않는 경로입니다. Exec로 정착한 MCP 블록은 혼자 남겨둡니다. 이들을 실행한 디스패치가 결과를 소유하기 때문입니다.pi_read의 offset/limit이 전체 파일 읽기로 표시되었고, pi_grep의 literal 패턴이 이스케이프되지 않은 정규식으로 표시되었으며, pi_find의 경로/glob 조인이 실행된 것과 달랐습니다. 이제 양쪽은 단일 번역을 공유합니다.pi_*_tool_call 알림이 인식되지 않는 문제를 수정했습니다. exec 채널은 이미 도구를 실행할 때 이러한 블록을 합성합니다. 중복은 디코더가 어떤 변형도 인식하지 못했기 때문에만 피해졌으며, 이는 어느 하나가 추가되는 즉시 이중 렌더링을 시작했을 것입니다.pi_bash 결과가 Cursor에 도달할 때 잘림 알림 없이 클립되는 문제를 수정했습니다. 두 개의 로컬 잘림 기록이 존재합니다. read/grep은 명시적 truncated 플래그를 전달하는 details.truncation을 설정하고, bash는 그러한 플래그가 없는 기록을 가진 details.meta.truncation을 설정합니다. 이 기록의 존재가 신호입니다. piTruncation은 첫 번째 형태만 읽었고 플래그를 요구했으므로 모든 실제 Bash 잘림이 삭제되었고 서버에는 잘린 출력이 완전했다고 알려졌습니다. 이제 두 형태 모두 변환되며, 명시적 truncated: false는 여전히 필드를 억제합니다.agent.proto에 대해 Cursor 에이전트 protobuf(discovery/cursor-gen/agent_pb.ts)를 재생성했습니다. 현재 Cursor CLI 빌드가 발출하는 메시지 및 enum 패밀리를 추가합니다. Pi 도구 exec 프레임, 훅 쿼리 및 응답, 하위 에이전트, 허용 목록 사전 확인, MCP 상태, 스마트 모드 분류, 캔버스 진단, 대화 검색, 에이전트 저장소 충돌 및 git diff입니다. 순전히 추가적입니다. 기존 내보낸 기호는 모양이 변경되지 않았습니다.DEL, DEL.BLK, COPY, 및 COPY.BLK hashline 편집 작업을 제거했습니다. 삭제를 위해 CUT / CUT.BLK를 사용하세요. 제거된 콘텐츠는 PASTE에 사용 가능한 상태로 남아 있습니다./mcp 명령(enable, disable, test, remove, reconnect, reauth, unauth)에 대한 서버 이름 자동 완성을 추가했습니다. 구성되고 런타임 발견된 MCP 서버를 사용합니다.CUT 및 PASTE 작업을 추가했습니다. 재입력 없이 코드를 이동할 수 있습니다. CUT N.=M(및 .BLK 블록 형태)은 라인을 클립보드 레지스터로 캡처하고, PASTE 작업은 이를 삽입합니다. 레지스터는 패치 내 섹션에서(교차 파일 이동) 흐르고 세션 당 편집 호출에서 지속됩니다.--from-claude 및 --from-codex 세션 가져오기를 추가했습니다. /resume @claude 및 /resume @codex에서도 사용 가능합니다./login exa를 통한 대화형 Exa API 키 온보딩을 추가했습니다. 공식 키 대시보드를 열고 인증된 웹 검색을 위해 붙여넣은 키를 저장합니다. EXA_API_KEY 및 명시적 선택 공개 MCP 폴백 동작을 보존합니다 (#1798).ExtensionContext.getAsyncJobSnapshot()을 추가했습니다.tui.codexResetFireworks 축하를 추가했습니다. Escape까지 테마 인식 상단 3분의 1 모달에 표시됩니다 (#6858 by @joshrzemien).pi_read/pi_ls → read, pi_bash → bash, pi_edit → edit, pi_write → write, pi_grep → grep, 및 pi_find → glob. 프레임은 레거시 인자와는 별개의 와이어 패밀리이므로 각 매핑이 실제 번역입니다. pi_grep의 ignore_case는 로컬 도구의 대소문자 민감성 플래그의 반대이고, pi_find는 콘텐츠가 아닌 파일명을 검색하며, pi_edit의 교체는 로컬 snake_case 쌍으로 이름이 변경됩니다.providers.autoThinkingMaxEffort(xhigh | max, 기본값 xhigh)는 auto 사고 분류자의 상한을 높입니다. 분류자 프롬프트가 작성된 후 max는 최고 수준의 노력 계층이 되었으므로 해당 계층을 노출하는 모델에서 auto는 절대 이에 도달할 수 없었습니다. ultrathink 키워드만이 가능했습니다. 옵트인은 분류자의 어휘에 max를 추가하며, 대상 모델이 실제로 이를 지원하는 경우에만 제어됩니다. 기본값은 오늘날의 프롬프트를 바이트 단위로 유지합니다. 상한은 노력 클램프 내에서 적용되므로 불완전한 사다리는 제외된 요청을 다시 스냅할 수 없으며, 낮음 바닥은 여전히 모델 자체 사다리에 대해 해결됩니다. 온디바이스 3-버킷 분류자는 설정과 무관하게 xhigh에서 상한됩니다. 상한은 auto가 해결하는 것을 제어합니다. 아래에 아무 것도 없는 사다리는 자동 수준을 생성하지 않으며, thinking.requiresEffort 모델은 여전히 전송에서 지원하는 가장 낮은 노력을 받습니다.startup.changelogMode(summary | expanded | hidden)를 사용하여 제어하세요. 레거시 collapseChangelog 선택은 자동으로 마이그레이션됩니다 (#6771).credential_pin sha-256으로 계정 + 조직/프로젝트 범위, 내보내기는 평문 ID를 포함하지 않음). 세션의 효과적인 마지막 사용 시간으로 재개할 때 다시 고정됩니다. 따라서 새 프로세스는 더 이상 사용 헤드룸으로 계정의 순위를 매기지 않습니다. 이는 방금 사용한 계정에서 체계적으로 멀어지고 전체 계정 범위 캐시 접두사를 콜드 미스했습니다. 스티키 라우팅은 이전에 인증 저장소의 KV 캐시에만 저장되었으나, 원격 인증 브로커가 구성되어 있을 때는 메모리 내입니다.credential_pin 해시로 기록되고 재개 시 다시 고정됩니다. 따라서 새 프로세스는 더 이상 사용 헤드룸으로 계정의 순위를 매기지 않습니다. 이는 방금 사용한 계정에서 체계적으로 멀어지고 전체 계정 범위 캐시 접두사를 콜드 미스했습니다. 스티키 라우팅은 이전에 인증 저장소의 KV 캐시에만 저장되었으나, 원격 인증 브로커가 구성되어 있을 때는 메모리 내입니다.createAgentSession 호출이 Agent "Main" was replaced during session initialization 오류로 초기화에 실패하는 문제를 수정했습니다. 각 프로세스 내 임베더(예: 편집 벤치마크 러너)는 이제 새로 내보낸 AgentRegistry를 통해 개인 레지스트리를 전달할 수 있으며, 모든 최고 수준 세션의 "Main"을 프로세스 전역 로스터 경합 밖으로 유지합니다./tan 에이전트가 상위 세션의 local:// 첨부 파일을 읽을 수 없는 문제를 수정했습니다. 상위 세션의 아티팩트에 대해 로컬 프로토콜 옵션을 올바르게 해결합니다.xd:// 디바이스 요약에 제어 문자가 포함되고 크기 예산을 초과하는 문제를 수정했습니다. 제어 문자를 제거하고 요약을 UTF-8 바이트로 바운드합니다.task.softRequestBudget 구성이 번들된 scout 및 sonic 하위 에이전트에 영향을 미치지 않는 문제를 수정했습니다.C 로캘 사용을 강제하여 예측 가능하고 비대화형 명령 출력을 보장합니다.xd:// 마운트 알림 및 프롬프트 캐시 무효화를 수정했습니다.omp ttsr test이 확장자가 허용 목록에 없을 때 소스 파일을 산문으로 자동 평가하는 문제를 수정했습니다. 허용 목록을 확장하여 .NET, Shell, SQL, Zig, Dart, Scala, Elixir 및 Protobuf 파일을 지원합니다.retry.maxDelayMs이 Anthropic 재시도 처리로 전달되지 않는 문제를 수정했습니다. 예산을 초과하는 서버 재시도 지연이 빠르게 실패합니다.get_state 응답에 초당 토큰 처리량을 추가했습니다.set_fast_mode 명령 및 타입 지정된 TypeScript/Python 클라이언트 메서드를 추가했습니다.get_state 응답에 fastModeEnabled 및 fastModeActive를 추가했습니다.speed: "fast"를 거부한 후 RPC 빠른 모드 상태 보고를 수정했습니다. 명시적 재활성화 요청이 우선 서비스를 재시도할 수 있도록 합니다.tools: 프론트매터에 명시적으로 나열된 경우 하위 에이전트가 checkpoint, rewind, learn 및 manage_skill에 액세스할 수 있도록 선택적 지원을 추가했습니다. checkpoint/rewind 중 하나를 나열하면 다른 하나도 자동으로 포함됩니다. 설정(checkpoint.enabled, autolearn.enabled)은 여전히 마스터 토글입니다.browser.cdpUrl 설정을 추가했습니다. 이것은 기본적으로 브라우저 자동화를 이미 실행 중인 CDP 엔드포인트로 안내하므로 app.cdp_url을 모든 호출마다 반복할 필요가 없습니다. 명시적 app 옵션은 여전히 우선순위를 갖습니다.pi_read의 offset/limit이 무시되어 범위 읽기가 전체 파일을 반환했으며, pi_grep의 literal이 무시되어 고정 문자열 검색이 정규식으로 실행되어 잘못된 라인과 일치했으며, 경로/glob 조인이 ./ 접두사 사양을 생성했습니다. 범위는 이제 read의 :N+K 인라인 선택자에 구성되고, 리터럴 패턴은 이스케이프되며, 조인은 node:path를 사용합니다. 이들은 optional int32 필드이므로 기본값으로 폴딩되는 대신 현재 0이 준수됩니다. pi_read가 limit: 0이면 전체 파일 대신 빈 출력으로 응답하고, pi_find가 limit: 0이면 참조 클라이언트처럼 1로 클램핑합니다.pi_grep의 context 및 limit이 준수됩니다. 둘 다 모델 대면 grep 스키마에서 표현할 수 없습니다. 컨텍스트 너비는 도구 구성 시 고정된 grep.contextBefore/grep.contextAfter에서 나옵니다. 따라서 브리지는 이를 제공하는 프레임에 대해 범위가 지정된 grep을 구성합니다. GrepTool은 이들을 생성자 옵션으로 수용하며, 모델 대면 스키마는 변경되지 않고, 둘 다 제공하지 않는 프레임은 공유 인스턴스와 세션의 기본값을 유지합니다.pi_ls의 limit은 여전히 매핑되지 않으며, 이제 의도적입니다. 이는 디렉토리 항목을 캡합니다. 한편 로컬 read 도구는 깊이 2 트리를 렌더링하며 디렉토리별 캡과 생략 행을 사용하고 선택자를 렌더링된 라인 슬라이스로 적용합니다. 이를 :1+K로 매핑하면 준수되는 것처럼 보이면서 다른 단위를 캡합니다.pi_edit 프레임이 편집하지 않고 실패하는 문제를 수정했습니다. 두 가지 독립적인 원인이 있습니다. 세션이 Cursor에 대해 도구 레지스트리에서 edit을 삭제하므로 모델은 전체 파일 write를 사용하지만, 해당 레지스트리는 exec 브리지의 도구 소스이기도 하므로 네이티브 프레임(서버가 광고된 카탈로그에 관계없이 보냄)은 도구를 찾을 수 없었습니다. 그리고 유지되는 인스턴스는 세션의 구성된 편집 모드를 따랐지만, PiEditExecArgs는 replace만 수용하는 old_text/new_text 쌍을 전달합니다(기본값 hashline은 단일 input 문자열을 취함). 이제 브리지는 폴백 해결자를 통해 replace 모드 인스턴스를 해결하며, 여전히 승인을 위해 래핑됩니다.context 또는 limit을 전달하는 pi_grep 프레임이 승인 게이트를 이스케이프하는 문제를 수정했습니다. 이러한 필드를 준수하려면 per-call grep이 필요하고, per-call 인스턴스는 모든 레지스트리 도구가 래핑되는 동안 원시로 구성되므로 그러한 호출은 tools.approval.grep 및 SSH 대상 경로에 대한 exec 계층 확인을 우회했습니다. 이제 두 브리지 호출 사이트 모두 동일한 래퍼를 적용하는 단일 공유 팩토리를 통해 이를 구성합니다.pi_grep의 context 및 limit을 무시하는 문제를 수정했습니다. 기본 세션만 per-call grep 팩토리를 제공했으므로 어드바이저 프레임은 자동으로 세션 기본값으로 폴백했습니다. 이제 어드바이저는 동일한 팩토리를 수신하며, 어드바이저가 실제로 grep을 부여받은 경우에만 제어됩니다.pi_edit를 실패하는 문제를 수정했습니다. 어드바이저 로스터는 어드바이저의 자체 루프에 대해 구성된 edit 인스턴스를 브리지에 제공했으며, 이는 구성된 edit.mode(hashline이 기본값)를 따르고 프레임의 old_text/new_text 쌍을 거부합니다. 이는 기본 브리지가 이미 수정한 모드 불일치이며, 누락된 경로에 있습니다. 이제 exec 맵은 replace 모드 인스턴스를 대체하며, 어드바이저가 실제로 edit을 부여받은 경우에만 제어되는 동안 어드바이저 자체 루프는 부여받은 도구를 유지합니다.분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.