2026-09-29
한국 시간(KST) 기준으로 하루를 나눴습니다. 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 조회: 2026-10-06 KST. 공개 저장소에서 조회한 활동만 포함합니다.
요약 (AI 작성)
maru는 9/28 실측에서 런타임 16개를 든 host가 delta_seq_mismatch로 GUI 연결 전체를 닫은 사건을 추적했습니다. #3997이 어긋난 seq·gen 값을 로그에 싣고, 창 크기가 A→B→A로 제자리에 돌아오면 격자는 같아도 세대가 2 늘어 연결이 끊기던 원인을 #4001이 스냅샷 전송으로 막았습니다. 다른 이유로 frontier가 어긋나도 해당 스트림만 무효화하고 resync로 복구하도록 #4008이 바꿨고, runtime 8개 이상인 host가 poison 뒤 재접속하지 못하던 문제는 host당 resident charge 하나로 고쳤습니다(#4011). 업그레이드 handoff 실패·host 자연 종료·spawn 재시도에서 로그가 없거나 틀리던 세 자리를 보완한 #4014는 이날 밤 열려 자정 직후 병합됐습니다.
편집기 쪽은 아침에 한글 IME 별칭을 포함한 명령 팔레트 퍼지 검색 #3995가 병합됐습니다. 가장 잘 맞는 퍼지 정렬로 점수를 매기고, IME 조합이 남아 있을 때 Enter를 무시하며, 모달 IME 입력이 지속 검색보다 우선하게 하는 수정도 함께 들어갔습니다. 이어서 IME 조합 중인 글자를 모든 커서에 함께 보여 주고(#4000), 인레이 힌트가 있는 줄을 랩할 때 공백 표시가 debug 빌드에서 단언으로 죽거나 기호를 빠뜨리던 문제를 고쳤습니다(#4006). 사이드바·pane 라벨 등의 인라인 이름 변경은 caret 편집기로 옮겨 화살표 키로 커서를 움직일 수 있게 됐습니다(#4003). 그리기 op 목록이 잘린 경우를 보고하고 op 저장 방식 후보(B2)를 측정·평가하는 작업(#4002, #4004)도 병합됐고, 인접한 검색 강조 op를 병합하는 #4010은 이날 열려 다음 날 병합됐습니다. 편집기 검색·IME 구현 현황 문서(#3998, #3999)도 갱신했습니다.
오래 켜 둔 앱에서 한글이 엉뚱한 글리프로 그려지던 문제는 버려진 글리프 배치를 아틀라스가 업로드된 것으로 기억한 탓이었고, #4009에서 고쳤습니다. 터미널 PCRE2 찾기 병합 뒤 하루 가까이 빨갛던 main의 session host 잡은 찾기 요청 골든을 고친 #4012로 복구했습니다. Chromium 웹 패널은 제어 채널 버전 불일치 안내·maru-chromium 설치물·라이선스·entitlements를 다룬 W7a1 #4005와 후속 #4013이 기능 브랜치 docs/web-panel-osr-backend에 병합됐고, main 통합 PR #3867은 집계 시점에도 열려 있습니다.
spinon은 새벽에 Taffy 레이아웃 R10 적합성 실험 #9를 병합하고, wgpu 모바일 GPU 경로 위험 검증 #10, 플랫폼 생명주기와 GPU 복구 검증 #11, 공통 호스트 계약 초안 #12, R03 명세 링크 수정 #13을 병합했습니다. R06 스레드·소유권 위험 표 #14는 이날 열려 다음 날 병합됐습니다. hwpjs는 검증된 zlib 래핑 스트림을 받아들이게 하고, 잘못된 문서 속성 길이를 식별하며, HWP5 읽기 전용 문서 투영을 추가했습니다.
공개 커밋 59개, 해당일 생성 또는 병합된 PR 25개를 정리했습니다. PR 생성 23개·병합 22개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/hwpjs
- feat(hwp5): add read-only document projection
- fix(hwp5): identify invalid document properties length
- fix(hwp5): accept validated zlib-wrapped streams
ohah/maru
- test(editor): EF3 의 두 tick 비교를 벽시계와 떼어 낸다 — 찾기 상자 caret 깜빡임이 끼면 세대가 늘었다
- test(session-host): 찾기 요청 골든에
regex를 싣는다 — main 의 session host 잡이 하루 가까이 빨갛던 것 - test(session-host): main 에서만 도는 판정자가 옛 runtime별 charge(3)를 잡고 있었다 — host 하나에 charge 하나로 고치고 빈 그물을 메운다
- test(session-host): anchor 이전을 제품 close 경로로 타고, 정산 없는 teardown 이 charge 를 0 으로 돌리는지 잰다
- fix(session-host): runtime 8개 이상 host 가 poison 뒤 재접속을 영영 못 하던 것 — host admission 하나에 resident charge 하나
- docs: PR 캡처 첨부를 gh 내장
--attach로 — 옛gh attach확장 문구를 걷는다 - test(editor): 무작위에 cluster 가운데 앵커와 작은 작업 칸을 섞는다
- docs(editor): 적대적 8회차 — 결함 기록의 판정자 목록과 WSF7 입력 부류를 지금 코드에 맞춘다
- test(editor): INL14·WSF7 무작위에 §3.8 표기와 결합 문자를 섞는다
- test(editor): INL16 — seek 가 가로 창 첫 열에 정확히 떨어져도 행 시작 열이 맞다; rowEndByte 헛방어를 걷는다
- test(editor): INL15 — 랩 경계에 딱 맞게 끝난 힌트 뒤 행의 클릭을 제품 경로로 잰다
- test(editor): WSF7 에
boundary의 랩 행 끝 사례 — 넓은 창은 죽지 않고도 기호를 더 세웠다 - test(editor): WSF7 을 제품 좌표로 — 첫 줄이 문서 중간이고 힌트 창이 그보다 앞에서 시작한다
- test(editor): WSF7 에 가로 스크롤 갈래를 섞는다 — 랩을 끄고 민 창도 인레이 뒤 기호 자리를 대조한다
- test(chrome-lab): editor-whitespace-inlay 시나리오와 골든 — 인레이 뒤 탭이 랩된 행의 공백 기호를 제품 Metal 로 고정
- fix(editor): 인레이 + 랩에서 공백 표시가 죽던 것 — 행 창을 인레이까지 세어 걷고, 행 시작 열의 뜻을 하나로
- fix(renderer): 버린 글리프 배치를 아틀라스가 「올라감」으로 기억해 한글이 엉뚱한 글리프로 그려지던 것
- test(editor): force op growth failure across allocators
- test(editor): challenge B2 retry evidence and cache cost
- test(editor): validate B2 full-frame retry limits
- test(editor): evaluate B2 op storage candidates
- test(editor): restrict op benchmark clock to macOS
- test(editor): measure op list growth copy proxy
- fix(editor): report draw op truncation and measure B2 options
- fix(session-host): 탭 하나의 frontier 어긋남이 창의 탭 전부를 끊던 것 — 그 스트림만 무효화해 resync 로 복구한다
- fix(chrome): 사이드바 이름 변경 중 커서가 왔다갔다 안 되던 것 — 인라인 rename 을 caret 편집기로 옮긴다
- fix(session-host): 창 크기가 제자리로 돌아오면 연결 전체가 끊기던 것 — base 세대가 다르면 스냅샷을 보낸다
- docs(session-host): 적대적 검증 5회차 — 원인 절의 과장 둘을 바로잡고 채택한 E2E 를 정리한다
- test(session-host): 적대적 검증 4회차 — 제품 경로를 실제로 돌려 확인하고, 틀린 가설을 재현된 원인으로 바꾼다
- test(session-host): 적대적 검증 3회차 — 실제로 나는 유일한 모양을 재고, 철자만 잠그던 핀을 푼다
- test(session-host): 적대적 검증 2회차 — 상한 자체를 재고, 기록을 지우는 자리와 죽은 갈래를 막는다
- test(session-host): 적대적 검증 1회차 — 값 판정자를 PR 게이트로 옮기고, host_log 상한에 줄이 통째로 버려지던 것을 막는다
- fix(session-host): delta_seq_mismatch 가 이름만 남기고 숫자를 버리던 것 — 기대값과 실제값을 싣는다
- docs(editor): add live multicursor IME screen proof
- feat(editor): mirror live IME composition at every cursor
- docs(editor): record multicursor IME visual verification
- docs(editor): correct stale completion and parser status
- docs(editor): sync implemented search and IME progress
- fix(input): prioritize modal IME ownership over persistent search
- fix(palette): score best fuzzy match alignment
- fix(palette): ignore Enter while IME composition remains
- fix(palette): clear stale results after IME allocation failure
- feat(palette): fuzzy search with Korean IME aliases
ohah/spinon
- docs: R03 명세의 계획 문서 링크 수정
- docs: iOS GPU 탭 증거 명시
- docs: 멀티윈도우·GPU 탭 증거 보강
- test(renderer): 복구 경로 검증 보강
- spike(renderer): 플랫폼 생명주기와 GPU 복구 검증
- docs: 호스트 revision 입력 검증 보완
- docs: 호스트 계약 revision 경계 보완
- docs(spec): 공통 호스트 계약 초안 작성
- spike(renderer): wgpu GPU 렌더링 경로 위험 검증
- spike: Android·iOS GPU 표면 입력 위험 실험
- fix: iOS R10 캡처 개행과 측정 근거 동기화
- fix: Android R10 보고 화면과 캡처 정돈
- feat: Taffy R10 실험과 시뮬레이터 근거 추가
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.