-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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
- Archive column doesn't make sense - Archive should mean "hidden but preserved", not a visible kanban column
- Completed tasks clutter kanban - No way to hide finished work while preserving history
- No distinction between cancelled and archived - Different intents conflated into one status
- 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
archivedboolean column (default: false) - Add
archived_attimestamp - Index on
archivedfor query performance - Update queries to filter
WHERE archived = falseby default
API:
PATCH /tasks/:id- AddarchivedfieldGET /tasks?include_archived=true- Query paramPOST /tasks/:id/archive- Archive actionPOST /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
Labels
enhancementNew feature or requestNew feature or request