WordloopWordloop
WorkMeeting RecordingTechnical Design DocMilestones

02 Reusable Task Components

Shared task components deliver full CRUD and search on both the tasks page and meeting detail.

02 Reusable Task Components

Goal

A single set of reusable task components powers full create, read, update, delete, and search on both the /tasks listing page and the meeting detail page, with consistent behaviour across surfaces.

Why This Comes Now

Milestone 01 proves the finalization pipeline that produces tasks from uploaded audio. Before live recording layers draft tasks and reconciliation logic on top, the task surface itself must be consistent and fully functional. Building shared components now means every later milestone that touches tasks — live task capture, reconciliation, and review — inherits a stable, tested foundation rather than forking behaviour across surfaces.

Included Scope

  • A shared task component library used by both the /tasks page and the meeting detail tasks section.
  • Full task CRUD on both surfaces: create, edit, toggle status (pending/completed), and delete with confirmation.
  • Task search and filtering: text search across task content, filter by status (all/pending/completed), filter by assignment (all/my tasks/allocated).
  • Meeting-scoped task views: the meeting detail page shows tasks scoped to that meeting with the same CRUD and filtering capabilities as the global tasks page.
  • Sub-task display: sub-task summary (total/completed count) on parent tasks, with expandable sub-task list.
  • Assignee management: a shared assignee picker component for assigning tasks to people.
  • Due date management: a shared due date picker with contextual formatting (overdue, today, tomorrow, upcoming).
  • Consistent empty, loading, and error states across both surfaces.
  • Task metadata display: assignee avatar, due date badge, meeting link badge, and source indicator (user/system).

Not Included

  • Live task extraction from streaming transcript or AI-generated draft tasks during recording.
  • Task reconciliation logic between user-owned and system-generated tasks.
  • Speaker-aware task assignment suggestions.
  • Sub-task CRUD (display only; full sub-task management is out of scope).
  • Task export, external integrations, or notification triggers.
  • Drag-and-drop reordering or kanban-style views.

Domain Slices

App-only milestone. Core and ML have no new work.

#DomainSlice summaryScaffold commandComplexityPrerequisite
1AppShared TaskList, TaskItem, TaskForm, TaskSearch components; full CRUD and filtering on /tasks page and meeting detail./dev new slice meeting-recording 02-reusable-task-components app task-componentsMMilestone 01 merged

Acceptance

These criteria map to tests/bets/meeting-recording/test_milestone_02_reusable_task_components.py. Run via ./dev test bet meeting-recording.

  • The /tasks page and meeting detail tasks section render tasks using the same shared components.
  • User can create a task from both the /tasks page and the meeting detail page.
  • User can edit a task inline or via dialog from both surfaces.
  • User can toggle task status between pending and completed from both surfaces.
  • User can delete a task with confirmation from both surfaces.
  • User can search tasks by content text.
  • User can filter tasks by status and assignment category.
  • Meeting detail shows only tasks scoped to that meeting.
  • Task metadata (assignee, due date, meeting link, sub-task count) displays consistently across surfaces.
  • Loading, empty, and error states are consistent between both surfaces.

On this page