@pi-unipi/kanboard 3.0.0-alpha.22 → 3.0.0-alpha.23
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/package.json +7 -7
- package/src/settings.ts +36 -30
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pi-unipi/kanboard",
|
|
3
|
-
"version": "3.0.0-alpha.
|
|
3
|
+
"version": "3.0.0-alpha.23",
|
|
4
4
|
"description": "Kanboard v3 — deferred-work board: CLI/daemon bridge, task runner and skill",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"access": "public"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@pi-unipi/core": "3.0.0-alpha.
|
|
34
|
+
"@pi-unipi/core": "3.0.0-alpha.23"
|
|
35
35
|
},
|
|
36
36
|
"peerDependencies": {
|
|
37
37
|
"@earendil-works/pi-coding-agent": "^0.87.1",
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
"themes": []
|
|
49
49
|
},
|
|
50
50
|
"optionalDependencies": {
|
|
51
|
-
"@pi-unipi/kanboard-linux-x64": "3.0.0-alpha.
|
|
52
|
-
"@pi-unipi/kanboard-linux-arm64": "3.0.0-alpha.
|
|
53
|
-
"@pi-unipi/kanboard-darwin-x64": "3.0.0-alpha.
|
|
54
|
-
"@pi-unipi/kanboard-darwin-arm64": "3.0.0-alpha.
|
|
55
|
-
"@pi-unipi/kanboard-win32-x64": "3.0.0-alpha.
|
|
51
|
+
"@pi-unipi/kanboard-linux-x64": "3.0.0-alpha.23",
|
|
52
|
+
"@pi-unipi/kanboard-linux-arm64": "3.0.0-alpha.23",
|
|
53
|
+
"@pi-unipi/kanboard-darwin-x64": "3.0.0-alpha.23",
|
|
54
|
+
"@pi-unipi/kanboard-darwin-arm64": "3.0.0-alpha.23",
|
|
55
|
+
"@pi-unipi/kanboard-win32-x64": "3.0.0-alpha.23"
|
|
56
56
|
}
|
|
57
57
|
}
|
package/src/settings.ts
CHANGED
|
@@ -34,9 +34,6 @@ export interface KanboardSettings {
|
|
|
34
34
|
doTasks: number;
|
|
35
35
|
/** Board writes a /unipi:kanboard-do grants. */
|
|
36
36
|
doWrites: number;
|
|
37
|
-
/** Whether a blocked-by-confusion task may ask the user (ask) or must
|
|
38
|
-
* assume-and-note (avoid, the default). */
|
|
39
|
-
blocking: "avoid" | "ask";
|
|
40
37
|
/** Progress reminders when the agent works board tasks by hand: `start`
|
|
41
38
|
* before the first edit, `finish` (or block) before the turn ends. */
|
|
42
39
|
reminders: boolean;
|
|
@@ -56,7 +53,6 @@ export const DEFAULT_SETTINGS: KanboardSettings = {
|
|
|
56
53
|
turnAddLimit: 20,
|
|
57
54
|
doTasks: 5,
|
|
58
55
|
doWrites: 10,
|
|
59
|
-
blocking: "avoid",
|
|
60
56
|
reminders: true,
|
|
61
57
|
};
|
|
62
58
|
|
|
@@ -74,54 +70,65 @@ export function registerKanboardSettings(): void {
|
|
|
74
70
|
defaults: { ...DEFAULT_SETTINGS } as unknown as Record<string, unknown>,
|
|
75
71
|
schema: [
|
|
76
72
|
{
|
|
77
|
-
title: "
|
|
78
|
-
description: "
|
|
73
|
+
title: "Agent",
|
|
74
|
+
description: "Task flow and budgets for sessions working the board",
|
|
79
75
|
fields: [
|
|
80
76
|
{
|
|
81
77
|
key: "chainGate",
|
|
82
78
|
type: "enum",
|
|
83
79
|
label: "Chain gate",
|
|
80
|
+
description: "When a dependency counts as satisfied and the next task may start.",
|
|
84
81
|
options: [
|
|
85
|
-
{ value: "in_review", label: "
|
|
86
|
-
{ value: "done", label: "done
|
|
82
|
+
{ value: "in_review", label: "in review", description: "next task may start once this one is in review" },
|
|
83
|
+
{ value: "done", label: "done", description: "next task waits for a completed dependency" },
|
|
87
84
|
],
|
|
88
|
-
description: "When a dependency counts as satisfied for the next task",
|
|
89
85
|
},
|
|
90
|
-
{ key: "
|
|
86
|
+
{ key: "maxSessions", type: "number", label: "Max sessions", min: 1, description: "Distinct sessions that may hold in_progress tasks, per project." },
|
|
87
|
+
{ key: "turnAddLimit", type: "number", label: "Adds per turn", min: 0, zeroLabel: "unlimited", description: "`add` calls one turn may make." },
|
|
88
|
+
{ key: "reminders", type: "boolean", label: "Progress reminders", description: "Remind the agent to `start` a mentioned task before editing; text only, off in child sessions." },
|
|
89
|
+
{ key: "doTasks", type: "number", label: "-do task slots", min: 0, zeroLabel: "off", description: "Task slots a /unipi:kanboard-do grants; each `start` uses one." },
|
|
90
|
+
{ key: "doWrites", type: "number", label: "-do write budget", min: 0, zeroLabel: "off", description: "Board writes a /unipi:kanboard-do grants (add, edit, link, order, move, notes)." },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
title: "Housekeeping",
|
|
95
|
+
description: "What happens to finished and cancelled tasks",
|
|
96
|
+
fields: [
|
|
97
|
+
{ key: "archiveAfterDays", type: "number", label: "Archive after", unit: "days", min: 0, zeroLabel: "off", description: "Auto-archive done/cancelled tasks on session start." },
|
|
98
|
+
{ key: "retentionDays", type: "number", label: "Cold storage after", unit: "days", min: 0, zeroLabel: "off", description: "Move archived tasks to cold storage — readable files, gone from the board." },
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: "Board server",
|
|
103
|
+
description: "Daemon binding, lifetime and access token",
|
|
104
|
+
advanced: true,
|
|
105
|
+
fields: [
|
|
91
106
|
{
|
|
92
107
|
key: "host",
|
|
93
108
|
type: "string",
|
|
94
109
|
label: "Bind address",
|
|
95
110
|
emptyLabel: "127.0.0.1 (local only)",
|
|
96
111
|
hint: "127.0.0.1 · 0.0.0.0 (LAN, token-gated) · tailscale (tailnet IP)",
|
|
97
|
-
description: "
|
|
112
|
+
description: "Address the board server binds; anything but a loopback requires the access token.",
|
|
98
113
|
},
|
|
99
|
-
{ key: "port", type: "number", label: "Daemon port", min: 0, max: 65535, zeroLabel: "auto", description: "0 lets the OS pick a free
|
|
100
|
-
{ key: "
|
|
101
|
-
{ key: "
|
|
102
|
-
{ key: "openBrowser", type: "boolean", label: "Open the browser", description: "Open the board in a browser when /unipi:kanboard opens it" },
|
|
114
|
+
{ key: "port", type: "number", label: "Daemon port", min: 0, max: 65535, zeroLabel: "auto", description: "Port the board server listens on; 0 lets the OS pick a free one." },
|
|
115
|
+
{ key: "idleMin", type: "number", label: "Daemon idle", unit: "min", min: 1, description: "Shut the daemon down after this long with no board open." },
|
|
116
|
+
{ key: "openBrowser", type: "boolean", label: "Open browser", description: "Open the board in a browser when /unipi:kanboard opens it." },
|
|
103
117
|
{
|
|
104
118
|
key: "requireAuth",
|
|
105
119
|
type: "boolean",
|
|
106
|
-
label: "
|
|
107
|
-
description: "
|
|
120
|
+
label: "Token on localhost",
|
|
121
|
+
description: "Require the access token on 127.0.0.1 too; remote binds always need it. Next daemon start.",
|
|
108
122
|
},
|
|
109
123
|
{
|
|
110
124
|
key: "keepToken",
|
|
111
125
|
type: "boolean",
|
|
112
|
-
label: "Keep
|
|
113
|
-
description: "Reuse
|
|
114
|
-
},
|
|
115
|
-
{ key: "maxSessions", type: "number", label: "Sessions working at once (per project)", min: 1, description: "Distinct sessions holding in_progress tasks" },
|
|
116
|
-
{ key: "turnAddLimit", type: "number", label: "New tasks per turn", min: 0, zeroLabel: "unlimited", description: "`add` calls allowed per turn" },
|
|
117
|
-
{
|
|
118
|
-
key: "reminders",
|
|
119
|
-
type: "boolean",
|
|
120
|
-
label: "Progress reminders",
|
|
121
|
-
description: "Remind the agent to `start` a mentioned Todo task before editing (text only, never blocks; off in child sessions)",
|
|
126
|
+
label: "Keep token",
|
|
127
|
+
description: "Reuse <home>/token across restarts so board links stay valid; rotate below.",
|
|
122
128
|
},
|
|
123
|
-
{ key: "
|
|
124
|
-
{ key: "
|
|
129
|
+
{ key: "open", type: "action", label: "Open board…", description: "Start the daemon and open the board.", command: ACTION_OPEN },
|
|
130
|
+
{ key: "stopDaemon", type: "action", label: "Stop daemon…", description: "Shut the board server down now.", command: ACTION_STOP_DAEMON },
|
|
131
|
+
{ key: "rotateToken", type: "action", label: "Rotate access token…", description: "Issue a new token; old board links stop working.", command: ACTION_ROTATE_TOKEN },
|
|
125
132
|
],
|
|
126
133
|
},
|
|
127
134
|
],
|
|
@@ -153,7 +160,6 @@ export function readKanboardSettings(cwd: string = process.cwd()): KanboardSetti
|
|
|
153
160
|
typeof raw.doWrites === "number" && raw.doWrites >= 0 && storedDoWritesSet(cwd)
|
|
154
161
|
? raw.doWrites
|
|
155
162
|
: (storedLegacyDoCredits(cwd) ?? DEFAULT_SETTINGS.doWrites),
|
|
156
|
-
blocking: raw.blocking === "ask" ? "ask" : "avoid",
|
|
157
163
|
reminders: raw.reminders !== false,
|
|
158
164
|
};
|
|
159
165
|
}
|