2026-09-12

날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.

요약 (AI 작성)

hwpjs가 HWP5 차트에 들어간 날입니다(44커밋). 미리보기 이미지·ViewText·배포용 문서·동영상·OLE 컨테이너 검사를 마무리하고, 명시적으로 선택된 차트 type 선언과 참조 추적, grid prelude와 cell slot·raw 값 보존, dual string 디코드, 배경·글꼴·text block과 footnote 조립, 범례 문자열 참조, 배열과 조명, 순차적 axis 경계와 nullable axis 제목, line item, series v2 prefix까지 파싱했습니다. Contents 관찰과 포맷 규칙은 구분해 기록했습니다.

maru 원격 활동은 전날 열린 RAV6 #3576으로 원격 그림을 띄우고, 안 자랐으면 안 훑는 RAV7a(#3598)와 헬퍼·소비자의 이어읽기, 원격 전송 접기를 갖춘 RAV7b를 완성하며 RAV4b·RAV8a의 기존 결함 둘을 잡았습니다(#3614). 이어 저쪽이 본문을 찾는 원격 본문 검색을 붙였습니다(RAV8b, #3625). 활동 뷰는 결말이 왔는데 버리던 것을 고쳐 「없다」와 「못 봤다」를 바로 말하게 했습니다(#3636). 편집기는 고르면 그 자리에 보내기 상자가 뜨게 하고(NSH, #3594), 가로 상한을 설정으로 내고 걸렸을 때 알리며(#3604), 스크롤하면 캐럿이 밀리고 치면 화면이 떨던 것을 고쳤습니다(#3635). 병합 충돌 해결 계약을 인라인과 3-way로 정하고(#3611) 소스 컨트롤 충돌 행에서 편집기로 가는 길을 열었으며(S1, #3615), 문서 줄이 아닌 인라인 위젯 행을 세우는 #3641은 이날 PR이 열렸습니다.

session-host는 알림 후보 축을 세웠습니다. 앱 receipt 결속과 검증, callback 경로 실행, 알림 프로세스 정리와 정확 알림 정리 증명(#3612), 시나리오 자식 실행과 결속, continuity receipt·identity 노출과 증명, 후보 helper 고정과 identity 결속, 시나리오 receipt 소비, R2c 후보가 하나의 절대 마감시간을 쓰게 하고 게이트를 완성한 뒤(#3627) 제품 브리지를 추가했습니다(#3632). R3 보호 환경 프로필도 분리했습니다. 첫 화면이 8MiB를 넘는 세션이 영영 못 붙던 것(#3610), 한도로 막힌 업그레이드가 무엇이 컸는지와 연결이 어느 줄에서 닫혔는지를 안 남기던 것을 고쳤고, 진단 로그의 92%가 계측 자신이던 문제도 정리했습니다(#3605). recipe 다이제스트는 프레임당 한 번만 계산하게 했습니다(#3593).

터미널은 안 움직인 이미지까지 generation이 올라가 재업로드 폭풍이 나던 것을 고치고(#3608), kitty 애니메이션의 시계를 host cadence에 꽂아 뷰포트 밖에서는 멈추게 했으며(#3623), kitty 그래픽 배치를 화면에 귀속시켰습니다(#3631). U=1 애니메이션 placeholder와 delta 전송을 고치는 #3638·#3640은 이날 열렸습니다. CI는 밖에 있던 macOS 판정자 아홉(그중 하나는 빨간 채로)을 안으로 들였고(#3630), P5d 스모크가 인자를 못 받아 dmg 빌드가 막히던 것도 고쳤습니다(#3602).

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

커밋

ohah/hwpjs

ohah/maru

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#3641생성mergedmainfeat(editor): «문서 줄이 아닌 행»을 세운다 — S1.5 인라인 위젯 행
ohah/maru#3640생성mergedmainfix(session-host): U=1 격자를 delta 로도 나른다 — placeholder 이미지가 안 뜨던 원인
ohah/maru#3639생성mergedmainfeat(session-host): 알림 릴리스 runtime을 실제 후보가 준비한다
ohah/maru#3638생성mergedmainfix(terminal-core): U=1 애니메이션도 화면에 placeholder 가 있을 때만 돈다
ohah/maru#3637생성mergedmaindiag(session-host): 재동기화 sweep 이 무엇에 막혔는지 남기지 않던 것
ohah/maru#3636생성 · 병합mergedmainfix(activity): 결말이 왔는데 버리고 있었다 — 「없다」와 「못 봤다」를 거꾸로 말했다
ohah/maru#3635생성 · 병합mergedmainfix(editor): 스크롤하면 캐럿이 밀리고, 치면 화면이 떨던 것
ohah/maru#3634생성 · 병합mergedmaindiag(session-host): 연결이 어느 줄에서 닫혔는지 남기지 않던 것
ohah/maru#3633생성 · 병합mergedmainfeat(agent): orphan 의 mine 을 nonce 통째로 — 인스턴스 칸이 마지막 눈가림이었다
ohah/maru#3632생성 · 병합mergedmainfeat(session-host): 알림 후보 제품 브리지를 추가한다
ohah/maru#3631생성 · 병합mergedmainfix(terminal-core): kitty 그래픽 배치를 화면에 귀속시킨다
ohah/maru#3630생성 · 병합mergedmainfix(ci): macOS 판정자 아홉이 CI 밖이었다 — 그중 하나는 빨간 채로
ohah/maru#3629생성 · 병합mergedmainfeat(session-host): R3 보호 환경 프로필을 분리한다
ohah/maru#3628생성 · 병합mergedmaintest(session-host): recipe 캐시 판정자가 되돌리기를 못 잡던 것
ohah/maru#3627생성 · 병합mergedmainfeat(session-host): R2c 알림 후보 게이트를 완성한다
ohah/maru#3626생성 · 병합mergedmainfeat(session-host): R2c 알림 후보가 하나의 절대 마감시간을 쓴다
ohah/maru#3625생성 · 병합mergedmainfeat(remote-activity): RAV8b — 원격 본문 검색 (스택 완성)
ohah/maru#3624생성 · 병합mergedmainfeat(session-host): consume notification scenario receipt
ohah/maru#3623생성 · 병합mergedmainfeat(session-host): 애니메이션의 시계를 host cadence 에 꽂는다
ohah/maru#3622생성 · 병합mergedmainfeat(session-host): bind notification candidate identity
ohah/maru#3621생성 · 병합mergedmainfeat(session-host): pin notification helper in candidate
ohah/maru#3620생성 · 병합mergedmainfeat(session-host): prove notification continuity
ohah/maru#3619생성 · 병합mergedmaindocs(editor): S2 의 동작 자리를 정하니 조각이 하나 늘었다 — S1.5 인라인 위젯 행
ohah/maru#3618생성 · 병합mergedmainfeat(session-host): expose notification continuity identity
ohah/maru#3617생성 · 병합mergedmainfeat(session-host): bind notification continuity receipt
ohah/maru#3616생성 · 병합mergedmaindiag(session-host): 한도로 막힌 업그레이드가 무엇이 컸는지 안 남기던 것
ohah/maru#3615생성 · 병합mergedmainfeat(scm): 충돌 행에서 «편집기로 가는 길»을 연다 — S1
ohah/maru#3614생성 · 병합mergedmainfeat(remote-activity): RAV7b 완성 + RAV4b·RAV8a 기존 결함 둘
ohah/maru#3613생성 · 병합mergedmainfeat(session-host): 알림 시나리오 자식을 실제 정리 수명에 결속
ohah/maru#3612생성 · 병합mergedmainfeat(session-host): 앱이 정확 알림 정리를 증명한다
ohah/maru#3611생성 · 병합mergedmaindocs(editor): 병합 충돌 해결 계약 — 인라인과 3-way, 한 조각씩
ohah/maru#3610생성 · 병합mergedmainfix(session-host): 첫 화면이 8 MiB 를 넘는 세션이 영영 못 붙던 것
ohah/maru#3609생성 · 병합mergedmainfeat(remote-activity): RAV7b-1 — 머리 자국과 이어읽기 자국을 싣는다
ohah/maru#3608생성 · 병합mergedmainfix(terminal): 안 움직인 이미지까지 generation 이 올라갔다 — 재업로드 폭풍
ohah/maru#3607생성 · 병합mergedmainfeat(session-host): 알림 검증 자식 프로세스 경계를 닫는다
ohah/maru#3606생성 · 병합mergedmainfeat(session-host): own notification process cleanup
ohah/maru#3605생성 · 병합mergedmainfix(diag): 진단이 진단을 지우던 것 — 로그의 92 % 가 내 계측이었다
ohah/maru#3604생성 · 병합mergedmainfeat(editor): 가로 상한을 설정으로 내고 걸렸을 때 알린다
ohah/maru#3603생성 · 병합mergedmaindiag(session-host): screen_batch_enqueue 가 다섯 오류를 한 이름으로 묶던 것
ohah/maru#3602생성 · 병합mergedmainfix(build): P5d 스모크가 4 번째 인자를 못 받아 dmg 빌드가 막히던 것
ohah/maru#3601생성 · 병합mergedmainfeat(session-host): validate notification app receipts
ohah/maru#3600생성 · 병합mergedmainfeat(session-host): exercise notification app callback path
ohah/maru#3599생성 · 병합mergedmaintest(terminal): 마우스 리포트 스윕 — 「무엇을 거르는가」를 아무도 안 재고 있었다
ohah/maru#3598생성 · 병합mergedmainfeat(remote-activity): RAV7a — 안 자랐으면 안 훑는다
ohah/maru#3597생성 · 병합mergedmaindocs(file-explorer): 도크 view 의 소유자를 각 문서로 돌린다
ohah/maru#3596생성 · 병합mergedmainfeat(session-host): bind notification app receipts
ohah/maru#3594생성 · 병합mergedmainfeat(editor): 고르면 그 자리에 보내기 상자가 뜬다 (NSH)
ohah/maru#3593생성 · 병합mergedmainperf(session-host): recipe 다이제스트를 프레임당 한 번만 계산한다
ohah/maru#3581병합mergedmainprobe(session-host): recipe 가 프레임 생성 후 실제로 바뀌는지 잰다
ohah/maru#3579병합mergedmainfeat(agent): orphan 에 원본 길이를 남긴다 — 잘린 값이 「같아」 보였다
ohah/maru#3576병합mergedmainfeat(remote-activity): RAV6 — 원격 그림이 뜬다