focus-flow/Codex Documentation/Current Software Plan/V1_BLOCK_08_Today_Timeline_State.md

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