2026-08-11
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru의 문서를 통째로 재편한 날입니다. 전날 열린 구현 계획 분할 #2074, 컨트롤 플레인 계약 분할 #2076, 파일 패널 계약 분할 #2077이 병합됐고, 이어 네이티브 편집기(#2078), 사이드바 그룹(#2082), 웹 패널(#2083), 에디터 Surface, 에이전트 세션 도크, Metal UI(#2090), 설정, 터미널 분해, I/O–렌더(#2093) 문서를 각각 계약·기록·계획으로 갈랐습니다. 분할이 남긴 깨진 앵커와 절 참조를 교정하고 흩어진 참조(render 49건, metal-ui 13건, terminal 6건 등)를 새 소유 문서로 돌렸으며, 계약 문서에서 진행 표기와 단계 분해를 걷어내 계획 쪽으로 옮겼습니다.
이 정리를 CI가 지키도록 게이트도 세웠습니다. 문서 간 링크와 절 앵커, 절 번호 참조(#2080), 연속 절 참조의 뒤쪽 절(#2084), 링크 텍스트와 URL의 일치(#2096), 계획 문서가 인덱스에서 도달하는지(#2100)를 검사하게 했고, 그 과정에서 링크 텍스트와 URL이 갈린 33곳, 계획 인덱스 누락 9건, 절 제목의 상태 표기 15건과 상태 라벨 6건을 정리했습니다. 적대적 검증은 NAV의 자기참조와 어긋난 단일 출처 선언도 짚었습니다(#2101). 34곳을 맞추려던 첫 PR #2095는 닫히고 #2096으로 대체됐습니다.
편집기에는 랩이 붙었습니다. 폭 나눗셈으로는 접히는 자리가 나오지 않는다는 점을 확인하고 랩을 구현했으며 적대적 검증 7회가 잡은 여덟 건을 함께 고쳤습니다(#2094). 초장문 줄이 줄 길이만큼 비용을 내지 않도록 본문 전개에 화면 폭 상한을 두고 fixture로 회귀를 잡았으며(#2086), 소스 컨트롤 뷰가 활성 터미널 폴더를 따라가게 했습니다(#2079). 가로 스크롤 렌더 #2105는 이날 PR이 열렸습니다. 파일 패널은 탐색기가 root 밖 cwd에서도 활성 터미널을 따라가게 하면서 적대적 검증을 11회차까지 돌려 알림 누수, 재시도 공백, 삼켜진 one-shot, 우회한 busy 게이트, 스크롤과 복원 문제를 정리했습니다(#2081). 사이드바는 카드 하위 목록에 모든 Term을 싣고 종류 아이콘을 이름줄로 옮겼으며, 세션 목록을 들여쓰고 아이콘 배치를 설정으로 고르게 했습니다(#2103). iOS·Android 어댑터를 세우는 #2106은 deploy/mobile 브랜치를 대상으로 열렸습니다.
session-host는 prepared event를 원자적으로 정산하고(#2089), 창 닫기 경로를 비동기로 재설계했습니다. C3-3b5 close progress 게이트와 권위 갭을 정의하고 RED 게이트를 세운 뒤, neutral close progress 계약, pending close readiness 투영, frozen close sweep selector를 넣고 close 권위를 remote runtime에 결속·봉인했으며, remote close가 끝날 때까지 topology와 window teardown을 미뤘습니다(#2104). semantic event pump 활성화(#2107), 앱 종료 셧다운(#2108), C3-3c source-zero 경로(#2109)까지 마무리했고, Linux 이식성 문제(portable atomic rename·stat projection·manifest temp root)와 Swift 링크용 컴파일러 런타임 번들도 해결했습니다. 그 밖에 바깥 터미널 멀티플렉서 신원을 자식 셸에 물려주지 않게 pty를 고쳤고, 주석만 고친 변경에서는 macOS·오라클 잡을 건너뛰게 했습니다(#2087).
공개 커밋 95개, 해당일 생성 또는 병합된 PR 35개를 정리했습니다. PR 생성 32개·병합 32개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- feat(session-host): complete C3-3c source-zero path
- fix(session-host): preserve manifest authority across touch
- test(session-host): use portable manifest temp root
- fix(session-host): stabilize Linux authority tests
- fix(session-host): use portable atomic rename
- fix(build): bundle compiler runtime for Swift links
- fix(session-host): use portable stat projection
- feat(session-host): complete app quit shutdown
- test(file-tree): await retained scan publication
- test(session-host): isolate real backend daemon fixture
- test(session-host): isolate multihost close fixture
- test(session-host): drain close events before retry
- test(session-host): prepare close events canonically
- fix(session-host): keep payload restore test-only
- feat(session-host): activate semantic event pump
- fix(session-host): publish window close authority batches
- feat(session-host): seal window close graph
- feat(session-host): seal remote backend singleton
- fix(session-host): allocate terms after runtime admission
- fix(session-host): retry confirmed window close progress
- feat(session-host): preflight remote window close graph
- feat(session-host): defer window teardown for pending closes
- test(session-host): prove remote close backend limits
- feat(session-host): defer topology until remote close completes
- feat(session-host): bind close authority to remote runtime
- feat(session-host): seal remote close authority
- feat(session-host): type terminal close progress
- test(boundary): register C3-3b5 neutral surface
- feat(session-host): add frozen close sweep selector
- test(session-host): close invalid pending readiness
- feat(session-host): project pending close readiness
- feat(session-host): add neutral close progress contract
- test(session-host): define C3-3b5 RED gate
- docs(session-host): close C3-3b5 authority gaps
- docs(session-host): define C3-3b5 close progress gate
- fix(pty): 바깥 터미널 멀티플렉서 신원을 자식 셸에 물려주지 않는다
- fix(sidebar): 세션 목록 아이콘을 인라인 하나로 확정하고 좌단을 맞춘다
- feat(sidebar): 세션 목록을 들여쓰고 아이콘 배치를 설정으로 고르게 한다
- feat(sidebar): 카드 하위 목록에 모든 Term을 싣고 종류 아이콘을 이름줄로 옮긴다
- docs(chrome): 이관 완료 기준과 사이드바 preview 서술의 drift를 고친다
- fix(editor): 적대적 검증 7회가 잡은 여덟을 고친다
- feat(editor): 랩을 붙인다 — 폭 나눗셈으로는 접히는 자리가 안 나온다
- test(mermaid): cold deadline 스파이크를 한 번 흡수한다
- test(mermaid): cold 렌더 소요를 실측해 결과에 남긴다
- docs(plans): NAV가 자기 소유 절을 진입점으로 가리키던 것을 고친다
- docs(sidebar): 포인터 절 뒤 헤딩 앞 빈 줄을 되돌린다
- test(docs): 계획 문서가 인덱스에서 도달하는지 게이트가 본다
- docs: 적대적 검증이 잡은 둘 — 계획 인덱스 누락 9건과 어긋난 단일 출처 선언
- docs: 스펙 문서 절 제목의 구현 상태 표기 15건을 뗀다
- docs: 스펙 문서의 상태 라벨 6건을 규율대로 정리한다
- test(docs): 링크 텍스트와 URL의 문서 일치를 게이트가 본다
- docs: 링크 텍스트와 URL이 갈린 33곳을 맞춘다
- docs: 쪼개진 agent-session-list 참조도 소유 문서로 옮긴다
- docs: 쪼개진 editor-surface 참조를 소유 문서로 옮긴다
- fix(file-panel): 적대적 검증 7~11회차 — 남은 스크롤·뷰·복원·할당·문서 드리프트
- fix(file-panel): 적대적 검증 4~6회차 — 삼켜진 one-shot·우회한 busy 게이트·빈 커버리지
- fix(file-panel): 적대적 검증이 잡은 넷을 고친다 — 알림 누수·재시도 공백·낡은 문서·전환 뒤 미펼침
- fix(file-panel): 탐색기가 root 밖 cwd에서도 활성 터미널을 따라가게 한다
- docs(render): 절 참조 49건과 링크 6건을 새 소유 문서로 돌린다
- docs(render): I/O–렌더 문서를 계약·present 정책·Phase 계획으로 가른다
- style(session-host): align settlement comments
- test(session-host): isolate registry seal fixtures
- feat(session-host): settle prepared events atomically
- docs(session-host): bind event payload release authority
- docs(session-host): close effect settlement policy
- test(session-host): define atomic settlement red gate
- docs(session-host): specify atomic settlement
- docs(terminal): 절 참조 6건과 링크 3건을 새 소유 문서로 돌린다
- docs(terminal): 분해 문서를 계약·기록·별개 이니셔티브로 가른다
- docs(config): 설정 문서를 키 표와 주제별 배경으로 가른다
- docs(metal-ui): 절 참조 13건을 새 소유 문서로 돌린다
- docs(metal-ui): Metal UI 계약을 덩어리 기준으로 가른다
- docs(agent): 에이전트 세션 도크 계약을 주제별로 가른다
- test(chrome): 초장문 줄을 fixture에 넣어 캡처로 회귀를 잡는다
- fix(editor): 본문 전개에 화면 폭 상한을 둔다 — 긴 줄이 줄 길이만큼 비용을 내지 않게
- ci: 주석만 고친 변경에서 macOS·오라클 잡을 건너뛴다
- docs(editor): build.zig 주석의 §7.4 참조도 옮긴다
- docs(editor): 에디터 Surface 계약을 주제별로 가른다
- docs: 넓힌 게이트가 잡은 연쇄 절 참조 둘을 정리한다
- test(docs): 연속 절 참조의 뒤쪽 절까지 검사한다
- docs(web-panel): 웹 패널 계약을 기능·계획과 가르고 진행 표기를 걷어낸다
- docs(sidebar): §5 컴포넌트 계약을 실제 시그니처와 맞춘다
- docs(sidebar): 계약 문서에서 진행 표기를 걷어낸다
- docs(sidebar): 계약에 남은 단계 분해 절을 계획으로 내린다
- docs(sidebar): 사이드바 그룹 계약을 주제별로 가르고 단계 분해를 계획으로 내린다
- test(docs): 절 번호 참조도 게이트에 넣는다
- docs(editor): 분할이 놓친 §2.4 참조를 소유 문서로 돌린다
- test(docs): 문서 간 링크와 절 앵커를 CI 게이트로 잡는다
- test(boundary): rebase 후 digest를 재계산한다
- docs: 분할이 남긴 깨진 앵커와 절 참조를 교정한다
- docs(file-panel): 파일 패널 계약을 주제별 문서로 가른다
- fix(editor): 소스 컨트롤 뷰가 활성 터미널 폴더를 따라가게 한다
- docs(control-plane): 컨트롤 플레인 계약을 주제별 문서로 가른다
- docs(editor): 네이티브 편집기 계약을 주제별 문서로 가른다
- docs(plan): 구현 계획을 docs/plans/ 이니셔티브별 파일로 가른다
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.