2026-07-27
요약 (AI 작성)
파일 패널 FP16 계획을 적대적으로 재검증하고 방향을 크게 되돌린 날입니다. PoC 4건과 스파이크 6건을 돌려 PanelKind 확장을 철회하고, 2차 검증에서 rename 반례가 나오자 불변식을 한정하며 EntryId 삭제도 철회했습니다. 결론은 파일 콘텐츠를 워크스페이스 Term 으로 되돌리고 도크는 탐색기 전용으로 축소하는 것 — eviction 대신 "surface 수명 == Term 수명" 불변식을 택하고, LRU eviction 과 max-live-views 설정을 제거했으며, max_entries 256 유지와 FP16e 삭제/보존 경계를 표로 못박았습니다. 구현으로는 rename 을 path 로 키잉하되 신뢰 kind 는 surface 를 유지하도록 바꿔 rename 이 뷰를 다시 세우지 않게 했고, 파일 entry 조회 창구를 만들어 도크 그룹 구조를 감췄으며 browser 판정을 isBrowserTerm 하나로 통합했습니다. 적대적 코드 대조로 FP16 계약 결함 3건을 정정하고 /code-review max 결함 14건도 반영했습니다.
session-host 는 외부 attach 의 시간·상태 경계를 마저 채웠습니다. 외부 attach loop 단계와 연결 deadline 을 고정하고 attach phase deadline 의 소유권을 정한 뒤 끝까지 전파하도록 했으며, external mode transaction 을 계약과 함께 넣었습니다. bounded external pump 계약을 고정하고 core 계약을 재절단한 뒤 상태 계약과 stable storage 를 구현했고, batch lease 와 phase-aware inbox ledger 를 추가하면서 batch allocator 권위를 보존했습니다. 이벤트 쪽은 runtime event wire 를 통합하고 inherited event adoption 계약을 확정한 뒤 client adoption 준비를 구현했으며, adoption preflight 를 fail-closed 로 만들고 ABA 결과 검사를 queue 와 격리했습니다.
커밋
ohah/maru
- feat(session-host): runtime event wire를 통합합니다
- docs(session-host): inherited event adoption 계약을 확정합니다
- test(session-host): ABA 결과 검사를 queue와 격리합니다
- docs(session-host): owning value 계약을 코드에 명시합니다
- fix(session-host): adoption preflight를 fail-closed로 만듭니다
- test(session-host): slow observer helper를 동기화합니다
- feat(session-host): client adoption 준비를 구현합니다
- refactor(session-host): batch allocator 권위를 보존합니다
- docs(session-host): client adoption 계약을 확정합니다
- feat(session-host): phase-aware inbox ledger를 구현합니다
- fix(file-panel): code-review max 결함 14건을 반영합니다
- wip: rename 결함 클러스터 수정
- docs(file-panel): B-2를 정책(B-2a)과 구조 이전(B-2b)으로 나눕니다
- feat(file-panel): rename을 path로 키잉하고 신뢰 kind는 surface를 유지합니다
- feat(file-panel): LRU eviction과 max-live-views 설정을 제거합니다
- feat(session-host): external pump stable storage를 추가합니다
- feat(session-host): external pump 상태 계약을 추가합니다
- docs(session-host): external pump core 계약을 재절단합니다
- refactor(file-panel): 파일 entry 조회 창구를 만들어 도크 그룹 구조를 감춥니다
- refactor(web-panel): browser 판정을 isBrowserTerm 하나로 통합합니다
- feat(session-host): batch lease와 inbox ledger를 추가합니다
- docs(session-host): bounded external pump 계약을 고정합니다
- docs(file-panel): 스파이크 6건 결과로 불변식을 확정하고 열린 질문을 모두 닫습니다
- docs(file-panel): 2차 적대적 검증 — rename 반례로 불변식을 한정하고 EntryId 삭제를 철회합니다
- docs(file-panel): PoC 4건으로 FP16 계획을 재점검하고 PanelKind 확장을 철회합니다
- docs(file-panel): max_entries 256 유지를 확정하고 FP16e 삭제/보존 경계를 표로 못박습니다
- docs(file-panel): eviction 대신 "surface 수명 == Term 수명" 불변식을 택하고 후속 이니셔티브를 등록합니다
- docs(file-panel): 적대적 코드 대조로 FP16 계약 결함 3건을 정정합니다
- docs(file-panel): 파일 콘텐츠를 워크스페이스 Term으로 되돌리고 도크를 탐색기 전용으로 축소합니다
- feat(session-host): external mode transaction을 추가합니다
- docs(session-host): external mode transaction을 고정합니다
- feat(session-host): attach phase deadline을 끝까지 전파합니다
- docs(session-host): attach phase deadline 소유권을 고정합니다
- feat(session-host): attach 연결 deadline을 고정합니다
- docs(session-host): 외부 attach loop 단계를 고정합니다