Complete S03 runtime closure and S04 control loop

This commit is contained in:
2026-03-24 11:33:55 +01:00
parent 0cacb4e51b
commit 8890906231
17 changed files with 588 additions and 74 deletions
@@ -0,0 +1,46 @@
---
estimated_steps: 4
estimated_files: 3
skills_used:
- react-best-practices
- test
---
# T01: Turn reminders and dashboard into actionable entry surfaces
**Slice:** S04 — Daily control loop surfaces
**Milestone:** M001
## Description
Make the dashboard and reminders page show high-priority jobs as direct entry points into the existing job workspace state instead of acting like passive summaries or separate modal loops.
## Steps
1. Audit the current dashboard and reminders surfaces to identify where reminder/readiness information is already available but not actionable.
2. Add direct job-open actions that route into `/jobs` with the correct workspace tab and optional follow-up mode.
3. Replace reminder-modal detours with routed job-workspace entry where it improves flow coherence.
4. Cover the new routed-entry behavior in a focused UI test.
## Must-Haves
- [ ] Dashboard shows actionable jobs needing attention now.
- [ ] Reminders routes into the existing job workspace state rather than creating a separate loop.
- [ ] Focused UI coverage proves routed entry from overview surfaces.
## Verification
- `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx`
- `CI=true npm --prefix job-tracker-ui run build`
## Inputs
- `job-tracker-ui/src/components/DashboardView.tsx` — current analytics dashboard.
- `job-tracker-ui/src/components/RemindersView.tsx` — current reminders page.
- `job-tracker-ui/src/App.tsx` — route shell and navigation structure.
## Expected Output
- `job-tracker-ui/src/components/DashboardView.tsx` — actionable attention cards or lists.
- `job-tracker-ui/src/components/RemindersView.tsx` — routed job-workspace entry flow.
- `job-tracker-ui/src/daily-control-loop.test.tsx` — focused proof for overview-to-workspace routing.
@@ -0,0 +1,30 @@
---
title: T01 summary
status: done
files:
- job-tracker-ui/src/components/DashboardView.tsx
- job-tracker-ui/src/components/RemindersView.tsx
- job-tracker-ui/src/jobWorkspaceRoute.ts
- job-tracker-ui/src/daily-control-loop.test.tsx
verification:
- CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx
- CI=true npm --prefix job-tracker-ui run build
---
Turned dashboard and reminders into actionable entry surfaces instead of dead-end summaries.
What changed:
- `job-tracker-ui/src/jobWorkspaceRoute.ts`
- added a single helper for routed job-workspace entry with `open`, `tab`, and optional `followMode`
- `job-tracker-ui/src/components/DashboardView.tsx`
- added a `Needs Follow-up` action section driven by reminder jobs
- wired dashboard actions into the shared routed job-workspace flow
- `job-tracker-ui/src/components/RemindersView.tsx`
- replaced the separate reminder modal loop with routed entry into `/jobs`
- reminders now open the relevant workspace state directly instead of creating another local workflow
- `job-tracker-ui/src/daily-control-loop.test.tsx`
- added focused proof that dashboard and reminders route into the right workspace flow
Verification:
- Focused daily-loop test passed
- Frontend build passed
@@ -0,0 +1,44 @@
---
estimated_steps: 4
estimated_files: 2
skills_used:
- react-best-practices
- test
---
# T02: Make the job table expose the right next action and prove the daily loop
**Slice:** S04 — Daily control loop surfaces
**Milestone:** M001
## Description
Strengthen the job table so the first daily view shows what action is actually due and can jump directly into the right job workspace tab.
## Steps
1. Audit the existing job-table row chips and actions against the reminder/readiness data already available.
2. Add clearer action affordances for follow-up and package work that route into the same job workspace state used by dashboard/reminders.
3. Fold the table interactions into the focused daily-loop test.
4. Verify the routed-table behavior and build output.
## Must-Haves
- [ ] Job-table urgency signals are actionable, not just decorative.
- [ ] Table actions route into the same workspace state used by reminders/dashboard.
- [ ] The focused UI test proves the table participates in the same daily loop.
## Verification
- `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx`
- `CI=true npm --prefix job-tracker-ui run build`
## Inputs
- `job-tracker-ui/src/components/JobTable.tsx` — current table and row actions.
- `job-tracker-ui/src/daily-control-loop.test.tsx` — focused loop test from T01.
## Expected Output
- `job-tracker-ui/src/components/JobTable.tsx` — clearer next-action affordances.
- `job-tracker-ui/src/daily-control-loop.test.tsx` — proof that the table participates in the routed daily loop.
@@ -0,0 +1,23 @@
---
title: T02 summary
status: done
files:
- job-tracker-ui/src/components/JobTable.tsx
- job-tracker-ui/src/daily-control-loop.test.tsx
verification:
- CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx
- CI=true npm --prefix job-tracker-ui run build
---
Made the job table expose the next action directly and prove the daily loop end-to-end.
What changed:
- `job-tracker-ui/src/components/JobTable.tsx`
- follow-up and CV status chips now route directly into the right job workspace tab
- the table participates in the same routed workspace flow as dashboard and reminders
- `job-tracker-ui/src/daily-control-loop.test.tsx`
- expanded the focused test to prove the table chip routes into the follow-up workspace and that reminders can route into the tailored-CV workspace
Verification:
- Focused daily-loop test passed
- Frontend build passed