@hasna/todos 0.15.47 → 0.15.49

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.
Files changed (38) hide show
  1. package/dist/cli/commands/query-commands.d.ts.map +1 -1
  2. package/dist/cli/index.js +296 -81
  3. package/dist/contracts.js +56 -5
  4. package/dist/db/task-crud.d.ts +6 -0
  5. package/dist/db/task-crud.d.ts.map +1 -1
  6. package/dist/db/tasks.d.ts +1 -1
  7. package/dist/db/tasks.d.ts.map +1 -1
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +187 -70
  11. package/dist/lib/dedupe-projection.d.ts +48 -0
  12. package/dist/lib/dedupe-projection.d.ts.map +1 -0
  13. package/dist/lib/redaction.d.ts.map +1 -1
  14. package/dist/lib/task-dedupe.d.ts +5 -9
  15. package/dist/lib/task-dedupe.d.ts.map +1 -1
  16. package/dist/mcp/index.js +246 -80
  17. package/dist/mcp/tools/task-crud.d.ts.map +1 -1
  18. package/dist/mcp.js +3 -2
  19. package/dist/project-registration.js +128 -68
  20. package/dist/registry.js +56 -5
  21. package/dist/release-provenance.json +5 -5
  22. package/dist/server/cloud.d.ts.map +1 -1
  23. package/dist/server/index.js +248 -82
  24. package/dist/server/routes.d.ts.map +1 -1
  25. package/dist/server/v1.d.ts.map +1 -1
  26. package/dist/storage/postgres-adapter.d.ts.map +1 -1
  27. package/dist/storage/postgres-errors.d.ts +15 -0
  28. package/dist/storage/postgres-errors.d.ts.map +1 -0
  29. package/dist/storage/postgres-sync.d.ts +7 -0
  30. package/dist/storage/postgres-sync.d.ts.map +1 -1
  31. package/dist/storage/shadow-outbox.d.ts.map +1 -1
  32. package/dist/storage/shadow.d.ts.map +1 -1
  33. package/dist/storage.js +139 -66
  34. package/dist/task-manifest.js +118 -47
  35. package/dist/task-subtree-transfer.js +326 -44
  36. package/dist/types/index.d.ts +2 -2
  37. package/dist/types/index.d.ts.map +1 -1
  38. package/package.json +3 -2
@@ -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.15.47",
73
+ version: "0.15.49",
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",
@@ -134,6 +134,7 @@ var init_package = __esm(() => {
134
134
  ],
135
135
  scripts: {
136
136
  build: "rm -rf dist dashboard/dist && cd dashboard && bun install --frozen-lockfile && bun run build && cd .. && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts src/project-registration.ts src/task-manifest.ts src/task-subtree-transfer.ts --outdir dist --root src --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && tsc --emitDeclarationOnly --outDir dist",
137
+ "build:js": "rm -rf dist && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts src/project-registration.ts src/task-manifest.ts src/task-subtree-transfer.ts --outdir dist --root src --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && tsc --emitDeclarationOnly --outDir dist",
137
138
  "build:server": "rm -rf dist && bun build src/cli/index.tsx --outdir dist/cli --target bun --external ink --external react --external chalk --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/mcp/index.ts --outdir dist/mcp --target bun --external @modelcontextprotocol/sdk --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/server/index.ts --outdir dist/server --target bun && bun build src/sdk/index.ts --outdir dist/sdk --target bun --external '@hasna/contracts' --external '@hasna/contracts/*' && bun build src/index.ts src/mcp.ts src/registry.ts src/contracts.ts src/storage.ts src/testing.ts src/project-registration.ts src/task-manifest.ts src/task-subtree-transfer.ts --outdir dist --target bun --external '@hasna/contracts' --external '@hasna/contracts/*'",
138
139
  migrate: "bun run src/server/index.ts migrate",
139
140
  "backfill:comment-redaction": "bun run src/server/index.ts redact-comments",
@@ -188,7 +189,7 @@ var init_package = __esm(() => {
188
189
  author: "Andrei Hasna <andrei@hasna.com>",
189
190
  license: "Apache-2.0",
190
191
  dependencies: {
191
- "@hasna/contracts": "0.13.4",
192
+ "@hasna/contracts": "0.14.0",
192
193
  "@hasna/events": "^0.1.11",
193
194
  "@modelcontextprotocol/sdk": "^1.12.1",
194
195
  chalk: "^5.4.1",
@@ -224,7 +225,7 @@ var init_package_version = __esm(() => {
224
225
  init_package();
225
226
  });
226
227
 
227
- // node_modules/.bun/@hasna+contracts@0.13.4+ad7b1171e6eea7eb/node_modules/@hasna/contracts/dist/auth/index.js
228
+ // node_modules/.bun/@hasna+contracts@0.14.0+619f74e7b30eeaf4/node_modules/@hasna/contracts/dist/auth/index.js
228
229
  import { createHash, createHmac, randomBytes, timingSafeEqual } from "crypto";
229
230
  function isValidTenantId(value) {
230
231
  return typeof value === "string" && TENANT_ID_PATTERN.test(value);
@@ -1647,13 +1648,15 @@ function upsertSecretSafetyConfig(input) {
1647
1648
  saveConfig({ ...config, secret_safety: next });
1648
1649
  return next;
1649
1650
  }
1650
- var DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS, REDACTION_PLACEHOLDER;
1651
+ var XAI_PREFIX, DEFAULT_SECRET_PATTERNS, DEFAULT_SECRET_KEY_PATTERN, NON_SECRET_USAGE_KEYS, REDACTION_PLACEHOLDER;
1651
1652
  var init_redaction = __esm(() => {
1652
1653
  init_config2();
1654
+ XAI_PREFIX = ["x", "ai", "-"].join("");
1653
1655
  DEFAULT_SECRET_PATTERNS = [
1654
1656
  { name: "aws-access-key", regex: /\b(AKIA|ASIA)[0-9A-Z]{16}\b/g, replacement: "[REDACTED_AWS_KEY]" },
1655
1657
  { name: "private-key", regex: /-----BEGIN (?:RSA |EC |OPENSSH |)PRIVATE KEY-----[\s\S]*?-----END (?:RSA |EC |OPENSSH |)PRIVATE KEY-----/g, replacement: "[REDACTED_PRIVATE_KEY]" },
1656
1658
  { name: "openai-token", regex: /\bsk-[A-Za-z0-9_-]{12,}\b/g, replacement: "[REDACTED_TOKEN]" },
1659
+ { name: `${XAI_PREFIX}token`, regex: /\bxai[-][A-Za-z0-9]{20,80}\b/g, replacement: "[REDACTED_TOKEN]" },
1657
1660
  { name: "npm-token", regex: /\bnpm_[A-Za-z0-9]{20,}\b/g, replacement: "[REDACTED_NPM_TOKEN]" },
1658
1661
  { name: "github-fine-grained-token", regex: /\bgithub_pat_[A-Za-z0-9_]{20,}\b/g, replacement: "[REDACTED_GITHUB_TOKEN]" },
1659
1662
  { name: "github-token", regex: /\bgh[opsu]_[A-Za-z0-9]{20,}\b/g, replacement: "[REDACTED_GITHUB_TOKEN]" },
@@ -2060,6 +2063,27 @@ function validateSnapshotRoutingDestinationConflicts(projects, taskLists, existi
2060
2063
  return errors;
2061
2064
  }
2062
2065
 
2066
+ // src/storage/postgres-errors.ts
2067
+ function isPostgresUniqueViolation(error) {
2068
+ if (typeof error !== "object" || error === null)
2069
+ return false;
2070
+ const candidate = error;
2071
+ const states = [candidate.code, candidate.errno, candidate.sqlState, candidate.sqlstate];
2072
+ if (typeof candidate.cause === "object" && candidate.cause !== null) {
2073
+ const cause = candidate.cause;
2074
+ states.push(cause.code, cause.errno, cause.sqlState, cause.sqlstate);
2075
+ }
2076
+ return states.some((state) => String(state) === "23505");
2077
+ }
2078
+ function postgresConstraintName(error) {
2079
+ if (typeof error !== "object" || error === null)
2080
+ return "";
2081
+ const candidate = error;
2082
+ const cause = typeof candidate.cause === "object" && candidate.cause !== null ? candidate.cause : undefined;
2083
+ const constraint = candidate.constraint ?? candidate.constraint_name ?? cause?.constraint ?? cause?.constraint_name;
2084
+ return typeof constraint === "string" ? constraint : "";
2085
+ }
2086
+
2063
2087
  // src/storage/postgres-sync.ts
2064
2088
  function postgresTodosSyncSchemaSql(tableName = DEFAULT_TODOS_POSTGRES_SYNC_TABLE, cursorTableName = DEFAULT_TODOS_POSTGRES_CURSOR_TABLE) {
2065
2089
  assertSafeIdentifier(tableName);
@@ -2254,53 +2278,98 @@ class PostgresTodosSyncStore {
2254
2278
  if (routingErrors.length > 0) {
2255
2279
  throw new Error(`Invalid snapshot routing metadata: ${routingErrors.join("; ")}`);
2256
2280
  }
2257
- const existing = await this.client.query(`SELECT object_type, object_id, payload, updated_at, deleted_at, source_machine_id, version
2258
- FROM ${this.tableName}
2259
- WHERE service = $1 AND object_type IN ($2, $3) AND deleted_at IS NULL`, [this.service, "projects", "task_lists"]);
2260
- const existingProjects = [];
2261
- const existingTaskLists = [];
2262
- for (const row of existing.rows) {
2263
- const payload = payloadRecord(row.payload);
2264
- if (row.object_type === "projects")
2265
- existingProjects.push(payload);
2266
- if (row.object_type === "task_lists")
2267
- existingTaskLists.push(payload);
2268
- }
2269
- const destinationErrors = validateSnapshotRoutingDestinationConflicts(snapshot.projects, snapshot.taskLists, existingProjects, existingTaskLists);
2270
- if (destinationErrors.length > 0) {
2271
- throw new Error(`Snapshot routing conflicts with destination: ${destinationErrors.join("; ")}`);
2272
- }
2273
- const result = { records: 0, objectTypes: {} };
2274
- const sourceMachineId = context.requestId ?? this.sourceMachineId ?? null;
2275
- for (const entry of snapshotEntries(snapshot)) {
2276
- if (entry.deletedAt === null)
2277
- assertCanonicalScopedSlugEntry(entry);
2278
- await this.client.query(`INSERT INTO ${this.tableName} (
2279
- service, object_type, object_id, payload, updated_at,
2280
- deleted_at, source_machine_id, version
2281
- ) VALUES ($1, $2, $3, $4::jsonb, $5::timestamptz, $6::timestamptz, $7, $8)
2282
- ON CONFLICT (service, object_type, object_id) DO UPDATE SET
2283
- payload = EXCLUDED.payload,
2284
- updated_at = EXCLUDED.updated_at,
2285
- deleted_at = EXCLUDED.deleted_at,
2286
- source_machine_id = EXCLUDED.source_machine_id,
2287
- version = EXCLUDED.version
2288
- WHERE ${this.tableName}.updated_at < EXCLUDED.updated_at
2289
- OR (${this.tableName}.updated_at = EXCLUDED.updated_at
2290
- AND COALESCE(${this.tableName}.version, 0) <= COALESCE(EXCLUDED.version, 0))`, [
2291
- this.service,
2292
- entry.type,
2293
- entry.id,
2294
- entry.payload,
2295
- entry.updatedAt,
2296
- entry.deletedAt,
2297
- sourceMachineId,
2298
- entry.version
2299
- ]);
2300
- result.records += 1;
2301
- result.objectTypes[entry.type] = (result.objectTypes[entry.type] ?? 0) + 1;
2281
+ const push = async (client) => {
2282
+ const existing = await client.query(`SELECT object_type, object_id, payload, updated_at, deleted_at, source_machine_id, version
2283
+ FROM ${this.tableName}
2284
+ WHERE service = $1 AND object_type IN ($2, $3) AND deleted_at IS NULL`, [this.service, "projects", "task_lists"]);
2285
+ const existingProjects = [];
2286
+ const existingTaskLists = [];
2287
+ for (const row of existing.rows) {
2288
+ const payload = payloadRecord(row.payload);
2289
+ if (row.object_type === "projects")
2290
+ existingProjects.push(payload);
2291
+ if (row.object_type === "task_lists")
2292
+ existingTaskLists.push(payload);
2293
+ }
2294
+ const destinationErrors = validateSnapshotRoutingDestinationConflicts(snapshot.projects, snapshot.taskLists, existingProjects, existingTaskLists);
2295
+ if (destinationErrors.length > 0) {
2296
+ throw new ResourceConflictError("SNAPSHOT_DESTINATION_CONFLICT", `Snapshot routing conflicts with destination: ${destinationErrors.join("; ")}`);
2297
+ }
2298
+ const result = { records: 0, objectTypes: {} };
2299
+ const sourceMachineId = context.requestId ?? this.sourceMachineId ?? null;
2300
+ for (const entry of snapshotEntries(snapshot)) {
2301
+ if (entry.deletedAt === null)
2302
+ assertCanonicalScopedSlugEntry(entry);
2303
+ try {
2304
+ await client.query(`INSERT INTO ${this.tableName} (
2305
+ service, object_type, object_id, payload, updated_at,
2306
+ deleted_at, source_machine_id, version
2307
+ ) VALUES ($1, $2, $3, $4::jsonb, $5::timestamptz, $6::timestamptz, $7, $8)
2308
+ ON CONFLICT (service, object_type, object_id) DO UPDATE SET
2309
+ payload = EXCLUDED.payload,
2310
+ updated_at = EXCLUDED.updated_at,
2311
+ deleted_at = EXCLUDED.deleted_at,
2312
+ source_machine_id = EXCLUDED.source_machine_id,
2313
+ version = EXCLUDED.version
2314
+ WHERE ${this.tableName}.updated_at < EXCLUDED.updated_at
2315
+ OR (${this.tableName}.updated_at = EXCLUDED.updated_at
2316
+ AND COALESCE(${this.tableName}.version, 0) <= COALESCE(EXCLUDED.version, 0))`, [
2317
+ this.service,
2318
+ entry.type,
2319
+ entry.id,
2320
+ entry.payload,
2321
+ entry.updatedAt,
2322
+ entry.deletedAt,
2323
+ sourceMachineId,
2324
+ entry.version
2325
+ ]);
2326
+ } catch (error) {
2327
+ await this.classifySyncInsertConflict(error, entry);
2328
+ }
2329
+ result.records += 1;
2330
+ result.objectTypes[entry.type] = (result.objectTypes[entry.type] ?? 0) + 1;
2331
+ }
2332
+ return result;
2333
+ };
2334
+ if (typeof this.client.transaction === "function") {
2335
+ return this.client.transaction((client) => push(client));
2302
2336
  }
2303
- return result;
2337
+ return push(this.client);
2338
+ }
2339
+ async classifySyncInsertConflict(error, entry) {
2340
+ if (!isPostgresUniqueViolation(error))
2341
+ throw error;
2342
+ const payload = entry.payload;
2343
+ const taskListSlug = String(payload["slug"] ?? "");
2344
+ const projectSlug = String(payload["task_list_id"] ?? "");
2345
+ const constraintName = postgresConstraintName(error);
2346
+ if (entry.type === "projects" && constraintName.includes("project_task_list_slug_uidx")) {
2347
+ throw new ResourceConflictError("PROJECT_SLUG_CONFLICT", `Project slug "${projectSlug}" already exists`);
2348
+ }
2349
+ if (entry.type === "task_lists" && constraintName.includes("task_list_scope_slug_uidx")) {
2350
+ throw new ResourceConflictError("TASK_LIST_SLUG_CONFLICT", `Task list with slug "${taskListSlug}" already exists in this scope`);
2351
+ }
2352
+ if (entry.type === "task_lists") {
2353
+ const scope = typeof payload["project_id"] === "string" ? payload["project_id"] : "";
2354
+ const conflict = await this.client.query(`/* todos:classify-sync-task-list-conflict */ SELECT EXISTS (
2355
+ SELECT 1 FROM ${this.tableName}
2356
+ WHERE service = $1 AND object_type = 'task_lists' AND object_id <> $2
2357
+ AND deleted_at IS NULL AND COALESCE(payload->>'project_id','') = $3 AND payload->>'slug' = $4
2358
+ ) AS conflict`, [this.service, entry.id, scope, taskListSlug]);
2359
+ if (conflict.rows[0]?.conflict) {
2360
+ throw new ResourceConflictError("TASK_LIST_SLUG_CONFLICT", `Task list with slug "${taskListSlug}" already exists in this scope`);
2361
+ }
2362
+ } else if (entry.type === "projects") {
2363
+ const conflict = await this.client.query(`/* todos:classify-sync-project-conflict */ SELECT EXISTS (
2364
+ SELECT 1 FROM ${this.tableName}
2365
+ WHERE service = $1 AND object_type = 'projects' AND object_id <> $2
2366
+ AND deleted_at IS NULL AND payload->>'task_list_id' = $3
2367
+ ) AS conflict`, [this.service, entry.id, projectSlug]);
2368
+ if (conflict.rows[0]?.conflict) {
2369
+ throw new ResourceConflictError("PROJECT_SLUG_CONFLICT", `Project slug "${projectSlug}" already exists`);
2370
+ }
2371
+ }
2372
+ throw error;
2304
2373
  }
2305
2374
  async pullSnapshot(options = {}) {
2306
2375
  const params = [this.service];
@@ -2457,6 +2526,7 @@ function assertSafeIdentifier(value) {
2457
2526
  }
2458
2527
  var DEFAULT_TODOS_POSTGRES_SYNC_TABLE = "todos_sync_records", DEFAULT_TODOS_POSTGRES_CURSOR_TABLE = "todos_sync_cursors", PostgresScopedSlugMigrationConflictError, PostgresScopedSlugIndexBuildError;
2459
2528
  var init_postgres_sync = __esm(() => {
2529
+ init_types();
2460
2530
  PostgresScopedSlugMigrationConflictError = class PostgresScopedSlugMigrationConflictError extends Error {
2461
2531
  conflicts;
2462
2532
  constructor(conflicts) {
@@ -5292,25 +5362,6 @@ async function retryOnTransientPostgresError(fn, attempts = 2, delayMs = 150) {
5292
5362
  }
5293
5363
  throw lastError;
5294
5364
  }
5295
- function isPostgresUniqueViolation(error) {
5296
- if (typeof error !== "object" || error === null)
5297
- return false;
5298
- const candidate = error;
5299
- const states = [candidate.code, candidate.errno, candidate.sqlState, candidate.sqlstate];
5300
- if (typeof candidate.cause === "object" && candidate.cause !== null) {
5301
- const cause = candidate.cause;
5302
- states.push(cause.code, cause.errno, cause.sqlState, cause.sqlstate);
5303
- }
5304
- return states.some((state) => String(state) === "23505");
5305
- }
5306
- function postgresConstraintName(error) {
5307
- if (typeof error !== "object" || error === null)
5308
- return "";
5309
- const candidate = error;
5310
- const cause = typeof candidate.cause === "object" && candidate.cause !== null ? candidate.cause : undefined;
5311
- const constraint = candidate.constraint ?? candidate.constraint_name ?? cause?.constraint ?? cause?.constraint_name;
5312
- return typeof constraint === "string" ? constraint : "";
5313
- }
5314
5365
  var CLOUD_LOCK_EXPIRY_MINUTES = 30, TASK_ORDER_TIEBREAK = "CASE payload->>'priority' WHEN 'critical' THEN 0 WHEN 'high' THEN 1 WHEN 'medium' THEN 2 WHEN 'low' THEN 3 ELSE 4 END ASC, payload->>'created_at' ASC, payload->>'id' ASC", TASK_ORDER_BY, TRANSIENT_POSTGRES_SQLSTATES, TRANSIENT_POSTGRES_MESSAGE_MARKERS;
5315
5366
  var init_postgres_adapter = __esm(() => {
5316
5367
  init_types();
@@ -16551,6 +16602,12 @@ function listTasks2(filter = {}, db) {
16551
16602
  const d = db || getDatabase();
16552
16603
  const { clearExpiredLocks: clearExpiredLocks2 } = (init_database(), __toCommonJS(exports_database));
16553
16604
  clearExpiredLocks2(d);
16605
+ if (filter.limit !== undefined) {
16606
+ const limit = filter.limit;
16607
+ if (!Number.isSafeInteger(limit) || limit <= 0 || limit > MAX_TASK_LIST_LIMIT) {
16608
+ throw new TypeError(`listTasks limit must be a positive integer between 1 and ${MAX_TASK_LIST_LIMIT}; got ${String(limit)}`);
16609
+ }
16610
+ }
16554
16611
  const conditions = [];
16555
16612
  const params = [];
16556
16613
  if (filter.project_id) {
@@ -17084,6 +17141,7 @@ function deleteTask(id, db) {
17084
17141
  }
17085
17142
  return result.changes > 0;
17086
17143
  }
17144
+ var MAX_TASK_LIST_LIMIT = 1e5;
17087
17145
  var init_task_crud = __esm(() => {
17088
17146
  init_types();
17089
17147
  init_database();
@@ -19998,7 +20056,8 @@ __export(exports_tasks, {
19998
20056
  buildTaskBoardSnapshot: () => buildTaskBoardSnapshot,
19999
20057
  archiveTasks: () => archiveTasks,
20000
20058
  archiveCompletedTasks: () => archiveCompletedTasks,
20001
- addDependency: () => addDependency2
20059
+ addDependency: () => addDependency2,
20060
+ MAX_TASK_LIST_LIMIT: () => MAX_TASK_LIST_LIMIT
20002
20061
  });
20003
20062
  var init_tasks = __esm(() => {
20004
20063
  init_task_crud();
@@ -30505,6 +30564,13 @@ function resolveSigningSecret(env = process.env) {
30505
30564
  function isPostgresBackendConfigured(env = process.env) {
30506
30565
  return Boolean(resolveCloudDatabaseUrl(env));
30507
30566
  }
30567
+ function schemaRetryMinIntervalMs(env = process.env) {
30568
+ const raw = env.HASNA_TODOS_SCHEMA_RETRY_MIN_MS;
30569
+ if (!raw)
30570
+ return DEFAULT_SCHEMA_RETRY_MIN_MS;
30571
+ const parsed = Number(raw);
30572
+ return Number.isFinite(parsed) && parsed >= 0 ? parsed : DEFAULT_SCHEMA_RETRY_MIN_MS;
30573
+ }
30508
30574
  function getCloudTenantId() {
30509
30575
  return process.env.HASNA_TODOS_TENANT_ID ?? "default";
30510
30576
  }
@@ -30600,6 +30666,10 @@ function getCloudVerifier() {
30600
30666
  async function ensureCloudSchema() {
30601
30667
  if (schemaEnsured)
30602
30668
  return schemaEnsured;
30669
+ if (lastSchemaFailure !== null && Date.now() - lastSchemaAttemptAtMs < schemaRetryMinIntervalMs()) {
30670
+ throw lastSchemaFailure;
30671
+ }
30672
+ lastSchemaAttemptAtMs = Date.now();
30603
30673
  schemaEnsured = (async () => {
30604
30674
  const client = getClient();
30605
30675
  for (const sql of postgresTodosSyncSchemaSql()) {
@@ -30620,6 +30690,7 @@ async function ensureCloudSchema() {
30620
30690
  await getApiKeyStore().ensureSchema();
30621
30691
  })().catch((error) => {
30622
30692
  schemaEnsured = null;
30693
+ lastSchemaFailure = error;
30623
30694
  throw error;
30624
30695
  });
30625
30696
  return schemaEnsured;
@@ -30667,8 +30738,10 @@ async function closeCloud() {
30667
30738
  cachedTaskManifestAuthority = null;
30668
30739
  cachedTaskSubtreeTransferAuthority = null;
30669
30740
  schemaEnsured = null;
30741
+ lastSchemaAttemptAtMs = 0;
30742
+ lastSchemaFailure = null;
30670
30743
  }
30671
- var TODOS_APP_SLUG = "todos", cachedClient = null, cachedAdapter = null, cachedStore = null, cachedVerifier = null, cachedPrGroupLedger = null, cachedProjectRegistrationAuthority = null, cachedTaskManifestAuthority = null, cachedTaskSubtreeTransferAuthority = null, schemaEnsured = null;
30744
+ var TODOS_APP_SLUG = "todos", cachedClient = null, cachedAdapter = null, cachedStore = null, cachedVerifier = null, cachedPrGroupLedger = null, cachedProjectRegistrationAuthority = null, cachedTaskManifestAuthority = null, cachedTaskSubtreeTransferAuthority = null, schemaEnsured = null, lastSchemaAttemptAtMs = 0, lastSchemaFailure = null, DEFAULT_SCHEMA_RETRY_MIN_MS = 1e4;
30672
30745
  var init_cloud = __esm(() => {
30673
30746
  init_auth();
30674
30747
  init_auth();
@@ -31681,6 +31754,19 @@ function taskStatusQueryParam(url) {
31681
31754
  return { ok: false, message: result.message };
31682
31755
  return { ok: true, value: collapseEnumValues(result.values) };
31683
31756
  }
31757
+ function parsePaginationQueryParam(url, name) {
31758
+ const raw = url.searchParams.get(name);
31759
+ if (raw === null)
31760
+ return { ok: true, value: undefined };
31761
+ const min = name === "limit" ? 1 : 0;
31762
+ const message = name === "limit" ? "limit must be a positive integer" : "offset must be a non-negative integer";
31763
+ if (!/^\d+$/.test(raw))
31764
+ return { ok: false, message };
31765
+ const value = Number(raw);
31766
+ if (!Number.isSafeInteger(value) || value < min)
31767
+ return { ok: false, message };
31768
+ return { ok: true, value };
31769
+ }
31684
31770
  async function handleListTasks(_req, url, _ctx, json5, taskToSummary2) {
31685
31771
  const statusParam = taskStatusQueryParam(url);
31686
31772
  if (!statusParam.ok)
@@ -31688,16 +31774,20 @@ async function handleListTasks(_req, url, _ctx, json5, taskToSummary2) {
31688
31774
  const projectId = url.searchParams.get("project_id") || undefined;
31689
31775
  const sessionId = url.searchParams.get("session_id") || undefined;
31690
31776
  const agentId = url.searchParams.get("agent_id") || undefined;
31691
- const limitParam = url.searchParams.get("limit");
31692
- const offsetParam = url.searchParams.get("offset");
31777
+ const limitParam = parsePaginationQueryParam(url, "limit");
31778
+ if (!limitParam.ok)
31779
+ return json5({ error: limitParam.message }, 400);
31780
+ const offsetParam = parsePaginationQueryParam(url, "offset");
31781
+ if (!offsetParam.ok)
31782
+ return json5({ error: offsetParam.message }, 400);
31693
31783
  const fields = parseFieldsParam(url);
31694
31784
  const tasks = listTasks2({
31695
31785
  status: statusParam.value,
31696
31786
  project_id: projectId,
31697
31787
  session_id: sessionId,
31698
31788
  agent_id: agentId,
31699
- limit: limitParam ? parseInt(limitParam, 10) : undefined,
31700
- offset: offsetParam ? parseInt(offsetParam, 10) : undefined
31789
+ limit: limitParam.value,
31790
+ offset: offsetParam.value
31701
31791
  });
31702
31792
  return json5(tasks.map((t) => taskToSummary2(t, fields)));
31703
31793
  }
@@ -32489,6 +32579,12 @@ class TodosShadowOutbox {
32489
32579
  this.onEvent?.({ type: "mirrored", objectType: row.object_type, id: row.object_id, lagMs });
32490
32580
  } catch (error) {
32491
32581
  const message = error instanceof Error ? error.message : String(error);
32582
+ if (error instanceof ResourceConflictError) {
32583
+ this.metrics.lastError = message;
32584
+ this.db.run(`UPDATE shadow_outbox SET attempts=?, last_error=?, status='failed' WHERE seq=? AND revision=?`, [row.attempts + 1, message, row.seq, row.revision]);
32585
+ this.onEvent?.({ type: "parked", objectType: row.object_type, id: row.object_id, error: message });
32586
+ return;
32587
+ }
32492
32588
  this.metrics.retries += 1;
32493
32589
  this.metrics.lastError = message;
32494
32590
  const attempts = row.attempts + 1;
@@ -32611,6 +32707,7 @@ function emptySnapshot() {
32611
32707
  }
32612
32708
  var MAX_BACKOFF_MS;
32613
32709
  var init_shadow_outbox = __esm(() => {
32710
+ init_types();
32614
32711
  init_local_sqlite();
32615
32712
  init_postgres_sync();
32616
32713
  init_shadow_outbox_schema();
@@ -36909,6 +37006,26 @@ function parseSinceCursor(raw) {
36909
37006
  }
36910
37007
  return { ok: true, value: new Date(parsed).toISOString() };
36911
37008
  }
37009
+ function paginationQueryParam(url, name) {
37010
+ const raw = url.searchParams.get(name);
37011
+ if (raw === null)
37012
+ return { ok: true, value: undefined };
37013
+ const min = name === "limit" ? 1 : 0;
37014
+ if (!/^\d+$/.test(raw)) {
37015
+ return {
37016
+ ok: false,
37017
+ response: error(400, name === "limit" ? "limit must be a positive integer" : "offset must be a non-negative integer")
37018
+ };
37019
+ }
37020
+ const value = Number(raw);
37021
+ if (!Number.isSafeInteger(value) || value < min) {
37022
+ return {
37023
+ ok: false,
37024
+ response: error(400, name === "limit" ? "limit must be a positive integer" : "offset must be a non-negative integer")
37025
+ };
37026
+ }
37027
+ return { ok: true, value };
37028
+ }
36912
37029
  function validateTaskCompletion(value) {
36913
37030
  if (!value || typeof value !== "object" || Array.isArray(value))
36914
37031
  return { ok: false, message: "completion body must be an object" };
@@ -37437,6 +37554,12 @@ async function handleV1Request(req, url, dependencies = {}) {
37437
37554
  if (updatedAfter !== null && !updatedAfter.ok) {
37438
37555
  return error(400, updatedAfter.message);
37439
37556
  }
37557
+ const limitParam = paginationQueryParam(url, "limit");
37558
+ if (!limitParam.ok)
37559
+ return limitParam.response;
37560
+ const offsetParam = paginationQueryParam(url, "offset");
37561
+ if (!offsetParam.ok)
37562
+ return offsetParam.response;
37440
37563
  const filter = {
37441
37564
  ...updatedAfter !== null && updatedAfter.ok ? { updated_after: updatedAfter.value } : {},
37442
37565
  ...url.searchParams.get("q") ? { query: url.searchParams.get("q") } : {},
@@ -37453,8 +37576,8 @@ async function handleV1Request(req, url, dependencies = {}) {
37453
37576
  ...url.searchParams.get("tags") ? {
37454
37577
  tags: url.searchParams.get("tags").split(",").map((tag) => tag.trim()).filter(Boolean)
37455
37578
  } : {},
37456
- ...url.searchParams.get("limit") ? { limit: Number(url.searchParams.get("limit")) } : {},
37457
- ...url.searchParams.get("offset") ? { offset: Number(url.searchParams.get("offset")) } : {}
37579
+ ...limitParam.value !== undefined ? { limit: limitParam.value } : {},
37580
+ ...offsetParam.value !== undefined ? { offset: offsetParam.value } : {}
37458
37581
  };
37459
37582
  const tasks = await store.tasks.list(filter);
37460
37583
  const { limit: _l, offset: _o, ...countFilter } = filter;
@@ -56485,7 +56608,7 @@ var init_assignee_context = __esm(() => {
56485
56608
  init_assignee_validation();
56486
56609
  });
56487
56610
 
56488
- // node_modules/.bun/@hasna+contracts@0.13.4+ad7b1171e6eea7eb/node_modules/@hasna/contracts/dist/client/storage.js
56611
+ // node_modules/.bun/@hasna+contracts@0.14.0+619f74e7b30eeaf4/node_modules/@hasna/contracts/dist/client/storage.js
56489
56612
  import { isIP } from "net";
56490
56613
  import { readFileSync as readFileSync5, statSync as statSync4 } from "fs";
56491
56614
  import { join as join10 } from "path";
@@ -59150,8 +59273,8 @@ function registerTaskCrudTools(server, ctx) {
59150
59273
  tags: exports_external.array(exports_external.string()).optional().describe("Filter by tags (AND logic)"),
59151
59274
  created_after: exports_external.string().optional().describe("ISO date \u2014 tasks created after this date"),
59152
59275
  created_before: exports_external.string().optional().describe("ISO date \u2014 tasks created before this date"),
59153
- limit: exports_external.number().optional().describe("Max results (default: 50, max 500)"),
59154
- offset: exports_external.number().optional().describe("Pagination offset"),
59276
+ limit: exports_external.number().int().min(1).optional().describe("Max results (default: 50, max 500)"),
59277
+ offset: exports_external.number().int().min(0).optional().describe("Pagination offset"),
59155
59278
  metadata: exports_external.record(exports_external.unknown()).optional().describe("Exact top-level metadata filters")
59156
59279
  }, async (params) => {
59157
59280
  try {
@@ -62501,6 +62624,48 @@ var init_task_relationships = __esm(() => {
62501
62624
  ];
62502
62625
  });
62503
62626
 
62627
+ // src/lib/dedupe-projection.ts
62628
+ function projectTasksForDedupe(tasks) {
62629
+ return tasks.map((task2) => {
62630
+ const metadata = {};
62631
+ for (const key2 of DEDUPE_SOURCE_KEY_ALLOWLIST) {
62632
+ if (key2 in task2.metadata) {
62633
+ metadata[key2] = redactValue(task2.metadata[key2]);
62634
+ }
62635
+ }
62636
+ return {
62637
+ id: task2.id,
62638
+ short_id: task2.short_id,
62639
+ title: redactEvidenceText(task2.title),
62640
+ description: task2.description === null || task2.description === undefined ? null : redactEvidenceText(task2.description),
62641
+ status: task2.status,
62642
+ created_at: task2.created_at,
62643
+ updated_at: task2.updated_at,
62644
+ project_id: task2.project_id,
62645
+ task_list_id: task2.task_list_id,
62646
+ assigned_to: task2.assigned_to,
62647
+ priority: task2.priority,
62648
+ metadata
62649
+ };
62650
+ });
62651
+ }
62652
+ var DEDUPE_SOURCE_KEY_ALLOWLIST;
62653
+ var init_dedupe_projection = __esm(() => {
62654
+ init_redaction();
62655
+ DEDUPE_SOURCE_KEY_ALLOWLIST = [
62656
+ "github_url",
62657
+ "github_issue_url",
62658
+ "github_pr_url",
62659
+ "source_url",
62660
+ "url",
62661
+ "external_url",
62662
+ "issue_url",
62663
+ "github_owner",
62664
+ "github_repo",
62665
+ "github_number"
62666
+ ];
62667
+ });
62668
+
62504
62669
  // src/lib/task-dedupe.ts
62505
62670
  function asObject(value) {
62506
62671
  return value && typeof value === "object" && !Array.isArray(value) ? value : {};
@@ -62665,10 +62830,10 @@ function olderFirst(left, right) {
62665
62830
  function findDuplicateTasks(options = {}, db) {
62666
62831
  const d = db || getDatabase();
62667
62832
  const threshold = options.threshold ?? DEFAULT_THRESHOLD;
62668
- const fingerprints = listTasks2({
62833
+ const fingerprints = projectTasksForDedupe(listTasks2({
62669
62834
  include_archived: Boolean(options.include_archived),
62670
62835
  limit: options.limit ?? 1000
62671
- }, d).map(fingerprint);
62836
+ }, d)).map(fingerprint);
62672
62837
  const candidates = [];
62673
62838
  for (let i = 0;i < fingerprints.length; i++) {
62674
62839
  for (let j = i + 1;j < fingerprints.length; j++) {
@@ -62903,6 +63068,7 @@ var init_task_dedupe = __esm(() => {
62903
63068
  init_database();
62904
63069
  init_task_relationships();
62905
63070
  init_tasks();
63071
+ init_dedupe_projection();
62906
63072
  STOP_WORDS = new Set([
62907
63073
  "a",
62908
63074
  "an",
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAuB,oBAAoB,EAAmD,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oCAAoC,EACpC,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,EACpC,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA2BpB,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;IAChD,+BAA+B,CAAC,EAAE,OAAO,oCAAoC,CAAC;IAC9E,wBAAwB,CAAC,EAAE,OAAO,6BAA6B,CAAC;IAChE,+BAA+B,CAAC,EAAE,OAAO,oCAAoC,CAAC;CAC/E;AA2YD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAiB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAapE;AA4ED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAi0C1B"}
1
+ {"version":3,"file":"v1.d.ts","sourceRoot":"","sources":["../../src/server/v1.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAuB,oBAAoB,EAAmD,MAAM,0BAA0B,CAAC;AAC3I,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oCAAoC,EACpC,sBAAsB,EACtB,6BAA6B,EAC7B,oCAAoC,EACpC,gBAAgB,EACjB,MAAM,YAAY,CAAC;AA2BpB,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;IAChD,+BAA+B,CAAC,EAAE,OAAO,oCAAoC,CAAC;IAC9E,wBAAwB,CAAC,EAAE,OAAO,6BAA6B,CAAC;IAChE,+BAA+B,CAAC,EAAE,OAAO,oCAAoC,CAAC;CAC/E;AAqbD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CAiB1E;AAED,gFAAgF;AAChF,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAapE;AA4ED;;;GAGG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,GAAG,EACR,YAAY,GAAE,qBAA0B,GACvC,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA20C1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAcV,mBAAmB,EAYpB,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AA4B5B,MAAM,WAAW,wCAAwC;IACvD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,mBAAmB,CAiLrB"}
1
+ {"version":3,"file":"postgres-adapter.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-adapter.ts"],"names":[],"mappings":"AAsCA,OAAO,KAAK,EAcV,mBAAmB,EAYpB,MAAM,iBAAiB,CAAC;AAczB,OAAO,EAIL,KAAK,wBAAwB,EAE9B,MAAM,oBAAoB,CAAC;AA6B5B,MAAM,WAAW,wCAAwC;IACvD,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAuBD,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,wCAAwC,GAChD,mBAAmB,CAiLrB"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Shared Postgres error-shape helpers for the sync store and the storage
3
+ * adapter. Both surfaces classify SQLSTATE 23505 (unique_violation) into typed
4
+ * ResourceConflictError codes; keeping the classification helpers in one
5
+ * module prevents the two implementations from drifting apart.
6
+ */
7
+ /** True when the error (or its cause) carries SQLSTATE 23505 (unique_violation). */
8
+ export declare function isPostgresUniqueViolation(error: unknown): boolean;
9
+ /**
10
+ * The violating constraint/index name, when the driver surfaces it. Some
11
+ * Postgres clients omit constraint metadata entirely; callers fall back to a
12
+ * post-failure re-read in that case.
13
+ */
14
+ export declare function postgresConstraintName(error: unknown): string;
15
+ //# sourceMappingURL=postgres-errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-errors.d.ts","sourceRoot":"","sources":["../../src/storage/postgres-errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oFAAoF;AACpF,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAejE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQ7D"}
@@ -107,6 +107,13 @@ export declare class PostgresTodosSyncStore {
107
107
  constructor(client: TodosPostgresQueryClient, options?: CreatePostgresTodosSyncStoreOptions);
108
108
  ensureSchema(): Promise<void>;
109
109
  pushSnapshot(snapshot: TodosStorageSnapshot, context?: TodosStorageContext): Promise<PostgresTodosSyncPushResult>;
110
+ /**
111
+ * Map a raw 23505 from the push INSERT into the typed ResourceConflictError
112
+ * codes the adapter already surfaces (TASK_LIST_SLUG_CONFLICT /
113
+ * PROJECT_SLUG_CONFLICT). Mirrors postgres-adapter.ts's upsert mapping and
114
+ * renameProjectAtomic's post-failure re-read for metadata-less clients.
115
+ */
116
+ private classifySyncInsertConflict;
110
117
  pullSnapshot(options?: PullPostgresTodosSnapshotOptions): Promise<TodosStorageSnapshot>;
111
118
  getCursor(name: string): Promise<string | null>;
112
119
  setCursor(name: string, value: string): Promise<void>;