Skip to content

Phase 7 — Task due dates and overdue filtering #14

Description

@Aaqibhafeezkhan

Goal

Extend task metadata with an optional due date and provide a focused way to identify overdue tasks while preserving existing priority, lifecycle, persistence, and CLI behavior.

Scope

  • Add an optional ISO-8601 date field (YYYY-MM-DD) to tasks.
  • Persist due dates while keeping legacy task records readable.
  • Validate due-date input consistently.
  • Allow add/update commands to set or clear a due date.
  • Add an overdue filter in the domain/service layer based on a supplied reference date so the core logic remains deterministic.
  • Expose due dates and overdue filtering through the CLI.
  • Add automated coverage for default/legacy dates, validation, serialization, updates, and overdue filtering.

Acceptance Criteria

  • Existing task files remain readable and legacy records receive no due date.
  • Valid due dates survive save/load.
  • Invalid due dates are rejected without corrupting task state.
  • Add/update can set and clear due dates.
  • Overdue filtering is deterministic for a supplied reference date.
  • Existing priority and lifecycle behavior remains intact.
  • Tests cover the new metadata and filtering paths.
  • No GitHub Actions are introduced.

Delivery

One focused implementation PR targeting main, exactly one implementation commit. Leave the PR open for CodeRabbit review; do not merge it automatically.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions