Architecture deepening: extract six deep modules #20
Loading…
Reference in a new issue
No description provided.
Delete branch "architecture-deepening"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
Six behaviour-preserving refactors. Each carves a testable deep module out of the frontend page monoliths or the match-edit path, following patterns the codebase already uses (sync.js, DopeTable, stage-cache.js, domain/resolver).
Every extracted module has unit tests. Both apps' full suites pass.
🤖 Generated with Claude Code
# Why First seam-by-seam step of breaking up board.js: the members/sharing feature (roster fetch/cache, the sharing overlay, add/remove) moves into boardmembers.js as createBoardMembers(state, boardId) → { load, open }, owning its own DOM + listeners and caching the roster onto the shared state. board.js drops ~90 lines and the feature is now one file. Behaviour unchanged (verified in-browser: the overlay opens, the roster renders, add-member errors surface). The remaining seams (notifications, import, export, labels, timeline) are follow-ups. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>