2026-10-07
한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-10 KST. 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru는 편집기 프로젝트 검색의 기반을 올렸습니다. VS Code 방식(디스크는 ripgrep, 열린 문서는 편집 모델 우선) 구성과 ripgrep 15.2.0을 앱 번들의 Contents/Helpers/rg로 싣는 작업을 #4196으로 병합했습니다. 이어서 백그라운드 worker가 rg 출력을 점진적으로 해석하고 열린 문서의 불변 사본을 먼저 검색하는 백엔드를 #4208로 병합했습니다. PR 본문 기준으로 검색 도크 연결은 아직이며, AppSession·IME 연결 #4218은 이날 열려 다음 날 병합됐습니다. 언어 서버 쪽에서는 서버를 프로세스 그룹째, 메인 스레드를 막지 않고 내리도록 했습니다(#4213). 서버만 SIGKILL해 rust-analyzer가 띄운 cargo check·build-script가 고아로 남던 문제와, initialize에 답이 없으면 「시작 중」에 영원히 머물던 문제 등을 함께 고쳤습니다. 워크스페이스 신뢰 계획 문서(#4217)를 두고, 신뢰 확인을 사용자 권한·격리 없음 같은 대가를 밝히는 신뢰 시트로 바꿨습니다(WT1, #4221).
테스트 러너의 HOME 격리 후속도 이어졌습니다. HOME이 /일 때 경로 비교가 루트를 빈 문자열로 읽어 러너가 자기 자신을 끝없이 다시 실행하던 문제를 #4209에서 막았고, 임시 홈·XDG 처리와 환경 변수 복원도 손봤습니다(#4207·#4214·#4215·#4216). 설정 파일을 읽지 못하는 상태(권한, 1 MiB 초과 등)에서 메뉴 Reload를 누르면 그 창만 설정이 통째로 기본값이 되던 문제는 지금 설정을 지키도록 고쳤습니다(#4194). 설정 로그의 중복 억제와 토큰 가리기도 다듬었습니다(#4200·#4211). 문구 보간이 버퍼를 넘으면 표시 없이 잘리고 한국어 글자 중간에서 끊기던 문제는 「…」로 잘림을 보이게 했고, 진단 호버에 기대 토큰 대신 빠짐: {s}가 그대로 뜨던 문제도 고쳤습니다(#4193). 그 밖에 이름 자르기·이름 바꾸기 상자의 UTF-8 경계와 패널 위치(#4199·#4210), Lab 오버레이와 팝업 경계 여백(#4204), 실제 IME 전환·후보창 상태에서 공유 뷰를 닫는 검증(#4203·#4223)이 들어갔습니다. 10월 6일에 열린 확인 모달 좁은 창 대응 #4190과 공유 뷰 닫기·백업 보존 검증 #4185도 이날 병합됐습니다. 잠자기 뒤 재접속 #4222와 정체 관측 #4219는 이날 열려 다음 날 병합됐습니다.
Chromium 웹 패널은 링크·그림을 탭 막대와 본문에 놓는 W6l①·W6l②(#4191·#4195), 안내 토스트 중 hover 전달 W6n #4198, 제안 목록(datalist) W6m①·W6m②·W6m③(#4206·#4212·#4224), 화면 실측 문서 #4202가 기능 브랜치 docs/web-panel-osr-backend에 병합됐습니다. main 반영이 아니며, main 통합 PR은 여전히 열려 있습니다.
zntc는 이날 PR 60개(#5151부터 #5210까지)를 모두 병합했습니다. 새벽에는 ES5로 내리는 생성자의 switch·try·labeled·for-each와 이름 있는 클래스 표현식까지 의미 그래프 유지 범위를 넓혔습니다. 오전에는 CJS 래퍼 매개변수와 runtime factory 이름을 SymbolId로 묶었습니다(#5170부터 #5176까지). 오후에는 __extends를 시작으로 generator·rest·async·private·super·데코레이터 등 runtime helper를 이름 문자열 재작성이 아니라 심볼 ID로 출력하도록 하나씩 옮겼습니다(#5177부터 #5203까지). 밤에는 ESM factory·interop, JSX, styled CSS helper와 번들러 helper import도 같은 방식으로 바꿨습니다. 새 릴리스는 없습니다(최신 v0.1.10).
spinon은 10월 5일에 연 #56을 병합해 호스트가 V8에 메모리 압박 단계를 전달하는 경로와, Android 긴 JS 진단 화면에서 취소 결과를 구분해 보이는 수정을 넣었습니다. actor 응답 handoff 추적 #59에서는 Android 에뮬레이터 10회 반복으로, 이전에 한 번 관측된 63.009ms handoff가 재현되지 않음을 확인했습니다(PR 본문 기준). S04 GPU fixture에는 비대칭 y 좌표 비교(#60)와 Android·iOS 입력의 hit-test 연결(#61)을 더했고, Android 실기기에서 프레임 제출과 readback을 확인했습니다(#63). S05 입력 이벤트 계약 문서(#62)와 벤치마크 근거 문서(#57·#58)도 병합했습니다. 여전히 PoC·명세 단계의 내부 시제품입니다. 블로그 저장소에는 10월 6일 기록 추가와 2차 전수조사 반영 커밋이 올라갔습니다.
공개 커밋 112개, 해당일 생성 또는 병합된 PR 104개를 정리했습니다. PR 생성 101개·병합 101개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- test(input): 실제 후보창 공유 pane 전환과 닫기 검증
- docs(chrome): 팝업 패딩 결함의 조건을 바로 적는다 — 셀 폭 12px 미만에서만 오른쪽 테두리가 먹혔다
- feat(lsp): 신뢰 확인을 정직한 신뢰 시트로 — 허락 범위와 대가(사용자 권한·격리 없음·저장소 밖·빌드·툴체인·shim)를 줄바꿈 안내로 밝힌다 (WT1)
- docs(editor): 워크스페이스 신뢰와 도구 환경 — §8.1 을 저장소 단위 신뢰 하나·사용자 셸 환경으로 고치고 WT1~WT5 계획을 둔다
- docs(tests): 러너 HOME 격리 주석·문서를 실제 동작에 맞춘다
- fix(tests): 빈·루트 HOME 에서 러너가 실제 캐시로 새지 않게 새 임시 홈을 세우고, 격리 실패 사유를 가른다
- fix(editor): glob 재귀 경계를 실제 대안 구분으로 제한
- fix(editor): glob 문자 클래스와 중괄호 대안 판정 보완
- fix(editor): 프로젝트 검색 glob 판정과 요청 상태 경계 수정
- feat(editor): 프로젝트 검색 worker와 불변 문서 검색 구현
- fix(tests): 테스트가 환경 변수를 getenv 포인터가 아니라 복사한 값으로 되돌린다
- fix(lsp): 서버를 그룹째·메인 스레드를 막지 않고 내리고, 답 없는 initialize·안 읽는 stdin·꺼진 설정·없는 root 에서도 서버가 매달리거나 쌓이지 않게 한다
- fix(config): 점 없는 키와 그 오타는 진단에 키를 찍고, 숫자·대문자가 섞인 토큰은 계속 가린다
- fix(chrome): 이름 바꾸기 상자와 선택 헬퍼도 보이는 패널로 자리를 잡고, 짧은 버퍼·손상 바이트 뒤에서 결합 부호를 떼지 않는다
- fix(tests): HOME=/ 에서 러너가 끝없이 자기 자신을 exec 하던 것을 막고, 빈 XDG 도 격리 홈 아래로 채운다
- test(lsp): 상태바·신뢰 문구 판정자가 「어느 문구가 어느 자리에」까지 보고, 상태바 버퍼 크기를 타입에 박는다
- refactor(i18n): LSP 문구도 보간 진입점 하나(format)로 채우고, 「신뢰 확인이 갇힌다」는 틀린 서술을 바로잡는다
- fix(tests): 러너 임시 홈을 실행마다 새로 만들고, 가짜 HOME 에서도 XDG 를 옮기며, login 셸 예외를 적는다
- fix(chrome): Lab 이 오버레이를 제품 모양·제품 lowering 그대로 그리고, 팝업은 보이는 테두리로 경계 여백을 센다
- test(input): 실제 IME 전환과 조합 중 공유 뷰 닫기 검증
- fix(config): 로그 중복 억제가 다른 사건을 지우지 않고, 붙여 넣은 토큰을 키로 찍지 않는다
- fix(ci): 프로젝트 검색 artifact에서 원본 fixture 제외
- test(editor): 프로젝트 검색 실패 경로와 실제 helper 검증 보강
- feat(editor): VS Code 프로젝트 검색 구성과 ripgrep 번들 기반 도입
- chore(docs): 검증 PNG를 저장소 자산에서 제외
- fix(tests): 공유 복원 판정자의 실패 경로와 환경 격리 강화
- fix(tests): clangd 복원 검증의 문서 루트를 격리
- test(editor): 공유 뷰의 AppKit 닫기와 백업 보존 검증
- fix(chrome): 이름 자르기가 깨진 바이트에서 비지 않고 글자 묶음을 가르지 않는다
- fix(i18n): 보간이 넘치면 「…」로 잘렸음을 보이고 글자를 반으로 가르지 않으며, 호버의 「빠짐: {s}」를 고친다
- test(editor): 괄호 픽스처가 파싱과 괄호 목록을 끝까지 만든 뒤에 돌려준다 — BPP2 CI 실패
- fix(config): 못 읽는 config 로 reload 하면 지금 설정을 지킨다
- test: 조용 시계 판정과 resolver 복구 루프가 부하에서 빨개지지 않게 한다
- fix(chrome): 확인 모달이 좁고 낮은 창에서도 버튼 행과 글자를 패널 안에 둔다
ohah/ohah.github.io
- docs: 2차 전수조사 반영 — 타임라인 누락 6행·잘못된 #1885 링크 정정, 요약 누락 보충, 비공개 저장소 언급 제거
- docs: 오늘의 커밋 10/6 추가 및 타임라인·홈 갱신
ohah/spinon
- spike(s04): 실기기 표시 신호 조사와 검증
- docs: S05 입력 이벤트 계약 정리
- feat(s04): 정적 GPU hit-test fixture 연결
- feat(s04): 비대칭 y 좌표 GPU fixture 비교
- docs(benchmark): 반복 handoff 근거와 작업 항목 추가
- feat(benchmark): actor 응답 handoff 추적 연결
- docs(benchmark): Android 지연과 xctrace 계측 근거 갱신
- docs(benchmark): Perfetto gfx 오류 원인 기록
- feat(runtime): 실행기·프레임 지연 진단 계측 보강
- fix(runtime): R06 진단 로그 갱신 부담 완화
- feat(runtime): 메모리 압박 신호와 Android 취소 결과 표시
ohah/zntc
- fix(transformer): bind bundler helper imports by SymbolId
- fix(transformer): carry styled CSS helper symbols
- fix(transformer): preserve exact JSX helper symbols
- fix(symbols): audit source scope owner kinds
- fix(bundler): keep ESM interop helpers as symbols
- fix(bundler): keep ESM factory identity as a symbol
- fix(bundler): keep binary helper identity as a symbol
- fix(transformer): emit Stage 3 decorator helpers by symbol identity
- fix(transformer): emit legacy decorator helpers by symbol identity
- fix(transformer): emit derived constructor helpers by symbol identity
- fix(transformer): emit array spread helpers by symbol identity
- fix(transformer): emit static private helpers by symbol identity
- fix(transformer): emit using helpers by symbol identity
- fix(transformer): emit metadata helper by symbol identity
- fix(transformer): emit async generator helpers by symbol identity
- fix(transformer): emit wrap regexp helper by symbol identity
- fix(transformer): emit keep names helper by symbol identity
- fix(transformer): emit private field set helper by symbol identity
- fix(transformer): emit super set helper by symbol identity
- fix(transformer): emit super get helper by symbol identity
- fix(transformer): emit call super helper by symbol identity
- fix(transformer): emit private method get helper by symbol identity
- fix(transformer): emit private method init helper by symbol identity
- fix(transformer): emit class check helper by symbol identity
- fix(transformer): emit tdz helper by symbol identity
- fix(transformer): emit public field helper by symbol identity
- fix(transformer): emit read helper by symbol identity
- fix(transformer): emit async-values helper by symbol identity
- fix(transformer): emit values helper by symbol identity
- fix(transformer): emit async helper by symbol identity
- fix(transformer): emit tagged template helper by symbol identity
- fix(transformer): emit rest helper by symbol identity
- fix(transformer): emit generator helper by symbol identity
- fix(transformer): emit extends helper by symbol identity
- docs: record CJS runtime local symbol migration
- refactor(bundler): symbolize CJS runtime helper locals
- docs: link semantic-less CJS runtime migration PR
- fix(bundler): anchor semantic-less CJS runtime to SymbolID
- docs: link graph-wide CJS naming migration PR
- fix(bundler): select split CJS factory name by SymbolID
- docs: link single-bundle CJS naming migration PR
- fix(bundler): route single-bundle CJS factory through rename pass
- docs: link CJS runtime factory migration PR #5172
- fix(bundler): bind CJS runtime factory to SymbolId (#4819)
- docs: #4819 record CJS wrapper symbol migration
- fix(bundler): CJS wrapper parameters use symbol identity
- fix(codegen): reject foreign namespace declaration symbols
- fix(codegen): require namespace declaration symbols for renames
- fix(codegen): reject invalid namespace prefix symbols
- fix(transformer): bind runtime helper calls by exact identity
- fix(transformer): bind hoisted temps by exact identity
- fix(transformer): bind callback temp identities exactly
- fix(transformer): retain generator state binding identity
- test(transformer): verify extracted generator loop identity
- refactor(transformer): fail closed for generator wrapper temps
- fix(transformer): bind deferred using temp identities
- fix(transformer): bind generated class super symbols
- fix(bundler): retain safe named class expression graphs
- fix(symbols): scope audit boundary to retained graphs
- test(symbols): lock exact identity report fields
- fix(bundler): retain safe constructor for-each graphs
- fix(bundler): retain exact constructor labeled control
- fix(bundler): retain constructor debugger statements
- fix(bundler): retain exact constructor try graphs
- fix(bundler): retain exact constructor switch graphs
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.