@jamesaphoenix/tx-core 0.11.1 → 0.12.0
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/README.md +105 -360
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/internal/doc-service-impl.d.ts +2 -2
- package/dist/internal/doc-service-impl.d.ts.map +1 -1
- package/dist/internal/doc-service-impl.js +340 -268
- package/dist/internal/doc-service-impl.js.map +1 -1
- package/dist/internal/spec-trace-service-impl.d.ts +7 -0
- package/dist/internal/spec-trace-service-impl.d.ts.map +1 -1
- package/dist/internal/spec-trace-service-impl.js +25 -0
- package/dist/internal/spec-trace-service-impl.js.map +1 -1
- package/dist/internal/sync/service-impl.d.ts.map +1 -1
- package/dist/internal/sync/service-impl.js +20 -1
- package/dist/internal/sync/service-impl.js.map +1 -1
- package/dist/mappers/task.js +4 -4
- package/dist/mappers/task.js.map +1 -1
- package/dist/migrations-embedded.d.ts.map +1 -1
- package/dist/migrations-embedded.js +11 -1
- package/dist/migrations-embedded.js.map +1 -1
- package/dist/repo/claim-repo.d.ts +6 -0
- package/dist/repo/claim-repo.d.ts.map +1 -1
- package/dist/repo/claim-repo.js +51 -0
- package/dist/repo/claim-repo.js.map +1 -1
- package/dist/repo/task-repo/read.d.ts.map +1 -1
- package/dist/repo/task-repo/read.js +6 -5
- package/dist/repo/task-repo/read.js.map +1 -1
- package/dist/schemas/sync.d.ts +10 -10
- package/dist/schemas/sync.d.ts.map +1 -1
- package/dist/services/claim-service.d.ts +5 -0
- package/dist/services/claim-service.d.ts.map +1 -1
- package/dist/services/claim-service.js +3 -0
- package/dist/services/claim-service.js.map +1 -1
- package/dist/services/ready-service.d.ts.map +1 -1
- package/dist/services/ready-service.js +48 -7
- package/dist/services/ready-service.js.map +1 -1
- package/dist/services/swarm-verification.d.ts +1 -1
- package/dist/services/swarm-verification.js +1 -1
- package/dist/services/task-service/internals.d.ts +18 -1
- package/dist/services/task-service/internals.d.ts.map +1 -1
- package/dist/services/task-service/internals.js +61 -2
- package/dist/services/task-service/internals.js.map +1 -1
- package/dist/services/task-service.d.ts.map +1 -1
- package/dist/services/task-service.js +12 -5
- package/dist/services/task-service.js.map +1 -1
- package/dist/sync/claude-task-writer.js +1 -1
- package/dist/sync/claude-task-writer.js.map +1 -1
- package/dist/utils/doc-renderer.d.ts.map +1 -1
- package/dist/utils/doc-renderer.js +306 -61
- package/dist/utils/doc-renderer.js.map +1 -1
- package/dist/utils/ears-validator.d.ts.map +1 -1
- package/dist/utils/ears-validator.js +128 -14
- package/dist/utils/ears-validator.js.map +1 -1
- package/dist/utils/md-doc-parser.d.ts +15 -0
- package/dist/utils/md-doc-parser.d.ts.map +1 -0
- package/dist/utils/md-doc-parser.js +275 -0
- package/dist/utils/md-doc-parser.js.map +1 -0
- package/dist/utils/toml-config.d.ts +34 -0
- package/dist/utils/toml-config.d.ts.map +1 -1
- package/dist/utils/toml-config.js +177 -6
- package/dist/utils/toml-config.js.map +1 -1
- package/migrations/001_initial.sql +2 -1
- package/migrations/039_needs_review_status.sql +108 -0
- package/migrations/040_cycles.sql +33 -0
- package/package.json +1 -1
|
@@ -5,7 +5,12 @@
|
|
|
5
5
|
import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
6
6
|
import { dirname, resolve } from "node:path";
|
|
7
7
|
export const DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY = "default_task_assigment_type";
|
|
8
|
+
export const DASHBOARD_DEFAULT_TASK_VIEW_KEY = "default_task_view";
|
|
8
9
|
const DASHBOARD_SECTION = "dashboard";
|
|
10
|
+
const DASHBOARD_CYCLES_SECTION = "dashboard.cycles";
|
|
11
|
+
export const DASHBOARD_CYCLE_LENGTH_DAYS_KEY = "cycle_length_days";
|
|
12
|
+
export const DASHBOARD_CYCLE_START_DAY_KEY = "cycle_start_day";
|
|
13
|
+
export const DASHBOARD_CARRY_STATUSES_KEY = "carry_statuses";
|
|
9
14
|
const DOCS_SECTION = "docs";
|
|
10
15
|
const SPEC_SECTION = "spec";
|
|
11
16
|
const CYCLES_SECTION = "cycles";
|
|
@@ -16,7 +21,7 @@ const VERIFY_SECTION = "verify";
|
|
|
16
21
|
const REFLECT_SECTION = "reflect";
|
|
17
22
|
const isGuardMode = (v) => v === "advisory" || v === "enforce";
|
|
18
23
|
const DEFAULT_CONFIG = {
|
|
19
|
-
docs: { path: "
|
|
24
|
+
docs: { path: "specs" },
|
|
20
25
|
spec: {
|
|
21
26
|
testPatterns: [
|
|
22
27
|
"test/**/*.test.{ts,js,tsx,jsx}",
|
|
@@ -32,18 +37,59 @@ const DEFAULT_CONFIG = {
|
|
|
32
37
|
"**/*_test.{c,cpp,cc}",
|
|
33
38
|
]
|
|
34
39
|
},
|
|
35
|
-
memory: { defaultDir: "
|
|
40
|
+
memory: { defaultDir: "specs" },
|
|
36
41
|
cycles: { scanPrompt: null, agents: 3, model: "claude-opus-4-6" },
|
|
37
|
-
dashboard: {
|
|
42
|
+
dashboard: {
|
|
43
|
+
defaultTaskAssigmentType: "human",
|
|
44
|
+
defaultTaskView: "list",
|
|
45
|
+
cycles: {
|
|
46
|
+
cycleLengthDays: 7,
|
|
47
|
+
cycleStartDay: "monday",
|
|
48
|
+
carryStatuses: ["planning", "active", "blocked", "review", "needs_review"],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
38
51
|
pins: { targetFiles: ["CLAUDE.md", "AGENTS.md"], blockAgentDoneWhenTaskIdPresent: true },
|
|
39
52
|
guard: { mode: "advisory", maxPending: null, maxChildren: null, maxDepth: null },
|
|
40
53
|
verify: { timeout: 300, defaultSchema: null },
|
|
41
54
|
reflect: { provider: "auto", model: null, defaultSessions: 10, includeTranscripts: false },
|
|
42
55
|
};
|
|
43
56
|
const isDashboardDefaultTaskAssigmentType = (value) => value === "human" || value === "agent";
|
|
57
|
+
const isDashboardDefaultTaskView = (value) => value === "list" || value === "kanban";
|
|
58
|
+
const DASHBOARD_CYCLE_START_DAYS = new Set([
|
|
59
|
+
"sunday",
|
|
60
|
+
"monday",
|
|
61
|
+
"tuesday",
|
|
62
|
+
"wednesday",
|
|
63
|
+
"thursday",
|
|
64
|
+
"friday",
|
|
65
|
+
"saturday",
|
|
66
|
+
]);
|
|
44
67
|
const parseTaskAssigmentTypeOrDefault = (value) => isDashboardDefaultTaskAssigmentType(value)
|
|
45
68
|
? value
|
|
46
69
|
: DEFAULT_CONFIG.dashboard.defaultTaskAssigmentType;
|
|
70
|
+
const parseDashboardDefaultTaskViewOrDefault = (value) => isDashboardDefaultTaskView(value)
|
|
71
|
+
? value
|
|
72
|
+
: DEFAULT_CONFIG.dashboard.defaultTaskView;
|
|
73
|
+
const parseDashboardCycleLengthOrDefault = (value) => {
|
|
74
|
+
if (!value)
|
|
75
|
+
return DEFAULT_CONFIG.dashboard.cycles.cycleLengthDays;
|
|
76
|
+
const parsed = parseInt(value, 10);
|
|
77
|
+
return Number.isFinite(parsed) && parsed > 0
|
|
78
|
+
? parsed
|
|
79
|
+
: DEFAULT_CONFIG.dashboard.cycles.cycleLengthDays;
|
|
80
|
+
};
|
|
81
|
+
const parseDashboardCycleStartDayOrDefault = (value) => {
|
|
82
|
+
if (!value)
|
|
83
|
+
return DEFAULT_CONFIG.dashboard.cycles.cycleStartDay;
|
|
84
|
+
const normalized = value.toLowerCase();
|
|
85
|
+
return DASHBOARD_CYCLE_START_DAYS.has(normalized)
|
|
86
|
+
? normalized
|
|
87
|
+
: DEFAULT_CONFIG.dashboard.cycles.cycleStartDay;
|
|
88
|
+
};
|
|
89
|
+
const parseDashboardCarryStatusesOrDefault = (values) => {
|
|
90
|
+
const normalized = values.map((value) => value.trim()).filter((value) => value.length > 0);
|
|
91
|
+
return normalized.length > 0 ? normalized : DEFAULT_CONFIG.dashboard.cycles.carryStatuses;
|
|
92
|
+
};
|
|
47
93
|
const parseBooleanOrDefault = (value, fallback) => {
|
|
48
94
|
if (value === "true")
|
|
49
95
|
return true;
|
|
@@ -69,6 +115,10 @@ export const readTxConfig = (cwd = process.cwd()) => {
|
|
|
69
115
|
const cyclesAgents = extractTomlValue(raw, CYCLES_SECTION, "agents");
|
|
70
116
|
const cyclesModel = extractTomlValue(raw, CYCLES_SECTION, "model");
|
|
71
117
|
const defaultTaskAssigmentType = extractTomlValue(raw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY);
|
|
118
|
+
const defaultTaskView = extractTomlValue(raw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_VIEW_KEY);
|
|
119
|
+
const dashboardCycleLengthDays = extractTomlValue(raw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CYCLE_LENGTH_DAYS_KEY);
|
|
120
|
+
const dashboardCycleStartDay = extractTomlValue(raw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CYCLE_START_DAY_KEY);
|
|
121
|
+
const dashboardCarryStatuses = extractTomlArray(raw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CARRY_STATUSES_KEY);
|
|
72
122
|
const memoryDefaultDir = extractTomlValue(raw, MEMORY_SECTION, "default_dir");
|
|
73
123
|
const pinsTargetFiles = extractTomlValue(raw, PINS_SECTION, "target_files");
|
|
74
124
|
const pinsBlockAgentDone = extractTomlValue(raw, PINS_SECTION, "block_agent_done_when_task_id_present");
|
|
@@ -104,6 +154,12 @@ export const readTxConfig = (cwd = process.cwd()) => {
|
|
|
104
154
|
},
|
|
105
155
|
dashboard: {
|
|
106
156
|
defaultTaskAssigmentType: parseTaskAssigmentTypeOrDefault(defaultTaskAssigmentType),
|
|
157
|
+
defaultTaskView: parseDashboardDefaultTaskViewOrDefault(defaultTaskView),
|
|
158
|
+
cycles: {
|
|
159
|
+
cycleLengthDays: parseDashboardCycleLengthOrDefault(dashboardCycleLengthDays),
|
|
160
|
+
cycleStartDay: parseDashboardCycleStartDayOrDefault(dashboardCycleStartDay),
|
|
161
|
+
carryStatuses: parseDashboardCarryStatusesOrDefault(dashboardCarryStatuses),
|
|
162
|
+
},
|
|
107
163
|
},
|
|
108
164
|
pins: {
|
|
109
165
|
targetFiles: pinsTargetFiles
|
|
@@ -141,13 +197,111 @@ export const writeDashboardDefaultTaskAssigmentType = (value, cwd = process.cwd(
|
|
|
141
197
|
const configDir = resolve(cwd, ".tx");
|
|
142
198
|
const configPath = resolve(configDir, "config.toml");
|
|
143
199
|
const current = readTxConfig(cwd);
|
|
144
|
-
const nextConfig = {
|
|
200
|
+
const nextConfig = {
|
|
201
|
+
...current,
|
|
202
|
+
dashboard: { ...current.dashboard, defaultTaskAssigmentType: value },
|
|
203
|
+
};
|
|
145
204
|
mkdirSync(dirname(configPath), { recursive: true });
|
|
146
205
|
const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
|
|
147
206
|
const nextRaw = patchTomlKey(existingRaw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_ASSIGMENT_KEY, `"${value}"`);
|
|
148
207
|
writeFileSync(configPath, ensureTrailingNewline(nextRaw), "utf8");
|
|
149
208
|
return nextConfig;
|
|
150
209
|
};
|
|
210
|
+
/**
|
|
211
|
+
* Patch the dashboard default task view in .tx/config.toml.
|
|
212
|
+
* Preserves unrelated sections and comments.
|
|
213
|
+
*/
|
|
214
|
+
export const writeDashboardDefaultTaskView = (value, cwd = process.cwd()) => {
|
|
215
|
+
const configDir = resolve(cwd, ".tx");
|
|
216
|
+
const configPath = resolve(configDir, "config.toml");
|
|
217
|
+
const current = readTxConfig(cwd);
|
|
218
|
+
const nextConfig = {
|
|
219
|
+
...current,
|
|
220
|
+
dashboard: { ...current.dashboard, defaultTaskView: value },
|
|
221
|
+
};
|
|
222
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
223
|
+
const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
|
|
224
|
+
const nextRaw = patchTomlKey(existingRaw, DASHBOARD_SECTION, DASHBOARD_DEFAULT_TASK_VIEW_KEY, `"${value}"`);
|
|
225
|
+
writeFileSync(configPath, ensureTrailingNewline(nextRaw), "utf8");
|
|
226
|
+
return nextConfig;
|
|
227
|
+
};
|
|
228
|
+
/**
|
|
229
|
+
* Read dashboard cycle settings from .tx/config.toml.
|
|
230
|
+
*/
|
|
231
|
+
export const readDashboardCyclesConfig = (cwd = process.cwd()) => readTxConfig(cwd).dashboard.cycles;
|
|
232
|
+
/**
|
|
233
|
+
* Patch dashboard cycle length in .tx/config.toml.
|
|
234
|
+
*/
|
|
235
|
+
export const writeDashboardCycleLengthDays = (value, cwd = process.cwd()) => {
|
|
236
|
+
const configDir = resolve(cwd, ".tx");
|
|
237
|
+
const configPath = resolve(configDir, "config.toml");
|
|
238
|
+
const current = readTxConfig(cwd);
|
|
239
|
+
const normalizedValue = Number.isFinite(value) && Number.isInteger(value) && value > 0
|
|
240
|
+
? value
|
|
241
|
+
: current.dashboard.cycles.cycleLengthDays;
|
|
242
|
+
const nextConfig = {
|
|
243
|
+
...current,
|
|
244
|
+
dashboard: {
|
|
245
|
+
...current.dashboard,
|
|
246
|
+
cycles: { ...current.dashboard.cycles, cycleLengthDays: normalizedValue },
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
250
|
+
const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
|
|
251
|
+
const nextRaw = patchTomlKey(existingRaw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CYCLE_LENGTH_DAYS_KEY, `${normalizedValue}`);
|
|
252
|
+
writeFileSync(configPath, ensureTrailingNewline(nextRaw), "utf8");
|
|
253
|
+
return nextConfig;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Patch dashboard cycle start day in .tx/config.toml.
|
|
257
|
+
*/
|
|
258
|
+
export const writeDashboardCycleStartDay = (value, cwd = process.cwd()) => {
|
|
259
|
+
const configDir = resolve(cwd, ".tx");
|
|
260
|
+
const configPath = resolve(configDir, "config.toml");
|
|
261
|
+
const current = readTxConfig(cwd);
|
|
262
|
+
const normalizedValue = DASHBOARD_CYCLE_START_DAYS.has(value)
|
|
263
|
+
? value
|
|
264
|
+
: current.dashboard.cycles.cycleStartDay;
|
|
265
|
+
const nextConfig = {
|
|
266
|
+
...current,
|
|
267
|
+
dashboard: {
|
|
268
|
+
...current.dashboard,
|
|
269
|
+
cycles: { ...current.dashboard.cycles, cycleStartDay: normalizedValue },
|
|
270
|
+
},
|
|
271
|
+
};
|
|
272
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
273
|
+
const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
|
|
274
|
+
const nextRaw = patchTomlKey(existingRaw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CYCLE_START_DAY_KEY, `"${normalizedValue}"`);
|
|
275
|
+
writeFileSync(configPath, ensureTrailingNewline(nextRaw), "utf8");
|
|
276
|
+
return nextConfig;
|
|
277
|
+
};
|
|
278
|
+
/**
|
|
279
|
+
* Patch dashboard cycle carry statuses in .tx/config.toml.
|
|
280
|
+
*/
|
|
281
|
+
export const writeDashboardCarryStatuses = (value, cwd = process.cwd()) => {
|
|
282
|
+
const normalized = value
|
|
283
|
+
.map((status) => status.trim())
|
|
284
|
+
.filter((status) => status.length > 0);
|
|
285
|
+
const configDir = resolve(cwd, ".tx");
|
|
286
|
+
const configPath = resolve(configDir, "config.toml");
|
|
287
|
+
const current = readTxConfig(cwd);
|
|
288
|
+
const nextCarryStatuses = normalized.length > 0
|
|
289
|
+
? normalized
|
|
290
|
+
: current.dashboard.cycles.carryStatuses;
|
|
291
|
+
const nextConfig = {
|
|
292
|
+
...current,
|
|
293
|
+
dashboard: {
|
|
294
|
+
...current.dashboard,
|
|
295
|
+
cycles: { ...current.dashboard.cycles, carryStatuses: [...nextCarryStatuses] },
|
|
296
|
+
},
|
|
297
|
+
};
|
|
298
|
+
mkdirSync(dirname(configPath), { recursive: true });
|
|
299
|
+
const existingRaw = existsSync(configPath) ? readFileSync(configPath, "utf8") : "";
|
|
300
|
+
const renderedStatuses = `[${nextCarryStatuses.map((status) => JSON.stringify(status)).join(", ")}]`;
|
|
301
|
+
const nextRaw = patchTomlKey(existingRaw, DASHBOARD_CYCLES_SECTION, DASHBOARD_CARRY_STATUSES_KEY, renderedStatuses);
|
|
302
|
+
writeFileSync(configPath, ensureTrailingNewline(nextRaw), "utf8");
|
|
303
|
+
return nextConfig;
|
|
304
|
+
};
|
|
151
305
|
function ensureTrailingNewline(value) {
|
|
152
306
|
return value.endsWith("\n") ? value : `${value}\n`;
|
|
153
307
|
}
|
|
@@ -288,7 +442,7 @@ const DEFAULT_CONFIG_TOML = `# tx configuration
|
|
|
288
442
|
|
|
289
443
|
# Where tx stores YAML doc files on disk.
|
|
290
444
|
# Relative to the project root.
|
|
291
|
-
path = "
|
|
445
|
+
path = "specs"
|
|
292
446
|
|
|
293
447
|
# EARS (Easy Approach to Requirements Syntax) is mandatory for all PRDs.
|
|
294
448
|
# PRDs with legacy 'requirements' must also define 'ears_requirements'.
|
|
@@ -325,7 +479,7 @@ test_patterns = [
|
|
|
325
479
|
# If this directory isn't already a registered source, tx auto-registers
|
|
326
480
|
# it so new documents survive future \`tx memory index\` runs.
|
|
327
481
|
# Relative to the project root.
|
|
328
|
-
default_dir = "
|
|
482
|
+
default_dir = "specs"
|
|
329
483
|
|
|
330
484
|
# ─── Cycles ─────────────────────────────────────────────────────────
|
|
331
485
|
# Sub-agent swarm for automated issue discovery.
|
|
@@ -359,6 +513,23 @@ model = "claude-opus-4-6"
|
|
|
359
513
|
# Can be toggled per-task with Cmd+K in the dashboard.
|
|
360
514
|
default_task_assigment_type = "human"
|
|
361
515
|
|
|
516
|
+
# Default task view when opening the Tasks tab in the dashboard.
|
|
517
|
+
# "list" = table/list layout.
|
|
518
|
+
# "kanban" = status-column board layout.
|
|
519
|
+
default_task_view = "list"
|
|
520
|
+
|
|
521
|
+
# Weekly cycle planning settings used by dashboard cycle APIs.
|
|
522
|
+
[dashboard.cycles]
|
|
523
|
+
|
|
524
|
+
# Cycle duration in days.
|
|
525
|
+
cycle_length_days = 7
|
|
526
|
+
|
|
527
|
+
# Day of week that anchors cycle windows.
|
|
528
|
+
cycle_start_day = "monday"
|
|
529
|
+
|
|
530
|
+
# Non-done statuses carried into the next cycle when a cycle is completed.
|
|
531
|
+
carry_statuses = ["planning", "active", "blocked", "review", "needs_review"]
|
|
532
|
+
|
|
362
533
|
# ─── Pins ───────────────────────────────────────────────────────────
|
|
363
534
|
# Context pins — persistent named content blocks that are injected
|
|
364
535
|
# into agent context files as <tx-pin id="...">...</tx-pin> XML sections.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toml-config.js","sourceRoot":"","sources":["../../src/utils/toml-config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toml-config.js","sourceRoot":"","sources":["../../src/utils/toml-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
-- Version: 001
|
|
2
2
|
-- Migration: initial
|
|
3
|
+
-- NOTE: Legacy "needs review" status value is renamed in migration 039.
|
|
3
4
|
|
|
4
5
|
-- Core tasks table
|
|
5
6
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
@@ -9,7 +10,7 @@ CREATE TABLE IF NOT EXISTS tasks (
|
|
|
9
10
|
status TEXT NOT NULL DEFAULT 'backlog'
|
|
10
11
|
CHECK (status IN (
|
|
11
12
|
'backlog', 'ready', 'planning', 'active',
|
|
12
|
-
'blocked', 'review', '
|
|
13
|
+
'blocked', 'review', 'human_' || 'needs_to_review', 'done'
|
|
13
14
|
)),
|
|
14
15
|
parent_id TEXT REFERENCES tasks(id) ON DELETE SET NULL,
|
|
15
16
|
score INTEGER NOT NULL DEFAULT 0,
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
-- Version: 039
|
|
2
|
+
-- Migration: Rename legacy "needs review" task status to needs_review
|
|
3
|
+
--
|
|
4
|
+
-- Keeps display label/color unchanged ("Needs Review", pink).
|
|
5
|
+
-- Existing rows are normalized during table copy.
|
|
6
|
+
|
|
7
|
+
PRAGMA defer_foreign_keys = ON;
|
|
8
|
+
|
|
9
|
+
CREATE TABLE tasks_new (
|
|
10
|
+
id TEXT PRIMARY KEY,
|
|
11
|
+
title TEXT NOT NULL,
|
|
12
|
+
description TEXT DEFAULT '',
|
|
13
|
+
status TEXT NOT NULL DEFAULT 'backlog'
|
|
14
|
+
CHECK (status IN (
|
|
15
|
+
'backlog', 'ready', 'planning', 'active',
|
|
16
|
+
'blocked', 'review', 'needs_review', 'done'
|
|
17
|
+
)),
|
|
18
|
+
parent_id TEXT REFERENCES tasks(id) ON DELETE SET NULL,
|
|
19
|
+
score INTEGER NOT NULL DEFAULT 0,
|
|
20
|
+
created_at TEXT NOT NULL,
|
|
21
|
+
updated_at TEXT NOT NULL,
|
|
22
|
+
completed_at TEXT,
|
|
23
|
+
metadata TEXT DEFAULT '{}',
|
|
24
|
+
assignee_type TEXT CHECK (assignee_type IN ('human', 'agent')),
|
|
25
|
+
assignee_id TEXT,
|
|
26
|
+
assigned_at TEXT,
|
|
27
|
+
assigned_by TEXT,
|
|
28
|
+
group_context TEXT,
|
|
29
|
+
verify_cmd TEXT,
|
|
30
|
+
verify_schema TEXT
|
|
31
|
+
);
|
|
32
|
+
|
|
33
|
+
INSERT INTO tasks_new (
|
|
34
|
+
id,
|
|
35
|
+
title,
|
|
36
|
+
description,
|
|
37
|
+
status,
|
|
38
|
+
parent_id,
|
|
39
|
+
score,
|
|
40
|
+
created_at,
|
|
41
|
+
updated_at,
|
|
42
|
+
completed_at,
|
|
43
|
+
metadata,
|
|
44
|
+
assignee_type,
|
|
45
|
+
assignee_id,
|
|
46
|
+
assigned_at,
|
|
47
|
+
assigned_by,
|
|
48
|
+
group_context,
|
|
49
|
+
verify_cmd,
|
|
50
|
+
verify_schema
|
|
51
|
+
)
|
|
52
|
+
SELECT
|
|
53
|
+
id,
|
|
54
|
+
title,
|
|
55
|
+
description,
|
|
56
|
+
CASE
|
|
57
|
+
WHEN status = 'human_' || 'needs_to_review' THEN 'needs_review'
|
|
58
|
+
ELSE status
|
|
59
|
+
END,
|
|
60
|
+
parent_id,
|
|
61
|
+
score,
|
|
62
|
+
created_at,
|
|
63
|
+
updated_at,
|
|
64
|
+
completed_at,
|
|
65
|
+
metadata,
|
|
66
|
+
assignee_type,
|
|
67
|
+
assignee_id,
|
|
68
|
+
assigned_at,
|
|
69
|
+
assigned_by,
|
|
70
|
+
group_context,
|
|
71
|
+
verify_cmd,
|
|
72
|
+
verify_schema
|
|
73
|
+
FROM tasks;
|
|
74
|
+
|
|
75
|
+
DROP TABLE tasks;
|
|
76
|
+
ALTER TABLE tasks_new RENAME TO tasks;
|
|
77
|
+
|
|
78
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_status ON tasks(status);
|
|
79
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_parent ON tasks(parent_id);
|
|
80
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_score ON tasks(score DESC);
|
|
81
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_created ON tasks(created_at);
|
|
82
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_updated ON tasks(updated_at DESC);
|
|
83
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_assignee_type ON tasks(assignee_type);
|
|
84
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_assignee_type_id ON tasks(assignee_type, assignee_id);
|
|
85
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_score_id ON tasks(score DESC, id ASC);
|
|
86
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_status_score_id ON tasks(status, score DESC, id ASC);
|
|
87
|
+
CREATE INDEX IF NOT EXISTS idx_tasks_group_context_present
|
|
88
|
+
ON tasks(id, updated_at DESC)
|
|
89
|
+
WHERE group_context IS NOT NULL AND length(trim(group_context)) > 0;
|
|
90
|
+
|
|
91
|
+
CREATE TRIGGER IF NOT EXISTS validate_task_id_insert
|
|
92
|
+
BEFORE INSERT ON tasks
|
|
93
|
+
FOR EACH ROW
|
|
94
|
+
WHEN NEW.id NOT GLOB 'tx-[a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9]*'
|
|
95
|
+
BEGIN
|
|
96
|
+
SELECT RAISE(ABORT, 'Task ID must match format: tx-[a-z0-9]{6,}');
|
|
97
|
+
END;
|
|
98
|
+
|
|
99
|
+
CREATE TRIGGER IF NOT EXISTS validate_task_id_update
|
|
100
|
+
BEFORE UPDATE OF id ON tasks
|
|
101
|
+
FOR EACH ROW
|
|
102
|
+
WHEN NEW.id NOT GLOB 'tx-[a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9][a-z0-9]*'
|
|
103
|
+
BEGIN
|
|
104
|
+
SELECT RAISE(ABORT, 'Task ID must match format: tx-[a-z0-9]{6,}');
|
|
105
|
+
END;
|
|
106
|
+
|
|
107
|
+
-- Record this migration
|
|
108
|
+
INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (39, datetime('now'));
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
-- Version: 040
|
|
2
|
+
-- Migration: Dashboard cycles and cycle-task assignment tables
|
|
3
|
+
|
|
4
|
+
CREATE TABLE IF NOT EXISTS cycles (
|
|
5
|
+
id TEXT PRIMARY KEY,
|
|
6
|
+
name TEXT NOT NULL,
|
|
7
|
+
start_date TEXT NOT NULL,
|
|
8
|
+
end_date TEXT NOT NULL,
|
|
9
|
+
status TEXT NOT NULL DEFAULT 'current' CHECK (status IN ('current', 'upcoming', 'completed')),
|
|
10
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
11
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
-- Enforce at most one current cycle at a time.
|
|
15
|
+
CREATE UNIQUE INDEX IF NOT EXISTS idx_cycles_single_current
|
|
16
|
+
ON cycles(status)
|
|
17
|
+
WHERE status = 'current';
|
|
18
|
+
|
|
19
|
+
CREATE INDEX IF NOT EXISTS idx_cycles_start_date
|
|
20
|
+
ON cycles(start_date DESC);
|
|
21
|
+
|
|
22
|
+
CREATE TABLE IF NOT EXISTS cycle_tasks (
|
|
23
|
+
cycle_id TEXT NOT NULL REFERENCES cycles(id) ON DELETE CASCADE,
|
|
24
|
+
task_id TEXT NOT NULL REFERENCES tasks(id) ON DELETE CASCADE,
|
|
25
|
+
added_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
26
|
+
PRIMARY KEY (cycle_id, task_id)
|
|
27
|
+
);
|
|
28
|
+
|
|
29
|
+
CREATE INDEX IF NOT EXISTS idx_cycle_tasks_task_id
|
|
30
|
+
ON cycle_tasks(task_id);
|
|
31
|
+
|
|
32
|
+
-- Record this migration
|
|
33
|
+
INSERT OR IGNORE INTO schema_version (version, applied_at) VALUES (40, datetime('now'));
|