2.0 KiB
2.0 KiB
id, title, status, wave, depends_on, plan, spec
| id | title | status | wave | depends_on | plan | spec |
|---|---|---|---|---|---|---|
| 01-activity-selectors | Quick Chat activity selectors | done | 1 | plan.md | ../../specs/quick-chat-idle-dot/spec.md |
Task 01: Quick Chat Activity Selectors
-
Acceptance:
- One selector reports whether a Quick Chat session has live work, including background work and environment preparation.
- One aggregate selector returns
running,finished, ornullfor one workspace. - Running has priority over finished, and an open dialog returns
null.
-
Verification:
cd apps && pnpm install --frozen-lockfile \ && pnpm --filter @kandev/web test -- --run \ lib/session-working.test.ts \ hooks/domains/session/use-session-state.test.ts \ lib/state/slices/ui/quick-chat-activity-selectors.test.ts -
Files likely touched:
apps/web/lib/session-working.tsapps/web/lib/session-working.test.tsapps/web/hooks/domains/session/use-session-state.tsapps/web/lib/state/slices/ui/quick-chat-activity-selectors.tsapps/web/lib/state/slices/ui/quick-chat-activity-selectors.test.tsapps/web/lib/state/slices/ui/quick-chat-unseen-selectors.ts
-
Dependencies: None.
-
Parallelism: sequential.
-
Inputs: Spec
What,State machine, and aggregate scenarios. Preserve thederiveSessionFlags()behavior inuse-session-state.ts. -
Risks: A second definition of working state can drift from the chat panel. Reuse the shared derivation and add background-work coverage.
-
Output contract: Report changed files, exact command results, blockers, risks, and synchronized task and plan status.
Results
- Added the shared
isSessionWorkingpredicate and reused it inderiveSessionFlags. - Added pure selectors for per-session work and workspace-level Quick Chat activity.
- Covered starting, running, background, preparation, settled, workspace, setup-tab, and open-dialog behavior.
- The focused selector/session tests passed as part of the final frontend suite: 10 files, 107 tests.
- No blockers remain for this task.