2026-10-06
한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-07 KST. 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru는 앱이 죽던 결함 두 가지를 고쳤습니다. 창을 닫을 때 정리 루프가 이미 해제한 탭을 목록에 남겨 뒤 탭의 정리가 그 탭을 읽다 SIGSEGV로 죽던 use-after-free를 #4186에서 막았습니다. 재접속 작업이 얼린 attachment를 창 drain이 읽다가 앱이 abort하던 순서 경쟁은 #4184에서 고쳤습니다. 이어서 재접속 작업이 붙든 runtime의 탭을 닫으면 backend가 닫기를 맡았다가 작업이 끝난 뒤 마저 닫도록 했습니다(#4187). 10월 5일에 열렸던 #4162도 이날 병합됐습니다. 10월 4일 변경이 저장 헤더를 v2로 올리면서 기존 v1 파일을 거절해 실행할 때마다 빈 창이 되던 문제라, 헤더를 maru.workspace.v1로 되돌리고 옛 v2는 읽기만 하도록 했고 저장 파일을 읽지 못하면 그 사실을 기록에 남기게 했습니다.
화면 쪽에서는 확인 모달과 메뉴의 경계 처리를 여러 건 손봤습니다. 긴 URL 때문에 권한 질문이 잘리지 않게 했고(#4168), 이어서 URL을 줄일 때 호스트의 오른쪽 끝(등록 도메인)이 잘려 실제 사이트가 가려질 수 있던 문제를 #4188에서 고쳤습니다. 버튼이 상자 밖으로 빠지지 않게 줄을 나누고(#4169), 창보다 긴 우클릭 메뉴와 깨진 UTF-8이 섞인 라벨, 창 가장자리에서 잘리던 긴 알림도 처리했습니다(#4174·#4179·#4183). 알림 패널은 걸친 카드의 강조 배경과 구분선, 스크롤 중 클릭·호버가 한 줄 위 카드를 잡던 문제를 고쳤습니다(#4173·#4182). 편집기 찾기는 단어 단위 옵션과 빈 일치 처리를 VS Code 기본 동작에 맞췄고(#4170), 메뉴의 Reload·전체 리셋이 다른 창에 미뤄 둔 적용도 마저 하도록 했습니다(#4189).
Chromium 웹 패널의 W6i·W6j·W6k(#4171·#4175·#4181)는 기능 브랜치 docs/web-panel-osr-backend에 병합돼 main 반영이 아닙니다. 확인 모달을 좁은 창에 맞추는 #4190과 공유 뷰 닫기·백업 보존 검증 #4185는 미병합입니다.
zntc는 번들러가 ES5로 내리는 클래스에서 의미 그래프를 버리지 않고 유지하는 범위를 넓혔습니다. 빈 클래스에서 시작해 메서드·정적 메서드·접근자, 빈 생성자, 생성자 안의 대입·조건·반환·throw·반복문까지 조건을 하나씩 늘렸습니다(#5124부터 #5150까지). 그 밖에 namespace·enum IIFE 매개변수를 SymbolId로 요구하도록 codegen을 바꾸고, default export facade와 로컬 export를 정확한 심볼로 묶었으며, for-await·using·익명 클래스 래퍼의 임시 심볼을 생성 시점에 등록했습니다. 이날 PR 45개는 모두 병합됐고, 새 릴리스는 없습니다(최신 v0.1.10). 블로그 저장소에는 9월 하순부터 10월 5일까지의 기록과 오늘의 커밋 전수 보강 커밋이 올라갔습니다.
공개 커밋 98개, 해당일 생성 또는 병합된 PR 70개를 정리했습니다. PR 생성 68개·병합 68개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- fix(config): 메뉴 Reload·전체 리셋이 같은 내용이어도 다른 창의 미룬 적용을 마저 한다
- fix(control): 권한 동의문의 URL 이 실제 사이트를 숨기지 않게 호스트를 지킨다
- fix(chrome): 긴 notice 를 상자 안에서 줄을 나눠 그린다 — 창 가장자리에서 잘리던 것
- fix(session-host): 맡은 미룬 닫기를 창이 0 개여도 도는 재접속 tick 에서 잇고, 앱 quit shutdown 중에는 멈춘다
- fix(session-host): 재접속 job 이 붙든 runtime 의 닫기를 backend 가 맡는다 — 창의 마지막 탭·Session teardown·✕ 도 미룬다
- fix(session-host): 재접속 job 이 붙든 runtime 의 탭을 닫으면 backend 닫기를 미뤘다가 job 뒤에 마저 닫는다
- docs(session-host): 얼림 구간의 탭 닫기는 teardown 에서 abort 한다는 남은 구멍을 적는다
- fix(session-host): 얼린 attachment 로 terminate 도 보내지 않고, 얼림 판정자가 payload 사슬을 코드에서 유도한다
- fix(session-host): 재접속이 얼린 attachment 를 창 drain 이 읽다 앱이 abort 하던 것 — drain 은 쉬고 비변경 RPC·detach 는 관문을 지난다
- fix(app): 창 닫기·복원이 푼 탭을 목록에 남겨, 뒤 탭의 정리가 해제된 앞 탭을 읽고 죽던 것 (TAB-UAF)
- fix(workspace): Quit 스모크가 저장 헤더를 v1 로 확인한다
- docs(workspace): 「헤더를 v2 로 올린다」·「하위 호환을 고려하지 않는다」 잔여 문구를 헤더 정책으로 돌린다
- test(build-graph): check-boundaries 의존 원장에 workspace 헤더 정책 경계 하나를 센다
- fix(workspace): 저장 헤더를 maru.workspace.v1 로 되돌리고 옛 v2 는 읽기만 한다 — 2026-07-08 「헤더 bump 없음」 결정 복원
- fix(workspace): 저장 workspace 를 읽지 못한 실행이 침묵하지 않는다 — 오류 이름과 「기본 창·파일 보존」 결과를 남긴다
- test(editor): 가장 긴 줄 픽스처에 진짜 가장 긴 줄을 둔다 — 답 단언이 장식이었다
- test(editor): 가장 긴 줄 세기 감지선을 걸음 수와 모드별 시간 선으로 나눈다
- fix(notifications): 걸친 스크롤에서 클릭·호버가 한 줄 위 카드를 잡고, 스크롤바·우클릭이 카드를 지우던 것을 고친다
- fix(chrome): 깨진 UTF-8 이 섞인 라벨이 메뉴·모달에서 사라지지 않게 한다
- fix(notifications): notice·confirm 이 떠 있으면 알림 패널을 안 그리고, 패널을 열 때 다른 오버레이를 내린다
- fix(notifications): 걸친 카드의 강조 배경이 헤더를 칠하고 구분선이 글자 줄·패널 밖에 그어지던 것을 고친다 (ML3b)
- test(chrome): 확인 모달 시각 골든 — 긴 메시지 줄바꿈과 버튼 넷 줄 넘김
- fix(chrome): 좁은 창의 메뉴가 폭 0 이 되지 않게 하고, 손상 UTF-8 줄임도 폭을 지킨다
- fix(chrome): 우클릭 메뉴가 창보다 길면 폭을 자르고 긴 라벨은 가운데를 줄인다
- feat(editor): VS Code 기본 검색 경계와 빈 일치 정책 적용
- fix(chrome-lab): 오버레이의
.fill을 Lab 캡처에도 칠한다 - fix(chrome): wrap confirm modal buttons to the box instead of dropping them
- fix(chrome): a long URL no longer drops the question from the grant prompt
- test(editor): 현재 문서 검색과 ripgrep 범위 및 비용 재비교
ohah/ohah.github.io
- docs: 오늘의 커밋 2026-08~09 누락 보강·요약 재작성, 기본 브랜치 master 표기 정정
- docs: 오늘의 커밋 2026-04 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2026-06 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2026-03 하순 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2026-07 누락 보강·요약 재작성, 남의 포크·미러 커밋 21개 제외
- docs: 오늘의 커밋 2026-02 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2026-03 상순 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2026-05 누락 보강 및 요약 재작성
- docs: 오늘의 커밋 2025-12~2026-01 누락 보강 및 요약 재작성
- docs: 타임라인에 ghtui 프로젝트 시작(3/17) 추가
- docs: 타임라인에 누락된 agent-devtools v0.1.0·v0.1.1(3/28) 추가
- chore: 크론(blog-crd-write)이 남긴 docs 잡동사니 35개 제거
- docs: 오늘의 커밋 10/5 추가 및 타임라인·홈 갱신
- docs: 타임라인을 KST로 재작성, 개발기 태그·제목 정리, 홈 안내 갱신
- docs: Hwpjs 3-11·Spinon 적대적 검증 반영 — KST 범위·수치·표현 정정
- docs: Maru 3-9 적대적 검증 반영 — KST 범위로 정정, 누락 PR 보충
- docs: 오늘의 커밋 9/28~10/4를 KST 기준으로 재생성
- docs: ZNTC 3-23 적대적 검증 반영 — 날짜·서술 정정, 출력 결함 절 추가
- docs: 오늘의 커밋 9/22~9/27을 KST 기준으로 재생성
- docs: 9/26~10/4 활동 타임라인과 최근 업데이트 갱신
- docs: Spinon 연재 시작(배경·기술 스택·3-1)
- docs: Maru 3-9 개발기 추가
- docs: ZNTC 3-23·Hwpjs 3-11 개발기 추가
- docs: 오늘의 커밋 9/26 전체 집계 재생성 및 9/27~10/4 추가
ohah/zntc
- fix(bundler): retain unlabeled constructor loop control
- fix(bundler): retain exact constructor for graphs
- fix(bundler): retain exact constructor loop graphs
- fix(bundler): retain exact constructor throws
- fix(bundler): retain safe constructor returns
- fix(bundler): retain safe constructor if branches
- fix(bundler): retain native constructor property writes
- fix(bundler): retain native constructor compound writes
- fix(bundler): retain exact constructor local writes
- fix(bundler): retain safe constructor conditions
- fix(bundler): retain safe constructor unary values
- fix(bundler): retain safe constructor arithmetic
- fix(bundler): retain uninitialized constructor vars
- fix(bundler): retain simple constructor var identities
- fix(bundler): retain simple constructor parameters
- fix(bundler): retain exact constructor binding reads
- fix(bundler): retain literal constructor assignments
- fix(bundler): retain empty constructors with accessors
- fix(bundler): retain empty constructors with methods
- fix(bundler): retain empty explicit constructors
- fix(bundler): retain classes with trailing accessors
- fix(bundler): retain graph for matching accessor pairs
- fix(bundler): retain graph for single class accessors
- fix(bundler): retain graph for simple static class methods
- fix(bundler): retain graph for multiple simple class methods
- fix(bundler): retain graph for simple ES5 class methods
- fix(bundler): retain graph for empty ES5 classes
- fix(transformer): bind anonymous class wrapper names exactly
- fix(bundler): bind local exports by exact symbol
- fix(transformer): bind prehoisted class key temps
- fix(transformer): preserve class method scope for temps
- fix(transformer): bind anonymous static-block class self
- fix(transformer): register anonymous static class wrapper symbols
- fix(transformer): bind anonymous ES5 class self reads
- fix(transformer): consume flow match parameter temp spans
- fix(transformer): consume explicit private loop temp spans
- fix(transformer): register normalized using head symbols
- fix(transformer): register for-await temps in extracted async bodies
- fix(transformer): register lowered for-await temp symbols
- style(test): format default facade integration cases
- fix(bundler): bind default export facade by SymbolId
- refactor(codegen): require enum member owner SymbolId
- refactor(codegen): require enum IIFE parameter SymbolId
- refactor(codegen): require namespace IIFE parameter SymbolId
- refactor(codegen): lower namespace export references in transformer
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.