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
- fix(session-host): 먼저 죽은 자식은 그룹 실패가 아니다
- fix(mobile): 「아직 때가 아니다」를 실패로 접어 세션 화면 재진입이 죽었다
- feat(session-host): run isolated baseline child
- test(session-host): pin baseline child runner
- docs(session-host): define baseline child runner
- fix(session-host): isolate baseline child paths
- test(session-host): pin isolated baseline child paths
- docs(session-host): define isolated baseline child paths
- feat(session-host): isolate baseline runner workspace
- test(session-host): pin baseline runner workspace
- docs(session-host): define baseline runner workspace
- docs(scm): 무엇이 감시자를 깨우는지 실측으로 확정한다
- fix(session-host): 주석에서 incident owner 파일 이름을 뺀다 — 판정자가 그 이름을 센다
- docs(session-host): 콜드런치 비용을 실측해 적는다 — 「최대 수 초」는 상한이지 비용이 아니었다
- feat(session-host): 재접속이 한 바퀴도 못 도는 이유를 남긴다
- feat(session-host): bind preserved candidate app
- test(session-host): pin candidate app authority
- docs(session-host): define candidate app authority
- feat(session-host): own baseline product execution
- test(session-host): pin baseline product owner
- docs(session-host): define baseline product owner
- feat(session-host): own baseline evidence transaction
- test(session-host): pin baseline evidence transaction
- docs(session-host): define baseline evidence transaction
- fix(editor): 상태바가 편집되는 문서를 「읽기 전용」이라 말했다 (§2.2)
- feat(session-host): execute preserved signed candidate
- test(session-host): drive signed candidate app path
- docs(session-host): bind baseline gates to signed app
- fix(scm): 읽기가 감시자를 깨우고 있었다 · 영구 실패는 포기한다 (RW5)
- fix(session-host): 거절 관문이 누가 쥐고 있는지도 남긴다
- fix(agent): 관측이 stale 로 내려간 사유를 남긴다 — 지금은 통째로 삼킨다
- fix(session-host): 새 Term 을 만드는 것도 재시도 계기다 — 창을 새로 열어야만 복구되던 것을 메운다
- fix(session-host): host 연결 실패가 앱 세션을 영영 강등하지 않는다 — 30초 뒤 한 번 더 붙는다
- chore(editor): 편집 연산 캡처 훅 — 화면에 남는 결과를 잰다 (§3.9a·§3.9b)
- feat(session-host): preserve signed candidate artifacts
- test(session-host): drive signed candidate artifacts
- docs(session-host): define signed candidate artifacts
- docs: S11-6 이 실기에서 처음 동작했다 — 그 회차가 드러낸 것과 전달 규약
- fix(session-host): 폰의 뷰포트 선언이 맥에 «닿지 않고» 있었다 — 관측자 control 이 소켓을 못 떠난다 (S11-6)
- feat(session-host): emit default false evidence
- test(session-host): drive default false evidence
- docs(session-host): define default false evidence leaf
- feat(session-host): emit signed app quit evidence
- test(session-host): drive signed app quit evidence
- docs(session-host): define signed app quit evidence leaf
- feat(scm): 원격이 바뀌면 도크가 스스로 갱신된다 (RW3)
- feat(session-host): emit signed upgrade evidence v2
- test(session-host): drive canonical signed upgrade evidence
- docs(session-host): define signed upgrade evidence leaf
- feat(editor): 대소문자 변환 — 접기와 대칭인 짝을 세운다 (§3.9b)
- fix(ci): Resources 아래 감시자를 서명하지 않아 공증이 릴리스를 거부했다
- feat(session-host): verify published release attestation
- test(session-host): drive post-publish attestation authority
- docs(session-host): define post-publish attestation authority
- fix(test): 옮긴 릴리스 워크플로 판정 둘이 원본보다 느슨했다 (적대적 검증)
- refactor(build): 릴리스 워크플로 계약을 셸에서 Zig 로 — 넷 중 하나
- fix(golden): 캡처가 낡았다는 사실을 먼저 말한다 — 사흘 묵은 그림을 회귀로 읽었다
- fix(session-host):
Io.Dir의 필드는.fd가 아니라.handle이다 — main 이 깨져 있었다 - feat(agent): 화면이 뒤집은 배지에 각주 표식을 붙인다 (§1.4)
- feat(scm): 감시자 네 변종을 번들에 싣는다 (RW2b)
- test(session-host): drive exact draft publication authority
- docs(session-host): define exact draft publication authority
- feat(session-host): publish exact validated draft
- fix(agent-events): 커서를 파일 이름으로 보낸다 — tmux pane 에서 이어읽기가 통째로 안 먹었다
- docs(session-host): 무엇이 왜 안 돌았는지와 남은 한계를 적는다 (S11-6)
- test(session-host): 값이 아니라 «자리» 를 세는 게이트를 단다 (S11-6)
- fix(session-host): 폰이 좁혀도 맥이 모르고 있었다 — 세 자리를 고친다 (S11-6)
- feat(session-host): validate redownloaded draft assets
- test(session-host): drive draft asset redownload authority
- docs(session-host): define draft asset redownload authority
- feat(session-host): own draft asset attachment state
- test(session-host): drive draft asset attachment authority
- docs(session-host): define draft asset attachment authority
- docs(scm): 원격 감시 계획에 진행 상태를 적는다 (RW2a 후속)
- feat(scm): 원격 감시자 설치 계약 — uname 판별·멱등 확인·심기 (RW2a)
- feat(session-host): add attestation action authority
- test(session-host): drive attestation action authority
- docs(session-host): define attestation action authority
- feat(session-host): attest authored release artifacts
- test(session-host): drive authored artifact attestation
- docs(session-host): define authored artifact attestation
- feat(editor): 줄 조작 넷과 Enter 자동 들여쓰기 —
⇧⌘K·Tab/⇧Tab(§3.9a) - docs(editor): 여러 뷰 축의 실측·선례를 원장으로 남긴다 — 병합 편집기·Split in Group 예약
- feat(session-host): author candidate release manifest
- test(session-host): drive manifest authoring authority
- docs(session-host): define manifest authoring authority
ohah/pdf
- perf: 걸림돌을 실제 바이트 잦기로 고른다
- perf: 찾을 말에서 드문 글자를 걸림돌로 삼는다
- perf: JPEG 색차 확대에서 온해상도 성분은 표를 건너뛴다
- perf: JPEG 을 푸는 값을 122ms 에서 52ms 로 — 세 군데를 고쳤다
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.