kanban-lite 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.kanban/backlog/1-test1.md +30 -0
- package/.kanban.json +42 -0
- package/README.md +48 -0
- package/dist/cli.js +1171 -964
- package/dist/extension.js +1301 -1147
- package/dist/mcp-server.js +383 -50
- package/dist/standalone-webview/{icons-BRNYvs1k.js → icons-BUWXsIxt.js} +44 -34
- package/dist/standalone-webview/icons-BUWXsIxt.js.map +1 -0
- package/dist/standalone-webview/index.js +39 -39
- package/dist/standalone-webview/index.js.map +1 -1
- package/dist/{webview/react-vendor-OgWxJ5nb.js → standalone-webview/react-vendor-DD6VaYq_.js} +2 -2
- package/dist/standalone-webview/react-vendor-DD6VaYq_.js.map +1 -0
- package/dist/standalone-webview/style.css +1 -1
- package/dist/standalone.js +986 -564
- package/dist/webview/{icons-BRNYvs1k.js → icons-BUWXsIxt.js} +44 -34
- package/dist/webview/icons-BUWXsIxt.js.map +1 -0
- package/dist/webview/index.js +48 -48
- package/dist/webview/index.js.map +1 -1
- package/dist/{standalone-webview/react-vendor-OgWxJ5nb.js → webview/react-vendor-DD6VaYq_.js} +2 -2
- package/dist/webview/react-vendor-DD6VaYq_.js.map +1 -0
- package/dist/webview/style.css +1 -1
- package/package.json +2 -2
- package/src/cli/index.ts +126 -0
- package/src/extension/KanbanPanel.ts +198 -378
- package/src/extension/SidebarViewProvider.ts +14 -57
- package/src/extension/index.ts +6 -52
- package/src/mcp-server/index.ts +171 -0
- package/src/sdk/KanbanSDK.ts +146 -50
- package/src/sdk/__tests__/KanbanSDK.test.ts +105 -27
- package/src/sdk/__tests__/parser.test.ts +169 -1
- package/src/sdk/fileUtils.ts +6 -0
- package/src/sdk/index.ts +5 -2
- package/src/sdk/parser.ts +57 -3
- package/src/shared/config.ts +3 -2
- package/src/shared/types.ts +12 -1
- package/src/standalone/server.ts +288 -334
- package/src/standalone/webhooks.ts +3 -0
- package/src/webview/App.tsx +22 -1
- package/src/webview/assets/main.css +105 -0
- package/src/webview/components/CommentsSection.tsx +242 -0
- package/src/webview/components/FeatureEditor.tsx +10 -2
- package/src/webview/components/MarkdownEditor.tsx +50 -5
- package/dist/standalone-webview/icons-BRNYvs1k.js.map +0 -1
- package/dist/standalone-webview/react-vendor-OgWxJ5nb.js.map +0 -1
- package/dist/webview/icons-BRNYvs1k.js.map +0 -1
- package/dist/webview/react-vendor-OgWxJ5nb.js.map +0 -1
- package/src/extension/featureFileUtils.ts +0 -82
- package/src/standalone/fileUtils.ts +0 -70
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: "1"
|
|
3
|
+
status: "backlog"
|
|
4
|
+
priority: "medium"
|
|
5
|
+
assignee: null
|
|
6
|
+
dueDate: null
|
|
7
|
+
created: "2026-02-21T22:15:35.146Z"
|
|
8
|
+
modified: "2026-02-22T02:19:31.446Z"
|
|
9
|
+
completedAt: null
|
|
10
|
+
labels: []
|
|
11
|
+
attachments: []
|
|
12
|
+
order: "a0"
|
|
13
|
+
---
|
|
14
|
+
# test1
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
comment: true
|
|
18
|
+
id: "c1"
|
|
19
|
+
author: "test"
|
|
20
|
+
created: "2026-02-21T22:27:48.359Z"
|
|
21
|
+
---
|
|
22
|
+
ljdslfjdl
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
comment: true
|
|
26
|
+
id: "c2"
|
|
27
|
+
author: "zzz"
|
|
28
|
+
created: "2026-02-22T02:19:31.446Z"
|
|
29
|
+
---
|
|
30
|
+
aa **bb**
|
package/.kanban.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
{
|
|
2
|
+
"featuresDirectory": ".kanban",
|
|
3
|
+
"defaultPriority": "medium",
|
|
4
|
+
"defaultStatus": "backlog",
|
|
5
|
+
"columns": [
|
|
6
|
+
{
|
|
7
|
+
"id": "backlog",
|
|
8
|
+
"name": "Backlog",
|
|
9
|
+
"color": "#6b7280"
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "todo",
|
|
13
|
+
"name": "To Do",
|
|
14
|
+
"color": "#3b82f6"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "in-progress",
|
|
18
|
+
"name": "In Progress",
|
|
19
|
+
"color": "#f59e0b"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"id": "review",
|
|
23
|
+
"name": "Review",
|
|
24
|
+
"color": "#8b5cf6"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"id": "done",
|
|
28
|
+
"name": "Done",
|
|
29
|
+
"color": "#22c55e"
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
"aiAgent": "claude",
|
|
33
|
+
"nextCardId": 2,
|
|
34
|
+
"showPriorityBadges": true,
|
|
35
|
+
"showAssignee": true,
|
|
36
|
+
"showDueDate": true,
|
|
37
|
+
"showLabels": true,
|
|
38
|
+
"showBuildWithAI": true,
|
|
39
|
+
"showFileName": false,
|
|
40
|
+
"compactMode": false,
|
|
41
|
+
"markdownEditorMode": false
|
|
42
|
+
}
|
package/README.md
CHANGED
|
@@ -57,6 +57,7 @@ kl add --title "My first task" --priority high
|
|
|
57
57
|
- **Due dates**: Smart formatting (Overdue, Today, Tomorrow, "5d", etc.)
|
|
58
58
|
- **Labels**: Tag features with multiple labels
|
|
59
59
|
- **Attachments**: Attach files to cards
|
|
60
|
+
- **Comments**: Add discussion threads to cards (stored in the same markdown file)
|
|
60
61
|
- **Auto-generated IDs**: Based on title and timestamp (e.g., `implement-dark-mode-2026-01-29`)
|
|
61
62
|
- **Timestamps**: Created and modified dates tracked automatically
|
|
62
63
|
|
|
@@ -109,6 +110,13 @@ kl attach implement-search # List attachments
|
|
|
109
110
|
kl attach add implement-search ./screenshot.png # Attach a file
|
|
110
111
|
kl attach remove implement-search screenshot.png # Remove attachment
|
|
111
112
|
|
|
113
|
+
# Comments
|
|
114
|
+
kl comment implement-search # List comments
|
|
115
|
+
kl comment add implement-search --author alice \
|
|
116
|
+
--body "Looks good, needs tests" # Add a comment
|
|
117
|
+
kl comment edit implement-search c1 --body "Updated" # Edit a comment
|
|
118
|
+
kl comment remove implement-search c1 # Remove a comment
|
|
119
|
+
|
|
112
120
|
# Manage columns
|
|
113
121
|
kl columns # List columns
|
|
114
122
|
kl columns add --id testing --name Testing # Add column
|
|
@@ -204,6 +212,15 @@ All responses follow the format `{ "ok": true, "data": ... }` or `{ "ok": false,
|
|
|
204
212
|
|--------|----------|-------------|
|
|
205
213
|
| `GET` | `/api/workspace` | Get workspace root path |
|
|
206
214
|
|
|
215
|
+
#### Comments
|
|
216
|
+
|
|
217
|
+
| Method | Endpoint | Description |
|
|
218
|
+
|--------|----------|-------------|
|
|
219
|
+
| `GET` | `/api/tasks/:id/comments` | List comments on a task |
|
|
220
|
+
| `POST` | `/api/tasks/:id/comments` | Add a comment (`{ author, content }`) |
|
|
221
|
+
| `PUT` | `/api/tasks/:id/comments/:commentId` | Update a comment (`{ content }`) |
|
|
222
|
+
| `DELETE` | `/api/tasks/:id/comments/:commentId` | Delete a comment |
|
|
223
|
+
|
|
207
224
|
#### Attachments
|
|
208
225
|
|
|
209
226
|
| Method | Endpoint | Description |
|
|
@@ -232,6 +249,9 @@ Register webhooks to receive HTTP POST notifications when tasks or columns chang
|
|
|
232
249
|
| `task.updated` | Task properties are changed |
|
|
233
250
|
| `task.moved` | Task is moved to a different column |
|
|
234
251
|
| `task.deleted` | A task is deleted |
|
|
252
|
+
| `comment.created` | A comment is added to a task |
|
|
253
|
+
| `comment.updated` | A comment is edited |
|
|
254
|
+
| `comment.deleted` | A comment is removed |
|
|
235
255
|
| `column.created` | A new column is added |
|
|
236
256
|
| `column.updated` | Column name or color is changed |
|
|
237
257
|
| `column.deleted` | A column is removed |
|
|
@@ -307,6 +327,10 @@ kanban-mcp --dir .kanban
|
|
|
307
327
|
| `list_attachments` | List attachments on a card |
|
|
308
328
|
| `add_attachment` | Attach a file to a card (copies to card directory) |
|
|
309
329
|
| `remove_attachment` | Remove an attachment reference from a card |
|
|
330
|
+
| `list_comments` | List comments on a card |
|
|
331
|
+
| `add_comment` | Add a comment to a card |
|
|
332
|
+
| `update_comment` | Edit a comment's content |
|
|
333
|
+
| `delete_comment` | Remove a comment from a card |
|
|
310
334
|
| `list_columns` | List all board columns |
|
|
311
335
|
| `add_column` | Add a new column to the board |
|
|
312
336
|
| `update_column` | Update a column's name or color |
|
|
@@ -347,6 +371,12 @@ await sdk.updateCard('card-id', { assignee: 'alice' })
|
|
|
347
371
|
// Delete
|
|
348
372
|
await sdk.deleteCard('card-id')
|
|
349
373
|
|
|
374
|
+
// Comments
|
|
375
|
+
await sdk.addComment('card-id', 'alice', 'Looks good!')
|
|
376
|
+
await sdk.updateComment('card-id', 'c1', 'Updated comment')
|
|
377
|
+
await sdk.deleteComment('card-id', 'c1')
|
|
378
|
+
const comments = await sdk.listComments('card-id')
|
|
379
|
+
|
|
350
380
|
// Attachments
|
|
351
381
|
await sdk.addAttachment('card-id', '/path/to/file.png')
|
|
352
382
|
await sdk.removeAttachment('card-id', 'file.png')
|
|
@@ -379,8 +409,26 @@ order: 0
|
|
|
379
409
|
# Implement dark mode toggle
|
|
380
410
|
|
|
381
411
|
Add a toggle in settings to switch between light and dark themes...
|
|
412
|
+
|
|
413
|
+
---
|
|
414
|
+
comment: true
|
|
415
|
+
id: "c1"
|
|
416
|
+
author: "alice"
|
|
417
|
+
created: "2026-01-25T15:00:00.000Z"
|
|
418
|
+
---
|
|
419
|
+
Should we support system preference detection too?
|
|
420
|
+
|
|
421
|
+
---
|
|
422
|
+
comment: true
|
|
423
|
+
id: "c2"
|
|
424
|
+
author: "john"
|
|
425
|
+
created: "2026-01-25T15:30:00.000Z"
|
|
426
|
+
---
|
|
427
|
+
Yes, good idea. I'll add that as a follow-up.
|
|
382
428
|
```
|
|
383
429
|
|
|
430
|
+
Comments are stored as additional YAML documents in the same file, keeping everything in one place and version-controllable.
|
|
431
|
+
|
|
384
432
|
## Configuration
|
|
385
433
|
|
|
386
434
|
Board configuration is stored in `.kanban.json` at your project root:
|