Skip to content

✨ Feature: Rework Archive System - Hidden Tasks + Rename Archive Status #245

@vasconceloscezar

Description

@vasconceloscezar

Feature Request

Priority: Low (backlog)

Summary

Overhaul the archive system to properly hide completed/archived tasks while keeping them queryable, and rename the current "Archive" status to something more meaningful like "Cancelled".

Current Problems

  1. Archive column doesn't make sense - Archive should mean "hidden but preserved", not a visible kanban column
  2. Completed tasks clutter kanban - No way to hide finished work while preserving history
  3. No distinction between cancelled and archived - Different intents conflated into one status
  4. Can't query archived tasks - Once "archived", tasks disappear entirely

Proposed Solution

1. Separate Archive from Status

Concept: Archive is a state (hidden/visible), not a status (todo/done)

Model:

Task {
  status: "todo" | "in_progress" | "in_review" | "done" | "cancelled"
  archived: boolean  // NEW: hidden from default views
  archived_at: timestamp
  archived_by: user_id
}

2. Rename "Archive" Status → "Cancelled"

Rationale:

  • "Archive" column = tasks we're NOT doing
  • "Cancelled" is clearer intent
  • Distinguishes from "Done" (completed) vs "Cancelled" (abandoned)

New Status Flow:

Todo → In Progress → In Review → Done
                  ↘ Cancelled

3. Archive Actions

Where:

  • Task context menu: "Archive Task"
  • Bulk actions: "Archive Selected"
  • Auto-archive: "Archive tasks completed > 30 days ago"

Behavior:

  • Removes from default kanban view
  • Accessible via "Show Archived" toggle or filter
  • Preserves all data (searchable, queryable)
  • Can be unarchived

4. Query/Filter Archived Tasks

UI Elements:

  • Toggle: "Show Archived Tasks" (default: hidden)
  • Filter: "Archived in last 7 days / 30 days / All time"
  • Search: Include archived tasks in search results (with indicator)
  • Reports: Analytics include archived tasks

User Flows

Flow 1: Complete and Archive

1. User completes task (Done status)
2. Task stays visible in kanban
3. After 30 days, auto-archive or manual archive
4. Task hidden from default view
5. User can search/filter to find it later

Flow 2: Cancel and Archive

1. User marks task as "Cancelled"
2. Task moves to Cancelled column
3. User archives cancelled task
4. Hidden from default view, preserves why it was cancelled

Flow 3: Query Archived

1. User toggles "Show Archived"
2. Kanban shows archived tasks (dimmed/strikethrough)
3. User can unarchive if needed
4. Turn off toggle to hide again

Technical Implementation

Database:

  • Add archived boolean column (default: false)
  • Add archived_at timestamp
  • Index on archived for query performance
  • Update queries to filter WHERE archived = false by default

API:

  • PATCH /tasks/:id - Add archived field
  • GET /tasks?include_archived=true - Query param
  • POST /tasks/:id/archive - Archive action
  • POST /tasks/:id/unarchive - Restore action

UI:

  • Remove "Archive" kanban column
  • Add "Cancelled" kanban column
  • Add "Show Archived" toggle to kanban header
  • Archived task indicator (grayed out, strikethrough)
  • Archive/Unarchive buttons in task menu

Migration:

  • Convert existing status='archive'status='cancelled', archived=true
  • Preserve timestamps and history

Future Enhancements

  • Auto-archive rules ("Archive done tasks after X days")
  • Archive folders/categories
  • Bulk archive by label/assignee/date
  • Archive analytics ("X tasks archived this month")
  • Restore from archive with notification

Related Issues

  • Improves kanban clarity (fewer columns)
  • Enables better task lifecycle management
  • Aligns with typical project management tools (Jira, Linear, etc.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions