2026-02-27
날짜는 UTC 기준으로 나눴습니다(9월 22일부터는 한국 시간 기준). 커밋은 커미터 시각(committer date), PR은 생성·병합 시각으로 분류했습니다. 목록은 2026-10-06 KST에 GitHub에서 다시 조회해 보강했습니다. 공개 저장소의 기본 브랜치 활동만 포함합니다.
요약 (AI 작성)
react-wasm-table은 PR 아홉 개를 병합하며 그리드 기능을 넓혔습니다. 이벤트 콜백·선택·정렬 훅과 훅 조합 데모 페이지를 테스트와 함께 추가하고(#21), 프레임을 그린 뒤 호출되는 onAfterDraw 콜백과 테스트용 adapter 의존성 주입으로 헤드리스 리팩터링 0단계를 마무리했습니다(#22). 열 단위 저장소에 기반한 행 모델과 필터링, 제어·비제어 모드를 지원하는 useFiltering 훅과 데모를 넣었고(#23), 열 순서·표시·크기·고정 상태와 열 너비 조절 핸들, 레이아웃 엔진의 실제 행 높이를 렌더러까지 전달하는 수정, 제어 모드에서 선택 기준점이 사라지던 문제 수정을 #24로 병합했습니다.
이어 트리 데이터를 위한 getExpandedRowModel과 펼침 상태(#25), onTouchStart·onTouchMove·onTouchEnd 터치 이벤트 API(#26), 이벤트 미들웨어와 내보내기 API, 레이아웃 캐시(#27)를 추가했습니다. 셀 그리기는 CellRendererRegistry로 분기하도록 바꿔 진행률 표시 같은 사용자 정의 셀 렌더러를 등록할 수 있게 했고(#28), 캔버스 렌더 파이프라인에 콘텐츠·뷰포트 좌표계의 렌더 레이어를 조합해 오버레이를 그릴 수 있게 했습니다(#29). 로드맵은 완료 항목과 단계, 의존 관계 그래프로 다시 정리했고, 커밋 메시지에 도구 표기를 남기지 않는 규칙과 이를 지우는 스크립트를 추가했습니다.
hwpjs는 Markdown 뷰어 ctrl_header의 표·도형·꼬리말 등에 실제 동작을 검증하는 테스트를 추가했습니다. ohah.github.io에서는 맞춤법 크론이 hwpjs 기술 스택 문서 점검과 전체 완료 표시를 남겼고, 2월 27일 요약이 올라갔습니다.
공개 커밋 52개, 해당일 생성 또는 병합된 PR 9개를 정리했습니다. PR 생성 9개·병합 9개는 같은 PR이 양쪽에 포함될 수 있습니다.
커밋
ohah/hwpjs
ohah/ohah.github.io
- chore(cron): update completion status - all files checked
- chore(cron): mark hwpjs/tech-stack.mdx as reviewed
- docs: add 2026-02-27 AI summary
- docs: update cron write timestamp (2026-02-27)
- docs: update cron write timestamp (2026-02-27)
- docs: update cron write timestamp (2026-02-27)
- docs: update cron write timestamp (2026-02-27)
ohah/react-wasm-table
- feat(grid): add composable render layers (content/viewport space)
- feat(demo): add Custom Renderer demo page and sidebar link
- test(grid): add cell-renderer tests, update canvas-renderer for registry
- feat(grid): wire cellRenderers through Grid and useRenderLoop, export registry API
- refactor(grid): draw cells via CellRendererRegistry in CanvasRenderer
- feat(grid): add CellRenderer registry and built-in renderers
- feat(grid): add cellRenderers prop and allow custom instruction types in resolveInstruction
- style(wasm): fix indentation in effective_row_height block
- fix(wasm): use f64::from for effective_row_height (cast_lossless)
- fix(core): resolve Clippy lints in layout.rs (pass-by-value, Option<&T>, flatten, format, too_many_lines)
- chore: format layout/export/hooks, update roadmap Tier 1 complete, polish demos
- feat: event middleware, export API, layout cache, and demo pages
- docs: reorganize roadmap with completed items, tiers, and dependency graph
- demo: add mouse, scroll, and canvas event callbacks to EventCallbacks page
- feat(demo): add TouchEventsDemo page and route
- feat(grid): wire touch handlers in use-event-attachment and Grid, export touch API
- feat(grid): add onTouchStart/onTouchMove/onTouchEnd in event-manager
- feat(grid): add createGridTouchEvent in event-helpers
- feat(grid): add GridTouchEvent types and onTouch* props
- feat(grid): add event helpers and improve event callback handling
- style(grid): format grid package, adapter, demo, and roadmap; fix toggleAllRowsExpanded spacing
- docs: update roadmap
- feat(demo): add ExpandingDemo page and sidebar link
- test(grid): add tests for expanded row model, grid instance, and useGridTable
- chore(grid): export expanded types and getExpandedRowModel from index
- feat(grid): wire expanded state in grid instance and buildGridInstance
- feat(grid): add expanded state and getExpandedRowModel in useGridTable
- feat(grid): add getExpandedRowModel and tree row fields in row-model
- feat(grid): add ExpandedState and ExpandedUpdater in tanstack-types
- chore: add strip-commit-attribution script and always-run step in commit command
- chore: forbid tool attribution text in commit messages
- docs: update roadmap
- feat(demo): add ColumnFeatures page and sidebar link
- feat(grid): add column resize handle in EventManager and useColumnResize hook
- feat(grid): add TanStack-style column state (order, visibility, sizing, pinning) and extend grid instance
- fix(grid): support multiple onDirty listeners so shared SelectionManager redraws all grids
- fix(grid): use effective row height for column layouts
- fix(grid): preserve selection anchor in controlled mode
- feat(grid): add filtering demo page and improve useFiltering hook
- feat(grid): add row model and filtering backed by columnar store
- feat(grid): finalize phase 0 hooks and adapter DI
- feat: add render loop onAfterDraw and adapter DI for testing
- test: expand grid adapter, renderer, and hook coverage
- feat: add hook demos and extend selection/sorting/event hooks with tests
PR (해당일 생성/머지)
상태는 조회 시점 기준입니다. merged는 아래 대상 브랜치에 병합됐다는 뜻이며, 기능 브랜치 병합과 main 반영을 구분합니다. 같은 PR이 생성일과 병합일 양쪽 기록에 나타날 수 있습니다.