1.8 KiB
1.8 KiB
V1 Block 08 — Today Timeline State
Status: Planned
Purpose: Prepare domain/view-state data for the Today timeline without building full Flutter UI yet unless explicitly requested.
Chunk 8.1 — Timeline item view model
Recommended Codex level: medium
Tasks:
Create a UI-independent timeline item model with fields for:
- display title
- start/end or duration
- task type
- project color token
- background type token
- reward icon token
- difficulty icon token
- explicit time display flag
- quick actions available
Rules:
- Thick border color is project class.
- Translucent background is task type.
- Name is text.
- Icon 1 is reward.
- Icon 2 is difficulty.
- Flexible task cards show duration; timeline position shows start/stop.
- Inflexible, critical, and locked show explicit start/end times.
Acceptance criteria:
- Tests or snapshots can verify field mapping from task to timeline item.
Chunk 8.2 — Hidden locked block overlay state
Recommended Codex level: medium
Tasks:
Create overlay state for locked blocks:
- hidden by default
- temporary reveal mode
- named blocked-time overlay
- not a normal task block
Acceptance criteria:
- Locked block can produce an overlay item only when reveal mode is active.
- Overlay item is distinguishable from task card item.
Chunk 8.3 — Compact mode state
Recommended Codex level: low
Tasks:
Add domain/app state for manual compact mode:
- Manual toggle only.
- Show current task.
- Show next required task.
- Optionally show next flexible task.
- Hide full timeline unless expanded.
Rules:
- The app must not automatically switch into compact mode after missed/pushed tasks.
Acceptance criteria:
- Compact mode flag controls compact output selection.
- Tests cover manual toggle behavior.
Commit suggestion:
feat(timeline): add today timeline view state models