2026-10-01

한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-06 KST. 공개 저장소에서 조회한 활동만 포함합니다.

요약 (AI 작성)

hwpjs는 HWP5와 HWPX 문서에 실험적인 편집 경로를 붙였습니다. 자정 직후 HWP5 선택 범위에 기존 글자 모양을 적용하는 기능을 더한 뒤, 브라우저의 읽기 전용 Canvas 텍스트 미리보기에서 출발해 실험용 편집기를 JS와 WASM으로 노출하고 Canvas 직접 입력·선택을 붙였습니다. 중첩 문단과 빈 문단의 텍스트 생성, 탭 보존, 수식 필드 재계산, 여러 문단에 걸친 하이퍼링크 라벨도 원자적 편집 단위로 다루며, 추적 중인 모든 fixture 문단에 대해 편집을 감사하는 시험을 더했습니다. HWPX는 원본에 묶인 텍스트 splice와 XML을 보존하는 저장, 선택한 항목만 바꾸고 나머지 ZIP 레코드는 유지하는 저장을 바탕으로 단 정보·탭, 필드 라벨과 수식 필드, 주석 본문과 자동 번호, 보호 개체 앵커, 쪽 번호 설정을 지키며 편집하도록 하고 편집 세션을 WASM·Canvas에 연결했습니다. 모두 실험용 편집 경로이며 재조판은 하지 않습니다.

maru 편집기는 한 문서를 여러 뷰가 공유하는 구조로 옮기는 작업을 main에 연이어 병합했습니다. VS Code 기준 공유 문서 UX 설계 #4032와 소유 경계 조사 #4036에 이어 Undo·Redo 소유 분리 #4038, 본문과 저장 정보 분리 #4042, 안정 문서 핸들 #4044, 앱 전역 저장소 연결 #4048, 문서 통지와 뷰 갱신 분리 #4058가 들어갔습니다. 같은 창의 두 pane이 문서를 공유 편집하는 내부 연결과 Undo 게시 #4054·#4055도 병합됐지만, PR 본문에 따르면 사용자 분할 명령은 IME·LSP·저장·복원 조건을 갖춘 뒤 노출합니다. IME 조합 범위를 보존하고 줄바꿈된 후보 창 위치를 검증하는 #4046도 병합됐습니다.

maru의 session host 쪽은 자정 직후 #4030이 병합돼, 업그레이드가 실패해도 새 host를 띄우지 않고 살아 있는 호환 host를 재사용하며 연결이 살아 있을 때만 그 host를 채택하게 됐습니다. 테스트·CI 쪽에서는 PR에서 건너뛰던 session_host 판정자를 다시 돌리기 위해 판정자 사이 전역 상태가 새던 두 건 #4039·#4045와 러너가 물려받은 SIGINT·SIGQUIT 무시 상태 #4029를 고쳤습니다. 재활성화 PR #4059와 작업공간 복원을 workspace.restore 설정으로 끄는 #4060은 이날 열려 다음 날 병합됐습니다. Zig 의존성을 저장소에 둔 tarball로 빌드하고 #4050, PR에서 같은 트리를 검증했으면 main push의 macOS 잡을 건너뛰며 #4057, host 시작 때 실행 파일 해시를 한 번만 하고 fork된 판정자 자식의 panic이 DWARF를 읽지 않게 해 시험 시간을 줄였습니다(#4053, #4056). Chromium 웹 패널의 W7b 적대 검증 후속 #4033·#4034·#4035, select 팝업 전달 #4051, 카메라 utility 반복 재시작 수정 #4040은 기능 브랜치 docs/web-panel-osr-backend에 병합된 것으로 main 반영은 아닙니다. 앱이 select 목록을 그리는 #4061은 이날 열려 자정 직후 같은 기능 브랜치에 병합됐습니다.

spinon은 Taffy 레이아웃 모듈 #17을 병합하고, 소수 너비 Flex 분배를 브라우저 기준값과 비교하는 시험을 더했습니다. HostDocument 공통 문서 모델 #20과 Stylo DOM 어댑터 연결 #21, 기본 UA 스타일 자원과 CSS 비교 모델 #18, Vite·Rspack CSS 산출 비교 실험 #19, CSS 자원 어댑터 시제품 #23과 Stylo stylesheet 입력 목록 #24이 들어갔습니다. zntc는 낮춤 과정에서 심볼 정체성을 보존하는 #4887을 시작으로 PR 29개를 병합했습니다. 변환기가 만드는 구조 분해·generator 반복문 임시 변수, 런타임 helper, JSX runtime import를 생성 시점에 심볼로 등록하고, TypeScript·Flow 타입 제거와 CommonJS 출력에서 변환 단계의 심볼과 semantic graph를 재사용하도록 바꿨습니다. namespace IIFE 매개변수와 Flow match 참조도 심볼로 다루게 했고, 중첩 namespace 이름 충돌과 enum IIFE 초기값 캡처 같은 codegen 문제를 고쳤습니다.

공개 커밋 111개, 해당일 생성 또는 병합된 PR 68개를 정리했습니다. PR 생성 65개·병합 65개는 같은 PR이 양쪽에 포함될 수 있습니다.

커밋

ohah/hwpjs

ohah/maru

ohah/spinon

ohah/zntc

PR (해당일 생성/머지)

상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#4061생성merged기능 브랜치: docs/web-panel-osr-backendfeat(web-osr): W6a② 앱이 <select> 목록을 그린다 — 열린 목록의 키는 입력기 없이(ABI 200)
ohah/maru#4060생성mergedmainfeat(workspace): turn workspace restore off with config workspace.restore
ohah/maru#4059생성mergedmainci(test): app-host 집계 샤드에서 session_host 판정자를 다시 돌린다 — shutdown_admin_connector 만 샤드 밖에
ohah/maru#4058생성 · 병합mergedmainfeat(editor): 문서 통지와 뷰 갱신을 분리
ohah/maru#4057생성 · 병합mergedmainci: skip macOS jobs on main push when the PR proved the same tree
ohah/maru#4056생성 · 병합mergedmainperf(tests): fork 된 판정자 자식의 panic 은 DWARF 를 읽지 않는다 — 함수 이름까지만 찍고 같은 SIGABRT 로 끝낸다
ohah/maru#4055생성 · 병합mergedmainfeat(editor): 연결된 뷰의 편집과 Undo 게시 기반 구현
ohah/maru#4054생성 · 병합mergedmainfeat(editor): connect shared views and preserve edits on history OOM
ohah/maru#4053생성 · 병합mergedmainperf(session-host): host 시작은 실행 파일을 한 번만 해시한다 — build id 와 rollback self-image 가 같은 identity 를 쓴다
ohah/maru#4052생성 · 병합mergedmainfix(session-host): count metadata applied in the same pump turn as a screen batch
ohah/maru#4051생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfeat(web-osr): W6a① <select> 팝업을 maru 로 보내는 길 — popup_changed·팝업 링(MWBP), 판정 여덟
ohah/maru#4050생성 · 병합mergedmainci: build Zig dependencies from vendored tarballs, never the network
ohah/maru#4049생성 · 병합mergedmainrefactor(editor): 호스트 파일을 폴더로 묶고 이름 단축
ohah/maru#4048생성 · 병합mergedmainrefactor(editor): 단일 뷰 문서를 앱 전역 저장소에 연결
ohah/maru#4047생성 · 병합mergedmaintest(editor): plant a distinct name in every terminal in NS9
ohah/maru#4046생성 · 병합mergedmainfix(editor): preserve IME ranges and verify wrapped candidates
ohah/maru#4045생성 · 병합mergedmainfix(session-host): reentry 정산 판정자가 앞선 판정자가 남긴 post snapshot 에 막히던 것 — 시작 전에 비운다
ohah/maru#4044생성 · 병합mergedmainfeat(editor): 안정 문서 핸들과 참조 수명 골격 추가
ohah/maru#4043생성 · 병합mergedmaintest(editor): replace the external change atomically in the save-conflict smoke
ohah/maru#4042생성 · 병합mergedmainrefactor(editor): 문서 본문과 저장 정보의 소유 경계 분리
ohah/maru#4041생성 · 병합mergedmainfix(session-host): keep observation probe nonce through metadata coalescing
ohah/maru#4040생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfix(web-panel): 카메라 utility 를 helper 가 끝내 Chromium 이 초당 수백 번 다시 띄우던 것 — 그 utility 만 샌드박스 밖 허용
ohah/maru#4039생성 · 병합mergedmainfix(session-host): delta_chunk 판정자가 앞선 판정자가 올린 프레임 도장에 막히던 것 — 읽기 전에 도장을 끈다
ohah/maru#4038생성 · 병합mergedmainrefactor(editor): 공유 문서 이관을 위한 Undo·Redo 소유 분리
ohah/maru#4036생성 · 병합mergedmaindocs(editor): 공유 문서 소유와 단일 뷰 이관 경계 조사
ohah/maru#4035생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfix(web-osr): W7b 7~10차 적대 검증 — 키 판정은 입력 준비 확인 뒤 한 번 클릭, formula helper 확인, 자체 시험·변이 도구 보강
ohah/maru#4034생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfix(web-osr): W7b 6차 적대 검증 — 링크는 /System/Library·/usr/lib 만, formula test 가 host·helper 를 띄운다, 여러 아키텍처 거절
ohah/maru#4033생성 · 병합merged기능 브랜치: docs/web-panel-osr-backendfix(web-osr): W7b 4·5차 적대 검증 — x86_64 host 서명이 코드를 덮어쓰던 것, 링크·경로 가드, 전체 이름 안내, audit 주장 정정
ohah/maru#4032생성 · 병합mergedmaindocs(editor): VS Code 기준 공유 문서와 독립 뷰 UX 설계
ohah/maru#4030병합mergedmainfix(session-host): 업그레이드가 실패해도 새 host 를 띄우지 않는다 — 살아 있는 호환 host 를 재사용해 「host 하나」를 지킨다
ohah/maru#4029병합mergedmainfix(tests): 러너가 무시로 물려받은 SIGINT·SIGQUIT 를 되돌리고, C2 상대 스레드의 read 에 기한을 건다
ohah/spinon#24생성 · 병합mergedmainfeat: Stylo stylesheet 입력 목록 구현
ohah/spinon#23생성 · 병합mergedmainfeat(css): CSS 자원 어댑터 시제품 추가
ohah/spinon#22생성 · 병합mergedmaindocs(style): C03 구현 상태와 아키텍처 문서 동기화
ohah/spinon#21생성 · 병합mergedmainfeat(style): HostDocument를 Stylo DOM adapter에 연결
ohah/spinon#20생성 · 병합mergedmainfeat(core): HostDocument 공통 문서 모델 추가
ohah/spinon#19생성 · 병합mergedmainspike: Vite·Rspack CSS 산출 비교
ohah/spinon#18생성 · 병합mergedmainfeat: CSS 비교 모델과 기본 스타일 자원 준비
ohah/spinon#17병합mergedmainfeat(layout): Taffy 레이아웃 모듈 추가
ohah/zntc#4915생성 · 병합mergedmainfix(semantic): bind inline runtime helper symbols
ohah/zntc#4914생성 · 병합mergedmainfix(semantic): model namespace IIFE parameters as symbols
ohah/zntc#4913생성 · 병합mergedmainfix(transpile): reuse semantic graph for TS decorators
ohah/zntc#4912생성 · 병합mergedmainfix(transpile): reuse semantic graph for TS auto-accessors
ohah/zntc#4911생성 · 병합mergedmainfix(transpile): reuse semantic graph for TS private elements
ohah/zntc#4910생성 · 병합mergedmainfix(transpile): reuse semantic graph for TS static blocks
ohah/zntc#4909생성 · 병합mergedmainfix(transformer): register generated class constructor symbols
ohah/zntc#4908생성 · 병합mergedmaintest(transformer): cover import-export symbol identities
ohah/zntc#4907생성 · 병합mergedmainfix(transformer): register Flow match temp symbols during lowering
ohah/zntc#4906생성 · 병합mergedmainfix(semantic): analyze Flow match source references
ohah/zntc#4905생성 · 병합mergedmaintest(symbols): require exact external identity evidence
ohah/zntc#4904생성 · 병합mergedmainfix(transformer): avoid shadowing temp-like globals
ohah/zntc#4903생성 · 병합mergedmainfix(bundler): preserve rename identity across reanalysis
ohah/zntc#4902생성 · 병합mergedmainfix(transformer): bind generator for-of temps at creation
ohah/zntc#4901생성 · 병합mergedmainfix(transformer): bind generator for-in temps at creation
ohah/zntc#4900생성 · 병합mergedmainfix(transpile): bind standalone JSX runtime imports to symbols
ohah/zntc#4899생성 · 병합mergedmainfix(transformer): bind JSX runtime helper symbols
ohah/zntc#4898생성 · 병합mergedmainfix(codegen): prevent enum IIFE initializer capture
ohah/zntc#4897생성 · 병합mergedmainfix(codegen): keep unexported namespaces private
ohah/zntc#4896생성 · 병합mergedmainfix(codegen): avoid nested namespace name collisions
ohah/zntc#4895생성 · 병합mergedmaintest(transformer): audit orphan synthetic symbols
ohah/zntc#4894생성 · 병합mergedmainfix(transformer): 구조분해 매개변수 임시 심볼을 생성 시 등록
ohah/zntc#4893생성 · 병합mergedmainfix(transformer): destructuring temp 심볼을 생성 시 등록
ohah/zntc#4892생성 · 병합mergedmainfix(transformer): preserve lexical scopes in coverage audit
ohah/zntc#4891생성 · 병합mergedmainrefactor(transpile): reuse transform symbols for type-erased Flow
ohah/zntc#4890생성 · 병합mergedmainfix(transpile): avoid standalone runtime helper collisions
ohah/zntc#4889생성 · 병합mergedmainrefactor(transpile): reuse transform symbols for type-erased TypeScript
ohah/zntc#4888생성 · 병합mergedmainrefactor(transpile): reuse transform symbols for CommonJS output
ohah/zntc#4887생성 · 병합mergedmainfeat(transformer): preserve symbol identity through lowering