refactor: separate board projection from cache, SSE, and restage logic in board.ts #1139
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/agent-hooks#1139
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
As a developer working on the pipeline view, I want
domain/views/board.tssplit by concern, so that the core board projection is readable and testable without tracing through cache invalidation, SSE fanout, restage logic, and kick operations.Decomposition
domain/views/board-projection.ts— pure: deriveBoardCard[]from issues + tasks + PR state; no I/O, no cachedomain/views/board-cache.ts— cache invalidation, TTL,_depsmap,_cachemapdomain/views/board-sse.ts— SSE listener registration (_sseListenerRegistered), event fanoutboard.tsor move toboard-actions.tsMutable state
letvariables (_deps,_cache,_sseListenerRegistered,_agentInstancesCache,_restageDeps,_kickDeps)init()functionTests
board-projectionis unit-testable with pure inputs (no DB, no SSE)Out of scope
References
apps/server/src/domain/views/board.ts(1817 lines)letvariables