2026-08-07

요약 (AI 작성)

하단 상태표시줄을 실제로 세우고, 스크롤 이관을 탐색기·소스 컨트롤까지 넓힌 날입니다. SB1-S3a 로 좌/우 슬롯 배치를 순수 로직으로 만든 뒤 좌측에 git 브랜치와 작업 경로를, 우측에 알림 수와 실행 중 에이전트 수를 올렸고(S3b~S3e), 막힌 에이전트를 구분해 표시하도록 했습니다. 이어 상태표시줄을 typed tree 소비자로 만들고 클릭·호버를 붙였으며, 높이를 텍스트 행에서 파생해 위아래 여백을 주고 호버 배경에 좌우 여백을 넣었으며 경로가 길면 끝이 아니라 중간에서 생략하도록 했습니다. hit-test 가 그려진 rect 와 같은 자리인지 강제하는 판정자도 세웠습니다. 여기서 적대적 검증이 라운드를 거듭하며 결함을 계속 끄집어냈습니다 — 상호작용 버퍼 크기의 상수 파생, 에이전트 집계를 한 번 순회로 모으고 비활성 탭까지 세는지 확인, 항목이 사라지면 tree 와 호버도 함께 비우기, 모달이 떠 있으면 클릭을 비켜 주기, hover 가 다른 영역의 hover 해제를 가로채지 않기, 휠 가드가 notice 해제를 가로채지 않기, 상태바로 도크를 열 때 레이아웃 후속까지 하기가 3라운드부터 9라운드까지 순서대로 나왔습니다. quick terminal 에 상태바가 서던 것, 창 크기 변경 후 호버가 남던 것, 빈 구간에서 텍스트 커서가 뜨던 것, 폭에 따라 항목 우선순위가 뒤집히던 것도 함께 고쳤습니다.

스크롤 쪽은 SV2·SV3 을 진행했습니다. SV2 계획을 탐색기 코드 조사 결과로 다시 쓰고 판정자를 Lab 이 아니라 제품 AppSession 하네스로 정한 뒤, SV2-0 으로 행 창에 판정자를 세우고 SV2a 를 셀 pane scissor 방식으로 정했습니다. 도중 pane clip 전제가 틀렸음을 기록하고 앞서 적은 "함정"을 정정하는 등 설계를 실측에 맞춰 계속 고쳤습니다. 구현은 셀 격자 본문 한 구간을 자르는 ABI(SV2a-1)를 낸 뒤 탐색기 pane 을 그 seam 의 첫 소비자로 만들고(SV2a-2) 스크롤을 행에서 픽셀로 옮겼으며(SV2a-3), SV2b 로 탐색기 스크롤바를 공용 ScrollArea 선언으로 이관했습니다. SV3a 는 소스 컨트롤 목록을 픽셀 스크롤로 옮겼고 SV3b 로 스크롤바를 내면서 발행 상태를 두 뷰가 공유하게 했습니다. follow 와 clamp 가 같은 창을 보는지, hit 영역이 반열린 구간인지, 드래그 capture 가 자기 스냅샷에서만 살아남는지 등 경계마다 판정자를 붙였습니다.

렌더러에서는 한 번도 돌지 않던 scissor 를 살렸습니다. 셀이 자기 clip 을 들도록 바꾸고(ABI v169), 사이드바 셀 scissor 산술을 .m 에서 Zig 로 옮겼습니다(ABI v168). 그 밖에 선택 해제 전이를 만들어 잔여 하이라이트를 없애고, 지연 스크린샷이 실제로 찍히게 고쳤으며, strip ABI 를 가장자리로 바꾸는 방향과 "지금 안 하는 이유"를 문서에 남겼습니다.

커밋

ohah/maru

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#1936mergedfeat(chrome): 소스 컨트롤에 스크롤바를 내고 발행 상태를 두 뷰가 공유하게 한다 (SV3b)
ohah/maru#1935mergedfix(renderer): 셀이 자기 clip을 들게 해 한 번도 돌지 않던 scissor를 살린다 (ABI v169)
ohah/maru#1934mergedfeat(chrome): 상태바 경로를 끝이 아니라 중간에서 생략한다
ohah/maru#1933mergedfix(input): 선택 해제 전이를 만들어 잔여 하이라이트를 없앤다
ohah/maru#1932mergedfeat(chrome): 소스 컨트롤 목록을 픽셀 스크롤로 옮긴다 (SV3a)
ohah/maru#1931mergedfeat(chrome): 탐색기 스크롤바를 공용 ScrollArea 선언으로 옮긴다 (SV2b)
ohah/maru#1930mergedfeat(chrome): 상태표시줄에 막힌 에이전트를 구분해 올린다
ohah/maru#1929mergedfeat(chrome): 상태표시줄을 typed tree 소비자로 만들고 클릭·호버를 붙인다
ohah/maru#1928mergeddocs(chrome): strip ABI를 가장자리로 바꾸는 방향과 "지금 안 하는 이유"를 남긴다
ohah/maru#1927mergedrefactor(chrome): 사이드바 셀 scissor 산술을 .m에서 Zig로 옮긴다 (ABI v168)
ohah/maru#1926mergedfeat(chrome): 탐색기 스크롤을 행에서 픽셀로 옮긴다 (SV2a-3)
ohah/maru#1925mergedtest(chrome): 상태표시줄 hit-test가 그려진 rect와 같은 자리인지 강제한다
ohah/maru#1924mergedfix(chrome): 상태표시줄 높이를 텍스트 행에서 파생해 위아래 여백을 준다
ohah/maru#1923mergedfix(chrome): 지연 스크린샷이 실제로 찍히게 하고, 그 사실을 문서에 맞춘다
ohah/maru#1922mergeddocs(chrome): 하단 상태표시줄 사양을 적고 ML-GEO의 예측 서술을 실제와 맞춘다
ohah/maru#1921mergedfeat(chrome): 상태표시줄 우측에 실행 중 에이전트 수를 올린다 (SB1-S3e)
ohah/maru#1920mergedfeat(chrome): 탐색기 pane을 v147 seam의 첫 소비자로 만든다 (SV2a-2)
ohah/maru#1919mergedfeat(chrome): 상태표시줄 우측에 알림 수를 올리고, 배경이 텍스트를 덮던 결함을 고친다 (SB1-S3d)
ohah/maru#1918mergeddocs(chrome): SV2a-2 설계를 적고 앞서 적은 "함정"을 정정한다
ohah/maru#1917mergedfeat(chrome): 셀 격자 본문 한 구간을 자를 수 있게 ABI를 낸다 (SV2a-1, 값 0)
ohah/maru#1916mergedfeat(chrome): 상태표시줄 좌측에 작업 경로를 올린다 (SB1-S3c)
ohah/maru#1915mergedfeat(chrome): 상태표시줄 좌측에 git 브랜치를 올린다 (SB1-S3b)
ohah/maru#1914mergedtest(chrome): SV2-0 — 탐색기 스크롤 행 창에 판정자를 세운다
ohah/maru#1913mergedfeat(chrome): 상태표시줄 항목의 좌/우 슬롯 배치를 만든다 (SB1-S3a, 순수)
ohah/maru#1912mergeddocs(chrome): SV2 계획을 탐색기 코드 조사 결과로 다시 쓴다