2026-09-11

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

요약 (AI 작성)

maru가 원격 pane의 에이전트 활동을 화면에 올린 날입니다. 원격/SSH 이력 비목표를 뒤집고 무엇을 선 위로 보낼지 실서버에 헬퍼를 심어 실측으로 정한 뒤(#3539), 원격 활동 wire 코덱(RAV1, #3542), 헬퍼 판 9의 activity와 실물 왕복 게이트(RAV2, #3556), 원격 pane의 활동 표시(RAV3, #3565), 저쪽에서 체인 풀기(RAV4, #3570), 원격 pane에서 펼치면 본문이 뜨는 RAV5(#3572)까지 하루에 이었습니다. 각 단계마다 적대적 검증이 조용한 유실과 판 드리프트를 잡아냈습니다. 원격 그림을 띄우는 RAV6 #3576은 이날 PR이 열렸습니다. 에이전트 orphan 기록에는 채널 상태와 pane 전체를 남기게 했습니다.

편집기는 폭 캐시가 편집(#3523)·줄 수 변화(#3535)·탭 폭 변경(#3553)에도 살아남게 하고, 가장 긴 줄이 짧아지면 상한도 줄게 했으며, 되돌리기가 범위를 알게 했습니다(#3547). 가로 스크롤 상한을 지우고 줄마다 열→byte 체크포인트를 둔 뒤(#3566) 그 체크포인트를 프레임에 나눠 세웠습니다(#3573). 모바일은 붙어 있는데 다른 서버를 누르면 묻고 갈아타며(#3520) 다른 기계로 가면 화면을 처음으로 되돌려 M12를 닫았고, M3c로 끊은 것이 되돌아오지 않게 하고(#3545) 안 시킨 끊김이면 물러나며 다시 붙고(#3555), 세션 목록을 볼 때 다시 받고, ssh가 keepalive로 죽은 소켓을 알아채게 했습니다(#3551). UX 계약은 현재형으로 고쳤고, 넓은 화면에서 읽는 화면만 폭을 제한한 뒤(M5) 모바일 작업을 여기서 멈추고 재개 조건을 적었습니다(#3568).

session-host는 애니메이션이 있으면 handoff가 통째로 거부되던 것(#3516), 라벨 하나가 알림 전원 재전송을 부르던 것과 첫 프레임의 재전송(#3532, #3541), 자식을 못 받은 빈 host가 영영 안 죽어 업그레이드를 막던 것(#3543)을 고쳤습니다. handoff 크기를 태그별로 갈라 스크롤백이 주범이 아님을 확인했고(#3527), input→Metal submit과 앱 시작→첫 drawable을 재며, 레이아웃 조각을 host가 보관만 하게 했습니다(A-1, #3563). CR6f 장시간 idle soak를 제품 gate로 걸고(#3559), signed CLI evidence와 P5d 작업공간·증거 결속, Notification Center 제품 트랜잭션과 클릭 헬퍼를 더했습니다. 터미널은 kitty·OSC·키보드 인코더 방어선을 fuzz와 스윕으로 전수 훑어, kitty 여덟 중 여섯과 OSC 여섯 중 둘이 그물 밖이었고 키보드 인코더에서는 Caps Lock 하나를 못 잡았다는 것을 확인하고 메웠습니다(#3569, #3583). 테스트는 샤드 배정을 이름 해시로 바꾸고(#3521), 전날 열린 /tmp 픽스처 스윕 #3509를 병합하면서 스윕이 제품 소켓 뿌리 /tmp/maru-<uid>를 지울 뻔한 것을 막았습니다(#3519).

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

커밋

ohah/maru

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#3592생성 · 병합mergedmainfeat(session-host): add notification click helper
ohah/maru#3591생성 · 병합mergedmainfeat(session-host): Notification Center 제품 트랜잭션을 고정한다
ohah/maru#3590생성 · 병합mergedmainfeat(session-host): Notification Center 릴리스 증거 계약을 고정한다
ohah/maru#3589생성 · 병합mergedmaintest(session-host): freeze selection compatibility
ohah/maru#3588생성 · 병합mergedmainfix(session-host): restore fresh completion verification
ohah/maru#3587생성 · 병합mergedmaindocs(session-host): mark P5d R3 verification complete
ohah/maru#3586생성 · 병합mergedmainfeat(session-host): bind P5d evidence into release candidates
ohah/maru#3585생성 · 병합mergedmainfeat(session-host): bind P5d evidence to pinned candidate
ohah/maru#3584생성 · 병합mergedmainfeat(session-host): P5d 테스트 작업공간을 외부 소유로 격리한다
ohah/maru#3583생성 · 병합mergedmaintest(terminal): 키보드 인코더 스윕 — 여섯 중 다섯이 잡혔고, 못 잡은 하나는 Caps Lock 이었다
ohah/maru#3582생성 · 병합mergedmainfeat(session-host): add signed CLI evidence leaf
ohah/maru#3581생성mergedmainprobe(session-host): recipe 가 프레임 생성 후 실제로 바뀌는지 잰다
ohah/maru#3580생성 · 병합mergedmaindocs(session-host): define signed CLI release evidence
ohah/maru#3579생성mergedmainfeat(agent): orphan 에 원본 길이를 남긴다 — 잘린 값이 「같아」 보였다
ohah/maru#3578생성 · 병합mergedmaindocs(session-host): 현재 완료 상태를 한 목소리로 맞춘다
ohah/maru#3577생성 · 병합mergedmaindiag(session-host): rejected 여덟 자리가 한 이름으로 뭉쳐 있던 것
ohah/maru#3576생성mergedmainfeat(remote-activity): RAV6 — 원격 그림이 뜬다
ohah/maru#3575생성 · 병합mergedmaintest(terminal): OSC 방어선 스윕 — 여섯 중 둘이 그물 밖, 하나는 중복 방어선이었다
ohah/maru#3574생성 · 병합mergedmaindiag(session-host): 해싱 대역폭을 어느 자리가 쓰는지 안 갈리던 것
ohah/maru#3573생성 · 병합mergedmainperf(editor): 체크포인트를 프레임에 나눠 세운다 — 상한을 올릴 기계
ohah/maru#3572생성 · 병합mergedmainfeat(remote-activity): RAV5 — 원격 pane 에서 펼치면 본문이 뜬다
ohah/maru#3571생성 · 병합mergedmaindiag(session-host): attach 거절이 어느 판정인지 안 남던 것
ohah/maru#3570생성 · 병합mergedmainfeat(remote-activity): RAV4 — 체인을 저쪽에서 푼다
ohah/maru#3569생성 · 병합mergedmaintest(terminal): kitty 방어선을 전수로 훑었다 — 여덟 중 여섯이 그물 밖이었다
ohah/maru#3568생성 · 병합mergedmaindocs(mobile): 여기까지 — 모바일을 멈추고 재개 조건을 적는다
ohah/maru#3567생성 · 병합mergedmaintest(session-host): c3c 지연 예산을 판정한다
ohah/maru#3566생성 · 병합mergedmainperf(editor): 가로 스크롤 상한을 지운다 — 줄마다 열→byte 체크포인트
ohah/maru#3565생성 · 병합mergedmainfeat(remote-activity): RAV3 — 원격 pane 의 활동이 화면에 뜬다
ohah/maru#3564생성 · 병합mergedmainfeat(mobile): 넓은 화면에서 읽는 화면만 폭을 제한한다 (M5)
ohah/maru#3563생성 · 병합mergedmainfeat(session-host): 레이아웃 조각을 host 가 «보관만» 하게 한다 (A-1)
ohah/maru#3562생성 · 병합mergedmaintest(session-host): c3c 반복 표본을 수집한다
ohah/maru#3561생성 · 병합mergedmaindocs(session-host): CR6f soak 완료 상태를 동기화한다
ohah/maru#3560생성 · 병합mergedmaindiag(session-host): 수신 한도로 끊을 때 자리와 바이트가 안 남던 것
ohah/maru#3559생성 · 병합mergedmaintest(session-host): CR6f 장시간 idle soak를 제품 gate로 고정한다
ohah/maru#3558생성 · 병합mergedmainfix(workspace): 덮이는 레이아웃의 사본이 하나도 안 남던 것
ohah/maru#3557생성closedmainperf(session-host): 바뀔 수 없는 값을 매 씰마다 다시 해싱하던 것
ohah/maru#3556생성 · 병합mergedmainfeat(remote-activity): RAV2 — 헬퍼 판 9 activity 와 실물 왕복 게이트
ohah/maru#3555생성 · 병합mergedmainfeat(mobile): 안 시킨 끊김이면 물러나며 다시 붙는다 (M3c)
ohah/maru#3554생성 · 병합mergedmaintest(terminal): fuzz 의 탐지력을 재고, 공허하던 자원 단언을 세운다
ohah/maru#3553생성 · 병합mergedmainperf(editor): 탭 폭을 바꿔도 폭 캐시가 산다 — 세터가 다시 채운다
ohah/maru#3552생성 · 병합mergedmaindiag(app): 관측 이벤트당 비용을 줄일 수 있는지 가르는 두 숫자를 센다
ohah/maru#3551생성 · 병합mergedmainfeat(ssh): 죽은 소켓을 스스로 알아챈다 — keepalive (M3c)
ohah/maru#3550생성 · 병합mergedmaindocs(session-host): 완료된 N3와 성능 기준선을 계획에 반영한다
ohah/maru#3549생성 · 병합mergedmainfeat(mobile): 세션 목록을 «볼 때» 다시 받는다 (M3c)
ohah/maru#3548생성 · 병합mergedmainfeat(agent): orphan 의 mine 을 pane 통째로 남긴다 — 자른 값이 벽이었다
ohah/maru#3547생성 · 병합mergedmainperf(editor): 되돌리기도 범위를 안다 — 한 묶음의 앞끝과 꼬리
ohah/maru#3546생성 · 병합mergedmaindiag(session-host): runtime_changed 일곱 갈래가 한 이름으로 뭉쳐 침묵하던 것
ohah/maru#3545생성 · 병합mergedmainfeat(mobile): 끊은 것이 되돌아오지 않게 하고, 안 시킨 재접속을 말한다 (M3c)
ohah/maru#3544생성 · 병합mergedmaintest(terminal): fuzz 를 버그 사냥 도구로 쓴다 — seed 400 개를 훑었다
ohah/maru#3543생성 · 병합mergedmainfix(session-host): 자식을 못 받은 빈 host 가 영영 안 죽어 업그레이드를 막던 것
ohah/maru#3542생성 · 병합mergedmainfeat(remote-activity): RAV1 — 원격 활동 wire 코덱
ohah/maru#3541생성 · 병합mergedmainfix(session-host): 첫 프레임의 알림 재전송도 없앤다
ohah/maru#3540생성 · 병합mergedmaindocs(mobile): 열린 것을 한곳에 두고 표와 기계로 대조한다
ohah/maru#3539생성 · 병합mergedmaindocs(remote-activity): 원격/SSH 이력 비목표를 뒤집고 무엇을 선 위로 보낼지 실측으로 정한다
ohah/maru#3538생성 · 병합mergedmainperf(macos): 앱 시작부터 첫 drawable까지 잰다
ohah/maru#3537생성 · 병합mergedmaindocs(mobile): 계획서 상태를 서술절·코드와 맞춘다 (U1·U2)
ohah/maru#3536생성 · 병합mergedmaintest(terminal): kitty APC 무작위 fuzz — 문법을 알아야 코드를 밟는다
ohah/maru#3535생성 · 병합mergedmainperf(editor): 줄 수가 바뀌어도 폭 캐시가 산다 — 꼬리를 민다
ohah/maru#3534생성 · 병합mergedmainfeat(agent): orphan 에 채널 상태를 함께 남긴다 — 「못 봤다」와 「안 맞았다」를 가른다
ohah/maru#3533생성 · 병합mergedmaindocs(mobile): UX 계약을 현재형으로 — 덮개는 «정해진 것» 이다 (U0)
ohah/maru#3532생성 · 병합mergedmainfix(session-host): 라벨 하나가 전원 재전송을 부르던 것 — 세대 축을 runtime 별로 나눈다
ohah/maru#3531생성 · 병합mergedmaindocs(mobile): M12 를 닫는다 — 그리고 그것을 못 잡은 판정자를 고친다
ohah/maru#3530생성 · 병합mergedmainperf(editor): 가장 긴 줄이 짧아지면 상한도 준다 — 캐시로 정확히 센다
ohah/maru#3529생성 · 병합mergedmainperf(session-host): measure input to Metal submit
ohah/maru#3528생성 · 병합mergedmaintest(terminal): 애니메이션 합성 경로 넷과 건너뛰기·재전송을 고정한다
ohah/maru#3527생성 · 병합mergedmaindiag(session-host): handoff 크기를 태그별로 가른다 — 스크롤백은 주범이 아니었다
ohah/maru#3526생성 · 병합mergedmaindiag(session-host): 알림 바인딩 RPC 를 «왜» 보냈는지 남긴다 — 실측 5 대 95
ohah/maru#3525생성 · 병합mergedmainfeat(mobile): 다른 기계로 갈아타면 화면을 처음으로 되돌린다 (M12-f3)
ohah/maru#3524생성 · 병합mergedmainfix(tests): 바퀴를 다시 만들었다 — 스윕이 기존 clean-tmp-fixtures.sh 를 부른다
ohah/maru#3523생성 · 병합mergedmainperf(editor): 편집이 폭 캐시를 버리지 않는다 — 바뀐 줄만 다시 센다
ohah/maru#3522생성 · 병합mergedmaintest(terminal): 애니메이션의 이음매와 PNG 프레임 거부를 고정한다
ohah/maru#3521생성 · 병합mergedmainfix(test): 샤드 배정을 이름 해시로 — 테스트 하나가 2741 개의 배정을 흔들었다
ohah/maru#3520생성 · 병합mergedmainfeat(mobile): 붙어 있는데 다른 서버를 누르면 «묻고 갈아탄다» (M12-f2)
ohah/maru#3519생성 · 병합mergedmainfix(tests): 스윕이 제품 소켓 뿌리를 지울 뻔했다 — /tmp/maru-<uid> 를 뺀다
ohah/maru#3518생성 · 병합mergedmaindocs(session-host): align completion status
ohah/maru#3517생성 · 병합mergedmaindocs(tests): 「헬퍼로 옮기면 해결된다」는 오판을 막아 둔다
ohah/maru#3516생성 · 병합mergedmainfix(session-host): 애니메이션이 있으면 handoff 가 통째로 거부됐다
ohah/maru#3515생성 · 병합mergedmainfix(app): 빌드 신원을 못 읽어도 말한다 — 부재가 같은 혼동을 만들었다
ohah/maru#3514생성 · 병합mergedmaindocs(app-session): 상태 객체 열다섯은 .{} 로 못 만든다 — 재시도하지 말 것
ohah/maru#3513생성 · 병합mergedmaintest(mobile): 판정자가 틀린 «모양» 을 물고 있었다 — 나가는 «자리» 를 센다 (M2-f2)
ohah/maru#3509병합mergedmainfix(tests): 러너가 묵은 /tmp 픽스처를 쓸어 낸다 — 47.4 GB 가 쌓여 있었다