2026-10-12

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

요약 (AI 작성)

maru에서는 9월 23일에 연 #3867이 아침 7시쯤 main에 병합됐습니다. 기능 브랜치 docs/web-panel-osr-backend를 main으로 합치는 PR로, 그동안 이 브랜치에 병합된 Chromium 웹 패널(OSR 백엔드) 작업이 이때 main에 반영됐습니다. 본문에 따르면 약 280개 커밋을 main 위로 rebase했고, 이날 공개 커밋 326개 중 282개가 이 병합으로 들어온 rebase 커밋입니다(작성일은 9월 23일부터 10월 11일). CEF가 필요한 부분은 opt-in 빌드(-Dcef-sdk)라 기본 빌드·앱에는 들어가지 않고, 기본 웹 백엔드는 WKWebView로 둡니다. 병합 뒤에는 로케이터로 보이기를 기다리고 숨은 탭에서도 질의에 답하게 하는 W9b②-3 #4364가 main을 대상으로 병합됐습니다.

편집기 쪽에서는 전날 밤 연 PR이 이어서 병합됐습니다. ⌘S가 설정한 code action(source.organizeImports 등)을 그 문서에만 적용한 뒤 포맷·저장하는 #4350(기본 끔), 프로젝트 바꾸기의 파일·일치 선택 #4347, 적용·저장 실측 기준선 #4351입니다. 로컬 저장은 자료·쓰기·완료 단계를 나누고(#4360) 저장 worker를 구현했으며(#4372), 저장 요청 큐 #4378은 이날 열려 다음 날 0시 넘어 병합됐습니다. 신뢰한 저장소에서 ⌘S·⇧⌥F가 저장소가 고른 Prettier를 실행하는 외부 포매터 EF1 #4384도 이날 열려 다음 날 병합됐고, Biome·oxfmt·ruff·black·rustfmt·zig fmt·사용자 명령으로 넓히는 EF2 #4388은 아직 열려 있습니다. 신뢰 결정이 언제·어디서 바뀌었는지 남기고 신뢰 목록에 보이는 감사 기록 TA1 #4362와 이를 maru editor lsp trust log로 조회하는 TA2 #4369도 병합됐습니다.

에이전트 로그와 이미지 채널도 이어졌습니다. 호스트 재접속·업그레이드에도 훅 형식을 지키는 #4348(10월 11일 열림)과 준비된 로컬 런타임에서 native 훅을 켜는 #4355에 이어, SSH의 새 프로세스만 native v2 로그로 점진 이행하고 실행 중인 v1 셸·tmux는 유지하는 #4368과 실제 연결 중단·자동 재접속 시험(#4377·#4379)이 병합됐습니다. 이미지 채널은 IC3a #4349(10월 11일 열림), IC3b-1 #4356과 세그먼트 해석 수정 #4365가 병합됐고, IC3b-2a #4373은 이날 열려 다음 날 병합됐습니다. IC3b-2b-1 #4375와 IC4a #4383은 열린 상태이고, IC3b-2b-2 #4380은 기능 브랜치 feat/image-channel-ic3b2b를 대상으로 열려 있어 아직 병합되지 않았습니다. 그 밖에 호스트 사이에 복사돼 있던 키 변환표·문법 이름 매핑·사이드바 세로 자리·divider 두께 같은 규칙을 중립 코드 한 곳으로 모으는 리팩터링(#4352·#4354·#4366·#4381 등)과, 쓰이는 중인 파일을 읽다 파일 감시 해시·파일 패널 미리보기가 죽던 문제의 수정(#4376)이 들어갔습니다.

zntc는 PR 94개(#5484부터 #5593까지, 중간 번호 일부 제외)를 모두 병합했습니다. 새벽에는 선택적 static 멤버 호출, 호출 결과를 받는 쪽, 깊은 optional 호출과 미해결 계산된 optional 키로 번들러가 의미 그래프를 유지하는 범위를 넓혔고(#5484부터 #5511까지), 아침부터 오후까지는 키와 인자 안의 sequence 식으로 범위를 넓히면서(#5513부터 #5547까지) --keep-names와 ES5로 내린 메서드·접근자·익명 클래스의 이름 보존을 고쳤습니다. 오후 늦게부터 저녁까지는 lexical this·arguments 캡처 이름을 SymbolId로 확정하고, 클래스 lowering·ES2020 연산자·optional catch·object spread 변환을 사전 패스로 옮겼으며, top-level await 모듈 처리를 고쳤습니다. 밤에는 의미 정보가 없는 런타임 helper와 ESM 래퍼에 SymbolId를 주고(#5588·#5591), 타입으로만 쓰인 TypeScript import 제거와 emitDecoratorMetadata 출력을 tsc에 맞췄습니다(#5589·#5592). 새 릴리스는 없습니다(최신 v0.1.10).

hwpjs는 main에 직접 커밋 35개를 올렸고, 그중 28개가 docs 커밋인 검증 기록입니다. 새벽에는 수식 재병합 회귀와 그 수정을 기록한 뒤, 고친 스냅샷에서 수식·구조 회귀 검사 72개를 확인했다고 적었습니다(594d665). 밤 9시 넘어서는 HWPX 차트 쪽 기능이 들어가 원본 역할에 따른 차트 점 라벨, 쪽으로 나눈 정규 차트 값 표, 값 표 선택을 정규 편집 양식에 잇는 연결(5e78736)이 추가됐고, 문서를 다시 열 때 남은 차트 초안을 지우는 수정과 문서를 바꾸지 않고 접두 경로를 감사하는 기능도 올라갔습니다. 밤에는 짝이 맞지 않는 필드 표지를 보호하면서 닫힌 필드를 편집하는 시제품과 그 검사를 기록했습니다. 실험용 편집 경로와 검사 확장이며 완전한 렌더링·편집 지원은 아닙니다. spinon과 블로그 저장소에는 이날 공개 활동이 없습니다.

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

커밋

ohah/hwpjs

ohah/maru

ohah/zntc

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#4389생성 · 병합mergedmainrefactor(render): 합성 글리프 판정을 Zig 가 셀 비트로 넘기고, 렌더러가 안 읽던 인자 넷을 뺀다
ohah/maru#4388생성openmainfeat(editor): 외부 포매터 EF2 — Biome·oxfmt·ruff·black·rustfmt·zig fmt·사용자 명령
ohah/maru#4387생성 · 병합mergedmainrefactor(render): 래스터 배치 역할을 width.rasterFitFor 가 정해 인자로 넘긴다 — coretext_smoke.m 의 codepoint 목록을 없앤다
ohah/maru#4386생성 · 병합mergedmainrefactor(render): 헤더 아이콘 줄 세로 자리를 알림 배지와 같은 값 하나로 그린다 — .m 의 origin 짐작과 띠 중앙 공식을 없앤다
ohah/maru#4385생성 · 병합mergedmainrefactor(sidebar): 사이드바 셀을 모두 같은 규칙으로 놓고 렌더러 루프를 한 갈래로 줄인다
ohah/maru#4384생성mergedmainfeat(editor): 외부 포매터 — ⌘S·⇧⌥F 가 저장소가 고른 Prettier 를 신뢰한 저장소에서 실행한다 (EF1)
ohah/maru#4383생성openmainfeat(session-host): 이미지 채널 IC4a — 받은 fd 가 자식으로 새지 않게 fork 울타리와 CLOEXEC_DEFAULT spawn 헬퍼를 두고 헬퍼 밖 spawn 을 막는다
ohah/maru#4382생성 · 병합mergedmainfix(macos): 스크린샷 모드가 첫 frame 을 못 찍으면 영영 기다리지 않고 이유를 남기고 끝난다
ohah/maru#4381생성 · 병합mergedmainrefactor(dock): divider 두께와 누르는 띠를 중립 한 곳에서 낸다 — Windows 가 띠 폭을 두께로 넘겨 10px 막대를 그렸다
ohah/maru#4380생성open기능 브랜치: feat/image-channel-ic3b2bfeat(session-host): 이미지 채널 IC3b-2b-2 — attach 가 stream 을 열고 stream drop 이 닫고, 적용한 배치의 hwm 이 남은 세그먼트를 돌려준다
ohah/maru#4379생성 · 병합mergedmaintest(ssh): 제품 CLI·GUI의 자동 재접속 검증
ohah/maru#4378생성mergedmainfeat(editor): 저장 요청 큐와 성공 기준 인계 구현
ohah/maru#4377생성 · 병합mergedmaintest(ssh): mixed 로그의 실제 연결 중단과 resume 검증
ohah/maru#4376생성 · 병합mergedmainfix(fs): 쓰이는 중인 파일을 크기 없이 읽는다 — 파일 감시 해시·파일 패널 미리보기가 std 크기 캐시 넘침으로 죽었다
ohah/maru#4375생성openmainfeat(session-host): 이미지 채널 IC3b-2b-1 — 매 tick·적용 직전에 채널을 비우고, 비울 수 없는 tick 의 image_ref 배치는 큐 머리에 보류한다
ohah/maru#4374생성 · 병합mergedmainfix(sidebar): 오른쪽 예약 칸을 칸 미만 여백에서 낸다 — Windows 카드 줄이 근거 없이 비우던 한 칸
ohah/maru#4373생성mergedmainfeat(session-host): 이미지 채널 IC3b-2a — GUI 적용 자리 다섯이 그 연결의 세그먼트 표로 해석하는 resolver 를 넘긴다
ohah/maru#4372생성 · 병합mergedmainfeat(editor): 로컬 저장 worker와 단일 완료 수명 구현
ohah/maru#4371생성 · 병합mergedmaindocs(sidebar): 없어진 sidebarBandCell 을 현재형으로 설명하던 주석·문서를 고친다
ohah/maru#4370생성 · 병합mergedmainfix(sidebar): sync hold 중 기하가 바뀌면 사이드바만 다시 그리지 않는다 — 글자만 새 스크롤로 가고 밴드가 남았다
ohah/maru#4369생성 · 병합mergedmainfeat(editor): 신뢰 감사 기록 조회 — maru editor lsp trust log 와 컨트롤 철회·잊기의 소켓 상대 (TA2)
ohah/maru#4368생성 · 병합mergedmainfeat(ssh): 기존 세션을 유지하며 원격 에이전트 로그를 native v2로 점진 이행
ohah/maru#4367생성 · 병합mergedmaintest(live-pty): 자라는 파일을 크기 없이 읽는다 — readFileAlloc 의 size-pos 넘침 패닉이 판정자를 5% 죽였다
ohah/maru#4366생성 · 병합mergedmainrefactor(sidebar): 세로 자리를 listToScreenY 하나로 모은다 — 렌더러·밴드 quad·caret·Windows 의 헤더−스크롤 사본을 없앤다
ohah/maru#4365생성 · 병합mergedmainfix(session-host): 이미지 세그먼트 해석이 공유 메모리가 아닌 fd 에 죽지 않고, 펌프가 external 모드 Client 를 읽지 않는다
ohah/maru#4364생성 · 병합mergedmainfeat(web-osr): W9b②-3 — wait visible(로케이터)과 숨은 탭 kick, 계획 공격 3·적대 검증 5 회차
ohah/maru#4363생성 · 병합mergedmainfix(sidebar): 카드 글자의 반 칸 여백을 Columns 가 소유한다 — 그린 ✕ 와 누르는 칸·IME caret 이 맞는다
ohah/maru#4362생성 · 병합mergedmainfeat(editor): 신뢰 감사 기록 — 결정이 언제·어디서 바뀌었나를 남기고 신뢰 목록 행에 보인다 (TA1)
ohah/maru#4360생성 · 병합mergedmainrefactor(editor): 로컬 저장의 자료·쓰기·완료 단계 분리
ohah/maru#4359생성 · 병합mergedmainrefactor(render): 사이드바 에이전트 심볼의 죽은 1.1× 분기를 지운다 — .m 이 아이콘을 codepoint 로 고르는 자리가 0 이 된다
ohah/maru#4358생성 · 병합mergedmainrefactor(render): 헤더 아이콘 배율을 Zig 가 role 로 내려 보낸다 — Metal 의 codepoint·1.7f 사본을 없앤다
ohah/maru#4357생성 · 병합mergedmainfix(ssh): 확정 포맷에 맞는 원격 에이전트 로그 경로 선택
ohah/maru#4356생성 · 병합mergedmainfeat(session-host): 이미지 채널 IC3b-1 — 앱이 받은 세그먼트 fd 를 표에 쥐고 해석·정리·반환한다
ohah/maru#4355생성 · 병합mergedmainfeat(agent): enable native hooks for prepared local runtimes
ohah/maru#4354생성 · 병합mergedmainrefactor(syntax): 문법 이름 매핑을 syntax.languageFor 하나로 — 호스트 사이의 사본을 없앤다
ohah/maru#4353생성 · 병합mergedmaindocs(layering): 호스트 사본 훑기에서 남은 후보를 적는다
ohah/maru#4352생성 · 병합mergedmainrefactor: 호스트 사이의 사본 셋을 중립 하나로 — 키 변환표 · divider 잡기 오프셋 · 에이전트 도크 그리기 예산
ohah/maru#4351병합mergedmainperf(editor): 프로젝트 바꾸기 적용·저장 실측 기준선 기록
ohah/maru#4350병합mergedmainfeat(editor): 저장 시 code action — ⌘S 가 설정한 kind(source.organizeImports 등)를 묻고 그 문서에만 적용한 뒤 포맷·저장한다 (기본 끔)
ohah/maru#4349병합mergedmainfeat(session): 이미지 채널 IC3a — 조립기가 image_ref 를 필수 resolver 로 해석하고 매핑을 주입된 해제 함수로 푼다
ohah/maru#4348병합mergedmainfeat(agent): preserve hook format across host reconnect and upgrade
ohah/maru#4347병합mergedmainfeat(editor): 프로젝트 바꾸기의 파일과 일치 선택 연결
ohah/maru#3867병합mergedmainfeat(web-panel): 웹 OSR 백엔드 — 계획(§13·W1~W8)과 W1a~W2 구현(codec·CEF sidecar·브라우저·픽셀 링)
ohah/zntc#5593생성 · 병합mergedmainrefactor(bundler): remove obsolete wrapper name fallback
ohah/zntc#5592생성 · 병합mergedmainfix(transformer): match tsc emitDecoratorMetadata output
ohah/zntc#5591생성 · 병합mergedmainfix(bundler): assign SymbolIds to semantic-less ESM wrappers
ohah/zntc#5590생성 · 병합mergedmainfix(bundler): keep asset wrapper names aligned with symbols
ohah/zntc#5589생성 · 병합mergedmainfix(bundler): drop TypeScript imports used only as types like tsc
ohah/zntc#5588생성 · 병합mergedmainfix(bundler): assign SymbolIds to semantic-less runtime helpers
ohah/zntc#5586생성 · 병합mergedmaintest(symbols): cover every exact identity diagnostic
ohah/zntc#5585생성 · 병합mergedmainfix(bundler): trigger identity prepass for new.target
ohah/zntc#5584생성 · 병합mergedmainfix(bundler): keep static-field graph for unrelated Object bindings
ohah/zntc#5582생성 · 병합mergedmainfix(bundler): evaluate modules of unused or inlined JS imports
ohah/zntc#5579생성 · 병합mergedmainfix(bundler): scope class method Object shadow checks
ohah/zntc#5578생성 · 병합mergedmainfix(transformer): keep top-level await modules unsplit in async esm factories
ohah/zntc#5577생성 · 병합mergedmainfix(bundler): scope JSX spread Object shadow checks
ohah/zntc#5576생성 · 병합mergedmainfix(bundler): scope Object shadow checks for object spread
ohah/zntc#5574생성 · 병합mergedmaintest(transformer): pin exact reference count invariants (#4819)
ohah/zntc#5573생성 · 병합mergedmainfix(bundler): reject exported top-level await without async functions
ohah/zntc#5572생성 · 병합mergedmainfix(bundler): retain exact graph for new.target lowering
ohah/zntc#5569생성 · 병합mergedmainfix(transformer): prepass object spread lowering
ohah/zntc#5568생성 · 병합mergedmainfix(bundler): keep module code when lowering top-level await
ohah/zntc#5567생성 · 병합mergedmainfix(transformer): prepass optional catch lowering
ohah/zntc#5566생성 · 병합mergedmainfix(transformer): prepass ES2020 operator lowering
ohah/zntc#5565생성 · 병합mergedmainfix(transformer): gate class lowering pre-pass by feature
ohah/zntc#5563생성 · 병합mergedmainfix(bundler): retain exact IDs for captured arrows
ohah/zntc#5561생성 · 병합mergedmaintest(integration): fix local-only watch memory and Hermes timeout failures
ohah/zntc#5560생성 · 병합mergedmainfix(transformer): declare native parameter initializer temps outside the body
ohah/zntc#5559생성 · 병합mergedmainfix(transformer): preserve captures around dynamic eval
ohah/zntc#5557생성 · 병합mergedmainfix(transformer): keep the source reference for block-renamed object shorthands
ohah/zntc#5556생성 · 병합mergedmainfix(bundler): preserve CJS script mode during resync
ohah/zntc#5555생성 · 병합mergedmainfix(transformer): name values after runtime computed keys
ohah/zntc#5554생성 · 병합mergedmainfix(transformer): preserve lexical captures in with scopes
ohah/zntc#5551생성 · 병합mergedmainfix(transformer): finalize lexical arguments capture names by SymbolId
ohah/zntc#5550생성 · 병합mergedmainfix(transformer): finalize lexical this capture names by SymbolId
ohah/zntc#5549생성 · 병합mergedmainfix(transformer): track generated super assignments by node identity
ohah/zntc#5548생성 · 병합mergedmainperf(transformer): name ES5-lowered methods with their own function names
ohah/zntc#5547생성 · 병합mergedmainfix(bundler): retain nested optional key arguments
ohah/zntc#5546생성 · 병합mergedmainfix(bundler): retain two-level computed key arguments
ohah/zntc#5545생성 · 병합mergedmainfix(bundler): retain bounded nested optional key calls
ohah/zntc#5544생성 · 병합mergedmaintest(symbol): accept generated function-expression self-name scopes in the exact gate
ohah/zntc#5543생성 · 병합mergedmainfix(bundler): retain nested member optional key calls
ohah/zntc#5542생성 · 병합mergedmainfeat(bundler): retain nested optional key calls
ohah/zntc#5541생성 · 병합mergedmainfix(transformer): name ES5-lowered methods, accessors and object members
ohah/zntc#5540생성 · 병합mergedmainfeat(bundler): retain bounded optional key arguments
ohah/zntc#5539생성 · 병합mergedmainfeat(bundler): retain optional member-read sequence keys
ohah/zntc#5538생성 · 병합mergedmainfeat(bundler): retain optional nested sequence calls
ohah/zntc#5537생성 · 병합mergedmainfeat(bundler): retain nested sequence call arguments
ohah/zntc#5536생성 · 병합mergedmainfeat(bundler): retain bound call argument sequences
ohah/zntc#5535생성 · 병합mergedmainfeat(bundler): retain bound optional sequence keys
ohah/zntc#5534생성 · 병합mergedmainfix(transformer): keep private statics, new.target and field function names
ohah/zntc#5533생성 · 병합mergedmainfeat(bundler): retain one nested computed key argument
ohah/zntc#5532생성 · 병합mergedmainfeat(bundler): retain bound computed reads in sequence arguments
ohah/zntc#5531생성 · 병합mergedmainfix(transformer): canonical numeric class keys, useDefine static blocks, empty CLI args
ohah/zntc#5530생성 · 병합mergedmainfeat(bundler): retain nested computed-member key arguments
ohah/zntc#5529생성 · 병합mergedmainfix(transformer): keep anonymous class names under class lowering
ohah/zntc#5528생성 · 병합mergedmainfeat(bundler): retain bounded computed member key arguments
ohah/zntc#5526생성 · 병합mergedmainfeat(bundler): retain bounded ordinary key call arguments
ohah/zntc#5525생성 · 병합mergedmainfeat(bundler): retain bounded optional key call arguments
ohah/zntc#5524생성 · 병합mergedmainfeat(bundler): retain exact-bound optional call keys in sequence arguments
ohah/zntc#5523생성 · 병합mergedmainfix(bundler): keep static name members and reserve the --keep-names helper
ohah/zntc#5522생성 · 병합mergedmainfeat(bundler): retain bound computed key calls in sequence arguments
ohah/zntc#5521생성 · 병합mergedmainfix(transformer): keep inferred names of ES5-lowered defaults and renamed bindings
ohah/zntc#5520생성 · 병합mergedmainfeat(bundler): sequence 인자의 safe computed call 보존
ohah/zntc#5518생성 · 병합mergedmainfeat(bundler): sequence 인자의 exact-bound final call 보존
ohah/zntc#5517생성 · 병합mergedmainfix(codegen): restore --keep-names names where each value is created
ohah/zntc#5516생성 · 병합mergedmainfeat(bundler): unresolved-root sequence member-read 허용
ohah/zntc#5515생성 · 병합mergedmainfix(bundler): keep inferred function names through inlining and ES5 renames
ohah/zntc#5514생성 · 병합mergedmainfeat(bundler): retain bounded effectful argument sequences
ohah/zntc#5513생성 · 병합mergedmainfeat(bundler): retain bounded effectful sequence keys
ohah/zntc#5511생성 · 병합mergedmainfeat(bundler): retain unresolved computed optional keys
ohah/zntc#5510생성 · 병합mergedmaintest(bundler): cover unresolved computed optional keys
ohah/zntc#5509생성 · 병합mergedmainfix(bundler): retain unresolved deep optional member calls
ohah/zntc#5508생성 · 병합mergedmaintest(bundler): cover unresolved deep optional invocations
ohah/zntc#5507생성 · 병합mergedmaintest(bundler): lock zero-debt SymbolId coverage fingerprint
ohah/zntc#5506생성 · 병합mergedmainfix(transformer): guard deep optional method calls
ohah/zntc#5505생성 · 병합mergedmainfix(bundler): retain bound deep optional member receiver calls
ohah/zntc#5504생성 · 병합mergedmainfix(bundler): retain nested bound call-result member receivers
ohah/zntc#5503생성 · 병합mergedmainfix(bundler): retain bound call-result optional member calls
ohah/zntc#5502생성 · 병합mergedmainfix(bundler): retain bound call-result optional reads
ohah/zntc#5501생성 · 병합mergedmainfix(bundler): retain bound call-result static reads
ohah/zntc#5500생성 · 병합mergedmainfix(bundler): retain bound call-result member invocations
ohah/zntc#5499생성 · 병합mergedmainfix(bundler): retain bound call-result optional invocations
ohah/zntc#5498생성 · 병합mergedmainfix(bundler): retain unresolved optional receiver invocations
ohah/zntc#5497생성 · 병합mergedmainfix(bundler): retain bound optional receiver invocations
ohah/zntc#5496생성 · 병합mergedmainfix(bundler): retain unresolved optional member invocations
ohah/zntc#5495생성 · 병합mergedmainfix(bundler): retain bound computed optional member invocations
ohah/zntc#5494생성 · 병합mergedmainfix(bundler): retain bound optional member invocations
ohah/zntc#5493생성 · 병합mergedmainfix(bundler): retain unresolved optional static calls
ohah/zntc#5492생성 · 병합mergedmainfix(bundler): keep switch block-function names and discriminant reads exact
ohah/zntc#5491생성 · 병합mergedmainfix(bundler): retain bound optional static initializer calls
ohah/zntc#5490생성 · 병합mergedmainfix(bundler): retain optional computed static field names
ohah/zntc#5489생성 · 병합mergedmainfix(bundler): retain nested optional initializer calls
ohah/zntc#5488생성 · 병합mergedmainfix(bundler): retain optional static member calls
ohah/zntc#5487생성 · 병합mergedmainfix(codegen): lower strict switch-case functions for sloppy output
ohah/zntc#5485생성 · 병합mergedmainfix(bundler): retain unresolved static initializer roots
ohah/zntc#5484생성 · 병합mergedmainfix(bundler): retain unresolved optional static keys