2026-10-03
한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-06 KST. 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru 터미널은 앱이 CSI ? 2048 h로 구독하면 크기가 바뀔 때 행·열·픽셀 크기를 바이트로 알려 주는 in-band resize 통지(DECSET 2048)를 지원합니다(#4085). 글꼴 크기를 바꿀 때 격자와 셀 픽셀이 따로 도착해 통지가 두 번, 그중 하나는 실재하지 않는 크기로 가던 문제를 resize 한 번에 셀 픽셀을 실어 보내는 방식으로 고쳤고(#4088), 재연결 강제 resize의 셀 픽셀과 명령 순서·PTY winsize까지 후속 보완했습니다(#4091, #4098). 전날 열린 kitty 이미지 수정 #4074가 병합돼 이미지가 reflow와 스크롤백 재배치 뒤에도 자기 셀을 따라가게 됐고, 화면별 배치 목록 분리와 맨 윗줄을 저장할 수 없는 줄바꿈 스크롤 처리 #4108도 들어갔습니다. reflow 임시 버퍼의 할당 실패가 이중 해제로 이어지던 문제 #4100과, 스크롤백 예산으로 잘린 세션 handoff의 좌표 상태 #4101도 고쳤습니다.
maru 편집기는 공유 pane·복원 codec과 checkpoint 보호 #4080을 병합하고, 백업 읽기에서 부재·손상·실패를 구분했습니다(#4090). 복원 직후 백업 유실과 같은 경로를 따로 연 문서들이 백업 하나를 덮어쓰는 문제를 재현한 뒤(#4093, #4095), 새 보호가 성공할 때까지 이전 백업을 지키는 수정 #4094과 문서 복구 ID·신원 codec #4103을 넣었습니다. 복구 예약 후보의 장애 경계와 비용을 재는 #4107은 이날 밤 열려 자정 직후 병합됐습니다. 에이전트 쪽은 큰 훅 이벤트의 식별자와 pane별 질문 알림을 보존하고(#4083), 원격 훅 설치 시한 초과를 영구 차단 대신 백오프 재시도로 바꾸며(#4087), 훅 기록 디렉터리와 최초 사이드바 행을 유지하게 했습니다(#4092). 알림 클릭이 현재 surface 소유자에게 가도록 고쳤고(#4105), 코드와 어긋난 계획 문서 상태도 두 차례 정리했습니다(#4082, #4102). Windows 편집기·파일 처리 개선 PR #4084는 집계 시점에도 열려 있어 미병합입니다. Chromium 탭 우클릭 메뉴 #4081·#4089와 밖에서 탭으로 끌어 놓기 #4104는 기능 브랜치 docs/web-panel-osr-backend에 병합된 것으로 main 반영은 아닙니다.
spinon은 새벽에 JavaScript·CSS 자원 그래프 결합 #33, 고정 fixture 기본 cascade 경로 #34, HostDocument 요소 입력과 계산된 스타일을 Taffy 입력으로 연결하는 #35·#36을 병합했습니다. 이어 V8에서 Rust HostDocument까지 동기 변경 묶음을 전달하는 S03.1 #38을 넣고, S04 단계로 CSS·레이아웃·GPU를 잇는 첫 경로를 만들었습니다. 연결 계약과 첫 GPU 화면 정책을 문서로 정한 뒤(#39, #40), 고정 CSS fixture를 플랫폼 중립 정적 렌더 스냅샷으로 바꾸는 #41과 그 스냅샷을 Android·iOS의 wgpu surface에 그려 readback으로 확인하는 내부 fixture #42·#43·#44를 병합했습니다. 제품 renderer나 API 지원 완료가 아닌 PoC 단계이며, Android·iOS 캡처 대조 문서 #45는 이날 열려 다음 날 병합됐습니다.
zntc는 #4819 작업으로 PR 44개를 병합했습니다. #4972는 병합 없이 닫혔고 같은 제목의 #4973으로 다시 올려 병합했습니다. 새벽에는 codegen이 namespace 접두와 IIFE 매개변수를 SymbolId로 해석하게 하고, 번들러가 enum·namespace 심볼, type-only import, classic·automatic JSX helper를 유지된 그래프에서 보존하게 했으며, 익명 클래스 자기 참조를 심볼로 묶었습니다. 낮 이후에는 ES5 화살표 함수·객체 리터럴·템플릿 낮추기, 정규식·BigInt 리터럴, 네이티브 spread·계산된 키·객체 메서드, Flow enum·component, import-equals·export-equals·export-star·re-export 경로에서 semantic graph를 버리지 않고 유지하도록 바꿨습니다. CJS 래퍼 매개변수와 런타임 factory 이름 충돌, new.target 매개변수 화살표 캡처도 고쳤습니다. CI는 Ubuntu 중심으로 검사를 통합하고 네이티브 빌드와 NAPI 캐시를 공유하도록 정리했습니다(#5004, #5007).
공개 커밋 115개, 해당일 생성 또는 병합된 PR 86개를 정리했습니다. PR 생성 84개·병합 82개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- refactor(session-host): keep reviewed @field sites and size the merged placement list
- fix(terminal): kitty placements follow a line feed scroll that cannot store the top row
- refactor(terminal): keep kitty placements per screen like kitty's per-screen graphics state
- docs(plans): 코드와 어긋난 계획 문서 상태를 다시 바로잡는다
- fix(terminal): clear the reflow scratch before regrowing it so an OOM cannot double free
- fix(notifications): pin local routes to launch and current surface owner
- feat(editor): 문서 복구 ID와 필수 신원 codec 구현
- chore(web): rebuild maru-vt.wasm for the kitty placement reflow change
- fix(terminal): kitty placements follow their cell through reflow and scrollback rewrap
- fix(session-host): move coordinate state with a budget-trimmed handoff scrollback
- docs(editor): 검토 회차 대신 실패 조건과 판정으로 정리
- test(editor): 이전 백업 잔존을 실제 앱 종료와 재실행으로 검증
- test(editor): 저장 후 남은 이전 백업의 복원과 충돌 확인
- test(editor): 닫기 한도와 복구 큐 및 삭제 실패 재현
- test(editor): 복구 실패 경로와 백업 예약 후보 실행 검증
- docs(editor): 복구 설계 적대적 검토 10회 추가
- docs(editor): 복구 설계 추가 적대적 검토 5회 반영
- docs(editor): 복구 설계 적대적 검토 5회 반영
- docs(editor): 복구 식별자 엣지케이스와 구현 대안 검토
- docs(editor): 독립 문서 복구 식별자 설계 검토
- fix(terminal): 셀 픽셀 명령의 순서를 지키고 PTY winsize 도 한 번에 바꾼다
- test(macos): wait for real PTY startup in cursor fixtures
- test(editor): 같은 경로 독립 문서의 백업 충돌 재현
- fix(editor): 복구 백업을 새 보호가 성공할 때까지 보존
- test(editor): 복원 백업 유실 재현의 flush 대조군 추가
- test(editor): 복원 직후 백업 유실 재현과 개수 강제 보완
- refactor(editor): 백업 읽기의 부재 손상 실패 구분
- fix(agent): 훅 기록 디렉터리와 최초 사이드바 행을 유지한다
- fix(terminal): 재연결 강제 resize 도 마지막 셀 픽셀을 싣는다
- fix(agent): 원격 훅 설치가 되면 재시도 예산을 되돌린다
- chore(chrome): #4086 이 지운 투영만 쓰던 도우미 셋을 지운다
- docs(workspace): 현재 저장 보장과 전원 손실 후속 범위 확정
- test(workspace): 외부 수정 경쟁과 강제 중단 검증
- test(workspace): 실제 앱 적대적 검증 20개 반례 추가
- test(workspace): 손상 체크포인트 보존 적대적 검증 확대
- fix(workspace): 사본 비용과 읽기 실패 보존 보완
- test(workspace): 저장 구조와 사본 비용 비교 실측
- test(workspace): 저장 실패 전파와 전체 읽기 비용 검증
- feat(editor): 복원 메타데이터 codec과 크기 검증 추가
- docs(editor): 복원 설계 적대적 검토 10회와 미결 목록 정리
- docs(editor): 복원 계약 누락 적대적 검토 5회 반영
- docs(editor): 복원 경계 적대적 검토 5회와 삭제 보호 정정
- docs(editor): 저장 경계 재검증과 출시 전 포맷 범위 반영
- docs(editor): v2 문서와 뷰 복원 설계 구체화
- docs(editor): 복원 설계 적대적 검토 5회 반영
- feat(editor): 공유 pane 연결과 복원 설계 검토안 추가
- feat(terminal): resize 가 셀 픽셀을 함께 실어 글꼴 크기 변경의 2048 통지를 한 번으로
- fix(agent): 원격 훅 설치 시한 초과는 굳히지 않고 백오프로 다시 띄운다
- chore(chrome): 제품이 안 쓰는 옛 도크 셀 그리드 투영 둘을 지운다
- feat(terminal): in-band resize 통지(DECSET 2048)를 지원한다
- fix(agent): retain pending question notices across running panes
- fix(agent): preserve root identities in oversized hook events
- docs(plans): 코드와 어긋난 계획 문서 상태를 바로잡는다
ohah/spinon
- fix: Android readback 완료 상태 표시
- feat: iOS S04 GPU fixture 연결
- feat: Android S04 GPU fixture 연결
- feat: S04 CSS 렌더 스냅샷 연결
- docs: S04 첫 GPU 화면 정책 확정
- docs: S04 표면 세대와 구현 관문 명확화
- docs: PR 검증 규칙과 S04 연결 계약 보강
- docs: S04 CSS·wgpu 계약 검증 보강
- docs: S04 CSS·레이아웃·GPU 연결 계약 초안
- refactor(style): Stylo DOM 모듈 파일을 권장 경로로 이동
- refactor(runtime): 호스트 문서 모듈과 테스트를 디렉터리로 이동
- feat: S03.1 V8 문서 변경 묶음 연결
- refactor: 스타일-레이아웃 크레이트 이름 변경
- feat: C04.2 계산 스타일을 Taffy 입력으로 연결
- feat: C02.3 JavaScript·CSS 자원 그래프 결합
- feat(layout): HostDocument 요소 입력을 Taffy에 연결
- feat(css): 기본 cascade fixture 비교 추가
ohah/zntc
- refactor(bundler): retain static named re-export graph
- ci(workflows): preserve automatic cancellation during migration
- ci(workflows): share native builds and persist NAPI cache
- refactor(bundler): retain plain export-star graph
- refactor(bundler): retain static external import-equals graph (#4819)
- ci(workflows): consolidate checks on Ubuntu and reuse package builds
- refactor(bundler): retain TypeScript export-equals graph (#4819)
- refactor(bundler): retain local import-equals graph (#4819)
- refactor(bundler): retain Flow component semantic graph (#4819)
- fix(bundler): retain Flow enum prepass graph (#4819)
- fix(transformer): bind styled cssProp imports to symbols (#4819)
- fix(bundler): keep runtime factory aliases aligned
- fix(bundler): deconflict CJS runtime factory name
- fix(transformer): track new.target parameter arrow captures
- refactor(bundler): retain native object method scopes
- refactor(bundler): retain native computed keys in prepass
- refactor(bundler): retain native spread symbol graph
- refactor(bundler): retain BigInt literal symbol graph
- refactor(bundler): retain regex literal symbol graph
- refactor(bundler): retain graph for untagged ES5 templates
- refactor(bundler): retain graph for plain ES5 object literals
- refactor(bundler): retain graph for safe arrow expressions
- refactor(bundler): retain graph for basic arrow expressions
- refactor(bundler): retain graph through TS arrow erasure
- refactor(bundler): retain graph for ES5 arrow lowering
- fix(bundler): avoid CJS wrapper parameter collisions
- refactor(transformer): bind deferred state symbols by node identity
- fix(transformer): bind anonymous class refs before static blocks
- fix(transformer): bind anonymous class self refs to symbols
- fix(transformer): preserve runtime helper identity through reanalysis
- fix(bundler): retain automatic-dev JSX semantic graph
- fix(bundler): preserve automatic JSX helpers in retained graph
- refactor(symbols): retain stable runtime imports
- refactor(symbols): retain classic JSX semantic graph
- fix(symbols): gate bundler prepass identities
- fix(bundler): elide inferred type-only export aliases
- fix(bundler): retain exact local export aliases
- fix(bundler): retain type-only import semantic graphs
- fix(bundler): retain merged namespace symbols
- fix(bundler): retain exact namespace graphs
- fix(bundler): retain exported enum symbols
- perf(bundler): reuse graph for local runtime enums
- fix(codegen): carry namespace prefix SymbolIds through emission
- fix(codegen): resolve namespace prefixes by SymbolId
- fix(codegen): mangle namespace IIFE parameters by SymbolId
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.