2026-07-11

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

maru 인앱 브라우저는 주소창 편집을 Swift에 배선해 클릭, URL 입력, Enter로 페이지를 여는 7e-2b(#1291)와 back·forward·reload 버튼을 붙인 7e-3(#1292)으로 기본 골격을 갖췄습니다. 7e-4는 버튼 hover 커서·하이라이트와 ⌘←/→/R 단축키를 더하고, 손 테스트에서 나온 ⌘R 미동작, 링크 이동 시 주소창 미갱신, web 패널을 보던 중 뜬 종료 확인 창이 Enter를 받지 못하던 문제를 함께 고쳤습니다(#1293). 주소창 편집은 별도 고정 버퍼 대신 find·palette와 같은 공유 OverlayInput을 쓰도록 바꿔 IME 조합 표시를 얻었고, inputFocus에 .addr_edit이 빠져 평문 타이핑이 새던 문제도 고쳤습니다.

새 창·팝업은 Swift 쪽에서 먼저 web Term을 등록하는 ABI(7f-0, #1295), WKUIDelegate.createWebViewWith로 팝업을 새 브라우저 탭에 여는 처리(7f-1, #1296), 위험 스킴을 막는 팝업 URL 정책(7f-2, #1298)으로 들어왔습니다. 마지막 창을 ⌘W나 빨간 버튼으로 닫으면 확인 없이 종료되던 문제는 Cmd+Q 종료 확인으로 합쳤고(#1297), 13차 리뷰 결함 11건과 브라우저 탭 닫기 확인·잘못된 주소 유지·주소창 클릭-어웨이 포커스 수정이 #1300으로 병합됐습니다. 반복되던 포커스 버그는 4g로 묶어, 설계 문서(#1301)와 활성 web surface getter(4g-0, #1302), reconcileWebFocus 불변식(4g-1, #1303), 정리 검토(4g-2, #1304), override 단일 출처화(4g-3, #1306)까지 진행했습니다. 탭·pane 드래그 시각물은 WKWebView에 가리지 않도록 최상위 오버레이 레이어로 옮겼습니다(#1307).

컨트롤 플레인은 에이전트 브라우저 제어를 라이브로 연결했습니다. §9.2·§9.3 설계 문서(#1308, #1313)를 먼저 쓰고, capability nonce를 라이브 auth 경로에 배선한 1e-core(#1309), 응답이 나중에 오는 메서드를 위한 in-flight 레지스트리(#1312), dispatchBrowser가 BrowserOp를 돌려주게 한 5e-1(#1314)과 라우팅 5e-2a(#1315), Zig 쪽 op 큐 marshal 5e-2b-1(#1320), 소켓에서 실제 WKWebView를 구동하는 E2E 5e-2b-2(#1322)까지 병합됐습니다. 15차부터 17차 리뷰 결함(#1311, #1319, #1325)도 이어서 고쳤고, 누적 리뷰용 PR 4개(#1299, #1305, #1310, #1316)는 병합 없이 닫혔습니다.

그 밖에 탭 전환 시 DECSET 2026 동기화 게이트가 잘못 투영돼 화면이 사라지던 버그를 고치고 문서에 반영했으며(#1317, #1318, #1321), 스모크 테스트에서 web 패널이 창 밖으로 삐져나오던 문제를 고쳤습니다(#1324). 설정 화면에는 네비 하단 전체 초기화와 바뀐 행마다 ↺를 두는 기본값 리셋 UX(CS-4-8)가 추가됐습니다(#1323).

공개 커밋 39개, 해당일 생성 또는 병합된 PR 35개를 정리했습니다. PR 생성 34개·병합 31개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/maru

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#1325생성 · 병합mergedmainfix: 17차 /code-review max 결함 6건 (browser 제어 정확성·견고성)
ohah/maru#1324생성 · 병합mergedmainfix(macos): 스모크 web 패널 삐져나옴 — scripted resize를 실 창 크기로
ohah/maru#1323생성 · 병합mergedmainfeat(settings): 기본값 리셋 UX — 네비 전체 리셋 진입점 + 변경 행 항목별 ↺ (CS-4-8)
ohah/maru#1322생성 · 병합mergedmainfeat(control): 5e-2b-2 — 소켓 browser.* 라이브 제어 E2E (Swift drain + 소켓 스모크)
ohah/maru#1321생성 · 병합mergedmaindocs(io-render-threading): §11.7 정정 — per-surface baseline은 실익 없음(밴드에이드가 최소 해법)
ohah/maru#1320생성 · 병합mergedmainfeat(control): 5e-2b-1 — browser op Zig L4 marshal (op 큐·defer·take/complete ABI)
ohah/maru#1319생성 · 병합mergedmainfix: 16차 /code-review max 결함 3건 ([1] completeInFlight 누수, [2] no-nonce browser uniform-unauthorized, [5] 오버레이 순서 테스트)
ohah/maru#1318생성 · 병합mergedmaindocs(io-render-threading): §11.7 활성 surface 전환 시 sync 게이트 baseline 재설정 문서화
ohah/maru#1317생성 · 병합mergedmainfix(macos): 탭 전환 시 화면 소멸(2026 sync 게이트 오투영) 수정
ohah/maru#1316생성closed기능 브랜치: review/16th-basereview: 15th-fixes + §5-async + 5e-1 + 5e-2a 누적 /code-review max (머지용 아님)
ohah/maru#1315생성 · 병합mergedmainfeat(control): 5e-2a — dispatchAuthenticated가 browser.*를 op로 라우팅 (L2)
ohah/maru#1314생성 · 병합mergedmainfeat(control): 5e-1 — dispatchBrowser가 BrowserOp 반환 (L2)
ohah/maru#1313생성 · 병합mergedmaindocs: 5e 라이브 browser.* 배선 상세 설계 (control-plane §9.3, doc-first)
ohah/maru#1312생성 · 병합mergedmainfeat(control): §5-async — deferred marshal (in-flight 레지스트리)
ohah/maru#1311생성 · 병합mergedmainfix: 15차 /code-review max 결함 5건 ([0] 드래그+모달 caret, [4] read_output/capture, [2][10][11])
ohah/maru#1310생성closed기능 브랜치: review/15th-basereview: Phase 4g-3 + 렌더러 슬라이스 + 1e-core 누적 /code-review max (머지용 아님)
ohah/maru#1309생성 · 병합mergedmainfeat(control): 1e-core — capability nonce를 라이브 auth 경로에 배선
ohah/maru#1308생성 · 병합mergedmaindocs: 에이전트 브라우저 제어 라이브 e2e 설계 (control-plane §9.2, doc-first)
ohah/maru#1307생성 · 병합mergedmainfeat(macos): 렌더러 슬라이스 — 탭/pane 드래그 시각물을 최상위 오버레이 레이어로 (WKWebView 위)
ohah/maru#1306생성 · 병합mergedmainfix(macos): Phase 4g-3 — 14차 /code-review max 결함 6건 (focus-sync override 단일 출처)
ohah/maru#1305생성closed기능 브랜치: review/14th-basereview: Phase 7 안정화(13차 fixes + 브라우저 UX + focus-sync 4g) 누적 /code-review max (머지용 아님)
ohah/maru#1304생성 · 병합mergedmainPhase 4g-2 — focus-sync 정리 검토 결론 + KVO [7] 해소 (비-동작)
ohah/maru#1303생성 · 병합mergedmainPhase 4g-1 — 웹↔터미널 포커스 동기 불변식 통합 (reconcileWebFocus)
ohah/maru#1302생성 · 병합mergedmainPhase 4g-0 — focus-sync 토대: 활성 web surface getter(any kind)
ohah/maru#1301생성 · 병합mergedmaindocs(web-panel): 웹↔터미널 포커스 동기 불변식 설계 (4g 통합)
ohah/maru#1300생성 · 병합mergedmainfix: Phase 7 13차 /code-review max 결함 11건 (주소창 편집 생애주기 중심)
ohah/maru#1299생성closed기능 브랜치: review/13th-basereview: Phase 7 인앱 브라우저(7e 주소창 + 7f 팝업 adopt) 누적 /code-review max (머지용 아님)
ohah/maru#1298생성 · 병합mergedmainPhase 7f-2 — 팝업 대상 URL 정책 게이트 (위험 스킴 차단)
ohah/maru#1297생성 · 병합mergedmainfix(macos): 마지막 창 닫기(⌘W·빨간버튼·웹뷰탭)를 Cmd+Q 종료 확인으로 합류
ohah/maru#1296생성 · 병합mergedmainPhase 7f-1 — 새 창/팝업 adopt (WKUIDelegate.createWebViewWith → 새 브라우저 탭)
ohah/maru#1295생성 · 병합mergedmainPhase 7f-0 — 새 창/팝업 adopt용 Swift-first web term 등록 ABI
ohah/maru#1294생성 · 병합mergedmaindocs(web-panel): 7f 새 창/팝업 adopt + host-mediated 브라우저 MCP 계획
ohah/maru#1293생성 · 병합mergedmainPhase 7e-4 nav 버튼 폴리시 + 손 테스트 수정 3건 (⌘R·주소·모달 최상위)
ohah/maru#1292생성 · 병합mergedmainfeat(macos): Phase 7e-3 — 주소창 nav 버튼 back/forward/reload (인앱 브라우저 완성)
ohah/maru#1291병합mergedmainfeat(macos): Phase 7e-2b — 주소창 편집 Swift 배선 (포커스 전이 + navigate) = 브라우징 동작