2026-08-08
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru의 스크롤 이관을 사이드바와 오버레이까지 끌고 간 날입니다. 전날 열린 소스 컨트롤 스크롤바 #1936(SV3b)이 먼저 병합됐고, SV4로 사이드바 스크롤바를 ScrollArea 경로로 옮기며 gutter를 상시 예약하고 드래그를 붙였습니다(#1939). 후속으로 스크롤바를 다시 보이게 하면서 그 위 카드 호버를 끄고 막대도 호버하면 진해지게 했습니다. SV5는 흡수 여부를 반대 근거까지 남겨 정한 뒤(#1949) 알림 패널을 픽셀로 스크롤하고 카드가 패널을 넘지 않게 자르고(#1951), 팔레트 결과 목록에 상태 없이 스크롤바만 내고(#1959), 세팅 폼 목록에 스크롤바를 내며 오버레이 발행을 하나로 묶고(#1965), 오버레이 목록에 offset 상태를 도입해 휠과 드래그로 스크롤하게 했습니다(#1977). 사이드바 셀 scissor를 rich 경로에도 걸어 카드가 검색바를 덮던 것(#1943), 카드 ✕가 그려진 칸에서 닫히지 않던 것(#1957), 터미널 탭 바와 도크 뷰 스위처의 높이가 어긋나던 것(#1947)도 고쳤습니다.
세션 도크는 목록의 신뢰도를 끌어올렸습니다. 도크 첫 진입에 스캔이 돌게 하고 잘림을 화면에 알리며, 구버전 Codex 세션을 살리고 서브에이전트 개수를 카드에 보이며, 세션 재개를 로그인 셸 경유로 바꿔 Dock 실행에서도 찾게 하고 스캔 계약을 실측에 맞췄습니다(#1946). 스캔을 스트리밍으로 바꿔 read cap을 없애고 열 때마다 달라지던 목록을 결정적으로 만들었으며(#1961), 부분 목록을 "이전 목록 있음"으로 오인하던 판정과 첫 스캔 중 헤더가 "0개 표시"로 보이던 것도 고쳤습니다. AS6으로 정렬 키를 transcript의 마지막 활동 시각으로 바꾸고 헤더에 최신순/오래된순 토글을 넣었고(#1969), 도크 텍스트를 사용자 폰트로 그리게 했습니다(#1972). 에이전트 판정은 플랜 승인·도구 권한 대기를 blocked로 보고(#1963), composer에 친 확인 문구를 codex 승인 대기로 오인하지 않게 했습니다(#1967).
상태바에는 브랜치를 누르면 목록이 뜨는 메뉴가 붙었고(#1941), 요청 중 상태바가 사라지면 메뉴를 열지 않게 했으며(#1950), 표시 여부를 설정으로 끌 수 있게 했습니다(#1937). 전날 열린 경로 중간 생략 #1934도 병합됐습니다. Chrome Lab에는 사이드바 strip 시나리오를 더하고(#1942) 그 시나리오에서 도크 chrome을 뺐습니다(#1944). 웹 탭에서는 ⌘F가 스크롤백 찾기 대신 그 페이지를 찾게 했고(#1979), 문자열 시퀀스 abort가 ESC를 삼키던 터미널 버그(#1970)와 reload가 pane을 옛 설정으로 재던 config 버그(#1938)를 고쳤으며, 스크롤백 Find에 perf 예산 게이트를 붙였습니다. 사이드바 헤더를 오른쪽 두 밴드와 한 줄로 맞추는 #1978은 이날 열렸습니다.
session-host는 attach 실행 트랜잭션을 봉인하고 RPC 응답 소유권 계열을 닫았습니다. wire progress 실행을 통합하고(#1966) 응답 전이 permit, prepared response read 분리, 반복 응답 발행과 바이트 소유, 발행 실패의 terminalize와 콜백 재검증을 거쳐 B3-4/5를 완성했으며(#1976), 응답 슬롯을 재사용 가능하게 만들고 B3-6 증거 계약과 exact-count 게이트로 닫았습니다(#1982). 이어 generation control facade를 추가하고 큐잉된 control을 그 facade로 보내 blocking control facade까지 완성했습니다(#1986). CI는 app_session 판정자 751개를 실제로 돌리게 하고(#1974), 이름 필터 게이트가 0개 매치에도 green이던 것을 막았으며, Zig 빌드 캐시와 주기 정리를 넣고 session host ReleaseFast를 main push로 옮겼습니다. zntc는 디렉토리 symlink를 파일로 잡던 #4612(#4615), CSS @import의 bare 지정자가 tsconfig paths에 가로채이던 #4611(#4617), node_modules 안 import에도 paths가 적용되던 #4607(#4618), namespace 부분 멤버 집합이 union을 덮어쓰던 #4600(#4619), external re-export의 파싱 불가 출력 #4621(#4622), 소문자로 시작하지 않는 bare JSX 태그의 참조 누락 #4599(#4623)를 고치고, external 지정자를 다른 이름으로 방출하는 매핑 #4616(#4620)을 추가했습니다.
공개 커밋 95개, 해당일 생성 또는 병합된 PR 59개를 정리했습니다. PR 생성 57개·병합 58개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- feat(session-host): complete blocking control facade
- feat(session-host): route queued controls through generation facade
- feat(session-host): add typed generation control facade
- docs(session-host): freeze 2c3c control contract
- test(session-host): drain finalizer panic pipe while waiting
- feat(session-host): close B3-6 RPC substrate evidence
- docs(session-host): preserve empty response terminal contract
- test(session-host): add B3-6 exact-count gate
- docs(session-host): close B3-6 strict evidence contract
- fix(session-host): make RPC response slot reusable
- feat(web-panel): 웹 탭에서 ⌘F가 그 페이지를 찾게 한다
- docs(session-host): correct reusable RPC response plan
- feat(chrome): 오버레이 목록을 휠과 드래그로 스크롤한다 — offset 상태를 도입해 (SV5d)
- feat(chrome): 세팅 폼 목록에 스크롤바를 내고 오버레이 발행을 하나로 묶는다 (SV5c)
- feat(session-host): complete B3-4/5 response ownership
- fix(session-host): terminalize RPC publication failures
- fix(session-host): revalidate RPC publication callbacks
- feat(session-host): publish repeated RPC responses
- feat(session-host): own repeated RPC response bytes
- refactor(session-host): split prepared response reads
- refactor(session-host): add B3-4 response transition permits
- ci(macos): app_session 판정자 751개를 CI에서 실제로 돌린다
- fix(build): 이름 필터 게이트가 0개 매치에도 green이던 것을 막는다
- docs(app-session): 분해 판단 기준에 읽기·편집 비용을 추가하고 문서 경계를 정한다
- feat(chrome): 세션 도크 텍스트를 사용자 폰트로 그린다
- docs(agent-session): AS6 구현 완료를 계획·검증 문서에 반영한다
- fix(chrome): 정렬 토글 발행 경계에서 root inset 하나를 빠뜨린 것을 고친다
- fix(chrome): 정렬 토글을 ghost Button으로 바꾸고 헤더를 보는 골든을 만든다
- test(agent-session): 정렬 키 폴백과 내림차순 정렬을 판정자로 고정한다
- fix(chrome): 좁은 도크에서는 정렬 토글을 발행하지 않는다
- feat(agent-session): 도크 header에 최신순/오래된순 토글을 둔다 (AS6-b)
- feat(agent-session): 목록 정렬 키를 transcript의 마지막 활동 시각으로 바꾼다 (AS6-a)
- docs(agent-session): AS6 정렬 계약을 실측으로 고정하고 AS5 완료를 반영한다
- fix(terminal): 문자열 시퀀스 abort가 ESC를 삼키지 않게 한다
- fix(web-panel): 웹 탭에서 ⌘F가 스크롤백 찾기를 열던 것을 막는다
- fix(agent): composer에 친 확인 문구를 codex 승인 대기로 오인하지 않는다
- fix(agent): 플랜 승인·도구 권한 대기를 유휴 대신 blocked로 판정한다
- docs(session-host): specify B3-4/5 response ownership
- refactor(session-host): integrate B3-3 wire progress execution
- docs(session-host): specify B3-3 wire progress
- test(chrome): make branch menu fixture worktree-safe
- ci: 캐시가 한도를 밀어 올리지 않게 주기적으로 정리한다
- fix(chrome): 적대적 검증이 찾은 스캐너 누수와 부분 목록 깜빡임을 고친다
- fix(agent-session): 부분 목록을 "이전 목록 있음"으로 오인하던 판정을 고친다
- feat(agent-session): 스캔을 스트리밍으로 바꿔 read cap을 없애고 목록을 결정적으로 만든다
- ci: 나머지 잡에도 빌드 캐시를 넣는다(실측 근거)
- feat(chrome): 팔레트 결과 목록에 스크롤바를 낸다 — 상태는 만들지 않고 (SV5b)
- ci: PR에서 mise 툴체인 캐시를 저장하지 않게 한다
- ci: session host ReleaseFast를 PR에서 빼고 main push로 옮긴다
- fix(chrome): 사이드바 카드 ✕가 그려진 칸에서 실제로 닫히게 한다
- ci: 가장 무거운 두 잡에 Zig 빌드 캐시를 넣는다(실측 기반)
- test(ci): mermaid 스모크의 대기 여유를 맞추고 실패 시 값을 남긴다
- refactor(session-host): add prepared destination admission
- feat(chrome): 알림 패널을 픽셀로 스크롤하고 카드가 패널을 넘지 않게 자른다 (SV5a)
- docs(chrome): 상태표시줄이 실제로 간 경로에 맞춰 낡은 예측 둘을 고친다
- fix(chrome): 요청 중 상태바가 사라지면 브랜치 메뉴를 열지 않는다
- fix(chrome): 터미널 탭 바와 도크 뷰 스위처의 높이·시작선을 맞춘다
- docs(chrome): SV5 흡수 여부를 정하고 반대 근거까지 남긴다
- refactor(session-host): add inert RPC response authority
- fix(agent-session): 첫 스캔 중 헤더가 "0개 표시"로 세션 없음처럼 보이던 것을 고친다
- fix(agent-session): 세션 재개를 로그인 셸 경유로 바꿔 Dock 실행에서도 찾게 한다
- fix(agent-session): 구버전 Codex 세션을 살리고 서브에이전트 개수를 카드에 보인다
- fix(agent-session): 도크 첫 진입에 스캔이 돌게 하고 잘림을 화면에 알린다
- docs(agent-session): 스캔 계약을 실측에 맞춰 개정하고 드리프트를 기록한다
- docs(chrome): 컨텍스트 메뉴를 ui 계층 이관 후보로 기록한다
- fix(chrome): 브랜치 메뉴 결함 셋을 고치고 헤드리스 캡처 훅을 더한다
- feat(chrome): 상태바 브랜치를 누르면 브랜치 목록을 띄운다
- fix(chrome): chrome을 내지 않는 시나리오가 smoke 판정에서 실패하던 것을 고친다
- fix(chrome): strip 시나리오에서 도크 chrome을 빼 그림이 제품을 오도하지 않게 한다
- refactor(session-host): seal attach execution transaction
- fix(chrome): Lab strip 색을 지어내지 않고 제품 파생 규칙에서 낸다
- test(chrome): Chrome Lab에 사이드바 strip 시나리오를 더해 5.2 공백을 닫는다
- fix(chrome): 사이드바 셀 scissor를 rich에서도 걸어 카드가 검색바를 덮던 것을 막는다
- docs(perf): scrollback_rewrap 근거 주석에 빌드 모드를 명시한다
- test(terminal): 스크롤백 Find에 perf 예산 게이트를 추가한다
- feat(chrome): 사이드바 막대도 호버하면 진해지게 한다 (SV4 후속)
- fix(chrome): 사이드바 스크롤바를 다시 보이게 하고 그 위 카드 호버를 끈다 (SV4 후속)
- feat(chrome): 사이드바 스크롤바를 잡아 끌 수 있게 한다 (SV4b)
- feat(chrome): 사이드바 스크롤바를 선언된 tree로 옮기고 gutter를 상시 예약한다 (SV4a)
- test(config): reload 테스트가 MARU_CONFIG를 원래 값으로 되돌린다
- fix(config): reload가 pane을 옛 설정으로 재던 것을 고친다
- test(config): status-bar.show가 설정 GUI 행에 나오는지 단언한다
- feat(chrome): 상태표시줄 표시 여부를 설정으로 끌 수 있게 한다
- feat(chrome): 상태바 경로를 끝이 아니라 중간에서 생략한다
- feat(chrome): 소스 컨트롤에 스크롤바를 내고 발행 상태를 두 뷰가 공유하게 한다 (SV3b)
ohah/zntc
- fix(semantic): #4599 소문자로 시작하지 않는 bare JSX 태그의 참조가 안 잡히던 문제
- fix(bundler): #4621 external re-export 가 파싱 불가 출력 / 재export 소실을 내던 문제
- fix(bundler): #4616 리뷰 지적 반영 — 방출 표면 3곳 누락 + 입력 검증 + config DTO
- fix(bundler): #4616 NAPI leak + --globals 축 정정 (rolldown 기준)
- feat(bundler): #4616 external 지정자를 다른 이름으로 방출하는 매핑
- fix(linker): #4600 namespace 부분 멤버 집합이 binding_scanner union 을 덮어쓰던 문제
- fix(bundler): #4607 리뷰 지적 3건 반영 (preserve_symlinks · --fallback · 세그먼트 오탐)
- fix(bundler): #4607 tsconfig paths 가 node_modules 안 import 에도 적용되던 문제
- fix(bundler): #4611 CSS @import 의 bare 지정자가 tsconfig paths 에 가로채이던 문제
- fix(bundler): #4612 URL 참조가 디렉토리 symlink 를 파일로 잡아 빌드가 죽던 문제
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.