2026-07-10

요약 (AI 작성)

Phase 5 — 브라우저 제어 코어와 maru-app:// 신뢰 서빙 — 을 통째로 끝낸 날입니다. 5a 에서 browser.* 스키마·디스패치·authz 를 헤드리스로 세운 뒤, 5c-1 경로 샌드박스와 CSP 를 L2 순수 보안 코어로 놓고 5c-2 를 a(realpath 로 symlink 탈출을 막는 asset resolve 보안 코어) → b(C-ABI export 로 Swift 핸들러 브리지) → c(WKURLSchemeHandler + 트러스트 분기) 순으로 쌓았습니다. 신뢰 웹 브리지도 5b-1 디스패치 코어(control_bridge) 위에 5b-2 Swift 배선(isolated world + origin 검증 + 격리 E2E)을 얹었고, 5d 에서 실 WKWebView API 로 browser.* 제어 코어와 fixture E2E(BrowserControl)를 완성했습니다. 그 사이 10·11·12차 /code-review max 가 짚은 결함(active_term remap 회귀와 CSP doc-sync, 신뢰 서빙 경로 6건, 브리지·서빙·fixture 5건)을 차례로 반영했습니다.

같은 날 인앱 브라우저 UI(7e)도 첫 삽을 떴습니다. 7e-0 에서 ephemeral WKWebsiteDataStore 로 untrusted 데이터를 격리하고, 7e-1a 로 Swift KVO → Zig per-surface 저장을 잇는 nav 상태 파이프라인을 놓은 뒤, 7e-1b 읽기전용 주소창 밴드를 Zig GPU 셀로 렌더했습니다. 이어 7e-2a 로 주소창 편집 모드의 Zig 코어(상태·스킴 정책·라우팅·렌더)를 만들고, 7e-2b Swift 배선(포커스 전이 + navigate)이 PR 로 머지되면서 실제 브라우징이 동작하기 시작했습니다.

웹 Term 쪽 마무리와 버그 수정도 함께 있었습니다. 4e 9차 리뷰 결함 9건(web Term 공유 소비자 kind 분기)을 정리하고 4e-5 로 웹 브라우저 탭 생성을 command 화(new_web_tab, env 훅 승격)했습니다. 웹 패널 divider 는 seam 노출 회귀를 고치면서 시각 gap 과 grab 폭을 분리해 hitTest 가 통과하도록 손봤고, hover resize 커서 미표시는 알려진 한계로 문서에 남겼습니다. 그 밖에 read_error 를 검증 없이 종료로 처리해 살아 있는 셸을 죽이고 좌측 탭이 닫히던 pty 버그를 잡았습니다. 블로그 저장소에는 monthly-opensource 의 electron-mcp-server 문서 갱신이 있었습니다.

커밋

ohah/maru

ohah/ohah.github.io

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#1291mergedfeat(macos): Phase 7e-2b — 주소창 편집 Swift 배선 (포커스 전이 + navigate) = 브라우징 동작
ohah/maru#1290mergedfeat(macos): Phase 7e-2a — browser 주소창 편집 모드 Zig 코어 (상태·스킴 정책·라우팅·렌더)
ohah/maru#1289mergedfeat(observability): read_error를 trace에 read-error kind로 기록 (종료 트리거 진단)
ohah/maru#1288mergedfeat(macos): Phase 7e-1b — browser 웹 패널 읽기전용 주소창 밴드 렌더 (Zig GPU 셀)
ohah/maru#1287mergedfeat(macos): Phase 7e-1a — web 패널 nav 상태 파이프라인 (Swift KVO → Zig per-surface 저장)
ohah/maru#1286mergedfix(pty): read_error 무검증 종료로 산 셸 죽이고 좌측 탭 닫히던 버그
ohah/maru#1285mergedfeat(macos): Phase 7e-0 — browser 패널 untrusted 데이터 격리 (ephemeral WKWebsiteDataStore)
ohah/maru#1284mergedfix: Phase 5 12차 /code-review max 결함 — 브리지/서빙/fixture 5건 수정
ohah/maru#1283closedreview: Phase 5 완성 배치(11차 fix + 5b + 5d) 누적 /code-review max (머지용 아님)
ohah/maru#1282mergedfeat(macos): Phase 5d — browser.* 제어 코어 실 WKWebView API + fixture E2E (BrowserControl)
ohah/maru#1281mergedfeat(macos): Phase 5b-2 — 신뢰 웹 브리지 Swift 배선 (isolated world + origin 검증 + 격리 E2E)
ohah/maru#1280mergedfeat(session): Phase 5b-1 — 신뢰 웹 브리지 디스패치 코어 (control_bridge, L2 헤드리스)
ohah/maru#1279mergedfix(macos): Phase 5c-2 11차 /code-review max 결함 — 신뢰 서빙 경로 6건 수정
ohah/maru#1278closedreview: Phase 5c-2 (a/b/c) maru-app:// 신뢰 UI 서빙 누적 /code-review max (머지용 아님)
ohah/maru#1277mergedfeat(macos): Phase 5c-2c — maru-app:// WKURLSchemeHandler + 트러스트 분기 + placeholder asset
ohah/maru#1276mergedfeat(macos): Phase 5c-2b — maru-app:// asset resolve C-ABI export (Swift 핸들러 브리지)
ohah/maru#1275mergedfeat(macos): Phase 5c-2a — maru-app:// asset resolve 보안 코어 (realpath symlink 탈출 방어)
ohah/maru#1274mergedfix: Phase 5 10차 /code-review max 결함 — active_term remap 회귀 + CSP doc-sync
ohah/maru#1273closedreview: 10차 종합 (9차 이후 배치 — 결함수정·divider·5a·5c-1, 머지용 아님)
ohah/maru#1272mergedfeat(session): Phase 5c-1 — maru-app:// 경로 샌드박스 + CSP (L2 순수 보안 코어)
ohah/maru#1271mergedfeat(session): Phase 5a — browser core (browser.* 스키마·디스패치·authz, 헤드리스)
ohah/maru#1270mergedfix(macos): 웹 패널 divider seam grab 정정 + 시각 gap↔grab 폭 분리 (리뷰 [0] 후속)
ohah/maru#1269mergeddocs(observability): GUI inspector 설계 방향 동기화 (관전형 HTML·웹 패널)
ohah/maru#1268mergedfix(macos): Phase 4e 9차 /code-review max 결함 9건 — web Term 공유 소비자 kind 분기
ohah/maru#1267closedreview: Phase 4e 누적 종합 리뷰 (4e-1/2/3/5, 머지용 아님)
ohah/maru#1266mergedfeat(macos): Phase 4e-5 — 웹 브라우저 탭 생성 command화 (new_web_tab, env 훅 승격)