2026-09-15

요약 (AI 작성)

성능을 진단으로 판 날입니다. 리더가 청크 경계마다 메인에게 코어 락 차례를 넘겨 불공정 mutex 기아로 1120Hz 로 떨어지던 폭포를 55Hz 로 올렸고, 빈 출력 신호는 코어 락 없이 지나가게 해 전체 잠금의 60% 를 없앴으며(P4-3 진단, §12.9), kitty 이미지 base64·zlib 해제와 f=100 PNG 디코드를 리더가 락 밖에서 하게 해 브라우저 프레임마다 메인이 서던 38ms 와 2.9MB PNG 의 락 보유 16~17ms 를 1ms 아래로 내렸습니다. CoreText 는 grid run 캐시로 CTLine 생성을 건너뛰어 split 3 pane 스크롤이 19.5Hz 에서 56Hz 가 됐고, CTLine 비용의 정체(합자 6배·폴백 캐스케이드 run당 약 110µs)는 진단만 하고 착수는 보류했습니다(§10.9). 데몬 할당자의 스택 포획을 꺼 host CPU 를 50% 에서 14% 로 내렸고, host 메모리 누수와 재접속 창 크래시, 죽은 host 의 1.0GB rollback 사본을 daemon 시작에 거두는 것도 이날입니다.

병합 편집기는 세 판의 «대응표» 를 세워 Result 를 따라 굴리고(S3b-M), 고르기 줄을 «판» 으로 옮기고(S3b-3c), 세 판에 caret 이 서며(S3b-3b), 헤더 밴드의 ↓·↑ 와 F7/⇧F7 로 파일 안 다음/이전 충돌 구간을 오갑니다(S5). selection 이 없으면 IME 조합도 받지 않게 해 조합 글자가 Result 첫 줄에 뜨던 자리를 막았습니다. 소스 컨트롤은 마커가 없어진 충돌 행에 «+» 를 되돌리고(S4) 「모두 스테이지」가 마커가 남은 충돌 파일을 비켜 갑니다(S4b). 에이전트 아카이브는 이어하기가 «모델» 도 되살리고 카드의 <synthetic> 을 걷었습니다. tmux 안 터미널 브라우저가 화면을 박스 문자로 덮던 것은 세 겹의 원인이었고, 같은 id 재전송 동안 옛 이미지를 완료까지 보여 줍니다.

hwpjs 는 EMF 를 넓혔습니다 — image color management·extended flood fill·bit block transfer·layout mode·alpha blend·parallelogram block transfer·comment envelope, 그리고 EMF+ object·comment 검증과 SETLINKEDUFIS·SETLAYOUT 확장 수용. @ohah/pdf 는 겉모습 없는 글상자 주석(/FreeText)과 겉모습 없는 주석을 규격의 기본 모양으로 그립니다. 테스트는 벽시계 단언을 전수 조사해 시간 대신 차례·모양으로 바꿨습니다.

커밋

ohah/hwpjs

ohah/maru

ohah/ohah.github.io

ohah/pdf

PR (해당일 생성/머지)

repo#상태제목
ohah/maru#3777mergedfeat(editor): S5 — 헤더 밴드의 ↓·↑ 와 F7/⇧F7 로 파일 안 다음/이전 충돌 구간을 오간다
ohah/maru#3776mergeddocs(present): §10.9 CTLine 비용의 정체 — 합자 6배·폴백 캐스케이드 run당 ~110µs (진단만, 착수 보류)
ohah/maru#3775mergedfix(session-host): tick 의 partial_timeout 네 자리에 이름을 붙인다 — 126 번이 「무엇인지 모름」이었다
ohah/maru#3774mergedperf(terminal): f=100 PNG 도 락 밖에서 디코드한다 — 2.9MB PNG 의 락 보유 16~17ms → <1ms, payload 복사도 없앤다
ohah/maru#3773mergedtest(session-host): add CR6d candidate authority reducer
ohah/maru#3772mergedfix(session-host): 죽은 host 의 rollback 사본(1.0 GB)·오래된 로그를 daemon 시작에 거두고, turnIndexPath 가 부모 디렉터리까지 만든다
ohah/maru#3771mergedfix(build): restore focused app PNG codec wiring
ohah/maru#3770mergeddocs(plans): 3-way 병합 행을 계약 §5 의 현재로 맞춘다
ohah/maru#3769mergedperf(coretext): grid run 캐시 — run 내용 키로 CTLine 생성을 건너뛴다, split 3 pane 스크롤 19.5Hz → 56Hz (§10.7 진단 + §10.8)
ohah/maru#3768mergedfix(session-host): preserve siblings under partial screen pressure
ohah/maru#3767mergedfix(editor): 판 블록을 여백 안쪽에 세우고 배경은 가장자리까지 덮는다 — 4px 넘침·띠 (S3b-2 정정)
ohah/maru#3766mergedfix(agent-turn): 턴 스냅샷 임시 index 를 창이 닫힐 때 지우고, 오래된 형제는 워커가 쓸어 낸다
ohah/maru#3765mergedfix(terminal): 같은 id 재전송 동안 옛 이미지를 완료까지 보여 준다 — #3754 가 만든 프레임마다 깜빡임
ohah/maru#3764mergedfix(session-host): 픽셀을 안 실으면 placement 도 안 싣는다 — 계측이 두 가지를 못 가렸다
ohah/maru#3763mergeddocs(gallery): 「남은 결정」이 이미 내려진 결정을 붙들고 있었다
ohah/maru#3762mergedtest: 벽시계 단언 전수 조사 — 신호를 키우고, 훑는 폭을 세어서 정한다
ohah/maru#3761mergedfix(editor): selection 이 없으면 조합(IME)도 받지 않는다 — 판 초점에서 조합 글자가 Result 첫 줄에 뜨던 자리
ohah/maru#3760mergedtest(session-host): poll owner 판정자를 짧은 소켓 루트로 — 워크트리에서 19개가 죽는다
ohah/maru#3759mergedperf(runtime): 빈 출력 신호는 코어 락 없이 지나간다 — P4-3 진단으로 찾은 전체 잠금의 60% (§12.9)
ohah/maru#3758mergedfeat(scm): 「모두 스테이지」가 마커가 남은 충돌 파일을 비켜 간다 (S4b)
ohah/maru#3757mergedfix(diag): 이미지 대조 계수 — 적대적 검증에서 나온 결함 셋과 흐름 요약줄
ohah/maru#3756mergedfeat(diag): host 가 보낸 이미지가 앱의 어느 칸에서 사라지는지 센다
ohah/maru#3755mergedfeat(scm): 마커가 없어진 충돌 행에 «+» 가 돌아온다 — add 가 곧 완료다 (S4)
ohah/maru#3754mergedperf(terminal): kitty 이미지 base64·zlib 해제를 리더가 락 밖에서 한다 — 브라우저 프레임마다 메인이 서던 3~8ms 를 없앤다 (§13.7 진단 + §13.8)
ohah/maru#3753mergedtest: 판정자 셋이 «기계를 재고» 있었다 — 시간 대신 차례·모양으로
ohah/maru#3752mergedfix(terminal): tmux 안 터미널 브라우저가 화면을 박스 문자로 덮는다 — 세 겹의 원인
ohah/maru#3751mergedperf(session-host): 데몬 할당자의 스택 포획을 끈다 — host CPU 50%→14%
ohah/maru#3750mergedfeat(editor): 세 판에 caret 이 선다 — «초점» 은 판 caret + Result selection 없음 (S3b-3b)
ohah/maru#3749mergedfix(agent-archive): 세션 id 도 같은 argv 토큰 규칙을 지난다 — 인용은 셸로부터만 지켜 준다
ohah/maru#3748mergedfeat(editor): 고르기 줄을 «판» 으로 옮긴다 — VS Code 의 배치를 마커 모델 위에서 (S3b-3c)
ohah/maru#3747mergedfeat(agent-archive): 이어하기가 «모델»도 되살린다 — 그리고 카드의 <synthetic> 을 걷는다
ohah/maru#3746mergedperf(io): 리더가 청크 경계마다 메인에게 코어 락 차례를 넘긴다 — 불공정 mutex 기아로 11~20Hz 로 떨어지던 폭포를 55Hz 로
ohah/maru#3745mergedfix(session-host): host 메모리 누수와 재접속 창 크래시
ohah/maru#3744mergedfeat(editor): 세 판의 «대응표» 를 세우고 Result 를 따라 굴린다 (S3b-M)