feat(KB-034): add task archive/unarchive functionality

- Add 'archived' column to task store with archiveTask and unarchiveTask methods
- Add CLI commands: kb task archive <id> and kb task unarchive <id>
- Add pi extension tools for archive and unarchive operations
- Add dashboard API endpoints POST /api/tasks/:id/archive and /unarchive
- Add Archived column to board UI with archive/unarchive buttons
- Prevent drag-drop into archived column, add visual distinction
- Include duplicateTask from concurrent branch in merge resolution
This commit is contained in:
gsxdsm
2026-03-29 20:03:43 -07:00
parent d6a69d8c41
commit 52b8205220
22 changed files with 793 additions and 58 deletions

View File

@@ -242,7 +242,7 @@ body {
/* === Board === */
.board {
display: grid;
grid-template-columns: repeat(5, minmax(260px, 1fr));
grid-template-columns: repeat(6, minmax(260px, 1fr));
gap: 12px;
padding: 16px 24px;
height: calc(100vh - 57px);
@@ -310,6 +310,9 @@ body {
.dot-done {
background: var(--done);
}
.dot-archived {
background: var(--text-muted);
}
.column-header h2 {
font-size: 14px;
@@ -1640,6 +1643,44 @@ body {
outline-offset: 1px;
}
/* Archive/Unarchive buttons */
.card-archive-btn,
.card-unarchive-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 2px 8px;
margin-left: 8px;
font-size: 11px;
font-weight: 500;
background: var(--card);
border: 1px solid var(--border);
border-radius: 4px;
color: var(--text-muted);
cursor: pointer;
opacity: 0;
transition: opacity 0.15s, background 0.15s, color 0.15s, border-color 0.15s;
}
.card:hover .card-archive-btn,
.card:hover .card-unarchive-btn {
opacity: 1;
}
.card-archive-btn:hover,
.card-unarchive-btn:hover {
background: var(--card-hover);
color: var(--text);
border-color: var(--border-hover);
}
.card-archive-btn:focus,
.card-unarchive-btn:focus {
opacity: 1;
outline: 1px solid var(--todo);
outline-offset: 1px;
}
/* Loading state during save */
.card-edit-loading {
display: flex;