2026-09-24
날짜별 분류는 기존 기록과 같은 UTC 기준입니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 집계 마감: 2026-09-26 17:05:20 KST (08:05:20 UTC). 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru 편집기에 현재 줄·짝 괄호 강조와 들여쓰기 안내선의 구현이 들어왔습니다. 안내선의 언어별 기본값·긴 공백 구간·스크롤 창을 검증하고, 구문 접힘 승격 중 해제된 줄 표를 그리던 문제도 수정했습니다. 보이지 않는 탭의 출력과 kitty 애니메이션이 화면 전체의 갱신을 유발하지 않도록 렌더링 경로를 줄였습니다. 한글·밑줄이 들어간 경로의 대화 파일 탐색과 사라진 원격 tmux pane 행도 다듬었습니다.
Chromium 웹 패널은 sidecar·픽셀 링·Metal 표시·포인터·키보드·한글 입력을 잇는 PR들이 기능 브랜치에 병합됐습니다. 이 병합 대상은 docs/web-panel-osr-backend 등의 개발 브랜치이며, main 통합 PR #3867은 집계 시점에 열려 있습니다.
hwpjs는 HWPX의 모든 선언 XML과 패키지 바이트, 조건부 스타일·텍스트, 표 셀·격자·여백, 바탕쪽과 변경 추적 속성의 검사 범위를 넓혔습니다. zntc는 네이티브 Node 실행 결과와 변환 결과를 비교하는 다운레벨 검증을 추가하고, 식별자 생성의 대상 구분·심볼 전달·블록 스코프 이름 변경을 정리했습니다. 변환 뒤 minify 재분석에서 export·import·클래스 이름을 지키는 회귀 수정도 포함됩니다.
공개 커밋 111개, 해당일 생성 또는 병합된 PR 67개를 정리했습니다. PR 생성 64개·병합 59개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/hwpjs
- feat(hwp5): diagnose observed summary dictionary marker
- fix(hwp5): validate summary typed value padding
- feat(hwpx): inspect multilevel chart labels
- feat(hwpx): inspect master-page chart references
- feat(hwpx): inspect selected master-page style references
- feat(hwpx): inspect selected table geometry
- feat(hwpx): inspect master-page table geometry
- feat(hwpx): resolve master-page binary references
- feat(hwpx): stream master-page text events
- feat(hwpx): inspect master-page paragraph children
- feat(hwpx): inspect master-page line segments
- feat(hwpx): inspect paragraph line segments
- feat(hwpx): inspect paragraph direct children
- feat(hwpx): inspect table row and cell topology
- feat(hwpx): inspect inherited table shape fields
- feat(hwpx): inspect table margins and cell zones
- feat(hwpx): inspect table attributes and border references
- feat(hwpx): inspect table cell sublists
- feat(hwpx): resolve table cell border references
- feat(hwpx): inspect table cell attributes
- feat(hwpx): inspect table cell size and margins
- feat(hwpx): inspect table grid geometry
- feat(hwpx): select conditional style references
- feat(hwpx): select conditional section text events
- feat(hwpx): select conditional binary and chart references
- feat(hwpx): inspect conditional switch shape
- feat(hwpx): inspect inline track change tag attributes
- feat(hwpx): inspect inline annotation attributes
- feat(hwpx): inspect inline tab attributes
- feat(hwpx): inspect text node fields and children
- feat(hwpx): inspect run child topology
- feat(hwpx): inspect run track-change attributes
- feat(hwpx): validate master-page formatting references
- feat(hwpx): validate master-page paragraph metadata
- feat(hwpx): inspect master-page ParaListType attributes
- feat(hwpx): inspect master-page parts and section references
- feat(hwpx): inspect settings caret and config values
- feat(hwpx): inspect every declared XML package part
- feat(hwpx): verify every package payload byte
- feat(hwpx): compose known document inspections
ohah/maru
- refactor(naming): 고정 same-major host fixture 둘을 주제 이름으로 — 원장이 5 에서 3 으로
- refactor(naming): 남은 단일 판정자 셋을 주제 이름으로 — 원장이 8 에서 5 로
- refactor(naming): 재접속 기초 판정자 둘(CR0b·CR1 · CR2)을 주제 이름으로 — 원장이 10 에서 8 로
- docs(editor): §5.1c 8회차 — 창 확장이 IGP5 를 약하게 한 것과 P12 재사살 기록
- fix(editor): 활성 안내선이 긴 공백 구간에서 줄마다 끝까지 훑던 것(81.8 ms/프레임 → 0.57 ms) · VS Code 대조 판정자(monaco 0.56 실측 77 문서) · 탭 표시 폭 차이 명시 (§5.1c, 적대적 검증 4회차)
- test(editor): 안내선 적대적 1회차 — 판정자 보강 일곱 · 등가 여섯 주석 · 다시 읽기는 재추정 안 함(VS Code updateModel 과 같다, 계약 정정) (§5.1c)
- feat(editor): 들여쓰기 안내선 계약(§5.1c)과 순수 판정 — 간격 추정(VS Code guessIndentation) · 줄마다 단계 · 활성 블록
- docs(editor): §5.1c 다시 추정·저장소 순서·창 512 정정과 적대적 6~8회차 기록 · Walker 등가 주석
- test(editor): IGP5 를 창(256 줄)보다 아래로 굴린다 — 적대적 2회차 P12(창 시작 0)가 11 줄 스크롤에선 초록이었다 (§5.1c)
- fix(editor): 안내선 — 저장소를 맨 나중에 받는다 · 탭 폭·언어가 바뀌면 다시 추정 · 탭 폭 9~16 · 창 512 · levels 걸음 수 판정 (§5.1c 적대적 8회차)
- fix(editor): 안내선 — Markdown 도 offSide · Go 는 추정 기본이 탭(VS Code language-configuration·configurationDefaults 원문) (§5.1c 적대적 검증 5회차)
- feat(editor): 들여쓰기 안내선 — 1px 세로선·활성 블록·간격 추정 캐시·설정 두 키 (§5.1c)
- test(editor): IGP5 를 창 크기 너머로 굴린다 — 창 512 로 넓혀 P12 구멍이 다시 열린 것 (§5.1c 적대적 8회차)
- docs(editor): §5.1c offSide 목록(Python·Markdown)·언어별 추정 기본(Go) 정정과 적대적 5회차 기록
- docs(editor): §5.1c 구현 되먹임·적대적 기록(1~3회차 변이 50) · 후속 표 ② 섰다 · ③④·감싸는 쌍 점프 예정
- docs(editor): Walker 변이 다섯(죽음 셋 · 등가 둘) 기록과 주석 (§5.1c 적대적 4회차)
- refactor(naming): P5c3c external attach 경계 셋·센티넬 다섯을 주제 이름으로 — 원장이 18 에서 10 으로
- fix(editor): 구문 접힘 승격이 프레임이 잡아 둔 보이는 줄 표를 놓던 것 — 해제된 메모리를 그렸다 (PROMO3)
- refactor(naming): CR3a-2d·2e 세대 해제 판정자 넷을 주제 이름으로 — 원장이 22 에서 18 로
- perf(renderer): 안 보이는 탭의 kitty 애니메이션은 프레임만 넘기고 화면을 다시 그리게 하지 않는다
- fix(remote-agent): 죽은 tmux pane 행이 앱이 사는 동안 안 사라지던 것 (RA7)
- refactor(naming): CR3c 세대 승격 · Client 회수 판정자 둘을 주제 이름으로 — 원장이 24 에서 22 로
- refactor(naming): CR6f output wake · idle soak 판정자 둘을 주제 이름으로 — 원장이 26 에서 24 로
- refactor(naming): CR6a·b 복구된 세션 판정자 셋을 주제 이름으로 — 원장이 29 에서 26 으로
- refactor(naming): CR5 호스트 전체 재접속 판정자 여덟을 주제 이름으로 — 원장이 37 에서 29 로
- refactor(naming): CR4 재접속 Client 교체 판정자 넷을 주제 이름으로 — 원장이 41 에서 37 로
- perf(renderer): 안 보이는 탭의 출력은 사이드바만, 사이드바가 그대로면 아무것도 안 올린다 — 활성 32 세션 앱 CPU −31 %
- test(renderer): SO3 는 사이드바가 안정될 때까지 기다린 뒤 판정한다 — CI 에서 늦게 온 git 상태가 사이드바를 정당하게 바꿨다
- fix(renderer): 지문과 교체 사이에 배치가 바뀌면 사이드바 입력을 기억하지 않는다 (적대적 검증)
- refactor(naming): P5c3d 호환성·attach 제품 E2E 셋을 주제 이름으로 — 원장이 44 에서 41 로
- refactor(naming): CR2e 재접속 단위 테스트 셋을 제품 모듈 이름으로 — 원장이 47 에서 44 로
- docs(osc): OSC 66·5522 의 「Ghostty 패리티」 전제가 틀렸다 — 둘 다 업스트림도 미완성
- refactor(naming): P4 관측·유휴 비용 판정자 여섯(E2·E3)을 주제 이름으로 — 원장이 53 에서 47 로
- refactor(naming): CR6e 재접속 판정자 다섯을 주제 이름으로 — 원장이 58 에서 53 으로
- test(session-host): gh 권한 판정자가 하드링크 경로를 realpath 로 얻지 않는다 — F_GETPATH 가 다른 링크 이름을 돌려준다
- feat(editor): 현재 줄 상자·활성 줄 번호·짝 괄호 상자 그리기 층 + 설정 두 키 (§5.1b)
- test(editor): 적대적 1회차 — 생존 변이 열다섯에 판정자 보강 · 등가 넷 주석 · 쓸모없는 갈래 둘 걷어냄 (§5.1b)
- feat(editor): 짝 괄호·현재 줄 제품 배선 — 출처 고르기(트리/글자 훑기)·포커스·커서 100·키 캐시, 점프도 같은 출처 (§5.1b · §3.9c)
- test(editor): 적대적 2회차 — P5 revision 판정자 · T13b 로 짝짓기를 「처음 닫힌 품는 쌍」으로 줄임 · T4 등가 · 붙은 토큰 예시 정정(Zig .{ 는 두 토큰, 실측) (§5.1b)
- feat(editor): 짝 괄호 판정 — 트리 토큰·글 잎·뒤 먼저, 점프도 같은 판정 (§5.1b 계약 · §3.9c VS Code 실측 정정)
- docs(plans): 후속 표에 편집기 기본 장식 넷(① 섰다 · ②~④ 남음) (§5.1b)
- docs(editor): §5.1b 구현 되먹임·적대적 기록(1~3회차 변이 94) · 붙은 토큰 예시 정정(Zig .{·Rust #[ 는 두 토큰)
- fix(agent): 사이드바 대화 줄이 claude 대화 파일을 세션 id 로 찾는다 — 폴더 이름 규칙을 흉내 내다 밑줄·한글 경로에서 조용히 비었다
- test(session-host): clear·reset 판정자의 자식이 마지막 명령 전에 끝나지 않게 한다 — WriteFailed flake
- ci(session-host): ReleaseFast 상한 45분을 좁히지 않는다 — 콜드 38분·웜 3분 실측과 7일 캐시 만료
- ci(macos): AppKit 스모크 잡 셋을 하나로 합친다 — 같은 앱을 세 번 콜드 빌드하며 macOS 러너 5개 중 셋을 잡고 있었다
ohah/zntc
- fix(transformer): direct eval 을 품은 블록은 심볼 표로 이름을 바꾸지 않는다 + 적대적 검증 fixture (#4760 4단계-2)
- feat(transformer): es5 블록 스코핑 리네임을 심볼 표로 교체 (#4760 4단계-2)
- feat(transformer): 심볼 기준 블록 스코핑 리네임 표 + 기존 이름 스택과 병행 비교 (#4760 4단계-1)
- refactor(transformer): 변환 상태로 오는 클래스·함수 이름 참조에 심볼 전달 (#4760 3단계-6)
- refactor(transformer): span 기반 식별자 생성을 대상별로, es5 _super 의 틀린 심볼 수정 (#4760 3단계-5, #4763)
- refactor(transformer): 데코레이터 식별자 생성을 대상별 함수로, 헬퍼는 minify 이름으로 (#4760 3단계-4)
- refactor(transformer): 사용자 변수를 가리키는 동적 이름 식별자에 원래 심볼 전달 (#4760 3단계-3)
- refactor(transformer): 동적 이름 식별자 중 사용자 변수가 아닌 34곳을 대상별 함수로 (#4760 3단계-2)
- refactor(transformer): 식별자 생성 함수를 가리키는 대상별로 나눈다 (#4760 3단계-1)
- fix(transpile): 변환 뒤 재분석 minify 에서도 export·import·클래스 식 이름 보존 (#4759 회귀)
- fix(transpile): minify 이름 줄이기를 낮춘 뒤 코드를 다시 분석해서 한다 (#4759)
- fix(transformer): es5 루프 캡처 _loop 매개변수·인자·끌어올린 var 에 심볼 전달 (#4760 2단계)
- fix(transformer): es5 상태 기계가 접은 선언·호이스트 var 에 심볼 전달 (#4760 2단계)
- fix(transformer): es5 기본값 매개변수 검사 참조에 심볼 전달 (#4760 2단계)
- chore(integration): 오라클 fixture 디렉토리에 잘못 커밋된 작업 파일 제거
- test(integration): 다운레벨 오라클에 단일 파일 변환 경로와 긴 변수 이름
- fix(transformer): 블록 스코핑 이름 조각을 string_table 재할당에서 보호
- feat(transformer): #4760 심볼 ID 누락 검사기 (ZNTC_DEBUG_SYMBOL_COVERAGE)
- refactor(transformer): #4746 3단계 — for-await 를 방문 없는 AST 풀이로
- refactor(transformer): #4746 2단계 — 상태 기계 for-in 을 AST 풀이로
- refactor(transformer): #4746 1단계 — for-of 를 일반 경로·상태 기계 공통 AST 풀이로
- docs(claude): 개발 워크플로에서 PR 전 /code-review max 필수 규칙 제거
- fix(transformer): #4750 상태 기계 구조분해 대입이 rest 를 채운다
- ci(integration): 오라클 스위트용 node 24 고정 + node<24 에선 건너뛰기
- test(integration): 다운레벨 런타임 오라클 스위트 — 네이티브 node 결과와 타겟별 번들 결과 비교
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.