@hasna/todos 0.13.1 → 0.13.2
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 +2 -1
- package/dist/cli/cloud-router.d.ts +21 -5
- package/dist/cli/cloud-router.d.ts.map +1 -1
- package/dist/cli/commands/config-serve-commands.d.ts.map +1 -1
- package/dist/cli/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/index.js +289 -236
- package/dist/contracts.js +20 -10
- package/dist/db/database.d.ts.map +1 -1
- package/dist/db/task-crud.d.ts.map +1 -1
- package/dist/index.js +31 -16
- package/dist/lib/dependency-graph.d.ts +18 -10
- package/dist/lib/dependency-graph.d.ts.map +1 -1
- package/dist/lib/redaction.d.ts.map +1 -1
- package/dist/mcp/index.js +28 -13
- package/dist/mcp.js +2 -2
- package/dist/registry.js +20 -10
- package/dist/release-provenance.json +5 -5
- package/dist/server/index.js +65 -30
- package/dist/server/port.d.ts +52 -0
- package/dist/server/port.d.ts.map +1 -0
- package/dist/server/serve.d.ts.map +1 -1
- package/dist/storage/interfaces.d.ts +14 -0
- package/dist/storage/interfaces.d.ts.map +1 -1
- package/dist/storage.js +21 -9
- package/dist/types/index.d.ts +15 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/registry.js
CHANGED
|
@@ -3424,6 +3424,9 @@ var init_machines = __esm(() => {
|
|
|
3424
3424
|
});
|
|
3425
3425
|
|
|
3426
3426
|
// src/types/index.ts
|
|
3427
|
+
function isBlockingDependencyStatus(status) {
|
|
3428
|
+
return status !== "completed" && status !== "cancelled";
|
|
3429
|
+
}
|
|
3427
3430
|
var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
|
|
3428
3431
|
var init_types = __esm(() => {
|
|
3429
3432
|
TASK_STATUSES = [
|
|
@@ -4123,8 +4126,8 @@ function ensureDir(filePath) {
|
|
|
4123
4126
|
function openDatabase(path) {
|
|
4124
4127
|
ensureDir(path);
|
|
4125
4128
|
const db = new Database(path);
|
|
4126
|
-
db.run("PRAGMA journal_mode = WAL");
|
|
4127
4129
|
db.run("PRAGMA busy_timeout = 5000");
|
|
4130
|
+
db.run("PRAGMA journal_mode = WAL");
|
|
4128
4131
|
db.run("PRAGMA foreign_keys = ON");
|
|
4129
4132
|
runMigrations(db);
|
|
4130
4133
|
ensureAgentIdentitySchema(db);
|
|
@@ -4955,11 +4958,15 @@ function secretPatterns() {
|
|
|
4955
4958
|
return [...customPatterns(), ...DEFAULT_SECRET_PATTERNS];
|
|
4956
4959
|
}
|
|
4957
4960
|
function isRedactionPlaceholderMatch(match) {
|
|
4958
|
-
const placeholder = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
4959
4961
|
const trimmed = match.trim();
|
|
4960
|
-
return new RegExp(`^${
|
|
4962
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(trimmed) || new RegExp(`=\\s*['"]?${REDACTION_PLACEHOLDER}['"]?$`).test(trimmed);
|
|
4963
|
+
}
|
|
4964
|
+
function isRedactionPlaceholderKey(key) {
|
|
4965
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(key.trim());
|
|
4961
4966
|
}
|
|
4962
4967
|
function isSecretKey(key) {
|
|
4968
|
+
if (isRedactionPlaceholderKey(key))
|
|
4969
|
+
return false;
|
|
4963
4970
|
if (NON_SECRET_USAGE_KEYS.has(key.toLowerCase()))
|
|
4964
4971
|
return false;
|
|
4965
4972
|
if (DEFAULT_SECRET_KEY_PATTERN.test(key))
|
|
@@ -5020,7 +5027,7 @@ function upsertSecretSafetyConfig(input) {
|
|
|
5020
5027
|
saveConfig({ ...config, secret_safety: next });
|
|
5021
5028
|
return next;
|
|
5022
5029
|
}
|
|
5023
|
-
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS;
|
|
5030
|
+
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS, REDACTION_PLACEHOLDER;
|
|
5024
5031
|
var init_redaction = __esm(() => {
|
|
5025
5032
|
init_config2();
|
|
5026
5033
|
DEFAULT_SECRET_PATTERNS = [
|
|
@@ -5044,6 +5051,7 @@ var init_redaction = __esm(() => {
|
|
|
5044
5051
|
"completion_tokens",
|
|
5045
5052
|
"cost_tokens"
|
|
5046
5053
|
]);
|
|
5054
|
+
REDACTION_PLACEHOLDER = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
5047
5055
|
});
|
|
5048
5056
|
|
|
5049
5057
|
// src/lib/workspace-trust.ts
|
|
@@ -6683,7 +6691,7 @@ function scanTextForSecrets(text, options = {}) {
|
|
|
6683
6691
|
};
|
|
6684
6692
|
}
|
|
6685
6693
|
function redactText(text, options = {}) {
|
|
6686
|
-
const placeholder = options.placeholder ??
|
|
6694
|
+
const placeholder = options.placeholder ?? REDACTION_PLACEHOLDER2;
|
|
6687
6695
|
let out = text;
|
|
6688
6696
|
for (const { pattern, allowlist_ok } of DEFAULT_PATTERNS) {
|
|
6689
6697
|
out = out.replace(new RegExp(pattern.source, pattern.flags), (match) => {
|
|
@@ -6744,7 +6752,7 @@ function redactExportRecord(record) {
|
|
|
6744
6752
|
function getDefaultSecretPatterns() {
|
|
6745
6753
|
return DEFAULT_PATTERNS.map((p) => ({ name: p.name, source: p.pattern.source }));
|
|
6746
6754
|
}
|
|
6747
|
-
var SECRET_REDACTION_SCHEMA,
|
|
6755
|
+
var SECRET_REDACTION_SCHEMA, REDACTION_PLACEHOLDER2 = "[REDACTED]", DEFAULT_PATTERNS, DEFAULT_ALLOWLIST, customRedactors;
|
|
6748
6756
|
var init_secret_redaction = __esm(() => {
|
|
6749
6757
|
init_redaction();
|
|
6750
6758
|
SECRET_REDACTION_SCHEMA = ["todos", "secret_redaction", "v1"].join(".");
|
|
@@ -8801,10 +8809,11 @@ function getTaskWithRelations(id, db) {
|
|
|
8801
8809
|
JOIN task_dependencies td ON td.depends_on = t.id
|
|
8802
8810
|
WHERE td.task_id = ?`).all(id);
|
|
8803
8811
|
const dependencies = depRows.map(rowToTask);
|
|
8804
|
-
const
|
|
8812
|
+
const blocked_by = dependencies.filter((dep) => isBlockingDependencyStatus(dep.status));
|
|
8813
|
+
const blocksRows = d.query(`SELECT t.* FROM tasks t
|
|
8805
8814
|
JOIN task_dependencies td ON td.task_id = t.id
|
|
8806
8815
|
WHERE td.depends_on = ?`).all(id);
|
|
8807
|
-
const
|
|
8816
|
+
const blocks = blocksRows.map(rowToTask);
|
|
8808
8817
|
const comments = d.query("SELECT * FROM task_comments WHERE task_id = ? ORDER BY created_at").all(id);
|
|
8809
8818
|
const parent = task.parent_id ? getTask(task.parent_id, d) : null;
|
|
8810
8819
|
const checklist = getChecklist(id, d);
|
|
@@ -8813,6 +8822,7 @@ function getTaskWithRelations(id, db) {
|
|
|
8813
8822
|
subtasks,
|
|
8814
8823
|
dependencies,
|
|
8815
8824
|
blocked_by,
|
|
8825
|
+
blocks,
|
|
8816
8826
|
comments,
|
|
8817
8827
|
parent,
|
|
8818
8828
|
checklist
|
|
@@ -11823,7 +11833,7 @@ var init_tasks = __esm(() => {
|
|
|
11823
11833
|
// package.json
|
|
11824
11834
|
var package_default = {
|
|
11825
11835
|
name: "@hasna/todos",
|
|
11826
|
-
version: "0.13.
|
|
11836
|
+
version: "0.13.2",
|
|
11827
11837
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
11828
11838
|
type: "module",
|
|
11829
11839
|
main: "dist/index.js",
|
|
@@ -11875,7 +11885,7 @@ var package_default = {
|
|
|
11875
11885
|
"backfill:comment-redaction": "bun run src/server/index.ts redact-comments",
|
|
11876
11886
|
"generate:sdk": "bun run scripts/generate-sdk.ts",
|
|
11877
11887
|
"build:dashboard": "cd dashboard && bun install --frozen-lockfile && bun run build",
|
|
11878
|
-
typecheck: "tsc --noEmit",
|
|
11888
|
+
typecheck: "tsc --noEmit -p tsconfig.typecheck.json",
|
|
11879
11889
|
test: "bun test",
|
|
11880
11890
|
"test:no-cloud": "bun test src/no-cloud-boundary.test.ts src/local-first.test.ts src/lib/public-release-gate.test.ts",
|
|
11881
11891
|
"dev:cli": "bun run src/cli/index.tsx",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.13.
|
|
3
|
+
"packageVersion": "0.13.2",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-07-
|
|
5
|
+
"gitCommit": "cb914c5f9ccfabb39983b5156f4c1cec78e00c1f",
|
|
6
|
+
"gitTree": "3693d6d0fd8f3bdd2581fc915e91264caf08760d",
|
|
7
|
+
"sourceTreeSha256": "4a1b890d4a3b4ffc73d605e7aa3ccbcba2deb6c72d3604a1db733b57c0c25e00",
|
|
8
|
+
"generatedAt": "2026-07-28T15:00:57.000Z"
|
|
9
9
|
}
|
package/dist/server/index.js
CHANGED
|
@@ -70,7 +70,7 @@ var package_default;
|
|
|
70
70
|
var init_package = __esm(() => {
|
|
71
71
|
package_default = {
|
|
72
72
|
name: "@hasna/todos",
|
|
73
|
-
version: "0.13.
|
|
73
|
+
version: "0.13.2",
|
|
74
74
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
75
75
|
type: "module",
|
|
76
76
|
main: "dist/index.js",
|
|
@@ -122,7 +122,7 @@ var init_package = __esm(() => {
|
|
|
122
122
|
"backfill:comment-redaction": "bun run src/server/index.ts redact-comments",
|
|
123
123
|
"generate:sdk": "bun run scripts/generate-sdk.ts",
|
|
124
124
|
"build:dashboard": "cd dashboard && bun install --frozen-lockfile && bun run build",
|
|
125
|
-
typecheck: "tsc --noEmit",
|
|
125
|
+
typecheck: "tsc --noEmit -p tsconfig.typecheck.json",
|
|
126
126
|
test: "bun test",
|
|
127
127
|
"test:no-cloud": "bun test src/no-cloud-boundary.test.ts src/local-first.test.ts src/lib/public-release-gate.test.ts",
|
|
128
128
|
"dev:cli": "bun run src/cli/index.tsx",
|
|
@@ -466,6 +466,9 @@ var init_cloud_client = __esm(() => {
|
|
|
466
466
|
});
|
|
467
467
|
|
|
468
468
|
// src/types/index.ts
|
|
469
|
+
function isBlockingDependencyStatus(status) {
|
|
470
|
+
return status !== "completed" && status !== "cancelled";
|
|
471
|
+
}
|
|
469
472
|
var TASK_STATUSES, VersionConflictError, TaskNotFoundError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DispatchNotFoundError;
|
|
470
473
|
var init_types = __esm(() => {
|
|
471
474
|
TASK_STATUSES = [
|
|
@@ -1201,11 +1204,15 @@ function secretPatterns() {
|
|
|
1201
1204
|
return [...customPatterns(), ...DEFAULT_SECRET_PATTERNS];
|
|
1202
1205
|
}
|
|
1203
1206
|
function isRedactionPlaceholderMatch(match) {
|
|
1204
|
-
const placeholder = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
1205
1207
|
const trimmed = match.trim();
|
|
1206
|
-
return new RegExp(`^${
|
|
1208
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(trimmed) || new RegExp(`=\\s*['"]?${REDACTION_PLACEHOLDER}['"]?$`).test(trimmed);
|
|
1209
|
+
}
|
|
1210
|
+
function isRedactionPlaceholderKey(key) {
|
|
1211
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(key.trim());
|
|
1207
1212
|
}
|
|
1208
1213
|
function isSecretKey(key) {
|
|
1214
|
+
if (isRedactionPlaceholderKey(key))
|
|
1215
|
+
return false;
|
|
1209
1216
|
if (NON_SECRET_USAGE_KEYS.has(key.toLowerCase()))
|
|
1210
1217
|
return false;
|
|
1211
1218
|
if (DEFAULT_SECRET_KEY_PATTERN.test(key))
|
|
@@ -1263,7 +1270,7 @@ function upsertSecretSafetyConfig(input) {
|
|
|
1263
1270
|
saveConfig({ ...config, secret_safety: next });
|
|
1264
1271
|
return next;
|
|
1265
1272
|
}
|
|
1266
|
-
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS;
|
|
1273
|
+
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS, REDACTION_PLACEHOLDER;
|
|
1267
1274
|
var init_redaction = __esm(() => {
|
|
1268
1275
|
init_config2();
|
|
1269
1276
|
DEFAULT_SECRET_PATTERNS = [
|
|
@@ -1287,6 +1294,7 @@ var init_redaction = __esm(() => {
|
|
|
1287
1294
|
"completion_tokens",
|
|
1288
1295
|
"cost_tokens"
|
|
1289
1296
|
]);
|
|
1297
|
+
REDACTION_PLACEHOLDER = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
1290
1298
|
});
|
|
1291
1299
|
|
|
1292
1300
|
// src/storage/postgres-adapter.ts
|
|
@@ -2209,9 +2217,11 @@ async function removeDependency(taskId, dependsOn, store) {
|
|
|
2209
2217
|
}
|
|
2210
2218
|
async function listDependencies(taskId, store) {
|
|
2211
2219
|
const edges = await store.list("dependencies");
|
|
2220
|
+
const incoming = edges.filter((edge) => edge.depends_on === taskId).map((edge) => ({ task_id: edge.task_id, depends_on: edge.depends_on }));
|
|
2212
2221
|
return {
|
|
2213
2222
|
dependencies: edges.filter((edge) => edge.task_id === taskId).map((edge) => ({ task_id: edge.task_id, depends_on: edge.depends_on })),
|
|
2214
|
-
|
|
2223
|
+
blocks: incoming,
|
|
2224
|
+
blocked_by: incoming
|
|
2215
2225
|
};
|
|
2216
2226
|
}
|
|
2217
2227
|
async function addVerification(input, store, context) {
|
|
@@ -8641,8 +8651,8 @@ function ensureDir2(filePath) {
|
|
|
8641
8651
|
function openDatabase(path) {
|
|
8642
8652
|
ensureDir2(path);
|
|
8643
8653
|
const db = new Database(path);
|
|
8644
|
-
db.run("PRAGMA journal_mode = WAL");
|
|
8645
8654
|
db.run("PRAGMA busy_timeout = 5000");
|
|
8655
|
+
db.run("PRAGMA journal_mode = WAL");
|
|
8646
8656
|
db.run("PRAGMA foreign_keys = ON");
|
|
8647
8657
|
runMigrations(db);
|
|
8648
8658
|
ensureAgentIdentitySchema(db);
|
|
@@ -11040,7 +11050,7 @@ function scanTextForSecrets(text, options = {}) {
|
|
|
11040
11050
|
};
|
|
11041
11051
|
}
|
|
11042
11052
|
function redactText(text, options = {}) {
|
|
11043
|
-
const placeholder = options.placeholder ??
|
|
11053
|
+
const placeholder = options.placeholder ?? REDACTION_PLACEHOLDER2;
|
|
11044
11054
|
let out = text;
|
|
11045
11055
|
for (const { pattern, allowlist_ok } of DEFAULT_PATTERNS) {
|
|
11046
11056
|
out = out.replace(new RegExp(pattern.source, pattern.flags), (match) => {
|
|
@@ -11067,7 +11077,7 @@ function redactExportRecord(record) {
|
|
|
11067
11077
|
}
|
|
11068
11078
|
return base;
|
|
11069
11079
|
}
|
|
11070
|
-
var SECRET_REDACTION_SCHEMA,
|
|
11080
|
+
var SECRET_REDACTION_SCHEMA, REDACTION_PLACEHOLDER2 = "[REDACTED]", DEFAULT_PATTERNS, DEFAULT_ALLOWLIST, customRedactors;
|
|
11071
11081
|
var init_secret_redaction = __esm(() => {
|
|
11072
11082
|
init_redaction();
|
|
11073
11083
|
SECRET_REDACTION_SCHEMA = ["todos", "secret_redaction", "v1"].join(".");
|
|
@@ -13059,10 +13069,11 @@ function getTaskWithRelations(id, db) {
|
|
|
13059
13069
|
JOIN task_dependencies td ON td.depends_on = t.id
|
|
13060
13070
|
WHERE td.task_id = ?`).all(id);
|
|
13061
13071
|
const dependencies = depRows.map(rowToTask);
|
|
13062
|
-
const
|
|
13072
|
+
const blocked_by = dependencies.filter((dep) => isBlockingDependencyStatus(dep.status));
|
|
13073
|
+
const blocksRows = d.query(`SELECT t.* FROM tasks t
|
|
13063
13074
|
JOIN task_dependencies td ON td.task_id = t.id
|
|
13064
13075
|
WHERE td.depends_on = ?`).all(id);
|
|
13065
|
-
const
|
|
13076
|
+
const blocks = blocksRows.map(rowToTask);
|
|
13066
13077
|
const comments = d.query("SELECT * FROM task_comments WHERE task_id = ? ORDER BY created_at").all(id);
|
|
13067
13078
|
const parent = task.parent_id ? getTask(task.parent_id, d) : null;
|
|
13068
13079
|
const checklist = getChecklist(id, d);
|
|
@@ -13071,6 +13082,7 @@ function getTaskWithRelations(id, db) {
|
|
|
13071
13082
|
subtasks,
|
|
13072
13083
|
dependencies,
|
|
13073
13084
|
blocked_by,
|
|
13085
|
+
blocks,
|
|
13074
13086
|
comments,
|
|
13075
13087
|
parent,
|
|
13076
13088
|
checklist
|
|
@@ -45062,6 +45074,7 @@ async function cloudResolveTaskListRef(client, ref, projectId) {
|
|
|
45062
45074
|
}
|
|
45063
45075
|
var UUID_RE, CLOUD_MODES, VALID_STORAGE_MODES, completionCapabilityCache;
|
|
45064
45076
|
var init_cloud_router = __esm(() => {
|
|
45077
|
+
init_types();
|
|
45065
45078
|
init_redaction();
|
|
45066
45079
|
init_http_client();
|
|
45067
45080
|
UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
@@ -91977,7 +91990,7 @@ Dashboard not found at: ${dashboardDir}`);
|
|
|
91977
91990
|
const path = url.pathname;
|
|
91978
91991
|
const method = req.method;
|
|
91979
91992
|
const reqOrigin = req.headers.get("origin") || undefined;
|
|
91980
|
-
const corsHeaders = reqOrigin &&
|
|
91993
|
+
const corsHeaders = reqOrigin && reqOrigin === `http://localhost:${ctx.port}` ? {
|
|
91981
91994
|
"Access-Control-Allow-Origin": reqOrigin,
|
|
91982
91995
|
"Access-Control-Allow-Methods": "GET, POST, PATCH, DELETE, OPTIONS",
|
|
91983
91996
|
"Access-Control-Allow-Headers": "Content-Type, X-API-Key, Authorization",
|
|
@@ -92265,7 +92278,9 @@ Dashboard not found at: ${dashboardDir}`);
|
|
|
92265
92278
|
};
|
|
92266
92279
|
process.on("SIGINT", shutdown);
|
|
92267
92280
|
process.on("SIGTERM", shutdown);
|
|
92268
|
-
const
|
|
92281
|
+
const boundPort = server.port ?? port;
|
|
92282
|
+
ctx.port = boundPort;
|
|
92283
|
+
const serverUrl = `http://localhost:${boundPort}`;
|
|
92269
92284
|
console.log(`Todos Dashboard running at ${serverUrl}`);
|
|
92270
92285
|
if (shouldOpen) {
|
|
92271
92286
|
try {
|
|
@@ -92306,7 +92321,39 @@ var init_serve = __esm(() => {
|
|
|
92306
92321
|
|
|
92307
92322
|
// src/server/index.ts
|
|
92308
92323
|
init_package_version();
|
|
92324
|
+
|
|
92325
|
+
// src/server/port.ts
|
|
92309
92326
|
var DEFAULT_PORT = 19427;
|
|
92327
|
+
function coercePort(raw) {
|
|
92328
|
+
if (raw === undefined)
|
|
92329
|
+
return;
|
|
92330
|
+
const trimmed = raw.trim();
|
|
92331
|
+
if (!/^\d+$/.test(trimmed))
|
|
92332
|
+
return;
|
|
92333
|
+
if (trimmed.length > 1 && trimmed.startsWith("0"))
|
|
92334
|
+
return;
|
|
92335
|
+
const parsed = Number.parseInt(trimmed, 10);
|
|
92336
|
+
if (!Number.isInteger(parsed) || parsed > 65535)
|
|
92337
|
+
return;
|
|
92338
|
+
return parsed;
|
|
92339
|
+
}
|
|
92340
|
+
function refuseInvalidPort(source, raw) {
|
|
92341
|
+
console.error(`Invalid ${source}: ${JSON.stringify(raw)} is not a port.
|
|
92342
|
+
` + `Use an integer from 0 to 65535, where 0 asks the kernel for a free port.`);
|
|
92343
|
+
process.exit(1);
|
|
92344
|
+
}
|
|
92345
|
+
async function findFreePort(start) {
|
|
92346
|
+
for (let port = start;port < start + 100; port++) {
|
|
92347
|
+
try {
|
|
92348
|
+
const server = Bun.serve({ port, fetch: () => new Response("") });
|
|
92349
|
+
server.stop(true);
|
|
92350
|
+
return port;
|
|
92351
|
+
} catch {}
|
|
92352
|
+
}
|
|
92353
|
+
return start;
|
|
92354
|
+
}
|
|
92355
|
+
|
|
92356
|
+
// src/server/index.ts
|
|
92310
92357
|
function hasVersionFlag2() {
|
|
92311
92358
|
return process.argv.includes("--version") || process.argv.includes("-V");
|
|
92312
92359
|
}
|
|
@@ -92341,11 +92388,8 @@ Environment:
|
|
|
92341
92388
|
function parsePort() {
|
|
92342
92389
|
const portArg = process.argv.find((a) => a === "--port" || a.startsWith("--port="));
|
|
92343
92390
|
if (portArg) {
|
|
92344
|
-
|
|
92345
|
-
|
|
92346
|
-
}
|
|
92347
|
-
const idx = process.argv.indexOf(portArg);
|
|
92348
|
-
return parseInt(process.argv[idx + 1], 10) || DEFAULT_PORT;
|
|
92391
|
+
const raw = portArg.includes("=") ? portArg.split("=")[1] : process.argv[process.argv.indexOf(portArg) + 1];
|
|
92392
|
+
return coercePort(raw) ?? refuseInvalidPort("--port", raw ?? "");
|
|
92349
92393
|
}
|
|
92350
92394
|
return DEFAULT_PORT;
|
|
92351
92395
|
}
|
|
@@ -92358,16 +92402,6 @@ function parseStringArg(name) {
|
|
|
92358
92402
|
const idx = process.argv.indexOf(arg);
|
|
92359
92403
|
return process.argv[idx + 1] || undefined;
|
|
92360
92404
|
}
|
|
92361
|
-
async function findFreePort(start) {
|
|
92362
|
-
for (let port = start;port < start + 100; port++) {
|
|
92363
|
-
try {
|
|
92364
|
-
const server = Bun.serve({ port, fetch: () => new Response("") });
|
|
92365
|
-
server.stop(true);
|
|
92366
|
-
return port;
|
|
92367
|
-
} catch {}
|
|
92368
|
-
}
|
|
92369
|
-
return start;
|
|
92370
|
-
}
|
|
92371
92405
|
async function runMigrate() {
|
|
92372
92406
|
const {
|
|
92373
92407
|
ensureCloudSchema: ensureCloudSchema2,
|
|
@@ -92463,9 +92497,10 @@ async function main2() {
|
|
|
92463
92497
|
return;
|
|
92464
92498
|
}
|
|
92465
92499
|
const explicitPortArg = process.argv.some((a) => a === "--port" || a.startsWith("--port="));
|
|
92466
|
-
const
|
|
92500
|
+
const rawEnvPort = process.env.PORT?.trim();
|
|
92501
|
+
const envPort = rawEnvPort ? coercePort(rawEnvPort) ?? refuseInvalidPort("PORT", rawEnvPort) : undefined;
|
|
92467
92502
|
const requestedPort = explicitPortArg ? parsePort() : envPort ?? parsePort();
|
|
92468
|
-
const port = envPort || explicitPortArg ? requestedPort : await findFreePort(requestedPort);
|
|
92503
|
+
const port = envPort !== undefined || explicitPortArg ? requestedPort : await findFreePort(requestedPort);
|
|
92469
92504
|
if (port !== requestedPort) {
|
|
92470
92505
|
console.log(`Port ${requestedPort} in use, using ${port}`);
|
|
92471
92506
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Port resolution shared by every entry point that can start the dashboard
|
|
3
|
+
* server: the standalone `todos-serve` entry (src/server/index.ts) and the
|
|
4
|
+
* `todos serve` CLI command (src/cli/commands/config-serve-commands.ts).
|
|
5
|
+
*
|
|
6
|
+
* These had independent copies of the same two primitives, and only one of them
|
|
7
|
+
* was ever hardened — so `todos-serve --port=abc` fell back to the default while
|
|
8
|
+
* `todos serve --port abc` passed NaN through to Bun.serve and silently bound a
|
|
9
|
+
* random ephemeral port. One parser, one scan, one default.
|
|
10
|
+
*/
|
|
11
|
+
/** Documented default port for the dashboard/API server. */
|
|
12
|
+
export declare const DEFAULT_PORT = 19427;
|
|
13
|
+
/**
|
|
14
|
+
* Parses a port, returning undefined for anything that is not a valid one.
|
|
15
|
+
*
|
|
16
|
+
* `0` is MEANINGFUL: it asks the kernel for a free ephemeral port. Coercing with
|
|
17
|
+
* `parseInt(...) || DEFAULT_PORT` silently rewrote `--port=0` to the default,
|
|
18
|
+
* which made "let the OS pick a port" impossible to request — the reason
|
|
19
|
+
* subprocess tests used to guess ports out of hardcoded ranges and race each
|
|
20
|
+
* other for them. Only reject values that are not a port at all.
|
|
21
|
+
*/
|
|
22
|
+
export declare function coercePort(raw: string | undefined): number | undefined;
|
|
23
|
+
/**
|
|
24
|
+
* Refuses an explicitly supplied port that is not a port at all.
|
|
25
|
+
*
|
|
26
|
+
* Silently substituting the default is the same defect class as the silent
|
|
27
|
+
* ephemeral bind this module was written to remove: the operator asked for one
|
|
28
|
+
* thing, got another, and was told nothing. A typo in a port is always a mistake
|
|
29
|
+
* worth stopping for, and stopping costs nothing — the server had not started.
|
|
30
|
+
* Absent input is NOT an error; only a value that was provided and cannot be a
|
|
31
|
+
* port.
|
|
32
|
+
*/
|
|
33
|
+
export declare function refuseInvalidPort(source: string, raw: string): never;
|
|
34
|
+
/**
|
|
35
|
+
* Finds the first free port at or after `start`, scanning a bounded window.
|
|
36
|
+
*
|
|
37
|
+
* The two callers apply DIFFERENT policies to this, deliberately:
|
|
38
|
+
*
|
|
39
|
+
* - `todos-serve` (src/server/index.ts) scans only for the IMPLICIT default. A
|
|
40
|
+
* port requested explicitly, or via PORT, is bound exactly or the process
|
|
41
|
+
* fails, because a container health check would otherwise target the wrong
|
|
42
|
+
* port.
|
|
43
|
+
* - `todos serve` (the CLI) scans for any non-zero port, including an explicit
|
|
44
|
+
* one. That is long-standing dev-convenience behavior — `--port 8080` with
|
|
45
|
+
* 8080 busy starts on 8081 — and changing it is a user-facing decision, not
|
|
46
|
+
* something to slip into a test-fragility change.
|
|
47
|
+
*
|
|
48
|
+
* Only `--port 0` bypasses the scan in both, since the kernel is already being
|
|
49
|
+
* asked to choose.
|
|
50
|
+
*/
|
|
51
|
+
export declare function findFreePort(start: number): Promise<number>;
|
|
52
|
+
//# sourceMappingURL=port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"port.d.ts","sourceRoot":"","sources":["../../src/server/port.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4DAA4D;AAC5D,eAAO,MAAM,YAAY,QAAQ,CAAC;AAElC;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAiBtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAMpE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAWjE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA+B9C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAiCF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,GAAG,IAAI,CAsBjB;AA6CD,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CASjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAYjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EA0B1D;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/server/serve.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AA+B9C,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW7C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAMnD,CAAC;AAiCF;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,GAAG,IAAI,CAsBjB;AA6CD,wBAAgB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,SAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CASjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAYjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;EA0B1D;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0hB3F"}
|
|
@@ -93,8 +93,22 @@ export interface TodosLockResult {
|
|
|
93
93
|
expires_at?: string;
|
|
94
94
|
error?: string;
|
|
95
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* A task's raw dependency edges as served by `GET /v1/tasks/:id/dependencies`.
|
|
98
|
+
* `dependencies` are the OUTGOING edges (this task depends on `depends_on`);
|
|
99
|
+
* `blocks` are the INCOMING edges (their `task_id` depends on this task).
|
|
100
|
+
*
|
|
101
|
+
* `blocked_by` is a DEPRECATED wire alias that carries the SAME contents as
|
|
102
|
+
* `blocks` (the incoming/dependent edges — despite what the name suggests).
|
|
103
|
+
* It is kept because fleet clients up to @hasna/todos 0.13.1 read it for the
|
|
104
|
+
* `Blocks:` rendering and the show/inspect hydration; renaming it server-side
|
|
105
|
+
* would silently flip their display (regression 4599ef37). New consumers must
|
|
106
|
+
* read `blocks`.
|
|
107
|
+
*/
|
|
96
108
|
export interface TodosTaskDependencies {
|
|
97
109
|
dependencies: TaskDependency[];
|
|
110
|
+
blocks: TaskDependency[];
|
|
111
|
+
/** @deprecated legacy wire alias of {@link TodosTaskDependencies.blocks}. */
|
|
98
112
|
blocked_by: TaskDependency[];
|
|
99
113
|
}
|
|
100
114
|
export interface TodosDependencyStore {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/storage/interfaces.ts"],"names":[],"mappings":"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"}
|
package/dist/storage.js
CHANGED
|
@@ -3631,6 +3631,9 @@ var init_machines = __esm(() => {
|
|
|
3631
3631
|
});
|
|
3632
3632
|
|
|
3633
3633
|
// src/types/index.ts
|
|
3634
|
+
function isBlockingDependencyStatus(status) {
|
|
3635
|
+
return status !== "completed" && status !== "cancelled";
|
|
3636
|
+
}
|
|
3634
3637
|
var TASK_STATUSES, TASK_PRIORITIES, PLAN_STATUSES, VersionConflictError, TaskNotFoundError, ProjectNotFoundError, ResourceConflictError, PlanNotFoundError, LockError, AgentNotFoundError, IdentityAliasAmbiguousError, IdentityIdImmutableError, TaskListNotFoundError, DependencyCycleError, CompletionGuardError, DISPATCH_STATUSES, DispatchNotFoundError;
|
|
3635
3638
|
var init_types = __esm(() => {
|
|
3636
3639
|
TASK_STATUSES = [
|
|
@@ -4123,8 +4126,8 @@ function ensureDir(filePath) {
|
|
|
4123
4126
|
function openDatabase(path) {
|
|
4124
4127
|
ensureDir(path);
|
|
4125
4128
|
const db = new Database(path);
|
|
4126
|
-
db.run("PRAGMA journal_mode = WAL");
|
|
4127
4129
|
db.run("PRAGMA busy_timeout = 5000");
|
|
4130
|
+
db.run("PRAGMA journal_mode = WAL");
|
|
4128
4131
|
db.run("PRAGMA foreign_keys = ON");
|
|
4129
4132
|
runMigrations(db);
|
|
4130
4133
|
ensureAgentIdentitySchema(db);
|
|
@@ -4955,11 +4958,15 @@ function secretPatterns() {
|
|
|
4955
4958
|
return [...customPatterns(), ...DEFAULT_SECRET_PATTERNS];
|
|
4956
4959
|
}
|
|
4957
4960
|
function isRedactionPlaceholderMatch(match) {
|
|
4958
|
-
const placeholder = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
4959
4961
|
const trimmed = match.trim();
|
|
4960
|
-
return new RegExp(`^${
|
|
4962
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(trimmed) || new RegExp(`=\\s*['"]?${REDACTION_PLACEHOLDER}['"]?$`).test(trimmed);
|
|
4963
|
+
}
|
|
4964
|
+
function isRedactionPlaceholderKey(key) {
|
|
4965
|
+
return new RegExp(`^${REDACTION_PLACEHOLDER}$`).test(key.trim());
|
|
4961
4966
|
}
|
|
4962
4967
|
function isSecretKey(key) {
|
|
4968
|
+
if (isRedactionPlaceholderKey(key))
|
|
4969
|
+
return false;
|
|
4963
4970
|
if (NON_SECRET_USAGE_KEYS.has(key.toLowerCase()))
|
|
4964
4971
|
return false;
|
|
4965
4972
|
if (DEFAULT_SECRET_KEY_PATTERN.test(key))
|
|
@@ -5020,7 +5027,7 @@ function upsertSecretSafetyConfig(input) {
|
|
|
5020
5027
|
saveConfig({ ...config, secret_safety: next });
|
|
5021
5028
|
return next;
|
|
5022
5029
|
}
|
|
5023
|
-
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS;
|
|
5030
|
+
var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS, REDACTION_PLACEHOLDER;
|
|
5024
5031
|
var init_redaction = __esm(() => {
|
|
5025
5032
|
init_config2();
|
|
5026
5033
|
DEFAULT_SECRET_PATTERNS = [
|
|
@@ -5044,6 +5051,7 @@ var init_redaction = __esm(() => {
|
|
|
5044
5051
|
"completion_tokens",
|
|
5045
5052
|
"cost_tokens"
|
|
5046
5053
|
]);
|
|
5054
|
+
REDACTION_PLACEHOLDER = String.raw`\[REDACTED(?:_[A-Z_]+)?\]`;
|
|
5047
5055
|
});
|
|
5048
5056
|
|
|
5049
5057
|
// src/lib/workspace-trust.ts
|
|
@@ -6683,7 +6691,7 @@ function scanTextForSecrets(text, options = {}) {
|
|
|
6683
6691
|
};
|
|
6684
6692
|
}
|
|
6685
6693
|
function redactText(text, options = {}) {
|
|
6686
|
-
const placeholder = options.placeholder ??
|
|
6694
|
+
const placeholder = options.placeholder ?? REDACTION_PLACEHOLDER2;
|
|
6687
6695
|
let out = text;
|
|
6688
6696
|
for (const { pattern, allowlist_ok } of DEFAULT_PATTERNS) {
|
|
6689
6697
|
out = out.replace(new RegExp(pattern.source, pattern.flags), (match) => {
|
|
@@ -6744,7 +6752,7 @@ function redactExportRecord(record) {
|
|
|
6744
6752
|
function getDefaultSecretPatterns() {
|
|
6745
6753
|
return DEFAULT_PATTERNS.map((p) => ({ name: p.name, source: p.pattern.source }));
|
|
6746
6754
|
}
|
|
6747
|
-
var SECRET_REDACTION_SCHEMA,
|
|
6755
|
+
var SECRET_REDACTION_SCHEMA, REDACTION_PLACEHOLDER2 = "[REDACTED]", DEFAULT_PATTERNS, DEFAULT_ALLOWLIST, customRedactors;
|
|
6748
6756
|
var init_secret_redaction = __esm(() => {
|
|
6749
6757
|
init_redaction();
|
|
6750
6758
|
SECRET_REDACTION_SCHEMA = ["todos", "secret_redaction", "v1"].join(".");
|
|
@@ -8801,10 +8809,11 @@ function getTaskWithRelations(id, db) {
|
|
|
8801
8809
|
JOIN task_dependencies td ON td.depends_on = t.id
|
|
8802
8810
|
WHERE td.task_id = ?`).all(id);
|
|
8803
8811
|
const dependencies = depRows.map(rowToTask2);
|
|
8804
|
-
const
|
|
8812
|
+
const blocked_by = dependencies.filter((dep) => isBlockingDependencyStatus(dep.status));
|
|
8813
|
+
const blocksRows = d.query(`SELECT t.* FROM tasks t
|
|
8805
8814
|
JOIN task_dependencies td ON td.task_id = t.id
|
|
8806
8815
|
WHERE td.depends_on = ?`).all(id);
|
|
8807
|
-
const
|
|
8816
|
+
const blocks = blocksRows.map(rowToTask2);
|
|
8808
8817
|
const comments = d.query("SELECT * FROM task_comments WHERE task_id = ? ORDER BY created_at").all(id);
|
|
8809
8818
|
const parent = task.parent_id ? getTask(task.parent_id, d) : null;
|
|
8810
8819
|
const checklist = getChecklist(id, d);
|
|
@@ -8813,6 +8822,7 @@ function getTaskWithRelations(id, db) {
|
|
|
8813
8822
|
subtasks,
|
|
8814
8823
|
dependencies,
|
|
8815
8824
|
blocked_by,
|
|
8825
|
+
blocks,
|
|
8816
8826
|
comments,
|
|
8817
8827
|
parent,
|
|
8818
8828
|
checklist
|
|
@@ -14553,9 +14563,11 @@ async function removeDependency2(taskId, dependsOn, store) {
|
|
|
14553
14563
|
}
|
|
14554
14564
|
async function listDependencies(taskId, store) {
|
|
14555
14565
|
const edges = await store.list("dependencies");
|
|
14566
|
+
const incoming = edges.filter((edge) => edge.depends_on === taskId).map((edge) => ({ task_id: edge.task_id, depends_on: edge.depends_on }));
|
|
14556
14567
|
return {
|
|
14557
14568
|
dependencies: edges.filter((edge) => edge.task_id === taskId).map((edge) => ({ task_id: edge.task_id, depends_on: edge.depends_on })),
|
|
14558
|
-
|
|
14569
|
+
blocks: incoming,
|
|
14570
|
+
blocked_by: incoming
|
|
14559
14571
|
};
|
|
14560
14572
|
}
|
|
14561
14573
|
async function addVerification(input, store, context) {
|
package/dist/types/index.d.ts
CHANGED
|
@@ -451,10 +451,25 @@ export interface CreateChecklistItemInput {
|
|
|
451
451
|
text: string;
|
|
452
452
|
position?: number;
|
|
453
453
|
}
|
|
454
|
+
/**
|
|
455
|
+
* Whether a prerequisite in this status still blocks its dependents. A
|
|
456
|
+
* completed prerequisite is satisfied; a cancelled one will never complete, so
|
|
457
|
+
* treating it as blocking would deadlock the dependent forever. Single source
|
|
458
|
+
* of truth for every `blocked_by` derivation (regression 4599ef37).
|
|
459
|
+
*/
|
|
460
|
+
export declare function isBlockingDependencyStatus(status: string): boolean;
|
|
454
461
|
export interface TaskWithRelations extends Task {
|
|
455
462
|
subtasks: Task[];
|
|
463
|
+
/** Prerequisites (upstream): the tasks this one depends on. */
|
|
456
464
|
dependencies: Task[];
|
|
465
|
+
/**
|
|
466
|
+
* The prerequisites still incomplete — the tasks blocking this one right
|
|
467
|
+
* now. Empty means dispatchable. (Regression 4599ef37: this used to carry
|
|
468
|
+
* the dependents, inverting the meaning for every JSON consumer.)
|
|
469
|
+
*/
|
|
457
470
|
blocked_by: Task[];
|
|
471
|
+
/** Dependents (downstream): the tasks this one blocks. */
|
|
472
|
+
blocks: Task[];
|
|
458
473
|
comments: TaskComment[];
|
|
459
474
|
parent: Task | null;
|
|
460
475
|
checklist: ChecklistItem[];
|