2026-08-27
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
maru의 편집기가 편집기다워진 날입니다. 괄호가 저절로 닫히고 고른 것을 감싸며(§3.7, #2747), ⌘/가 줄을 주석 처리하는데 그러려면 없던 언어 판정을 세워야 했고(#2757), ⌥⌘F와 두 번째 입력줄로 찾은 것을 바꾸며(#2760), 조합 중인 한글이 편집기에 보이게 했습니다(N3 §11, #2763). 기능은 서 있었지만 키가 없던 ⌘Z 되돌리기도 붙였습니다(#2777). 소스 컨트롤은 커밋·턴 파일 줄이 몇 줄 바뀌었는지 말하고(#2753), 소비자 없이 돌던 git 읽기 셋을 걷었으며, 파일을 열면 트리가 맨 위로 튕기던 것을 고쳤습니다(#2762). 상태바는 세션 호스트와 host-backed 터미널의 사용량을 답하게 했습니다(#2756).
session-host는 릴리스 어댑터를 시작했습니다. canonical release manifest core(#2748)와 typed release evidence 검증, 산출물 결속, publication order 검증을 넣고, adapter 계약을 동결한 뒤(#2759) adapter 파일 보안, 명령 제한, GitHub context 결속, 환경 캡처, GitHub 저장소·릴리스 응답 검증, Git tag 응답 검증과 tag chain 해석(#2773)까지 이었습니다. 이는 릴리스 검증 기반이며 이날 릴리스가 나간 것은 아닙니다. 전날 열린 서명 워크플로 제한 #2745도 병합됐습니다. 느슨한 .bak 권한이 종료를 막던 것과 성공한 upgrade를 실패로 읽어 host가 둘로 갈리던 것을 고쳤고(#2755), --stream이 첫 화면만 흘리고 멈추던 것(#2767)과 세션을 죽이는 두 경로가 사유를 남기지 않던 것(#2774)도 고쳤습니다. CI는 keep-alive 경로를 상시 게이트로 올렸습니다(#2754).
Windows는 전날 열린 #2746으로 훑는 동안 창이 멈추던 것을 제출과 수령을 갈라 고쳤고, 파일 줄을 누르면 사이드바 전환기를 재사용해 열리게 하면서 저장소가 아닌 폴더에서 이중 해제로 죽던 것과 아틀라스 성장 신호를 삼키던 것을 적대적 검증 일곱 회차로 고쳤습니다(#2752). 파일 카드 ✕를 누르게 하고 열 배치를 중립으로 모으는 #2775는 이날 PR이 열렸습니다. 모바일은 컨트롤 채널이 명령을 갈아 끼우게 했습니다(S11-4, #2770).
공개 커밋 56개, 해당일 생성 또는 병합된 PR 33개를 정리했습니다. PR 생성 31개·병합 32개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/maru
- fix(config): 컴파일 진단을 영어로 — 이 파일의 한국어 리터럴 원장은 0이다
- feat(editor): ⌘Z 로 되돌린다 — 기능은 서 있었고 키가 없었다
- test(boundary): 빈 응답 진단으로 client 선언이 하나 늘었다
- feat(observability): 세션을 죽이는 두 경로가 사유를 남기게 한다
- feat(session-host): parse GitHub release environments
- feat(session-host): resolve Git tag chains
- docs(plans): 편집기 계획이 자기 커밋보다 늦게 낡았다 — 닫힌 것 여섯을 표시하고 못 본 자리 하나를 적는다
- feat(session-host): validate Git tag responses
- feat(mobile): 컨트롤 채널이 명령을 갈아 끼운다 (S11-4)
- feat(session-host): validate GitHub release responses
- feat: validate release repository responses
- fix(session-host): --stream 이 첫 화면만 흘리고 멈추던 것
- fix(windows): 적대적 검증 7회차 — u16 가드가 한 곳만 빠졌다
- test(windows): 적대적 검증 6회차 — 경계 판정이 공허했다, 그리고 POSIX 는 원래 맞았다
- test(windows): 적대적 검증 5회차 — 삼킴이 디바이더까지 먹지 않는지 잰다
- docs(windows): §2m.72 — 저장소 밖에서 열면 죽었다, 그리고 못 좁힌 것 하나
- fix(windows): 편집기가 아틀라스 성장 신호를 삼켰다 — 크롬이 옛 UV 를 든 채 남는다
- fix(windows): 저장소가 아닌 폴더에서 열면 이중 해제로 죽었다
- fix(windows): 적대적 검증 3회차 — 경계 침범을 안 봤고, 거절 이유가 뭉개졌고, 최근 파일이 죽었다
- fix(windows): 적대적 검증 2회차 — 문서를 보는 중에 친 글자가 안 보이는 셸로 갔다
- fix(windows): 적대적 검증 1회차 — 판정 셋이 속 비었고 + 가 화면을 안 바꿨다
- docs(windows): §2m.70 — 파일 열기, 그리고 목적지를 사용자에게 물은 이유
- feat(windows): 파일 줄을 누르면 열린다 — 사이드바 전환기를 재사용한다
- refactor(windows): 편집기 프레임 조립을 스모크 밖으로 — 두 벌이 될 뻔했다
- docs(windows): 지운 줄 알았던 옛 주석이 남아 코드와 반대를 말했다
- feat(session-host): capture release adapter environment
- feat: bind release adapter GitHub context
- fix(file-tree): 파일을 열면 맨 위로 팅겼다 — 교체 헬퍼가 root 교체용 정책을 들고 있었다
- refactor(scm): 소비자 없이 돌던 git 읽기 셋을 걷어낸다 — 화면은 13일 전에 사라졌다
- feat(session-host): bound release adapter commands
- feat(editor): 편집기에서 조합 중인 한글이 보인다 (N3 §11)
- feat(status-bar): 세션 호스트와 host-backed 터미널의 사용량을 상태바가 답한다
- feat(session-host): secure release adapter files
- feat(editor): 찾은 것을 바꾼다 — ⌥⌘F와 두 번째 입력줄 (§5.1)
- feat(session-host): freeze release adapter contract
- feat(editor): ⌘/가 줄을 주석 처리한다 — 없던 언어 판정을 세워서 (§3.7·§3.7a)
- fix(session-host): 격리 분리 잔재를 걷고 선언 baseline 을 실제 값으로 맞춘다
- test(boundary): poison 호출 지점 로깅으로 client 선언이 하나 늘었다
- feat(observability): 실패가 사유를 남기게 한다 — 결론만 있고 원인이 없었다
- fix(session-host): 성공한 upgrade 를 실패로 읽어 host 가 둘로 갈렸다
- fix(session-host): 느슨한 .bak 권한이 종료를 막았다 — 거절 대신 조인다
- ci: keep-alive 경로를 상시 게이트로 올린다 — 「CI 에서 못 돈다」는 가정이었다
- ci: probe 대상을 keep-alive recovery 스모크로 바꾼다
- ci: probe 가 웹 의존성 설치를 빠뜨렸다 — AppKit 과 무관한 실패였다
- ci: AppKit 창이 러너에서 열리는지 재 본다 — 지금까지 시도한 적이 없다
- test(session-host): serialize real PTY notifications
- feat(session-host): validate release publication order
- feat(scm): 커밋·턴 파일 줄이 몇 줄 바뀌었는지 말한다 — 명령 하나로 상태와 증감을 함께 받는다
- fix(session-host): bind release observations to artifacts
- docs(windows): 막히던 것은 창이 뜨는 것이 아니라 응답이었다 — 10.4 초
- feat(windows): 훑는 동안 창이 멈추던 것 — 제출과 수령을 가른다
- fix(windows): 상태바가 다시 그릴 때마다 런 목록을 하나씩 샜다
- feat(session-host): validate typed release evidence
- feat(editor): 괄호가 저절로 닫히고, 고른 것을 감싼다 (§3.7)
- feat(session-host): add canonical release manifest core
- ci(release): restrict signing to pinned tag workflow
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.