@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.
@@ -1 +1 @@
1
- {"version":3,"file":"claim-guard.d.ts","sourceRoot":"","sources":["../../src/cli/claim-guard.ts"],"names":[],"mappings":"AAkDA,8EAA8E;AAC9E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAYnF"}
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,QA8gDpD"}
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.8",
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 claim writes locked_by, and a lock with no distinct holder 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.`));
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, globalOpts.agent, !globalOpts.agent);
21335
+ await cloudUnlockTask(cloud, resolvedId, agentId);
21335
21336
  else
21336
- unlockTask(resolvedId, globalOpts.agent);
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 && principal.agent && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
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 = principal.agent || body2.agent_id;
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.8",
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.8",
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.8",
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 && principal.agent && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
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 = principal.agent || body2.agent_id;
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.8",
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.8",
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.8",
3
+ "packageVersion": "0.13.9",
4
4
  "repository": "https://github.com/hasna/todos.git",
5
- "gitCommit": "43abf5a89f15b260a57a513bb8730792c558b8e5",
6
- "gitTree": "713e275ea307439c6dc4f8b1fa2a974ab60e32cd",
7
- "sourceTreeSha256": "5db901269ea0d4c87ed5a5d9a3d007fa7b8a41dec094542d1176f839f00a78a5",
8
- "generatedAt": "2026-08-01T06:42:35.000Z"
5
+ "gitCommit": "0877f637ea98eb762347fc78d43d033cf4999ef6",
6
+ "gitTree": "458f99b7674b48d37f779b7bc1329369385b6ce5",
7
+ "sourceTreeSha256": "49de4d648f9049fe5fdab5edfb8d47e17b5c5241b655c203f17fe0046b02e07f",
8
+ "generatedAt": "2026-08-01T10:18:22.000Z"
9
9
  }
@@ -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.8",
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 && principal.agent && body2.agent_id !== principal.agent && !principal.scopes.includes("todos:*")) {
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 = principal.agent || body2.agent_id;
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);
@@ -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,CAk5B1B"}
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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/todos",
3
- "version": "0.13.8",
3
+ "version": "0.13.9",
4
4
  "description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",