@hasna/todos 0.15.41 → 0.15.47

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 (45) hide show
  1. package/dashboard/dist/assets/index-BNQ4gJua.js +342 -0
  2. package/dashboard/dist/assets/index-DjzvHUWt.css +1 -0
  3. package/dashboard/dist/index.html +2 -2
  4. package/dist/cli/cloud-router.d.ts.map +1 -1
  5. package/dist/cli/components/Dashboard.d.ts +1 -1
  6. package/dist/cli/components/Dashboard.d.ts.map +1 -1
  7. package/dist/cli/components/Header.d.ts +1 -1
  8. package/dist/cli/components/Header.d.ts.map +1 -1
  9. package/dist/cli/components/ProjectList.d.ts +1 -1
  10. package/dist/cli/components/ProjectList.d.ts.map +1 -1
  11. package/dist/cli/components/SearchView.d.ts +1 -1
  12. package/dist/cli/components/SearchView.d.ts.map +1 -1
  13. package/dist/cli/components/TaskDetail.d.ts +1 -1
  14. package/dist/cli/components/TaskDetail.d.ts.map +1 -1
  15. package/dist/cli/components/TaskForm.d.ts +1 -1
  16. package/dist/cli/components/TaskForm.d.ts.map +1 -1
  17. package/dist/cli/components/TaskList.d.ts +1 -1
  18. package/dist/cli/components/TaskList.d.ts.map +1 -1
  19. package/dist/cli/index.js +521 -120
  20. package/dist/contracts.js +346 -83
  21. package/dist/db/task-graph.d.ts.map +1 -1
  22. package/dist/db/task-lifecycle.d.ts.map +1 -1
  23. package/dist/db/webhooks.d.ts.map +1 -1
  24. package/dist/index.js +499 -113
  25. package/dist/lib/instant-compare.d.ts +35 -0
  26. package/dist/lib/instant-compare.d.ts.map +1 -0
  27. package/dist/mcp/index.js +520 -119
  28. package/dist/mcp.js +5 -4
  29. package/dist/pr-groups/postgres.d.ts.map +1 -1
  30. package/dist/project-registration/postgres.d.ts.map +1 -1
  31. package/dist/project-registration.js +466 -100
  32. package/dist/registry.js +346 -83
  33. package/dist/release-provenance.json +5 -5
  34. package/dist/server/cloud.d.ts.map +1 -1
  35. package/dist/server/index.js +1179 -309
  36. package/dist/storage/local-sqlite.d.ts.map +1 -1
  37. package/dist/storage/postgres-adapter.d.ts.map +1 -1
  38. package/dist/storage.js +447 -89
  39. package/dist/task-manifest/postgres.d.ts.map +1 -1
  40. package/dist/task-manifest.js +15 -6
  41. package/dist/task-subtree-transfer/postgres.d.ts.map +1 -1
  42. package/dist/task-subtree-transfer.js +15 -6
  43. package/package.json +5 -4
  44. package/dashboard/dist/assets/index-DJm6m6Yy.css +0 -1
  45. package/dashboard/dist/assets/index-DVotjwab.js +0 -346
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Since-cursor comparison for changed-since feeds.
3
+ *
4
+ * Stored `updated_at` stamps mix ISO ("2026-08-05T18:54:55.814Z") with
5
+ * space-form ("2026-06-10 11:24:47" — the DDL default `datetime('now')`, plus
6
+ * snapshot import/sync). As TEXT, space (0x20) sorts before 'T' (0x54), so a
7
+ * raw `updated_at > since` comparison silently excludes space-form rows that
8
+ * are genuinely NEWER than an ISO cursor. This compares the stamps as
9
+ * INSTANTS, mirroring the SQL `julianday()` predicate used by the
10
+ * SQLite/Postgres updated_after paths (task-crud.ts), including its
11
+ * keep-unparseable semantics: a stamp julianday() cannot parse yields NULL
12
+ * and the row is KEPT, because "cannot read the row's timestamp" is not
13
+ * "older than the cursor".
14
+ *
15
+ * The parser is deliberately SQLite-faithful rather than `Date.parse`-based,
16
+ * because the two disagree in ways that change the comparison:
17
+ *
18
+ * - SQLite accepts ONLY an uppercase 'T' (or space) separator and an
19
+ * uppercase 'Z' (or `±HH:MM`) offset; `Date.parse` also accepts lowercase
20
+ * 't'/'z', so a row SQLite would read as NULL (and KEEP) would otherwise be
21
+ * excluded.
22
+ * - SQLite parses the fractional seconds to microsecond precision;
23
+ * `Date.parse` truncates to milliseconds, so stamps that differ only in the
24
+ * sub-millisecond digits would compare equal (and be excluded) instead of
25
+ * newer.
26
+ * - SQLite rejects out-of-range calendar fields (month 13, day 32, hour 25,
27
+ * second 61); `Date.UTC` normalizes them, which would silently accept a
28
+ * stamp SQLite treats as unreadable.
29
+ *
30
+ * Naive (no-offset) stamps are read as UTC, matching SQLite julianday().
31
+ * Offsets are applied by subtraction, matching julianday('...+02:00') ==
32
+ * UTC minus two hours.
33
+ */
34
+ export declare function changedSinceStampNewer(stamp: string, since: string): boolean;
35
+ //# sourceMappingURL=instant-compare.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instant-compare.d.ts","sourceRoot":"","sources":["../../src/lib/instant-compare.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAqDH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAM5E"}