2026-08-26
요약 (AI 작성)
편집기 커서가 움직이기 시작한 날입니다 — 이동 일습·랩 시각 행·스크롤 앵커(§3.2·§4.1c·§4.1g). 판정자를 뮤턴트로 전수 훑어 도구가 열한 번 거짓말한 것을 고쳤습니다. session-host 는 알림 축을 세웠습니다: bounded notification journal, stable OSC 알림 admit, 알림 메타데이터 전달, GUI 히스토리 투영, 그리고 poison 이 어느 불변식에서 났는지 남기기(결론만 있고 이유가 없었다). G3 release 계약을 닫고, 성공한 upgrade 를 실패로 읽던 자리를 닫고 테스트 격리와 진단을 세웠습니다.
Windows 는 maru install-cli 가 돌고(W10), 판정 각본이 제품에서도 돌고 있던 것과 에이전트 카드·그룹·정렬 토글이 눌리는 것, 훑는 동안 창이 멈추던 것(제출과 수령을 가른다)을 고쳤습니다. 파일 트리는 좌클릭이 영영 안 열렸는데 발행 비교가 두 좌표계를 견주고 있었습니다. FSEvents 는 설계상 손실이 있어 tree 제거의 전제를 다시 봤습니다.
커밋
ohah/maru
- feat(editor): 삭제가 낱말·줄 단위를 안다 — 이동 일습의 거울 (§3.2)
- fix(file-tree): 누른 파일과 열리는 파일이 갈릴 수 있었다 — down 의 신원을 up 이 대조한다
- fix(file-tree): 좌클릭이 영영 안 열렸다 — 발행 비교가 두 좌표계를 견주고 있었다
- feat(windows): 에이전트 정렬 토글이 눌린다
- ci(release): publish verified drafts without clobber
- test(windows): 5~7차 — 개수 뒤에 있는 것들
- test(windows): 4차 — 그룹이 여럿 접혔을 때
- test(windows): 스캐폴딩 게이트 자체가 새고 있었다
- test(windows): 에이전트 클릭 적대적 검증 — 셋을 더 찾았다
- fix(windows): 판정 각본이 제품에서도 돌고 있었다 + 에이전트 카드·그룹이 눌린다
- feat(config): retain session host overrides across reset
- feat(editor): 저장 안 한 편집을 알린다 — dirty 표시와 닫기 보호 (file-panel.md §1)
- feat(cli): maru install-cli 가 Windows 에서 돈다 (W10)
- feat(editor): 복사·붙여넣기·잘라내기가 멀티 커서를 안다 (§3.4)
- feat(config): preserve session host default provenance
- feat(platform): GUI 앱의 진단을 파일로 남긴다 — /dev/null 로 사라지던 자리
- fix(session-host): 새 진단 선언을 declaration 재고에 등록한다
- feat(session-host): poison 이 어느 불변식에서 났는지 남긴다 — 결론만 있고 이유가 없었다
- fix(session-host): preserve selection during autoscroll
- feat(editor): 커서가 움직인다 — 이동 일습·랩 시각 행·스크롤 앵커 (§3.2·§4.1c·§4.1g)
- docs(session-host): 이 작업의 값을 정확히 적고 시계 제약을 더한다
- docs(session-host): incremental checkpoint 구동 계약을 먼저 적는다
- feat(platform): 접근성 서술자를 host 로 연다 — 스냅숏·ABI v173·Swift 어댑터
- fix(session-host): report daemon startup readiness
- docs(windows): 시작 스캔이 느리다는 것은 안 재고 적은 말이었다
- fix(windows): 경로 구분자를 타깃이 아니라 데이터에서 정한다
- test(windows): 낡은 사각형을 수치로 잡는다 — 캡처만 잡던 것
- docs(windows): §2m.61 에 적대적 검증 절을 더한다
- test(windows): 상태바 적대적 검증 — 셋을 더 찾았다
- feat(windows): 하단 상태표시줄이 선다 (W8.9)
- test(session-host): gate host-backed input parity
- refactor(session-host): 화면 코덱을 OS 중립 자리로 옮긴다 (S11-3)
- docs(session-host): 기본값 전환의 선결은 «검증 수단» 이다
- test(windows): 스크롤바 4차 — 끝까지 갔을 때
- test(windows): 스크롤바 3차 — 안 물어본 둘
- test(windows): 스크롤바 적대적 검증 — 1차가 적은 세 구멍을 메웠다
- feat(windows): 스크롤바가 뜬다 (W8.10)
- feat(session-host): admit stable OSC notifications
- fix(session-host): 새 테스트와 impure 짝을 경계 재고에 반영한다
- feat(session-host): incident 를 읽을 수 있게 한다 — 쓰기만 되던 진단은 잔해였다
- fix(session-host): 회복 가능한 spawn 실패가 앱 abort 로 승격됐다 — 아무것도 안 잡은 «.shell» 을 손상으로 읽었다
- fix(session-host): P5d 게이트가 정상 서명을 «runtime 없음» 으로 읽고 /private 링크를 다른 파일로 셌다
- feat(session-host): deliver stable notification metadata
- feat(session-host): project stable notifications into GUI history
- fix(build): keep macOS target checks SDK-neutral
- feat(session-host): deliver macOS notifications
- feat(session-host): route cold notification responses
- docs(plans): 조기 반환이 막고 있던 턴이 넷 중 셋이었다 — 실측을 적는다
- fix(agent): 넓힌 봉인 조건이 호출자에서 막혀 셸 전용 턴이 사라졌다
- fix(agent): 「턴이 끝나는 그 순간」을 지키지 않아 사본·세션·셸 수가 어긋났다
- docs(plans): 6번 실측 — 앱도 못 받았고, 파 보니 TCC 승인이 재설치마다 끊어진다
- docs(plans): ⑹ 을 코드로 확인해 줄인다 — 위험은 설치 로직이 아니라 «테스트가 잃는 규칙» 이다
- docs(plans): 원인은 서명이 아니라 TCC 승인이었다 — 요구사항이 하나 늘고, 정규식은 제품에서 뺀다
- docs(plans): 블랙박스 셋을 실측으로 닫는다 — Post 시점·FSEvents 전달·배경화 판별
- docs(plans): 「구간이 거짓」을 다시 잰다 — 274 가 아니라 305 였고,
exec는 도구 이름이 아니다 - docs(plans): 「구간이 거짓」의 근거를 세기별로 나눠 적는다 — 하나는 안 잰 것이다
- docs(plans): AT3b 를 실측 위에서 다시 짠다 — 적대적 검증이 설계를 여섯 군데 바꿨다
- docs(plans): AT3b 를 짜기 전에 FSEvents 를 재 본다 — 가정 둘이 갈렸다
- test(editor): 판정자를 뮤턴트로 전수 훑고, 도구가 열한 번 거짓말한 것을 고쳤다
- feat(session-host): add bounded notification journal
- build(release): wire version SSOT into macOS artifacts
- docs(session-host): close G3 release contract