2026-10-10
한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-13 KST. 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru는 프로젝트 바꾸기를 실제 적용 단계로 넓혔습니다. 바꾸기 미리보기에서 고른 열린 문서에 변경을 적용하고 자동 저장하는 #4266이 10월 9일 밤에 열려 이날 오전 병합됐고, 디스크 검색 결과에 단일 파일 바꾸기와 자동 저장을 붙인 #4273이 뒤를 이었습니다. 여러 파일 바꾸기는 정책·실패 검증 설계 문서(#4281·#4282)를 먼저 정한 뒤, 여러 문서 Undo 사전 준비와 이력 신원(#4284), 여러 열린 문서를 한 작업으로 묶어 Cmd+Z에서 전체·현재 문서 되돌리기를 고르는 연결 편집(#4287), 선택 명세와 전체 편집 계획 준비(#4291), 열린 문서 일괄 적용과 파일별 CAS 저장(#4295)까지 병합했습니다. #4295 본문에 따르면 제품 배치 버튼·worker·닫힌 파일 로드는 아직 연결하지 않았고, 불변 snapshot으로 배치를 준비하는 worker #4299는 이날 밤 열려 다음 날 병합됐습니다.
워크스페이스 신뢰는 git 쪽으로 이어졌습니다. 신뢰 전 저장소의 git 읽기에서 partial clone의 지연 가져오기를 하지 않고 원격은 늘 신뢰 전으로 읽는 WT6b-1a #4265가 10월 9일에 열려 이날 병합됐고, 신뢰 전·원격 읽기에서 저장소가 정의한 파일 필터와 submodule 안을 돌리지 않는 #4275와 같은 규칙을 원격 감시자의 폴링에 적용한 #4279가 들어갔습니다. 소스 컨트롤 도크 머리 줄이 신뢰 전 저장소임을 알리고 신뢰 시트를 여는 WT6b-2a #4290도 병합됐습니다. stage·commit·로컬 fetch 같은 쓰기가 저장소의 훅·필터·설정 프로그램을 실행할 수 있어 쓰기 전에 신뢰 시트를 먼저 띄우는 #4297은 이날 열려 다음 날 0시 넘어 병합됐습니다.
화면 쪽에서는 찾기 막대를 연 채 우클릭하면 메뉴 글자가 6px 위로, 찾기 글자가 3px 왼쪽으로 밀리던 문제를 칸 위상이 다른 오버레이를 격자 따로 내려 고쳤고(#4269), 포커스 없는 찾기 막대가 열려 있을 때 완성 목록이 그려지지 않던 문제를 #4270으로 풀었습니다. 자동완성 목록을 VS Code 치수의 촘촘한 패널과 kind 아이콘으로 다시 만든 #4276, 커서마다 완성을 넣고 import는 한 번만 넣는 멀티 커서 자동완성 #4294도 병합됐습니다. 터미널에서는 한 칸에 결합 부호가 끝없이 붙으면 전역 store가 N²로 커지고 업그레이드가 막히던 문제를 0폭 코드포인트 64개 상한으로 막았고(#4285), 터미널 브라우저 사용 중 멈칫함의 원인을 가리기 위해 구독 무효화 위치와 사유를 로그로 남겼습니다(#4292). CLI는 같은 옵션이나 대상을 두 번 받으면 거절하는 수정이 이어졌습니다(#4267·#4272·#4286·#4288·#4289·#4296). Chromium 웹 패널의 W9 작업(#4274·#4277·#4280·#4283·#4293)과 컨트롤 플레인 #4268은 기능 브랜치 docs/web-panel-osr-backend에 병합돼 main 반영이 아닙니다.
zntc는 PR 53개(#5330부터 #5382까지)를 모두 병합했습니다. 새벽에는 standalone helper·JSX 런타임 import·new.target 캡처 이름을 늦게 정하도록 바꾸고, React Refresh·Emotion·Reanimated Worklet 변환 뒤에도 번들러가 의미 그래프를 유지하게 했습니다(#5335부터 #5339까지). 아침에는 private 메서드 helper와 WeakSet의 SymbolId를 보존했고, 오전에는 object-rest를 내린 뒤에도 매개변수 기본값과 eval·동적 조회용 매개변수 환경이 유지되도록 고쳤습니다(#5345부터 #5351까지). 오후부터 밤까지는 Stage 3 데코레이터 메타데이터·클래스 this·멤버 이름, generator 상태, 클래스 super·자기 참조, 익명 클래스 export, 반복문 추출과 tagged template 캐시 이름을 SymbolId로 정하거나 마지막에 확정하도록 옮겼습니다. 마지막 #5382는 심볼 게이트 카운터가 하나라도 0이 아니면 시험을 실패시킵니다. 새 릴리스는 없습니다(최신 v0.1.10).
spinon은 10월 9일 밤에 연 #96(제한 CSS 장면을 모바일 WGPU에 연결)을 0시 직후 병합했고, 이날 연 PR 24개(#97부터 #120까지)를 모두 병합했습니다. 새벽에는 런타임 사용자 지정 속성, author stylesheet, @property 등록, CSS 계산 결과 재사용과 하위 트리 스타일 재계산을 연결했고, 오전에는 단위 변환·크기 제약·테두리 폭·종횡비를 레이아웃에 넘겼습니다. 오후에는 Block 흐름과 배경 페인트, Chromium 사전 비교 기준 고정(#106)을 거쳐 일반 Block 흐름(C09.1), 수직 margin collapse(C09.2), flow-root BFC 경계를 구현했고, 저녁에는 flex-wrap 줄바꿈, Flex 크기 배분, 역방향 축과 줄 쌓기, order에 따른 paint 순서(#120)로 Flexbox를 진행했습니다. 여전히 PoC·명세 단계의 내부 시제품입니다.
hwpjs는 저녁 7시 47분부터 자정 전까지 main에 직접 커밋 39개를 올렸습니다. HWPX 제목 위치 변환(c02ea30)과 그 독립 왕복·손상 검사, HWP5 편집 경계에서 하이픈·고정 공백·줄바꿈 같은 문서화된 문자 제어를 보존하는 수정, HWP5 그리기 개체의 해석하지 않는 꼬리 바이트를 그대로 들고 가는 기능이 들어갔습니다. 밤 11시 넘어서는 HWP5·HWPX 파서와 편집 세션 API를 core에 통합하는 커밋(ae7cc77)과 미리보기에 Canvas 편집 메뉴와 worker 제어를 붙이는 커밋이 올라갔고, 추적 중인 fixture를 카탈로그로 노출하고 코퍼스 감사·저장 회귀 시험을 공개했습니다. 실험용 편집 경로와 검사 확장이며 완전한 렌더링·편집 지원은 아닙니다. 블로그 저장소에는 오늘의 커밋 10월 7일부터 9일까지의 기록, Maru 3-10·Spinon 3-2·ZNTC 3-24 개발기, 타임라인 갱신 커밋 5개가 올라갔습니다.
공개 커밋 164개, 해당일 생성 또는 병합된 PR 113개를 정리했습니다. PR 생성 110개·병합 110개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/hwpjs
- test(hwp5): publish unknown table flag preservation and edit oracles
- test(preview): audit all tracked CFB page inputs including demos
- fix(preview): expose module startup delays and failures before file input
- fix(preview): reject non-node menu event paths and verify Worker corpus
- feat(preview): separate native menu disclosure interactions
- test(hwpx): publish specialized corpus routes with independent XML checks
- test(editor): publish tracked corpus audits and strict input selection
- feat(preview): expose all tracked document fixtures through explicit catalog
- docs(preview): record guarded core and UI WASM promotion
- docs(preview): record external fixture route rollout checks
- fix(preview): share fixture routes between catalog and server
- feat(preview): integrate Canvas editing menus and source-aware worker controls
- feat(core): integrate HWP5 and HWPX parser and editable session APIs
- test(editor): publish actual fixture save and history regressions
- docs(core): record root coverage and clean publication dependency checks
- fix(tools): remove unpublished oracle export dependency
- test(hwp5): survey actual object tails without accepting short headers
- feat(hwp5): expose owned opaque drawing object tails
- docs(core): record isolated API dependency linking and edit smoke
- docs(core): distinguish unpublished password contract
- docs(core): record isolated integration build and password edit gates
- test(hwpx): verify exact formula result spellings and near-value mutations
- docs(preview): record browser hyphen input and rejected caret recovery
- docs(hwpx): record tracked plain and specialized edit results
- fix(preview): retain soft hyphen display and source edit offsets
- docs(core): correct tracked fixture inventory count
- test(hwpx): witness protected formula prefixes from source XML
- fix(hwp5): retain documented character controls at edit boundaries
- docs(hwp5): record full reference read scope for current candidate
- docs(hwp5): record candidate presentation edit verification
- test(core): reject incomplete focused test selections
- feat(hwp5): define typed presentation retention layouts
- test(core): retain full oom sweeps without allocation stack tracing
- test(preview): validate static module exports without execution
- feat(preview): connect validated fixture asset preparation
- fix(preview): preflight fixture sources and reject unsafe targets
- test(preview): audit served module status mime and source hashes
- test(hwpx): add independent title roundtrip and corruption oracles
- feat(hwpx): add owned title position transforms
ohah/maru
- feat(editor): 열린 문서 배치 적용과 파일별 저장 연결
- fix(cli): agent-events 파일별 resume 커서 중복 거부
- fix(session-host): 구독 무효화가 어느 자리에서 왜 일어났는지 한 줄 남긴다
- feat(editor): 멀티 커서 자동완성 — 커서마다 넣고 import 는 한 번·undo 하나
- fix(cli): reject repeated incident limits
- feat(editor): 여러 파일 바꾸기 명세와 전체 편집 계획 준비
- feat(scm): 도크 머리 줄이 신뢰 전 저장소임을 말하고, 누르거나 팔레트로 같은 신뢰 시트를 연다
- fix(cli): reject repeated agent event value options
- feat(editor): 열린 문서 작업의 Undo와 Redo를 연결
- fix(cli): reject repeated agent hook options
- docs: PR 체크리스트의 적대적 검증 규칙 추가 취소
- fix(editor): strict Undo 신원 고갈과 준비 자원 수명 보호
- feat(editor): 여러 문서 Undo 사전 준비와 안정적인 이력 신원 추가
- test(terminal): cluster 상한 판정자가 코드포인트 종류와 옛 host 의 상한 초과 cluster 도 잰다
- fix(terminal): 한 셀에 붙는 0폭 코드포인트를 64개로 자른다 — 무한 결합 부호가 store 를 N² 로 키우고 업그레이드를 막던 것
- ci(cli): run native process regression checks with artifacts
- feat(editor): 자동완성 목록을 디자인 시스템 목록으로 — VS Code 치수의 촘촘한 패널·kind 아이콘·일치 글자
- fix(remote-watch): 감시자의 폴링 다이제스트도 저장소가 정의한 필터와 submodule 안을 돌리지 않는다
- docs(editor): 배치 처리 순서와 종료 경쟁 정책 보완
- docs(editor): 일괄 바꾸기의 중단 재시도와 이력 경계 보완
- docs(editor): 여러 파일 바꾸기 정책과 실패 검증 설계
- fix(scm): 신뢰 전·원격 읽기는 저장소가 정의한 파일 필터와 submodule 안을 돌리지 않는다
- fix(editor): 디스크 적용 거절 시 진행 화면과 입력 세대 갱신
- feat(editor): 디스크 검색 결과에 단일 파일 바꾸기 적용과 자동 저장 연결
- fix(cli): reject repeated window and volume target options
- fix(cli): make help requests succeed without side effects
- fix(editor): 바꾸기 저장 경고와 무변경 적용 경계 보존
- feat(editor): 열린 문서에 프로젝트 바꾸기 적용과 자동 저장 연결
- feat(editor): 포커스 없는 찾기 막대가 열려 있어도 완성·시그니처·호버를 함께 그린다
- docs(workspace-trust): 원격 저장소의 신뢰를 WT7 로 세운다 — 키는 호스트 키 지문·원격 사용자·실제 경로, WT6b-2 다음
- fix(scm): 신뢰 전 저장소의 git 읽기는 partial clone 의 지연 가져오기를 하지 않고, 원격은 늘 신뢰 전으로 읽는다
- fix(chrome): 칸 위상이 다른 오버레이를 격자 따로 내려 글자가 컴포넌트 픽셀에 선다
- fix(cli): reject duplicate browser surface targets
ohah/ohah.github.io
- docs: 10/7~10/9 타임라인과 최근 업데이트 갱신
- docs: ZNTC 3-24 개발기 추가 — 런타임 helper 심볼화와 그래프 유지 확대
- docs: Spinon 3-2 개발기 추가, 배경의 10/4 체크 항목 수 정정(넷→다섯)
- docs: Maru 3-10 개발기 추가 — 프로젝트 검색과 저장소 신뢰
- docs: 오늘의 커밋 10/7~10/9 추가
ohah/spinon
- feat(css): Flex order와 paint 순서 구현
- feat(css): Flex 역방향 축과 줄 쌓기 구현
- docs(spinon): C10.3 Flex 순서·정렬 계획 추가
- docs: C10.2 병합 상태와 근거 동기화
- feat(css): flex 크기 배분 runtime 경로 검증
- docs(css): C10.2 계획 상태 정리
- docs(css): Flex 크기 배분 계획 추가
- feat(css): flex-wrap 줄바꿈 구현
- docs(css): Flexbox C10.1 구현 계획과 실패 경계 추가
- docs(css): C09.3 병합 상태와 명세 동기화
- feat(css): flow-root BFC 경계 연결
- docs(css): C09.2 병합 상태 문구 동기화
- docs(css): C09.2 PR 상태와 명세 동기화
- feat(css): 수직 margin collapse 검증과 런타임 연결
- docs(css): C09.1 병합 상태와 공식 체크 동기화
- feat(css): C09.1 일반 Block 흐름 구현
- docs(css): C08.1 병합 상태와 C09 시작 조건 동기화
- test(css): C09 Chromium 사전 비교 fixture 고정
- docs(css): C09 블록 배치 계획과 계약 추가
- docs(css): C08.1 PR 상태 동기화
- feat(css): Block 흐름과 배경 페인트 연결
- docs(css): C07.3 PR 상태 동기화
- feat(css): 종횡비 계산을 레이아웃에 연결
- docs(css): PR 진행 상태 동기화
- feat(css): 테두리 폭 레이아웃 연결
- feat(css): C06 단위 변환과 C07.1 크기 제약 구현
- feat(css): 안전한 하위 트리 스타일 재계산 추가
- feat: CSS 계산 결과 캐시를 추가하고 검증
- feat(css): 런타임 @property 등록 연결
- feat(css): 런타임 author stylesheet cascade 연결
- feat(css): C05.1 런타임 사용자 지정 속성 연결
- docs: C04.10 구현 상태와 종료 한계를 동기화
- docs: C04.10 PR 검토 근거와 수명 한계를 기록
- feat: 제한 CSS 장면을 모바일 WGPU에 연결
ohah/zntc
- test(transformer): reject every nonzero symbol gate counter
- fix(bundler): retain styled-components CSS-prop graph
- fix(bundler): retain audited sync generator graphs
- fix(symbols): finalize tagged-template cache names
- fix(symbols): finalize extracted-loop control-flow names
- fix(symbols): finalize object-super home names
- fix(symbols): finalize for-of iterator step names
- fix(transformer): late-name extracted loop binding
- fix(transformer): require exact private method name handles
- fix(transformer): require exact generated function symbols
- fix(transformer): bind generated accessor symbols exactly
- fix(transformer): bind decorated anonymous class symbols exactly
- fix(transformer): bind anonymous class exports by SymbolId
- fix(transformer): late-name class self aliases by SymbolId
- fix(transformer): finalize class self write helper names
- fix(transformer): resolve class self write names by SymbolId
- test(transformer): audit identity before minification
- fix(transformer): avoid source collisions in late synthetic names
- fix(transformer): capture new.target in retained ES5 parameters
- fix(transformer): avoid RN parameter capture collisions
- fix(transformer): keep lexical new.target capture names in sync
- fix(transformer): defer ES5 class new.target names
- fix(transformer): resolve class super names by symbol
- fix(transformer): resolve generator state names by symbol
- test(symbols): cover minified identity on all targets
- fix(worklet): avoid class factory closure collisions
- fix(transformer): defer Stage 3 member symbol names
- fix(transformer): defer Stage 3 class decorator names
- fix(transformer): defer Stage 3 class-this symbol names
- fix(transformer): defer Stage 3 metadata symbol names
- fix(transformer): defer optional catch output names
- fix(transformer): preserve dynamic parameter environments
- fix(transformer): preserve parameter identity under body eval
- fix(transformer): isolate parameter defaults from dynamic body scope
- fix(transformer): isolate parameter eval from body bindings
- fix(transformer): preserve object-rest parameter environment
- fix(semantic): model non-simple parameter environments
- fix(transformer): preserve object-rest parameter defaults
- test(ci): classify iterative private method walker
- refactor(transformer): preserve captured private method symbols
- refactor(transformer): preserve private method function symbols
- refactor(transformer): preserve private WeakSet symbol identities
- refactor(transformer): preserve private helper symbol identities
- refactor(bundler): defer Worklet factory local naming
- refactor(bundler): retain nested Worklet helper graph
- refactor(bundler): retain Reanimated Worklet symbol graph
- feat(bundler): retain Emotion semantic graph
- feat(bundler): retain React Refresh semantic graph
- test(symbols): detect missing declaration anchors (#4819)
- fix(transformer): defer native new.target capture naming
- fix(bundler): preserve styled-components symbol identities
- fix(transformer): defer standalone JSX runtime names
- fix(transformer): defer standalone helper name resolution
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.