@hasna/todos 0.11.92 → 0.11.94

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/contracts.js CHANGED
@@ -10756,7 +10756,7 @@ var init_tasks = __esm(() => {
10756
10756
  // package.json
10757
10757
  var package_default = {
10758
10758
  name: "@hasna/todos",
10759
- version: "0.11.92",
10759
+ version: "0.11.94",
10760
10760
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
10761
10761
  type: "module",
10762
10762
  main: "dist/index.js",
package/dist/index.js CHANGED
@@ -10861,7 +10861,7 @@ var init_dispatches = __esm(() => {
10861
10861
  // package.json
10862
10862
  var package_default = {
10863
10863
  name: "@hasna/todos",
10864
- version: "0.11.92",
10864
+ version: "0.11.94",
10865
10865
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
10866
10866
  type: "module",
10867
10867
  main: "dist/index.js",
@@ -23488,6 +23488,27 @@ function clockColumnsForTable(table) {
23488
23488
  }
23489
23489
 
23490
23490
  // src/storage/local-sqlite.ts
23491
+ var TASK_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
23492
+ function resolveTaskRefLocal(db, ref) {
23493
+ const raw = ref.trim().toLowerCase();
23494
+ if (!raw)
23495
+ return null;
23496
+ if (TASK_UUID_RE.test(raw))
23497
+ return getTask(raw, db);
23498
+ const prefixRows = db.query("SELECT id FROM tasks WHERE LOWER(id) LIKE ? ESCAPE '\\' LIMIT 2").all(`${raw.replace(/[\\%_]/g, (c) => `\\${c}`)}%`);
23499
+ if (prefixRows.length > 1) {
23500
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
23501
+ }
23502
+ if (prefixRows.length === 1)
23503
+ return getTask(prefixRows[0].id, db);
23504
+ const shortIdRows = db.query("SELECT id FROM tasks WHERE LOWER(short_id) = ? LIMIT 2").all(raw);
23505
+ if (shortIdRows.length > 1) {
23506
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
23507
+ }
23508
+ if (shortIdRows.length === 1)
23509
+ return getTask(shortIdRows[0].id, db);
23510
+ return null;
23511
+ }
23491
23512
  function createLocalSqliteTodosStorageAdapter(options = {}) {
23492
23513
  const database = () => options.db ?? getDatabase();
23493
23514
  let adapter;
@@ -23503,6 +23524,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
23503
23524
  tasks: {
23504
23525
  create: (input) => createTask(input, database()),
23505
23526
  get: (id) => getTask(id, database()),
23527
+ resolveRef: (ref) => resolveTaskRefLocal(database(), ref),
23506
23528
  list: (filter = {}) => listTasks(filter, database()),
23507
23529
  count: (filter = {}) => countTasks(filter, database()),
23508
23530
  update: (id, input) => updateTask(id, input, database()),
@@ -23733,7 +23755,6 @@ function postgresTodosCommentCursorIndexSql(tableName = DEFAULT_TODOS_POSTGRES_S
23733
23755
  ON ${tableName} (service, (payload->>'task_id'), (payload->>'created_at'), object_id)
23734
23756
  WHERE object_type = 'comments' AND deleted_at IS NULL`;
23735
23757
  }
23736
-
23737
23758
  class PostgresTodosSyncStore {
23738
23759
  client;
23739
23760
  service;
@@ -24020,6 +24041,7 @@ function createPostgresTodosStorageAdapter(options) {
24020
24041
  tasks: {
24021
24042
  create: (input, context) => createTask2(input, store, context),
24022
24043
  get: (id) => store.get("tasks", id),
24044
+ resolveRef: (ref) => store.resolveTaskRef(ref),
24023
24045
  list: (filter = {}) => store.listTasks(filter),
24024
24046
  count: (filter = {}) => store.countTasks(filter),
24025
24047
  update: (id, input) => updateTask2(id, input, store),
@@ -24272,6 +24294,37 @@ class PostgresJsonRecordStore {
24272
24294
  const row = result.rows[0];
24273
24295
  return row ? payloadRecord2(row.payload) : null;
24274
24296
  }
24297
+ async resolveTaskRef(ref) {
24298
+ await this.ensureSchema();
24299
+ const raw = ref.trim().toLowerCase();
24300
+ if (!raw)
24301
+ return null;
24302
+ const lastCode = raw.charCodeAt(raw.length - 1);
24303
+ if (lastCode < 65535) {
24304
+ const upper = raw.slice(0, -1) + String.fromCharCode(lastCode + 1);
24305
+ const prefixResult = await this.options.client.query(`/* todos:resolve-task-ref-prefix */ SELECT payload FROM ${this.tableName}
24306
+ WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
24307
+ AND object_id COLLATE "C" >= $2 AND object_id COLLATE "C" < $3
24308
+ LIMIT 2`, [this.service, raw, upper]);
24309
+ if (prefixResult.rows.length > 1) {
24310
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
24311
+ }
24312
+ if (prefixResult.rows.length === 1) {
24313
+ return payloadRecord2(prefixResult.rows[0].payload);
24314
+ }
24315
+ }
24316
+ const shortIdResult = await this.options.client.query(`/* todos:resolve-task-ref-short-id */ SELECT payload FROM ${this.tableName}
24317
+ WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
24318
+ AND LOWER(payload->>'short_id') = $2
24319
+ LIMIT 2`, [this.service, raw]);
24320
+ if (shortIdResult.rows.length > 1) {
24321
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
24322
+ }
24323
+ if (shortIdResult.rows.length === 1) {
24324
+ return payloadRecord2(shortIdResult.rows[0].payload);
24325
+ }
24326
+ return null;
24327
+ }
24275
24328
  async countTasks(filter) {
24276
24329
  await this.ensureSchema();
24277
24330
  const { where, params } = this.buildTaskFilterSql(filter);
@@ -24693,7 +24746,7 @@ async function updateTask2(id, input, store) {
24693
24746
  tags: input.tags ?? existing.tags,
24694
24747
  metadata: input.metadata ?? existing.metadata,
24695
24748
  requires_approval: input.requires_approval ?? existing.requires_approval,
24696
- task_list_id: input.task_list_id ?? existing.task_list_id
24749
+ task_list_id: input.task_list_id !== undefined ? input.task_list_id : existing.task_list_id
24697
24750
  };
24698
24751
  await store.upsert("tasks", task2);
24699
24752
  return task2;
package/dist/mcp/index.js CHANGED
@@ -16658,6 +16658,7 @@ var init_token_utils = __esm(() => {
16658
16658
 
16659
16659
  // src/cli/cloud-router.ts
16660
16660
  import { resolveStorageClient } from "@hasna/contracts/client/storage";
16661
+ import { resolve as resolvePath } from "path";
16661
16662
  function cleanMode(value) {
16662
16663
  const normalized = value?.trim().toLowerCase();
16663
16664
  return normalized || null;
@@ -16940,6 +16941,39 @@ async function cloudListProjects(client) {
16940
16941
  const envelope = res.raw;
16941
16942
  return Array.isArray(envelope?.projects) ? envelope.projects : res.items;
16942
16943
  }
16944
+ function cloudProjectSlug(value) {
16945
+ return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
16946
+ }
16947
+ function cloudProjectPathBasename(value) {
16948
+ return value.replace(/[\\/]+$/, "").split(/[\\/]/).pop() ?? value;
16949
+ }
16950
+ function uniqueProjectMatches(projects, predicate) {
16951
+ return [...new Map(projects.filter(predicate).map((project) => [project.id, project])).values()];
16952
+ }
16953
+ function resolveCloudProjectRef(projects, ref) {
16954
+ const input = ref.trim();
16955
+ const normalizedRef = input.toLowerCase();
16956
+ const pathLike = input.startsWith(".") || input.includes("/") || input.includes("\\");
16957
+ const normalizedPath = pathLike ? resolvePath(input) : undefined;
16958
+ const slug = cloudProjectSlug(pathLike ? cloudProjectPathBasename(input) : input);
16959
+ const matchGroups = [
16960
+ uniqueProjectMatches(projects, (project) => project.id.toLowerCase() === normalizedRef),
16961
+ uniqueProjectMatches(projects, (project) => project.path === input || normalizedPath !== undefined && resolvePath(project.path) === normalizedPath),
16962
+ uniqueProjectMatches(projects, (project) => project.name.toLowerCase() === normalizedRef),
16963
+ uniqueProjectMatches(projects, (project) => project.task_list_id === input || cloudProjectSlug(project.name) === slug || cloudProjectSlug(cloudProjectPathBasename(project.path)) === slug),
16964
+ uniqueProjectMatches(projects, (project) => project.id.toLowerCase().startsWith(normalizedRef))
16965
+ ];
16966
+ for (const matches of matchGroups) {
16967
+ if (matches.length === 1)
16968
+ return matches[0].id;
16969
+ if (matches.length > 1)
16970
+ throw new Error(`Project reference is ambiguous: "${input}"`);
16971
+ }
16972
+ throw new Error(`Project not found: "${input}"`);
16973
+ }
16974
+ async function cloudResolveProjectRef(client, ref) {
16975
+ return resolveCloudProjectRef(await cloudListProjects(client), ref);
16976
+ }
16943
16977
  async function cloudAddComment(client, taskId, input) {
16944
16978
  const raw = await client.transport.post(`/tasks/${encodeURIComponent(taskId)}/comments`, input);
16945
16979
  const comment = raw && typeof raw === "object" && "comment" in raw ? raw.comment : raw;
@@ -16984,9 +17018,46 @@ async function cloudReleaseAgent(client, idOrName, sessionId) {
16984
17018
  const env = raw ?? {};
16985
17019
  return { agent: env.agent ?? null, released: env.released !== false };
16986
17020
  }
16987
- var CLOUD_MODES, VALID_STORAGE_MODES, completionCapabilityCache;
17021
+ async function cloudListTaskLists(client, projectId) {
17022
+ const query = projectId ? { project_id: projectId } : {};
17023
+ const raw = await requiredRemoteRoute(client, "/v1/task-lists", () => client.transport.get("/task-lists", { query }));
17024
+ const envelope = raw ?? {};
17025
+ if (Array.isArray(envelope.task_lists))
17026
+ return envelope.task_lists;
17027
+ if (Array.isArray(envelope.taskLists))
17028
+ return envelope.taskLists;
17029
+ return Array.isArray(raw) ? raw : [];
17030
+ }
17031
+ async function cloudResolveTaskListRef(client, ref, projectId) {
17032
+ const input = ref.trim();
17033
+ const normalizedIdRef = input.toLowerCase();
17034
+ if (UUID_RE.test(input) && !projectId)
17035
+ return normalizedIdRef;
17036
+ const lists = await cloudListTaskLists(client, projectId);
17037
+ const exactIds = lists.filter((list) => list.id.toLowerCase() === normalizedIdRef);
17038
+ if (exactIds.length === 1)
17039
+ return exactIds[0].id;
17040
+ if (exactIds.length > 1) {
17041
+ throw new Error(`Task list reference is ambiguous: "${input}"`);
17042
+ }
17043
+ const slugs = lists.filter((list) => list.slug === input);
17044
+ if (slugs.length === 1)
17045
+ return slugs[0].id;
17046
+ if (slugs.length > 1) {
17047
+ throw new Error(`Task list reference is ambiguous: "${input}"`);
17048
+ }
17049
+ const prefixes = lists.filter((list) => list.id.toLowerCase().startsWith(normalizedIdRef));
17050
+ if (prefixes.length === 1)
17051
+ return prefixes[0].id;
17052
+ if (prefixes.length > 1) {
17053
+ throw new Error(`Task list reference is ambiguous: "${input}"`);
17054
+ }
17055
+ throw new Error(`Task list not found: "${input}"`);
17056
+ }
17057
+ var UUID_RE, CLOUD_MODES, VALID_STORAGE_MODES, completionCapabilityCache;
16988
17058
  var init_cloud_router = __esm(() => {
16989
17059
  init_redaction();
17060
+ UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
16990
17061
  CLOUD_MODES = new Set(["self_hosted", "cloud", "remote", "hybrid"]);
16991
17062
  VALID_STORAGE_MODES = new Set(["local", ...CLOUD_MODES]);
16992
17063
  completionCapabilityCache = new Map;
@@ -17273,6 +17344,17 @@ ${task.description}` : null
17273
17344
  patch.estimated_minutes = estimate;
17274
17345
  if (deadline !== undefined)
17275
17346
  patch.due_at = deadline;
17347
+ if (typeof patch.project_id === "string" && patch.project_id) {
17348
+ patch.project_id = await cloudResolveProjectRef(cloud, patch.project_id);
17349
+ }
17350
+ if (typeof patch.task_list_id === "string" && patch.task_list_id) {
17351
+ let scope = typeof patch.project_id === "string" ? patch.project_id : undefined;
17352
+ if (!scope) {
17353
+ const current = await cloudGetTask(cloud, task_id2);
17354
+ scope = current?.project_id ?? undefined;
17355
+ }
17356
+ patch.task_list_id = await cloudResolveTaskListRef(cloud, patch.task_list_id, scope);
17357
+ }
17276
17358
  if (version2 !== undefined)
17277
17359
  patch.version = version2;
17278
17360
  const updated = await cloudUpdateTask(cloud, task_id2, patch);
@@ -23286,6 +23368,63 @@ function registerTaskProjectTools(server, ctx) {
23286
23368
  }
23287
23369
  });
23288
23370
  }
23371
+ if (shouldRegisterTool("move_task")) {
23372
+ server.tool("move_task", "Re-parent a task to another project and/or task list, preserving its id and history. " + "A task list is project-scoped, so moving to a new project detaches the old list unless to_list is given.", {
23373
+ task_id: exports_external.string().describe("Task ID"),
23374
+ to_project: exports_external.string().optional().describe("Destination project ID, slug, or path"),
23375
+ to_list: exports_external.string().optional().describe("Destination task list (UUID, or slug resolved in the destination project)"),
23376
+ clear_list: exports_external.boolean().optional().describe("Detach from its task list (set task_list_id to null)"),
23377
+ version: exports_external.number().optional().describe("Expected version for optimistic locking")
23378
+ }, async ({ task_id, to_project, to_list, clear_list, version }) => {
23379
+ try {
23380
+ if (!to_project && !to_list && !clear_list) {
23381
+ throw new Error("Nothing to move: pass to_project, to_list, or clear_list.");
23382
+ }
23383
+ if (to_list && clear_list) {
23384
+ throw new Error("Use either to_list or clear_list, not both.");
23385
+ }
23386
+ const cloud = getTodosCloudClient();
23387
+ if (cloud) {
23388
+ const current2 = await cloudGetTask(cloud, task_id);
23389
+ if (!current2)
23390
+ throw new Error(`Task not found: ${task_id}`);
23391
+ const targetProjectId2 = to_project ? await cloudResolveProjectRef(cloud, to_project) : undefined;
23392
+ const scope = targetProjectId2 ?? current2.project_id ?? undefined;
23393
+ const patch = {};
23394
+ if (targetProjectId2 !== undefined)
23395
+ patch.project_id = targetProjectId2;
23396
+ if (to_list)
23397
+ patch.task_list_id = await cloudResolveTaskListRef(cloud, to_list, scope);
23398
+ else if (clear_list)
23399
+ patch.task_list_id = null;
23400
+ else if (targetProjectId2 && targetProjectId2 !== current2.project_id)
23401
+ patch.task_list_id = null;
23402
+ if (version !== undefined)
23403
+ patch.version = version;
23404
+ const task2 = await cloudUpdateTask(cloud, task_id, patch);
23405
+ return { content: [{ type: "text", text: formatTask(task2) }] };
23406
+ }
23407
+ const resolvedId = resolveId(task_id);
23408
+ const current = getTask(resolvedId);
23409
+ if (!current)
23410
+ throw new Error(`Task not found: ${task_id}`);
23411
+ const targetProjectId = to_project ? resolveId(to_project, "projects") : undefined;
23412
+ const updates = {};
23413
+ if (targetProjectId !== undefined)
23414
+ updates.project_id = targetProjectId;
23415
+ if (to_list)
23416
+ updates.task_list_id = resolveId(to_list, "task_lists");
23417
+ else if (clear_list)
23418
+ updates.task_list_id = null;
23419
+ else if (targetProjectId && targetProjectId !== current.project_id)
23420
+ updates.task_list_id = null;
23421
+ const task = updateWithOptionalVersion(resolvedId, updates, version);
23422
+ return { content: [{ type: "text", text: formatTask(task) }] };
23423
+ } catch (e) {
23424
+ return { content: [{ type: "text", text: formatError(e) }], isError: true };
23425
+ }
23426
+ });
23427
+ }
23289
23428
  if (shouldRegisterTool("reschedule_task")) {
23290
23429
  server.tool("reschedule_task", "Update a task's deadline.", {
23291
23430
  task_id: exports_external.string().describe("Task ID"),
@@ -27608,6 +27747,7 @@ function registerTaskMetaTools(server, ctx) {
27608
27747
  complete_task: "complete_task \u2014 Mark task completed. Params: task_id, confidence, completed_at, version",
27609
27748
  cancel_task: "cancel_task \u2014 Cancel a task. Params: task_id, version",
27610
27749
  reassign_task: "reassign_task \u2014 Change task assignee. Params: task_id, new_assignee, version",
27750
+ move_task: "move_task \u2014 Re-parent a task to another project and/or task list (keeps its id and history). Params: task_id (required), to_project, to_list, clear_list, version",
27611
27751
  reschedule_task: "reschedule_task \u2014 Update deadline. Params: task_id, deadline, version",
27612
27752
  prioritize_task: "prioritize_task \u2014 Set priority. Params: task_id, priority, version",
27613
27753
  search_tasks: "search_tasks \u2014 Full-text search. Params: query, project_id, status, limit",
@@ -30647,7 +30787,7 @@ var package_default;
30647
30787
  var init_package = __esm(() => {
30648
30788
  package_default = {
30649
30789
  name: "@hasna/todos",
30650
- version: "0.11.92",
30790
+ version: "0.11.94",
30651
30791
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
30652
30792
  type: "module",
30653
30793
  main: "dist/index.js",
@@ -40347,6 +40487,26 @@ var init_sqlite_snapshot = __esm(() => {
40347
40487
  });
40348
40488
 
40349
40489
  // src/storage/local-sqlite.ts
40490
+ function resolveTaskRefLocal(db, ref) {
40491
+ const raw = ref.trim().toLowerCase();
40492
+ if (!raw)
40493
+ return null;
40494
+ if (TASK_UUID_RE.test(raw))
40495
+ return getTask(raw, db);
40496
+ const prefixRows = db.query("SELECT id FROM tasks WHERE LOWER(id) LIKE ? ESCAPE '\\' LIMIT 2").all(`${raw.replace(/[\\%_]/g, (c) => `\\${c}`)}%`);
40497
+ if (prefixRows.length > 1) {
40498
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
40499
+ }
40500
+ if (prefixRows.length === 1)
40501
+ return getTask(prefixRows[0].id, db);
40502
+ const shortIdRows = db.query("SELECT id FROM tasks WHERE LOWER(short_id) = ? LIMIT 2").all(raw);
40503
+ if (shortIdRows.length > 1) {
40504
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
40505
+ }
40506
+ if (shortIdRows.length === 1)
40507
+ return getTask(shortIdRows[0].id, db);
40508
+ return null;
40509
+ }
40350
40510
  function createLocalSqliteTodosStorageAdapter(options = {}) {
40351
40511
  const database = () => options.db ?? getDatabase();
40352
40512
  let adapter;
@@ -40362,6 +40522,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
40362
40522
  tasks: {
40363
40523
  create: (input) => createTask(input, database()),
40364
40524
  get: (id) => getTask(id, database()),
40525
+ resolveRef: (ref) => resolveTaskRefLocal(database(), ref),
40365
40526
  list: (filter = {}) => listTasks(filter, database()),
40366
40527
  count: (filter = {}) => countTasks(filter, database()),
40367
40528
  update: (id, input) => updateTask(id, input, database()),
@@ -40450,6 +40611,7 @@ function createLocalSqliteTodosStorageAdapter(options = {}) {
40450
40611
  };
40451
40612
  return adapter;
40452
40613
  }
40614
+ var TASK_UUID_RE;
40453
40615
  var init_local_sqlite = __esm(() => {
40454
40616
  init_tasks();
40455
40617
  init_projects();
@@ -40461,6 +40623,7 @@ var init_local_sqlite = __esm(() => {
40461
40623
  init_comments();
40462
40624
  init_database();
40463
40625
  init_sqlite_snapshot();
40626
+ TASK_UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
40464
40627
  });
40465
40628
 
40466
40629
  // src/storage/postgres-sync.ts
@@ -40583,6 +40746,18 @@ function postgresTodosCommentCursorIndexSql(tableName = DEFAULT_TODOS_POSTGRES_S
40583
40746
  ON ${tableName} (service, (payload->>'task_id'), (payload->>'created_at'), object_id)
40584
40747
  WHERE object_type = 'comments' AND deleted_at IS NULL`;
40585
40748
  }
40749
+ function postgresTodosTaskShortIdIndexSql(tableName = DEFAULT_TODOS_POSTGRES_SYNC_TABLE) {
40750
+ assertSafeIdentifier(tableName);
40751
+ return `CREATE INDEX CONCURRENTLY IF NOT EXISTS ${tableName}_task_short_id_idx
40752
+ ON ${tableName} ((LOWER(payload->>'short_id')))
40753
+ WHERE object_type = 'tasks' AND deleted_at IS NULL`;
40754
+ }
40755
+ function postgresTodosTaskObjectIdIndexSql(tableName = DEFAULT_TODOS_POSTGRES_SYNC_TABLE) {
40756
+ assertSafeIdentifier(tableName);
40757
+ return `CREATE INDEX CONCURRENTLY IF NOT EXISTS ${tableName}_task_object_id_c_idx
40758
+ ON ${tableName} (service, (object_id COLLATE "C"))
40759
+ WHERE object_type = 'tasks' AND deleted_at IS NULL`;
40760
+ }
40586
40761
 
40587
40762
  class PostgresTodosSyncStore {
40588
40763
  client;
@@ -42190,6 +42365,7 @@ function createPostgresTodosStorageAdapter(options) {
42190
42365
  tasks: {
42191
42366
  create: (input, context) => createTask3(input, store, context),
42192
42367
  get: (id) => store.get("tasks", id),
42368
+ resolveRef: (ref) => store.resolveTaskRef(ref),
42193
42369
  list: (filter = {}) => store.listTasks(filter),
42194
42370
  count: (filter = {}) => store.countTasks(filter),
42195
42371
  update: (id, input) => updateTask2(id, input, store),
@@ -42442,6 +42618,37 @@ class PostgresJsonRecordStore {
42442
42618
  const row = result.rows[0];
42443
42619
  return row ? payloadRecord2(row.payload) : null;
42444
42620
  }
42621
+ async resolveTaskRef(ref) {
42622
+ await this.ensureSchema();
42623
+ const raw = ref.trim().toLowerCase();
42624
+ if (!raw)
42625
+ return null;
42626
+ const lastCode = raw.charCodeAt(raw.length - 1);
42627
+ if (lastCode < 65535) {
42628
+ const upper = raw.slice(0, -1) + String.fromCharCode(lastCode + 1);
42629
+ const prefixResult = await this.options.client.query(`/* todos:resolve-task-ref-prefix */ SELECT payload FROM ${this.tableName}
42630
+ WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
42631
+ AND object_id COLLATE "C" >= $2 AND object_id COLLATE "C" < $3
42632
+ LIMIT 2`, [this.service, raw, upper]);
42633
+ if (prefixResult.rows.length > 1) {
42634
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
42635
+ }
42636
+ if (prefixResult.rows.length === 1) {
42637
+ return payloadRecord2(prefixResult.rows[0].payload);
42638
+ }
42639
+ }
42640
+ const shortIdResult = await this.options.client.query(`/* todos:resolve-task-ref-short-id */ SELECT payload FROM ${this.tableName}
42641
+ WHERE service = $1 AND object_type = 'tasks' AND deleted_at IS NULL
42642
+ AND LOWER(payload->>'short_id') = $2
42643
+ LIMIT 2`, [this.service, raw]);
42644
+ if (shortIdResult.rows.length > 1) {
42645
+ throw new Error(`Task reference is ambiguous: "${ref}"`);
42646
+ }
42647
+ if (shortIdResult.rows.length === 1) {
42648
+ return payloadRecord2(shortIdResult.rows[0].payload);
42649
+ }
42650
+ return null;
42651
+ }
42445
42652
  async countTasks(filter) {
42446
42653
  await this.ensureSchema();
42447
42654
  const { where, params } = this.buildTaskFilterSql(filter);
@@ -42863,7 +43070,7 @@ async function updateTask2(id, input, store) {
42863
43070
  tags: input.tags ?? existing.tags,
42864
43071
  metadata: input.metadata ?? existing.metadata,
42865
43072
  requires_approval: input.requires_approval ?? existing.requires_approval,
42866
- task_list_id: input.task_list_id ?? existing.task_list_id
43073
+ task_list_id: input.task_list_id !== undefined ? input.task_list_id : existing.task_list_id
42867
43074
  };
42868
43075
  await store.upsert("tasks", task2);
42869
43076
  return task2;
@@ -43631,6 +43838,8 @@ __export(exports_cloud, {
43631
43838
  getCloudVerifier: () => getCloudVerifier,
43632
43839
  getCloudStorageAdapter: () => getCloudStorageAdapter,
43633
43840
  getApiKeyStore: () => getApiKeyStore,
43841
+ ensureCloudTaskShortIdIndex: () => ensureCloudTaskShortIdIndex,
43842
+ ensureCloudTaskObjectIdIndex: () => ensureCloudTaskObjectIdIndex,
43634
43843
  ensureCloudScopedSlugUniqueIndexes: () => ensureCloudScopedSlugUniqueIndexes,
43635
43844
  ensureCloudSchema: () => ensureCloudSchema,
43636
43845
  ensureCloudCommentCursorIndex: () => ensureCloudCommentCursorIndex,
@@ -43718,6 +43927,12 @@ async function ensureCloudSchema() {
43718
43927
  async function ensureCloudCommentCursorIndex() {
43719
43928
  await getClient().query(postgresTodosCommentCursorIndexSql());
43720
43929
  }
43930
+ async function ensureCloudTaskShortIdIndex() {
43931
+ await getClient().query(postgresTodosTaskShortIdIndexSql());
43932
+ }
43933
+ async function ensureCloudTaskObjectIdIndex() {
43934
+ await getClient().query(postgresTodosTaskObjectIdIndexSql());
43935
+ }
43721
43936
  async function ensureCloudScopedSlugUniqueIndexes() {
43722
43937
  await ensurePostgresScopedSlugUniqueIndexes(getClient());
43723
43938
  }
@@ -43800,6 +44015,8 @@ function buildV1OpenApiDocument(version = getPackageVersion()) {
43800
44015
  status: { type: "string" },
43801
44016
  priority: { type: "string" },
43802
44017
  assigned_to: { type: "string" },
44018
+ project_id: { type: "string", nullable: true },
44019
+ task_list_id: { type: "string", nullable: true },
43803
44020
  version: { type: "number" }
43804
44021
  }
43805
44022
  },
@@ -45012,7 +45229,17 @@ async function handleV1Request(req, url, dependencies = {}) {
45012
45229
  return error(404, `unknown task action: ${action}`);
45013
45230
  }
45014
45231
  if (method === "GET") {
45015
- const task2 = await store.tasks.get(id);
45232
+ let task2 = await store.tasks.get(id);
45233
+ if (!task2 && typeof store.tasks.resolveRef === "function") {
45234
+ try {
45235
+ task2 = await store.tasks.resolveRef(id);
45236
+ } catch (e) {
45237
+ const msg = e.message || "";
45238
+ if (/ambiguous/i.test(msg))
45239
+ return error(409, msg);
45240
+ throw e;
45241
+ }
45242
+ }
45016
45243
  return task2 ? json2({ task: task2 }) : error(404, "task not found");
45017
45244
  }
45018
45245
  if (method === "PATCH" || method === "PUT") {
@@ -1 +1 @@
1
- {"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-crud.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAajD,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAqV5E"}
1
+ {"version":3,"file":"task-crud.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-crud.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAejD,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAkW5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-meta-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-meta-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAmO5E"}
1
+ {"version":3,"file":"task-meta-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-meta-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,UAAU,eAAe;IACvB,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;CACzC;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,eAAe,QAoO5E"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAmJjD,UAAU,kBAAkB;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,QAo4FlF"}
1
+ {"version":3,"file":"task-project-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/task-project-tools.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AA2JjD,UAAU,kBAAkB;IAC1B,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC9C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzD,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC;IACxC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC;IACnC,gBAAgB,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACvE,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC;CAC3F;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,kBAAkB,QAy7FlF"}
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.11.92",
44
+ version: "0.11.94",
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
@@ -10756,7 +10756,7 @@ var init_tasks = __esm(() => {
10756
10756
  // package.json
10757
10757
  var package_default = {
10758
10758
  name: "@hasna/todos",
10759
- version: "0.11.92",
10759
+ version: "0.11.94",
10760
10760
  description: "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
10761
10761
  type: "module",
10762
10762
  main: "dist/index.js",
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "packageName": "@hasna/todos",
3
- "packageVersion": "0.11.92",
3
+ "packageVersion": "0.11.94",
4
4
  "repository": "https://github.com/hasna/todos.git",
5
- "gitCommit": "31988ba7a1ca3d42f50cb2fab894a3581f8e568f",
6
- "gitTree": "cc8adc3b3642f4b4e83c88197b1adadc4050a7a7",
7
- "sourceTreeSha256": "464540d90edb622f9877dfcd0f0ffd6a507801db7d108f6a12ec7f8df703db62",
8
- "generatedAt": "2026-07-18T13:43:23.000Z"
5
+ "gitCommit": "a98841fdf3dcaae217b6e0a3128f85893f01fab9",
6
+ "gitTree": "6b7899a49b09bccf94a002580d408bac8194fdcd",
7
+ "sourceTreeSha256": "e00fb3da590c92f542c8c06d9fee1eb77293edaa1d17748147008863bd8a8e80",
8
+ "generatedAt": "2026-07-20T11:49:06.000Z"
9
9
  }
@@ -71,6 +71,8 @@ export interface UpdateTaskInput {
71
71
  "status"?: string;
72
72
  "priority"?: string;
73
73
  "assigned_to"?: string;
74
+ "project_id"?: string | null;
75
+ "task_list_id"?: string | null;
74
76
  "version"?: number;
75
77
  }
76
78
  export interface CompleteTaskInput {
@@ -1 +1 @@
1
- {"version":3,"file":"v1.generated.d.ts","sourceRoot":"","sources":["../../src/sdk/v1.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"v1.generated.d.ts","sourceRoot":"","sources":["../../src/sdk/v1.generated.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,16 @@ export declare function ensureCloudSchema(): Promise<void>;
40
40
  * `CREATE INDEX CONCURRENTLY` to execute outside an explicit transaction.
41
41
  */
42
42
  export declare function ensureCloudCommentCursorIndex(): Promise<void>;
43
+ /**
44
+ * Optional latency index for case-insensitive short_id resolution. CONCURRENTLY,
45
+ * outside a transaction — a deployment migration, not request-path schema work.
46
+ */
47
+ export declare function ensureCloudTaskShortIdIndex(): Promise<void>;
48
+ /**
49
+ * Optional byte-order index for the id-prefix branch of short-reference
50
+ * resolution. CONCURRENTLY, outside a transaction — a deployment migration.
51
+ */
52
+ export declare function ensureCloudTaskObjectIdIndex(): Promise<void>;
43
53
  /** Audit duplicates, then establish project/task-list slug invariants concurrently. */
44
54
  export declare function ensureCloudScopedSlugUniqueIndexes(): Promise<void>;
45
55
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMpE,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACpC,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAOhG;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAO7F;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhF;AAoBD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAuBD,wBAAgB,cAAc,IAAI,WAAW,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAejD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvD;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AAED,iEAAiE;AACjE,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAIlD;AAED,4BAA4B;AAC5B,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD"}
1
+ {"version":3,"file":"cloud.d.ts","sourceRoot":"","sources":["../../src/server/cloud.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAwB,MAAM,uBAAuB,CAAC;AAG1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAQpE,OAAO,EAEL,KAAK,+BAA+B,EACpC,KAAK,8BAA8B,EACpC,MAAM,0CAA0C,CAAC;AAElD,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAOhG;AAED,+DAA+D;AAC/D,wBAAgB,oBAAoB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,GAAG,SAAS,CAO7F;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,OAAO,CAEhF;AAoBD,4EAA4E;AAC5E,wBAAgB,sBAAsB,IAAI,mBAAmB,CAK5D;AAuBD,wBAAgB,cAAc,IAAI,WAAW,CAI5C;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAejD;AAED;;;;GAIG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAUvD;AAED;;;;GAIG;AACH,wBAAsB,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnE;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,IAAI,OAAO,CAAC,IAAI,CAAC,CAEjE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,IAAI,CAAC,CAElE;AAED,uFAAuF;AACvF,wBAAsB,kCAAkC,IAAI,OAAO,CAAC,IAAI,CAAC,CAExE;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,CAS9D;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,8BAA8B,CAAC,CAEzC;AAED,iEAAiE;AACjE,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAIlD;AAED,4BAA4B;AAC5B,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAOhD"}