@hasna/todos 0.13.8 → 0.13.9
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/dist/cli/claim-guard.d.ts.map +1 -1
- package/dist/cli/commands/task-commands.d.ts.map +1 -1
- package/dist/cli/index.js +7 -6
- package/dist/contracts.js +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp/index.js +3 -3
- package/dist/mcp.js +1 -1
- package/dist/registry.js +1 -1
- package/dist/release-provenance.json +5 -5
- package/dist/server/index.js +3 -3
- package/dist/server/v1.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claim-guard.d.ts","sourceRoot":"","sources":["../../src/cli/claim-guard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"claim-guard.d.ts","sourceRoot":"","sources":["../../src/cli/claim-guard.ts"],"names":[],"mappings":"AAuDA,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYnF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDzC,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAkPD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"task-commands.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task-commands.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDzC,oFAAoF;AACpF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ5D;AAkPD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,QA+gDpD"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2123,7 +2123,7 @@ var package_default;
|
|
|
2123
2123
|
var init_package = __esm(() => {
|
|
2124
2124
|
package_default = {
|
|
2125
2125
|
name: "@hasna/todos",
|
|
2126
|
-
version: "0.13.
|
|
2126
|
+
version: "0.13.9",
|
|
2127
2127
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
2128
2128
|
type: "module",
|
|
2129
2129
|
main: "dist/index.js",
|
|
@@ -18956,7 +18956,7 @@ var init_tasks = __esm(() => {
|
|
|
18956
18956
|
function resolveClaimIdentity(verb, explicit) {
|
|
18957
18957
|
const resolved = resolveWritableIdentity(explicit);
|
|
18958
18958
|
if (!resolved.agent_id) {
|
|
18959
|
-
handleError(new Error(`Cannot ${verb} a task without an agent identity: a
|
|
18959
|
+
handleError(new Error(`Cannot ${verb} a task without an agent identity: this operation changes a task lock, and a lock with no distinct caller is not a lock. ` + `Set TODOS_AGENT_ID=<name> for this session, or pass --agent <name>. ` + `An identity persisted by 'todos init' is deliberately not used here \u2014 it is keyed on $HOME and names the station, not this session.`));
|
|
18960
18960
|
}
|
|
18961
18961
|
return resolved.agent_id;
|
|
18962
18962
|
}
|
|
@@ -21329,11 +21329,12 @@ ${chalk3.cyan(sid)} ${statusColor(task2.status)} ${prioColor(task2.priority)} ${
|
|
|
21329
21329
|
const globalOpts = program2.opts();
|
|
21330
21330
|
const cloud = getTodosCloudClient();
|
|
21331
21331
|
const resolvedId = cloud ? await resolveTaskIdForCommand(id, cloud) : resolveTaskId(id);
|
|
21332
|
+
const agentId = resolveClaimIdentity("unlock", globalOpts.agent);
|
|
21332
21333
|
try {
|
|
21333
21334
|
if (cloud)
|
|
21334
|
-
await cloudUnlockTask(cloud, resolvedId,
|
|
21335
|
+
await cloudUnlockTask(cloud, resolvedId, agentId);
|
|
21335
21336
|
else
|
|
21336
|
-
unlockTask(resolvedId,
|
|
21337
|
+
unlockTask(resolvedId, agentId);
|
|
21337
21338
|
} catch (e) {
|
|
21338
21339
|
handleError(e);
|
|
21339
21340
|
}
|
|
@@ -38228,10 +38229,10 @@ async function handleV1Request(req, url, dependencies = {}) {
|
|
|
38228
38229
|
const released2 = await store.tasks.unlock(id);
|
|
38229
38230
|
return json3({ success: released2 });
|
|
38230
38231
|
}
|
|
38231
|
-
if (body2.agent_id &&
|
|
38232
|
+
if (body2.agent_id && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
|
|
38232
38233
|
return error(403, "unlock agent_id must match the authenticated agent");
|
|
38233
38234
|
}
|
|
38234
|
-
const agentId2 =
|
|
38235
|
+
const agentId2 = body2.agent_id || principal.agent;
|
|
38235
38236
|
if (!agentId2)
|
|
38236
38237
|
return error(403, "unlock requires an agent-bound key or force=true");
|
|
38237
38238
|
const released = await store.tasks.unlock(id, agentId2);
|
package/dist/contracts.js
CHANGED
|
@@ -11973,7 +11973,7 @@ var init_tasks = __esm(() => {
|
|
|
11973
11973
|
// package.json
|
|
11974
11974
|
var package_default = {
|
|
11975
11975
|
name: "@hasna/todos",
|
|
11976
|
-
version: "0.13.
|
|
11976
|
+
version: "0.13.9",
|
|
11977
11977
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
11978
11978
|
type: "module",
|
|
11979
11979
|
main: "dist/index.js",
|
package/dist/index.js
CHANGED
|
@@ -12086,7 +12086,7 @@ var init_dispatches = __esm(() => {
|
|
|
12086
12086
|
// package.json
|
|
12087
12087
|
var package_default = {
|
|
12088
12088
|
name: "@hasna/todos",
|
|
12089
|
-
version: "0.13.
|
|
12089
|
+
version: "0.13.9",
|
|
12090
12090
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
12091
12091
|
type: "module",
|
|
12092
12092
|
main: "dist/index.js",
|
package/dist/mcp/index.js
CHANGED
|
@@ -34775,7 +34775,7 @@ var package_default;
|
|
|
34775
34775
|
var init_package = __esm(() => {
|
|
34776
34776
|
package_default = {
|
|
34777
34777
|
name: "@hasna/todos",
|
|
34778
|
-
version: "0.13.
|
|
34778
|
+
version: "0.13.9",
|
|
34779
34779
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
34780
34780
|
type: "module",
|
|
34781
34781
|
main: "dist/index.js",
|
|
@@ -51111,10 +51111,10 @@ async function handleV1Request(req, url, dependencies = {}) {
|
|
|
51111
51111
|
const released2 = await store.tasks.unlock(id);
|
|
51112
51112
|
return json3({ success: released2 });
|
|
51113
51113
|
}
|
|
51114
|
-
if (body2.agent_id &&
|
|
51114
|
+
if (body2.agent_id && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
|
|
51115
51115
|
return error(403, "unlock agent_id must match the authenticated agent");
|
|
51116
51116
|
}
|
|
51117
|
-
const agentId2 =
|
|
51117
|
+
const agentId2 = body2.agent_id || principal.agent;
|
|
51118
51118
|
if (!agentId2)
|
|
51119
51119
|
return error(403, "unlock requires an agent-bound key or force=true");
|
|
51120
51120
|
const released = await store.tasks.unlock(id, agentId2);
|
package/dist/mcp.js
CHANGED
|
@@ -41,7 +41,7 @@ var __require = import.meta.require;
|
|
|
41
41
|
// package.json
|
|
42
42
|
var package_default = {
|
|
43
43
|
name: "@hasna/todos",
|
|
44
|
-
version: "0.13.
|
|
44
|
+
version: "0.13.9",
|
|
45
45
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
46
46
|
type: "module",
|
|
47
47
|
main: "dist/index.js",
|
package/dist/registry.js
CHANGED
|
@@ -11973,7 +11973,7 @@ var init_tasks = __esm(() => {
|
|
|
11973
11973
|
// package.json
|
|
11974
11974
|
var package_default = {
|
|
11975
11975
|
name: "@hasna/todos",
|
|
11976
|
-
version: "0.13.
|
|
11976
|
+
version: "0.13.9",
|
|
11977
11977
|
description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
|
|
11978
11978
|
type: "module",
|
|
11979
11979
|
main: "dist/index.js",
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"packageName": "@hasna/todos",
|
|
3
|
-
"packageVersion": "0.13.
|
|
3
|
+
"packageVersion": "0.13.9",
|
|
4
4
|
"repository": "https://github.com/hasna/todos.git",
|
|
5
|
-
"gitCommit": "
|
|
6
|
-
"gitTree": "
|
|
7
|
-
"sourceTreeSha256": "
|
|
8
|
-
"generatedAt": "2026-08-
|
|
5
|
+
"gitCommit": "0877f637ea98eb762347fc78d43d033cf4999ef6",
|
|
6
|
+
"gitTree": "458f99b7674b48d37f779b7bc1329369385b6ce5",
|
|
7
|
+
"sourceTreeSha256": "49de4d648f9049fe5fdab5edfb8d47e17b5c5241b655c203f17fe0046b02e07f",
|
|
8
|
+
"generatedAt": "2026-08-01T10:18:22.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.9",
|
|
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",
|
|
@@ -22241,10 +22241,10 @@ async function handleV1Request(req, url, dependencies = {}) {
|
|
|
22241
22241
|
const released2 = await store.tasks.unlock(id);
|
|
22242
22242
|
return json3({ success: released2 });
|
|
22243
22243
|
}
|
|
22244
|
-
if (body2.agent_id &&
|
|
22244
|
+
if (body2.agent_id && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
|
|
22245
22245
|
return error(403, "unlock agent_id must match the authenticated agent");
|
|
22246
22246
|
}
|
|
22247
|
-
const agentId2 =
|
|
22247
|
+
const agentId2 = body2.agent_id || principal.agent;
|
|
22248
22248
|
if (!agentId2)
|
|
22249
22249
|
return error(403, "unlock requires an agent-bound key or force=true");
|
|
22250
22250
|
const released = await store.tasks.unlock(id, agentId2);
|
package/dist/server/v1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAuB,oBAAoB,EAAmD,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKhH,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,qBAAqB,CAAC;CACjD;AAgSD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAiB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAapE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAuB,oBAAoB,EAAmD,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAKhH,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,OAAO,gBAAgB,CAAC;IACtC,YAAY,CAAC,EAAE,OAAO,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,OAAO,sBAAsB,CAAC;IAClD,gBAAgB,CAAC,EAAE,OAAO,qBAAqB,CAAC;CACjD;AAgSD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAiB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAapE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA25B1B"}
|