2026-08-07
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru에 하단 상태표시줄을 실제로 세우고, 스크롤 이관을 탐색기와 소스 컨트롤까지 넓힌 날입니다. 전날 열린 #1910이 병합돼 상태표시줄 높이가 처음으로 화면에 섰고, 좌/우 슬롯 배치를 순수 로직으로 만든 뒤(#1913) 좌측에 git 브랜치(#1915)와 작업 경로(#1916), 우측에 알림 수(#1919)와 실행 중 에이전트 수(#1921)를 올렸습니다. 알림 수를 올리면서 배경 quad가 자기 텍스트를 덮던 결함을 찾아 고쳤고, 막힌 에이전트를 가장 오른쪽에 구분해 표시하게 했습니다(#1930). 이어 상태표시줄 사양 문서를 적고(#1922), typed tree 소비자로 만들어 클릭과 호버를 붙였으며(#1929), 높이를 텍스트 행에서 파생해 위아래 여백을 주고 호버 배경에 좌우 여백을 넣었습니다. hit-test가 그려진 rect와 같은 자리인지 강제하는 판정자도 세웠습니다(#1925).
상태표시줄은 적대적 검증을 라운드마다 거치며 결함을 계속 드러냈습니다. 상호작용 버퍼 크기를 상수에서 파생하고, 에이전트 집계를 한 번 순회로 모아 비활성 탭까지 세는지 못 박았으며, 항목이 사라지면 tree와 호버도 함께 비우게 했습니다. 모달이 떠 있으면 클릭을 비켜 주고, 상태바 hover와 휠 가드가 다른 영역의 hover 해제나 notice 해제를 가로채지 않게 했으며, 상태바로 도크를 열 때 레이아웃 후속까지 하도록 고쳤습니다. quick terminal에 상태바가 서던 것, 창 크기 변경 뒤 호버가 남던 것, 빈 구간에서 텍스트 커서가 뜨던 것, 폭에 따라 항목 우선순위가 뒤집히던 것도 고쳤습니다. 경로를 끝이 아니라 중간에서 생략하는 #1934는 이날 PR이 열렸습니다.
스크롤 쪽은 SV2 계획을 탐색기 코드 조사 결과로 다시 쓰고(#1912) 판정자를 Lab이 아니라 제품 AppSession 하네스로 정한 뒤, 탐색기 스크롤 행 창에 판정자를 세웠습니다(#1914). follow와 clamp가 같은 창을 보는지, hit 영역이 반열린 구간인지, 드래그 capture가 자기 스냅샷에서만 살아남는지 등 경계마다 판정자를 붙였고, pane clip 전제가 틀렸음을 기록하고 앞서 적은 "함정"을 정정하며(#1918) 설계를 실측에 맞췄습니다. 구현은 셀 격자 본문 한 구간을 자르는 ABI(#1917)를 낸 뒤 탐색기 pane을 그 seam의 첫 소비자로 만들고(#1920) 스크롤을 행에서 픽셀로 옮겼으며(#1926), 탐색기 스크롤바를 공용 ScrollArea 선언으로 옮겼습니다(#1931). 소스 컨트롤 목록도 픽셀 스크롤로 옮기고(#1932) 적대적 검증이 찾은 결함 둘을 고쳤으며, 스크롤바를 내고 발행 상태를 두 뷰가 공유하게 하는 #1936은 이날 열렸습니다.
렌더러에서는 한 번도 GPU에 닿지 않던 셀 scissor를 셀이 자기 clip을 들게 해 살렸고(ABI v169, #1935), 사이드바 셀 scissor 산술을 .m에서 Zig로 옮겼습니다(ABI v168, #1927). 그 밖에 터미널 선택에 해제 전이를 만들어 잔여 하이라이트를 없애고(#1933), 지연 스크린샷이 실제로 찍히게 고쳤으며(#1923), strip ABI를 가장자리로 바꾸는 방향과 "지금 안 하는 이유"를 문서에 남겼습니다.
공개 커밋 50개, 해당일 생성 또는 병합된 PR 26개를 정리했습니다. PR 생성 25개·병합 24개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- fix(renderer): 셀이 자기 clip을 들게 해 한 번도 돌지 않던 scissor를 살린다 (ABI v169)
- fix(input): 선택 해제 전이를 만들어 잔여 하이라이트를 없앤다
- fix(chrome): 모달이 떠 있으면 상태바 클릭을 비켜 준다(적대적 검증 6라운드)
- fix(chrome): 항목이 사라지면 상태바 tree와 호버도 함께 비운다(적대적 검증 5라운드)
- test(chrome): 에이전트 집계가 비활성 탭까지 세는지 못박는다(적대적 검증 4라운드)
- refactor(chrome): 에이전트 집계를 한 번 순회로 모은다(적대적 검증 3라운드)
- fix(chrome): 상태바 상호작용 버퍼 크기를 상수에서 파생한다(적대적 검증)
- feat(chrome): 상태표시줄에 막힌 에이전트를 구분해 올린다
- fix(chrome): quick terminal에 상태바가 서던 것을 막는다
- fix(chrome): 상태바 항목 우선순위가 폭에 따라 뒤집히던 것을 고친다
- test(chrome): 상태바가 spawn grid에 흡수되는지 못박는다
- fix(chrome): 창 크기가 바뀌어도 상태바 호버가 남던 것을 고친다
- fix(chrome): 빈 상태바 구간에서 텍스트 커서가 뜨던 것을 고친다
- fix(chrome): 상태바로 도크를 열 때 레이아웃 후속까지 한다(적대적 검증 9라운드)
- fix(chrome): 상태바 휠 가드가 notice 해제를 가로채지 않게 한다(적대적 검증 8라운드)
- fix(chrome): 상태바 hover가 다른 영역의 hover 해제를 가로채지 않게 한다(적대적 검증 7라운드)
- fix(chrome): 적대적 검증이 찾은 소스 컨트롤 스크롤 결함 둘을 고친다
- test(chrome): 도크 목록과 상태표시줄의 경계를 판정자로 고정한다
- feat(chrome): 소스 컨트롤 목록을 픽셀 스크롤로 옮긴다 (SV3a)
- feat(chrome): 탐색기 스크롤바를 공용 ScrollArea 선언으로 옮긴다 (SV2b)
- fix(chrome): 상태표시줄 호버 배경에 좌우 여백을 준다
- feat(chrome): 상태표시줄을 typed tree 소비자로 만들고 클릭·호버를 붙인다
- test(boundary): SV2a-3로 바뀐 app_session 반사 인벤토리 digest를 갱신한다
- feat(chrome): 탐색기 스크롤을 행에서 픽셀로 옮긴다 (SV2a-3)
- docs(chrome): strip ABI를 가장자리로 바꾸는 방향과 "지금 안 하는 이유"를 남긴다
- refactor(chrome): 사이드바 셀 scissor 산술을 .m에서 Zig로 옮긴다 (ABI v168)
- test(chrome): 상태표시줄 hit-test가 그려진 rect와 같은 자리인지 강제한다
- fix(chrome): 상태표시줄 높이를 텍스트 행에서 파생해 위아래 여백을 준다
- fix(chrome): 지연 스크린샷이 실제로 찍히게 하고, 그 사실을 문서에 맞춘다
- docs(chrome): 하단 상태표시줄 사양을 적고 ML-GEO의 예측 서술을 실제와 맞춘다
- feat(chrome): 상태표시줄 우측에 실행 중 에이전트 수를 올린다 (SB1-S3e)
- feat(chrome): 탐색기 pane을 v147 seam의 첫 소비자로 만든다 (SV2a-2)
- feat(chrome): 상태표시줄 우측에 알림 수를 올리고, 배경이 텍스트를 덮던 결함을 고친다 (SB1-S3d)
- docs(chrome): SV2a-2 설계를 적고 앞서 적은 "함정"을 정정한다
- feat(chrome): 셀 격자 본문 한 구간을 자를 수 있게 ABI를 낸다 (SV2a-1, 값 0)
- feat(chrome): 상태표시줄 좌측에 작업 경로를 올린다 (SB1-S3c)
- test(chrome): 드래그 capture가 자기 스냅샷에서만 살아남는지 판정한다
- test(chrome): 탐색기 스크롤바 hit 영역이 반열린 구간임을 판정한다
- test(chrome): 탐색기 스크롤의 남은 경계 넷을 판정한다
- test(chrome): follow의 위 분기와 스크롤바 칸 예약을 판정한다
- test(chrome): follow·clamp도 같은 창을 보는지 판정한다
- test(chrome): 적대적 검증이 드러낸 hit-test 경계 셋에 판정자를 세운다
- docs(chrome): SV2a를 A(셀 pane scissor)로 정하고 착수 함정을 적는다
- docs(chrome): SV2a의 pane clip 전제가 틀렸음을 기록한다
- test(chrome): SV2-0 — 탐색기 스크롤 행 창에 판정자를 세운다
- feat(chrome): 상태표시줄 좌측에 git 브랜치를 올린다 (SB1-S3b)
- feat(chrome): 상태표시줄 항목의 좌/우 슬롯 배치를 만든다 (SB1-S3a, 순수)
- docs(chrome): SV2-0 판정자를 Lab이 아니라 제품 AppSession 하네스로 정한다
- docs(chrome): SV2 계획을 탐색기 코드 조사 결과로 다시 쓴다
- feat(chrome): 하단 상태표시줄 높이를 세운다 (SB1-S2b)
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.