Orca를 사용해주셔서 정말 감사합니다. 계속된 응원에 감사드립니다! ❤️
이 패치는 9월 29일 데일리 빌드와 main에서 선택된 수정 사항으로 빌드되었습니다. 그 이후 main에 병합된 Pull Request들은 이 빌드에 포함되지 않습니다.
요약
Codex 터미널: 설정 → 에이전트에 새로운 "각 Codex 터미널을 자신의 서버에서 실행" 스위치가 추가되었습니다. 기본적으로 켜져 있으며, 에이전트 상태와 탭 닫기가 올바르게 작동하도록 합니다. 이를 끄면 Codex의 공유 서버와 에이전트 개요로 돌아갑니다. 스위치는 새 터미널에 적용됩니다. 일회성 알림이 변경 사항을 설명하고 스위치로 연결합니다. cmd.exe 탭에서 시작된 Codex, 전체 경로로 시작된 Codex, 또는 "설정 대기" 완료 후 시작된 Codex도 이제 자신의 서버에서 실행됩니다. 바쁜 Codex 0.150–0.157 탭이 더 이상 유휴로 표시되지 않으며, 오케스트레이션 워커는 간단한 지시가 입력되기 전에 Codex 0.157의 시작 화면을 대기합니다.
에이전트 추가: DeepSeek Harness, Freebuff, Qoder, CodeBuddy가 기본 제공됩니다. Orca에서 이를 실행할 수 있으며, 상태가 사이드바에 표시됩니다. ZCode CLI 대화가 세션 기록에 나타나고, Coding Plan 할당량이 사용량에 표시됩니다.
터미널: 터미널의 마우스 오른쪽 클릭 메뉴에 새로운 터미널 재설정 항목이 추가되었습니다. 이는 충돌한 프로그램이 남긴 키보드 및 마우스 모드를 삭제합니다. Orca는 더 이상 프로그램이 죽었다고 추측했다고 해서 이러한 모드를 끄지 않으므로, Ctrl+C 후에도 Shift+Enter와 Option/Alt 키가 Codex 및 Claude Code에서 작동합니다. SSH 터미널은 이제 충돌한 프로그램 후정리를 로컬 터미널과 같은 방식으로 수행합니다. 수백 개의 터미널을 열어도 더 이상 출력이 중단되지 않으며, 터미널 저장 실패가 더 이상 디스크 가득 참으로 표시되지 않습니다.
Orca 모바일 앱: Windows 호스트에서 Codex 터미널의 휴대폰 스와이프가 다시 스크롤되며, 데스크톱 앱 재시작 후 Codex에 불필요한 문자가 입력되지 않습니다. 터미널을 열린 상태에서 업데이트하면, Orca의 백그라운드 터미널 서비스가 재시작된 후(모든 터미널을 닫거나 재부팅한 후) 적용됩니다. 앱은 또한 설치할 수 있는 새로운 버전이 있을 때 알려주며, 키보드는 이제 앱의 다른 화면처럼 페이지를 덮습니다.
브라우저: Orca의 브라우저에서 페이지가 충돌하면 뷰포트 크기 조정이 더 이상 Orca를 충돌시키지 않습니다. 선택한 크기는 페이지가 다시 로드될 때 적용됩니다. 그룹 간에 이동된 브라우저 탭이 더 이상 공백으로 표시되지 않습니다.
네이티브 채팅 (실험적): 구조화된 채팅이 오케스트레이션을 자체적으로 실행하고 워커 결과를 수신할 수 있습니다. 상태, 오류, 하위 에이전트 및 중지된 턴이 이제 더 정확하게 보고됩니다.
신뢰성: 큰 diff가 많은 파일을 한 번에 변경할 때 더 이상 Orca를 고정시키지 않으며, Cmd+J은 작업 영역이 로드되는 동안 키보드를 터미널에 유지합니다.
제품 경험
Codex 및 오케스트레이션
Codex 터미널이 자신의 서버 또는 Codex의 공유 서버를 사용할 수 있는 설정을 가지며, 더 많은 Codex 실행 타입이 자신의 서버에서 실행되고, 오케스트레이션 워커가 더 안정적으로 시작됩니다.
- feat(settings): let Codex terminals opt back into Codex's shared server by @Jinwoo-H in #23929
- fix(terminal): run Orca's cmd.exe, path-named and setup-gated Codex launches without the shared server by @Jinwoo-H in #23933
- fix(runtime): stop a busy Codex 0.150-0.157 pane reading as tui-idle by @Jinwoo-H in #23805
- fix(runtime): wait out Codex 0.157's startup screen, and stop at Codex's startup dialogs, before typing a worker brief by @brennanb2025 in #23745
- fix(runtime): reopen the quiet-foreground tui-idle lane for agents with no other rest signal by @brennanb2025 in #23598
- fix(codex): restored Codex panes on a managed account resume instead of failing with SUN_LEN by @brennanb2025 in #23724
- fix(agent-trust): bound the remaining Codex trust writes a launch waits on by @nwparker in #23380
- fix(codex): index a new account home before bridging history into it by @AmoabaKelvin in #22971
- fix(codex): turning Codex off per agent keeps its hook entry off by @brennanb2025 in #23667
- feat(orchestration): let a structured chat run orchestration as itself by @brennanb2025 in #22568
- feat(orchestration): deliver worker results to a structured chat coordinator by @brennanb2025 in #22631
- fix(terminal-wait): unattended launches report Claude's trust dialog instead of timing out or typing into it by @brennanb2025 in #22927
- fix(zcode): wait for composer before first worker dispatch by @Alex-wangyang in #23374
에이전트 및 에이전트 통합
DeepSeek Harness, Freebuff, Qoder, CodeBuddy가 기본 제공되며, ZCode 기록 및 할당량이 표시되고, 에이전트 실행 및 훅이 더욱 안정적입니다.
- feat(agents): add first-class DeepSeek Harness (dsh) support by @nwparker in #22468
- feat(agents): add Freebuff launch and sidebar status support by @nwparker in #23567
- feat: add first-class Qoder CLI support by @nwparker in #23581
- Add CodeBuddy as a built-in coding agent by @nwparker in #23740
- feat(ai-vault): show ZCode CLI session history by @guanbear in #23513
- feat(usage): show ZCode Coding Plan quota on current main by @guanbear in #23520
- fix(opencode): stop OpenCode 2 loading a stale plugin from the retired shared hooks dir by @OrcaWin in #23500
- fix(opencode): keep OpenCode 2 panes Working across plugin reloads by @brennanb2025 in #23700
- fix(claude): write only the hook events and statusLine the user's Claude accepts by @brennanb2025 in #23614
- fix(agent-launch): report a launch that failed before spawning as failed, with its cause by @brennanb2025 in #22913
- fix(agent-launch): move only the requesting client's view to a launched tab by @brennanb2025 in #22914
- Agent launches carry the surface that started them by @brennanb2025 in #23697
- feat(analytics): persist local usage session identities by @blaksmatic in #18759
- perf(usage): persist a scan's analytics session IDs in one write by @Jinwoo-H in #23807
네이티브 채팅
실험적 구조화된 채팅이 상태, 오류, 하위 에이전트 및 중지된 턴을 더 정확하게 보고하며, 오케스트레이션을 실행할 수 있습니다.
- fix(native-chat): render the terminal-backed chat through the structured chat's turn status by @brennanb2025 in #22090
- feat(native-chat): Codex sessions write their subagents into the host status store by @brennanb2025 in #22553
- refactor(sidebar): one subagent row for CLI and structured children, shared with the chat strip by @brennanb2025 in #22565
- fix(native-chat): a message is accepted, then delivered by @brennanb2025 in #22821
- fix(native-chat): the conversation outlives its agent by @brennanb2025 in #22835
- fix(native-chat): close only the reopened chat when main closes its tab by @brennanb2025 in #22922
- fix(native-chat): a request that failed reads as failed by @brennanb2025 in #22944
- fix(native-chat): say a refused chat write in plain words, and keep it with the write it describes by @brennanb2025 in #22999
- fix(native-chat): Stop is there from the moment a message is sent by @brennanb2025 in #23026
- Show a resting Claude chat's effort instead of a blank picker by @brennanb2025 in #23106
- fix(native-chat): the host writes chat failures for a person, with a typed fact beside them by @brennanb2025 in #23116
- fix(native-chat): let a multi-question ask record list its questions by @brennanb2025 in #23451
- fix(native-chat): a turn a proven crash cut short reads interrupted by @brennanb2025 in #23456
- fix(native-chat): stop killing processes that only inherited a chat's spawn tag by @brennanb2025 in #23460
- fix(codex): the provider supervisor outlives its provider group when stopped by @brennanb2025 in #23466
- fix(claude): run structured Claude under the POSIX provider supervisor by @brennanb2025 in #23476
- fix(native-chat): keep a Codex ask's questions in the order it asked them by @brennanb2025 in #23502
- fix(native-chat): a failed Codex turn keeps its failure and "Worked for" by @brennanb2025 in #23514
- fix(codex): a native chat's thread opens on the model the chat chose by @brennanb2025 in #23532
- fix(native-chat): show the "Working for" bar while a turn runs by @brennanb2025 in #23537
- fix(claude): withdraw a follow-up queued behind a stopped turn instead of dropping it silently by @brennanb2025 in #23553
- fix(native-chat): keep a turn's bar on the prompt that opened it by @brennanb2025 in #23573
- fix(native-chat): a subagent's words are presented as that subagent's, never the parent's by @brennanb2025 in #23605
- fix(native-chat): each chat failure says why in plain words, on the thing that failed by @brennanb2025 in #23608
- fix(codex): a message whose turn was stopped before Codex took it is withdrawn, not stuck by @brennanb2025 in #23618
- fix(native-chat): a message Claude folds into its running turn no longer splits the turn by @brennanb2025 in #23621
- fix(native-chat): stop flashing "still starting" on every chat launch by @brennanb2025 in #23666
- fix(native-chat): group chat rows by the turn that produced them by @brennanb2025 in #23671
- fix(native-chat): only Codex's turn completion ends a Codex turn by @brennanb2025 in #23682
- fix(native-chat): an empty workspace opens the default agent as a chat when chat is the default view by @brennanb2025 in #23693
- fix(native-chat): drop the Codex error path #23682 removed by @nwparker in #23801
- fix(native-chat): keep a child turn settling on an error Codex will not retry by @nwparker in #23808
터미널
터미널 재설정이 정체된 입력 모드를 삭제하며, Orca는 더 이상 실행 중인 프로그램의 키보드 모드를 끄지 않으며, 터미널 저장 및 복원이 더욱 안정적입니다.
- feat(terminal): add Reset Terminal that clears leftover input modes on the host and pane by @Jinwoo-H in #23602
- fix(terminal): stop guessing that apps died and wiping their keyboard modes by @Jinwoo-H in #23584
- fix(terminal): keep a dead app's input modes recoverable after a refuted proof by @Jinwoo-H in #23474
- fix(terminal): clear the Kitty input mirror when a shell is confirmed by @Jinwoo-H in #23483
- fix(relay): reset input modes a dead program left on in SSH terminals by @Jinwoo-H in #23488
- fix(terminal): let unselected Cmd+C reach apps that own their selection by @Jinwoo-H in #23597
- fix(terminal): stop inline-image decoders exhausting the renderer's wasm memory budget by @OrcaWin in #23499
- fix(terminal): stop misdiagnosing save failures as a full disk by @nwparker in #23708
- Improve PTY device error messages with localization support by @AmethystLiang in #23538
- fix(workspace): a restored workspace paints before its terminals reconnect by @brennanb2025 in #22810
- fix(terminal): retry first-terminal seeding until a decision applies by @brennanb2025 in #22919
- fix(terminal): every explicit terminal close commits through one main transaction by @brennanb2025 in #22929
- fix(terminal): main records every tab close, and seeding reads the records by @brennanb2025 in #22955
- fix(terminal): one intentional-stop register, and per-run spawn and input facts by @brennanb2025 in #22989
- fix(terminal): stop a resume note from blanking a live remote agent pane by @Jinwoo-H in #23491
- fix(runtime): retire an exited terminal before its stream end by @brennanb2025 in #23492
- fix(terminal): reveal splits while the source pane binds by @nwparker in #23692
- fix(terminal): preserve typing while a remote pane reattaches by @nwparker in #23701
모바일 앱 및 페어링된 클라이언트
휴대폰 스와이프가 Windows 호스트의 Codex를 다시 스크롤하며, 앱이 업데이트 가능성을 알려주고, 터미널 스트림 및 키보드 레이아웃이 더욱 개선되었습니다.
- fix(terminal): restore the mouse format with mouse tracking, so phone swipes don't type into Codex by @brennanb2025 in #23946
- feat(mobile): tell users when a newer app binary is installable by @Jinwoo-H in #23755
- feat(mobile): the keyboard covers the page like a native screen, and the shell says its height by @Jinwoo-H in #23110
- fix(mobile): native desktop-mode keyboard lift stays on screen; metrics carry the row pitch by @Jinwoo-H in #23070
- fix(mobile): the page pushes its terminal frame into the document from RN layout by @Jinwoo-H in #23079
- fix(mobile): size a terminal's first subscribe from the document's reported cell box by @Jinwoo-H in #23080
- fix(mobile): start AI-button agents through agent.launch, never a bare shell by @brennanb2025 in #22762
- fix(mobile): unsubscribe session tabs by request on the direct connection by @brennanb2025 in #22943
- fix(mobile): release streams whose ready arrives after a replayed cancel by @brennanb2025 in #22945
- fix(runtime): register phone terminal subscriptions when the request arrives by @brennanb2025 in #22948
- fix(mobile): show one review sheet at a time so the review screen never freezes by @brennanb2025 in #22951
- fix(runtime): let the phone end a terminal stream by the request that opened it by @brennanb2025 in #23006
- fix(runtime): register phone tab-list streams when the request arrives by @brennanb2025 in #23045
- fix(mobile): paired clients re-derive a kept terminal after a cold restore by @brennanb2025 in #23109
- fix(mobile): send typed question answers as structured answers by @brennanb2025 in #23458
- fix(runtime): answer terminal.subscribe at once for a pane the desktop already has mounted by @Jinwoo-H in #23512
- fix(mobile): left-align every line of the desktop host card by @Jinwoo-H in #23673
- fix(mobile): truncate oversize markdown reads instead of failing them by @Jinwoo-H in #23676
브라우저
충돌한 페이지가 크기 조정 시 Orca를 더 이상 충돌시키지 않으며, 이동된 브라우저 탭이 더 이상 공백으로 표시되지 않습니다.
- fix(browser): a crashed page no longer crashes Orca when its viewport is resized by @brennanb2025 in #23852
- fix(deps): take Electron 43.7.5 so detached webviews stop blanking browser tabs by @Jinwoo-H in #23586
- fix(browser): give a tab's identity one owner so viewport presets stop dropping client hints by @brennanb2025 in #23718
- fix(browser): a failed SSH route keeps its card while the host redials by @brennanb2025 in #23465
- fix(browser): restore hover after leaving a mobile viewport preset by @AmoabaKelvin in #22846
- Browser tab placement review by @AmethystLiang in #23462
탭, 사이드바 및 상태 표시줄
새 탭 검색이 결과를 더 잘 순위 매기며, Cmd+J이 터미널 포커스를 유지하고, 사이드바 및 상태 표시줄 레이아웃이 정리되었습니다.
편집기, diff 및 파일
큰 diff가 더 이상 Orca를 고정시키지 않으며, Markdown 문서가 더 빠르게 검색됩니다.
- fix(renderer): stop the modal toast rule from freezing large diffs by @brennanb2025 in #23721
- fix: bound combined diff editors and scope chat style invalidation by @nwparker in #23725
- fix(editor): preserve combined diff scroll on line focus by @nwparker in #23735
- Speed up Markdown document discovery with bundled ripgrep by @nwparker in #23306
SSH, Git 및 통합
원격 에이전트 설정이 실패한 읽기를 견디며, 부분 복제 저장소가 올바르게 식별되고, Linear가 숫자로 시작하는 팀 키를 허용합니다.
- fix(ssh): don't overwrite remote agent config after a failed read by @AmoabaKelvin in #22644
- fix: identify partial-clone repositories from the correct remote by @nwparker in #23504
- fix(linear): accept team keys that start with a digit by @leilei3167 in #23423
신뢰성 및 성능
설정 검색, 에이전트 상태 업데이트 및 Orca의 브라우저 버전이 중복 작업을 줄입니다.
- perf: preserve matching General settings sections during search by @nwparker in #23177
- perf: preserve matching Accounts settings sections during search by @nwparker in #23192
- fix(agent-session): wait for in-flight session-store writes before teardown returns by @nwparker in #23545
- fix(agent-hooks): compare status rows structurally instead of serializing both by @brennanb2025 in #23585
- fix(tab-group): measure fallback pane geometry once per tab group, only while visible by @brennanb2025 in #23592
테스트, CI 및 유지 관리
CI가 더 빠르게 실행되고 비용이 적은 러너에서 실행되며, Windows 릴리스는 서명된 바이너리를 필요로 하고, CI 감시 샤딩 변경이 되돌려졌습니다.
- perf(ci): shard the anti-slop audit across processes instead of one JS runtime by @nwparker in #23543
- revert(ci): drop the anti-slop process sharding, which measured as noise on a 4-vCPU runner by @nwparker in #23575
- fix(windows): require signed release binaries and identify CLI launcher by @nwparker in #23680
- fix(release): stop the release policy from deleting pipeline-cut releases by @AmethystLiang in #23669
- fix(i18n): prune the wait-for-setup help copy #23799 removed by @nwparker in #23802
- docs(readme): remove the TestFlight link by @Jinwoo-H in #23660
- docs: update GitHub star history chart by @Jinwoo-H in #23661
- ci: reduce repeated runner work and validate affected-test selection by @nwparker in #23540
- perf(ci): stop the orcad smoke idling 15s and the static job fetching mobile packages it skips by @nwparker in #23541
- perf(ci): take i18next-cli 1.74.1 so extraction stops re-scanning every key to find its leaves by @nwparker in #23550
- perf(ci): diff against the merge commit's first parent so PR checkouts can be shallow by @nwparker in #23562
- perf(ci): cache pnpm verification records on Linux by @nwparker in #23568
- perf(ci): run static analysis on the free ARM runner by @nwparker in #23576
- perf(ci): stop duplicating shared Linux download caches by @nwparker in #23578
- perf(ci): move six more jobs to the free ARM runner by @nwparker in #23594
- ci: skip unrelated installs and share xterm build dependencies by @nwparker in #23607
- ci: use faster gzip for temporary Linux test packages by @nwparker in #23609
- perf(ci): use four ARM test workers and remove repeated compilation by @nwparker in #23685
- perf(ci): plan the unit shards before the static-analysis gate instead of behind it by @nwparker in #23743
- perf(ci): take advisory unit-selection evidence off the gate by @nwparker in #23776
- perf(ci): spend fewer concurrency slots per pull request by @nwparker in #23810
분량 관계로 이후 내용은 번역에서 제외했습니다. 전체 내용은 위 원문 링크에서 확인하세요.