2026-09-09
요약 (AI 작성)
앱 아이콘이 생긴 날입니다 — 앰버 커서 모티프, 세 플랫폼(M11b). 모바일은 배포 준비 중 개발 쪽에서 미리 할 수 있는 셋을 했고(M11a), 첫 실행에 키가 안 서던 것을 Android(여는 자리를 Java 로)와 iOS(파일을 세운다) 양쪽에서 고쳐 M16 을 닫았으며, 폰에서 실패가 아무 데도 안 남던 것에 진단 복사(M15a)와 죽은 자리 기록(M15b)을 붙이고, 하네스가 조용히 빗나가던 것을 재서 알게 했습니다(M8). 터미널은 kitty report_events(key release/repeat, flag 2)·relative placement(P/Q/H/V)·OSC 99 데스크톱 알림을 얻었고, placeholder 가 셋째 diacritic 을 안 읽어 I= 이미지가 안 뜨던 것과 키를 뗄 때 글자가 한 번 더 나가던 자모 이중 입력을 고쳤습니다.
활동 뷰는 Codex 의 JS 껍데기를 벗겨 안쪽 도구와 명령을 보이고(§2.2), 소스 컨트롤 원격 감시자는 git 이 «왜» 실패했는지까지 남깁니다(v8). session-host 는 원격 릴리스 관측을 결속하고 통과 기록을 보존하며 선행 검사가 «왜» 거부했는지 남깁니다. hwpjs 는 JPEG 엔트로피 비트와 Huffman 심볼을 디코드하고 프로그레시브 스캔을 공유 restart 처리로 풀고 IDCT 와 샘플 복원으로 블록을 재구성하며, JFXX 썸네일·Adobe 메타데이터·BMP RLE 부분 인덱스 평면·V5 프로파일과 내장 ICC 를 다룹니다.
커밋
ohah/hwpjs
- feat(image): decode JPEG entropy bits and Huffman symbols
- feat(image): reassemble JPEG ICC profiles and validate structure
- feat(image): parse JFIF metadata and validate frame constraints
- feat(image): validate JFIF and JFXX marker placement
- feat(image): decode JFXX thumbnails with shared JPEG validation
- feat(image): decode JPEG sequential coefficient blocks
- feat(image): decode progressive JPEG block coefficients atomically
- feat(image): assemble unmanaged JFIF RGB rasters with metadata checks
- feat(image): preserve JPEG Adobe metadata and separate print encoding rules
- feat(image): decode uncompressed Windows BMP with bounded layouts
- feat(image): decode bounded GIF indexed frames
- feat(hwp5): inspect embedded BMPs with isolated RGBA budgets
- feat(image): decode BMP RLE into explicit partial index planes
- feat(image): decode JPEG sequential frames with component coverage
- feat(image): reconstruct JPEG blocks with IDCT and sample restoration
- feat(image): preserve JPEG quantizers and dequantize coefficient blocks
- feat(image): assemble cropped JPEG component sample planes
- feat(hwp5): render RLE BMPs with explicit unwritten pixel policies
- feat(hwp5): validate embedded BMP profiles with independent budgets
- test(hwp5): audit preview image corpus and validation gaps
- feat(image): validate progressive JPEG scan history
- feat(image): validate JPEG structure and restart markers
- feat(image): decode JPEG sequential scans and restart intervals
- feat(image): assemble owned progressive JPEG coefficient frames
- feat(image): inspect BMP V5 profile transport and embedded ICC
- feat(image): add exact JFIF sample colour conversion
- feat(image): restore progressive JPEG samples with exact rational ties
- feat(image): reconstruct centered JPEG component samples
- feat(image): decode progressive JPEG scans with shared restart handling
- feat(image): assemble progressive JFIF RGB with precision history
- feat(hwp5): inspect embedded JFIF JPEGs with isolated RGB budgets
ohah/maru
- feat(mobile): 런치 스크린 — 켤 때 번쩍이지 않는다 (M11d)
- fix(agent-activity): 안쪽 도구 벗기기 — 적대적 3회가 찾은 셋을 고친다
- feat(agent-activity): Codex 는 JS 껍데기를 벗겨 안쪽 도구와 명령을 보인다 (§2.2)
- fix(chrome): 키를 뗀 것이 chrome 입력으로 새서 글자가 두 번 들어가던 것
- fix(mobile): 아이콘 판정자가 CI 를 세웠다 — 근거 없는 전제와 삼킨 출력 (M11c)
- fix(mobile): 글자를 또박또박 쓰지 않는다 — 자리만 바꾼다 (M11c)
- feat(mobile): 아이콘 모티프를 「마」로 — 두 덩이를 좌우만 바꿨다 (M11c)
- test(terminal): 적대적 검증 그물 둘 — 실제 앱 바이트와 할당 실패
- docs(native-editor): 매핑 레이어 재평가 트리거에 «접힘 토글의 재계산 비용» 을 더한다
- fix(terminal): alt 화면의 kitty flag 가 셸로 샜다 — 앱이 죽으면 Ctrl+C 가 먹통
- feat(editor): 줄 끝 너머로 민다 — editor.scroll-beyond-last-column (기본 5)
- feat(mobile): 죽으면 그 자리를 남긴다 — 다음 실행이 보여 준다 (M15b)
- feat(mobile): 폰에서 실패가 아무 데도 안 남았다 — 진단을 복사할 수 있게 한다 (M15a)
- feat(session-host): 원격 Release 변경을 전후 봉인한다
- docs(session-host): 원격 Release fence를 정의한다
- fix: keep cleanup failure ownership deterministic
- feat: download remote release assets by exact id
- docs: specify remote release asset downloads
- fix(agent-activity): 적대적 6~10회 — 펼침이 남의 줄을 가리키고, 0 건이 「못 봤다」를 덮었다
- fix(agent-activity): 적대적 4·5회 — 겹치면 재질문이 묻히고, 계약이 코드보다 많이 약속했다
- fix(agent-activity): 적대적 3회 — 본문 검색이 잃지 않고, 「이하 생략」이 되살아난다
- feat(agent-activity): 본문 검색을 헤드리스로 찍는다 + 계약·정지 축을 맞춘다 (BS1)
- feat(agent-activity): Enter 가 본문까지 넓힌다 — 라벨은 세션의 2.9% 다 (BS1)
- fix(android): 첫 실행에 키가 안 섰다 — 여는 자리를 Java 로 옮긴다 (M16b-1)
- docs(mobile): M16b 를 닫는다 — 두 기기 다 첫 실행에 키가 선다
- feat(ios): 키를 «만드는» 자리가 없었다 — 첫 실행에 파일을 세운다 (M16b-2)
- feat(session-host): 원격 실측 입력을 검증한다
- docs(session-host): 원격 실측 증거 계약을 정의한다
- fix(android): 알림이 떠 있으면서 안 보였다 — 붙을 때 권한을 묻는다 (M16c)
- docs(mobile): M16 을 닫는다 — 첫 실행 경험 네 조각이 다 섰다
- feat(session-host): live timing 검증기를 배선한다
- docs(session-host): live timing 원격 gate를 정의한다
- test(editor): 가로 축의 안 재던 자리 다섯을 잰다 — 변이 6회차가 연 구멍
- feat(session-host): 원격 Release metadata를 결속한다
- docs(session-host): 원격 Release metadata gate를 정의한다
- fix(mobile): 자가 검사 건너뛰기 조건이 틀렸다 — macOS 인가로 가른다 (M8)
- fix(mobile): 하네스가 조용히 빗나가고 있었다 — 재서 알고, 안 되면 말한다 (M8)
- feat(mobile): 배포 준비 — 개발 쪽에서 미리 할 수 있는 셋 (M11a)
- fix(editor): 밴드가 어느 Term 의 것인지 두 곳에서 말하지 않는다 — 변이 9~11회차
- test(editor): 길이만 같은 남의 경로를 루트 자신으로 보지 않는다 — 변이 8회차
- test(editor): 루트 선택 판정자 둘도 고리에 넣는다 — 변이 6회차
- docs(editor): breadcrumb 은 이미 저장소 루트 기준이다 — 낡은 문장 넷과 안 돌던 판정자 일곱
- feat(session-host): bind remote release observation
- docs: specify remote release observation ownership
- feat(terminal): OSC 99 — kitty 데스크톱 알림
- feat(session-host): bind remote release semantics
- docs: specify remote release observation transaction
- docs(session-host): align upgrade activation status
- fix(editor): 구문 접힘 승격도 가로 상한·위치를 안 버린다 — 세 번째 자리
- feat(session-host): 선행 검사가 «왜» 거부했는지 남긴다
- fix(agent): hello 를 놓친 채널은 죽는다 — 열 세션 중 둘만 서던 자리
- chore(wasm): kitty delete 타깃을 wasm 코어에 반영한다
- feat(terminal): kitty delete 타깃 d=n·d=c — 번호로, 커서 자리로 지운다
- test(session-host): exercise restore postcommit failures
- fix(agent-activity): Codex 결과는 배열이다 — 원소를 이어 읽는다 (§2.4·§2.1.1)
- feat(session-host): bind held release semantic files
- docs: specify remote release semantic file binding
- feat(session-host): 양쪽 로그를 이어붙일 손잡이와 시각을 남긴다
- feat(session-host): publish remote release pass record
- docs: specify remote release pass record
- feat(terminal): kitty keyboard flag 4·8·16 — 대체 키·모든 키·연관 텍스트
- feat(session-host): audit remote release pass artifact
- docs: specify remote release pass audit
- fix(terminal): placeholder 가 셋째 diacritic 을 안 읽어 I= 이미지가 안 떴다
- fix(terminal): 키를 뗄 때 글자가 한 번 더 나가던 것 (자모 이중 입력)
- test(session-host): exercise restore precommit failures
- docs: specify restore activation failure matrix
- feat(session-host): bind remote release verdict
- docs: specify remote release verdict binding
- feat(session-host): wire remote release verifier
- docs: specify remote release verifier wiring
- feat(session-host): 원격 timing artifact 출처를 결속한다
- docs(session-host): timing artifact 출처 계약을 정의한다
- feat(session-host): 원격 timing artifact를 안전하게 가져온다
- docs(session-host): 원격 timing transport 계약을 정의한다
- chore(wasm): rebase 후 wasm 코어를 다시 만든다
- fix(session-host): RemoteRuntime 크기를 다시 재서 적는다 — 리베이스로 두 변경이 겹쳤다
- chore(wasm): rebase 후 wasm 코어를 다시 만든다
- fix(terminal): relative placement 의 H/V 오버플로 — 한 줄로 터미널이 죽었다
- feat(terminal): kitty relative placement (P/Q/H/V) — 부모 기준으로 이미지를 놓는다
- test(editor): 빠른 고리가 이름이 아니라 «모듈 경로» 로 고른다 — 224개가 0번 돌고 있었다
- chore(wasm): rebase 후 wasm 코어를 다시 만든다
- fix(terminal): report_events 의 repeat 을 침묵시키던 것을 고친다 — 길게 눌러도 한 글자만 들어갔다
- feat(terminal): kitty report_events — key release/repeat 를 보고한다 (flag 2)
- feat(terminal): kitty
I=image number — 번호로 보내는 클라이언트의 이미지가 뜬다 - feat: 앱 아이콘 — 앰버 커서 모티프, 세 플랫폼 (M11b)
- fix(terminal): 누르고 있어도 반복이 안 먹던 것 — repeat 은 press 와 같다
- feat(scm): 원격 감시자가 git 이 «왜» 실패했는지까지 남긴다 (v8)