2026-09-03

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

요약 (AI 작성)

maru 편집기에 줄 조작이 들어온 날입니다. 줄 조작 넷과 Enter 자동 들여쓰기, ⇧⌘K·Tab/⇧Tab을 넣고(§3.9a, #3126), 접기와 대칭인 대소문자 변환을 세웠으며(§3.9b, #3143), 편집 연산 캡처 훅으로 화면에 남는 결과를 재게 했습니다(#3150). 상태바가 편집되는 문서를 「읽기 전용」이라 말하던 것도 고쳤습니다(#3156). 이를 계획에 기록하며 「계약 안」 편집 보조를 닫는 문서 #3160은 이날 PR이 열렸습니다. @ohah/pdf는 JPEG을 푸는 값을 세 군데 고쳐 122ms에서 52ms로 줄였고, 찾을 말의 걸림돌을 실제 바이트 잦기로 고르게 했습니다.

소스 컨트롤의 원격 감시자는 uname 판별·멱등 확인·심기의 설치 계약(RW2a, #3129)과 네 변종 번들(RW2b, #3131)을 거쳐, 원격이 바뀌면 도크가 스스로 갱신되게 했습니다(RW3, #3146). 읽기가 감시자를 깨우던 것과 영구 실패를 계속 재시도하던 것도 고쳤습니다(#3153). S11-6은 실기에서 처음 동작해 검증 행렬과 전달 규약을 적었고(#3152), 폰이 좁혀도 맥이 모르던 세 자리(#3133)와 관측자 control이 소켓을 못 떠나 뷰포트 선언이 맥에 닿지 않던 것(#3149)을 고쳤습니다. 에이전트 쪽은 화면이 뒤집은 배지에 각주 표식을 붙이고(#3134), tmux pane에서 이어읽기가 안 먹던 커서 문제를 고쳤으며(#3135), 관측이 stale로 내려간 사유를 남기게 했습니다.

session-host는 전날 열린 candidate release manifest 작성 #3125를 병합하고, 작성한 artifact attest, attestation action 권위, 정확한 draft asset 첨부와 재다운로드 검증, 검증된 draft 게시(#3136), 게시된 release attestation 검증, signed upgrade evidence v2와 앱 Quit·기본값 false 증거 leaf, 서명된 candidate 보존과 실행, baseline evidence 트랜잭션·제품 실행·runner workspace·child path 격리까지 쌓았습니다. host 연결 실패가 앱 세션을 영영 강등하지 않고 30초 뒤 다시 붙게 했고(#3141), 재접속이 한 바퀴도 못 도는 이유를 남기며(#3155), Io.Dir의 필드가 .fd가 아니라 .handle이라 깨져 있던 main을 고쳤습니다(#3138). CI는 Resources 아래 감시자를 서명하지 않아 공증이 거부되던 원인을 고쳤고(#3142), 릴리스 워크플로 계약 하나를 셸에서 Zig로 옮겼습니다. 떼어낸 main executable에 건 codesign 검증 문제를 고치는 #3168은 이날 열렸습니다.

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

커밋

ohah/maru

ohah/pdf

PR (해당일 생성/머지)

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

저장소PR해당일 활동상태대상 브랜치제목
ohah/maru#3168생성mergedmainfix(ci): 떼어낸 main executable 에 건 codesign 검증이 릴리스를 매번 막았다
ohah/maru#3167생성 · 병합mergedmainfeat(session-host): run isolated baseline child
ohah/maru#3166생성 · 병합mergedmainfix(session-host): isolate baseline child paths
ohah/maru#3165생성 · 병합mergedmainfix(session-host): 먼저 죽은 자식은 그룹 실패가 아니다
ohah/maru#3164생성 · 병합mergedmainfix(mobile): 「아직 때가 아니다」를 실패로 접어 세션 화면 재진입이 죽었다
ohah/maru#3163생성 · 병합mergedmaindocs(scm): 무엇이 감시자를 깨우는지 실측으로 확정한다
ohah/maru#3162생성 · 병합mergedmainfeat(session-host): isolate baseline runner workspace
ohah/maru#3161생성 · 병합mergedmaindocs(session-host): 콜드런치 비용을 실측해 적는다 — 「최대 수 초」는 상한이지 비용이 아니었다
ohah/maru#3160생성mergedmaindocs(editor): 대소문자 변환과 캡처 훅을 계획에 기록한다 — 「계약 안」 편집 보조 여섯이 닫혔다
ohah/maru#3159생성 · 병합mergedmainfeat(session-host): bind preserved candidate app
ohah/maru#3158생성 · 병합mergedmainfeat(session-host): own baseline product execution
ohah/maru#3157생성 · 병합mergedmainfeat(session-host): own baseline evidence transaction
ohah/maru#3156생성 · 병합mergedmainfix(editor): 상태바가 편집되는 문서를 「읽기 전용」이라 말했다 (§2.2)
ohah/maru#3155생성 · 병합mergedmainfeat(session-host): 재접속이 한 바퀴도 못 도는 이유를 남긴다
ohah/maru#3154생성 · 병합mergedmainfeat(session-host): execute preserved signed candidate
ohah/maru#3153생성 · 병합mergedmainfix(scm): 읽기가 감시자를 깨우고 있었다 · 영구 실패는 포기한다 (RW5)
ohah/maru#3152생성 · 병합mergedmaindocs: S11-6 이 실기에서 처음 동작했다 — 검증 행렬과 전달 규약
ohah/maru#3151생성 · 병합mergedmainfeat(session-host): preserve signed candidate artifacts
ohah/maru#3150생성 · 병합mergedmainchore(editor): 편집 연산 캡처 훅 — 화면에 남는 결과를 잰다 (§3.9a·§3.9b)
ohah/maru#3149생성 · 병합mergedmainfix(session-host): 폰의 뷰포트 선언이 맥에 닿지 않고 있었다 — 관측자 control 이 소켓을 못 떠난다 (S11-6)
ohah/maru#3148생성 · 병합mergedmainfeat(session-host): 기본값 false 증거 leaf를 생성한다
ohah/maru#3147생성 · 병합mergedmainfix(agent): 관측이 stale 로 내려간 사유를 남긴다 — 지금은 통째로 삼킨다
ohah/maru#3146생성 · 병합mergedmainfeat(scm): 원격이 바뀌면 도크가 스스로 갱신된다 (RW3)
ohah/maru#3145생성 · 병합mergedmainfeat(session-host): 서명 앱 Quit 증거 leaf를 생성한다
ohah/maru#3144생성 · 병합mergedmainfeat(session-host): emit signed upgrade evidence v2
ohah/maru#3143생성 · 병합mergedmainfeat(editor): 대소문자 변환 — 접기와 대칭인 짝을 세운다 (§3.9b)
ohah/maru#3142생성 · 병합mergedmainfix(ci): Resources 아래 감시자를 서명하지 않아 공증이 릴리스를 거부했다
ohah/maru#3141생성 · 병합mergedmainfix(session-host): host 연결 실패가 앱 세션을 영영 강등하지 않는다 — 30초 뒤 한 번 더 붙는다
ohah/maru#3140생성 · 병합mergedmainfeat(session-host): verify published release attestation
ohah/maru#3139생성 · 병합mergedmainrefactor(build): 릴리스 워크플로 계약을 셸에서 Zig 로 — 넷 중 하나
ohah/maru#3138생성 · 병합mergedmainfix(session-host): Io.Dir 의 필드는 .fd 가 아니라 .handle 이다 — main 이 깨져 있었다
ohah/maru#3137생성 · 병합mergedmainfix(golden): 캡처가 낡았다는 사실을 먼저 말한다 — 사흘 묵은 그림을 회귀로 읽었다
ohah/maru#3136생성 · 병합mergedmainfeat(session-host): publish exact validated draft
ohah/maru#3135생성 · 병합mergedmainfix(agent-events): 커서를 파일 이름으로 보낸다 — tmux pane 에서 이어읽기가 통째로 안 먹었다
ohah/maru#3134생성 · 병합mergedmainfeat(agent): 화면이 뒤집은 배지에 각주 표식을 붙인다 (§1.4)
ohah/maru#3133생성 · 병합mergedmainfix(session-host): 폰이 좁혀도 맥이 모르고 있었다 — S11-6 세 자리와 그 자리를 세는 게이트
ohah/maru#3132생성 · 병합mergedmainfeat(session-host): validate exact draft downloads
ohah/maru#3131생성 · 병합mergedmainfeat(scm): 감시자 네 변종을 번들에 싣는다 (RW2b)
ohah/maru#3130생성 · 병합mergedmainfeat(session-host): attach exact draft assets
ohah/maru#3129생성 · 병합mergedmainfeat(scm): 원격 감시자 설치 계약 — uname 판별·멱등 확인·심기 (RW2a)
ohah/maru#3128생성 · 병합mergedmainfeat(session-host): add attestation action authority
ohah/maru#3127생성 · 병합mergedmainfeat(session-host): attest authored release artifacts
ohah/maru#3126생성 · 병합mergedmainfeat(editor): 줄 조작 넷과 Enter 자동 들여쓰기 — ⇧⌘K·Tab/⇧Tab (§3.9a)
ohah/maru#3125병합mergedmainfeat(session-host): author candidate release manifest