canopycms 0.0.54 → 0.0.55

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 (205) hide show
  1. package/dist/api/assets.d.ts +14 -2
  2. package/dist/api/assets.d.ts.map +1 -1
  3. package/dist/api/assets.js +14 -3
  4. package/dist/api/assets.js.map +1 -1
  5. package/dist/api/branch-status.d.ts.map +1 -1
  6. package/dist/api/branch-status.js +8 -2
  7. package/dist/api/branch-status.js.map +1 -1
  8. package/dist/api/client.d.ts +2 -2
  9. package/dist/api/client.d.ts.map +1 -1
  10. package/dist/api/client.js +29 -14
  11. package/dist/api/client.js.map +1 -1
  12. package/dist/api/content.d.ts +2 -2
  13. package/dist/api/content.d.ts.map +1 -1
  14. package/dist/api/content.js +160 -26
  15. package/dist/api/content.js.map +1 -1
  16. package/dist/api/entries.d.ts.map +1 -1
  17. package/dist/api/entries.js +8 -4
  18. package/dist/api/entries.js.map +1 -1
  19. package/dist/api/github-sync.d.ts.map +1 -1
  20. package/dist/api/github-sync.js +21 -4
  21. package/dist/api/github-sync.js.map +1 -1
  22. package/dist/api/groups.d.ts.map +1 -1
  23. package/dist/api/groups.js +15 -5
  24. package/dist/api/groups.js.map +1 -1
  25. package/dist/api/permissions.d.ts +6 -6
  26. package/dist/api/permissions.d.ts.map +1 -1
  27. package/dist/api/permissions.js +24 -9
  28. package/dist/api/permissions.js.map +1 -1
  29. package/dist/api/request-body-hash.d.ts +33 -0
  30. package/dist/api/request-body-hash.d.ts.map +1 -0
  31. package/dist/api/request-body-hash.js +43 -0
  32. package/dist/api/request-body-hash.js.map +1 -0
  33. package/dist/api/resolve-references.d.ts.map +1 -1
  34. package/dist/api/resolve-references.js +8 -1
  35. package/dist/api/resolve-references.js.map +1 -1
  36. package/dist/api/schema.js +9 -9
  37. package/dist/api/schema.js.map +1 -1
  38. package/dist/api/settings-helpers.d.ts +14 -1
  39. package/dist/api/settings-helpers.d.ts.map +1 -1
  40. package/dist/api/settings-helpers.js +11 -2
  41. package/dist/api/settings-helpers.js.map +1 -1
  42. package/dist/api/types.d.ts +10 -0
  43. package/dist/api/types.d.ts.map +1 -1
  44. package/dist/auth/index.d.ts +1 -0
  45. package/dist/auth/index.d.ts.map +1 -1
  46. package/dist/auth/index.js +1 -0
  47. package/dist/auth/index.js.map +1 -1
  48. package/dist/auth/plugin.d.ts +26 -0
  49. package/dist/auth/plugin.d.ts.map +1 -1
  50. package/dist/auth/plugin.js +25 -1
  51. package/dist/auth/plugin.js.map +1 -1
  52. package/dist/authorization/helpers.d.ts +16 -0
  53. package/dist/authorization/helpers.d.ts.map +1 -1
  54. package/dist/authorization/helpers.js +18 -0
  55. package/dist/authorization/helpers.js.map +1 -1
  56. package/dist/authorization/index.d.ts +1 -1
  57. package/dist/authorization/index.d.ts.map +1 -1
  58. package/dist/authorization/index.js +1 -1
  59. package/dist/authorization/index.js.map +1 -1
  60. package/dist/cli/cli.d.ts.map +1 -1
  61. package/dist/cli/cli.js +2 -1
  62. package/dist/cli/cli.js.map +1 -1
  63. package/dist/cli/generate-ai-content.js +744 -349
  64. package/dist/cli/init.d.ts +1 -1
  65. package/dist/cli/init.d.ts.map +1 -1
  66. package/dist/cli/init.js +28 -9
  67. package/dist/cli/init.js.map +1 -1
  68. package/dist/cli/sync.d.ts.map +1 -1
  69. package/dist/cli/sync.js +88 -60
  70. package/dist/cli/sync.js.map +1 -1
  71. package/dist/cli/template-files/canopy.ts.template +2 -1
  72. package/dist/cli/template-files/edit-page.tsx.template +8 -1
  73. package/dist/cli/template-files/middleware.ts.template +18 -0
  74. package/dist/cli/templates.d.ts.map +1 -1
  75. package/dist/cli/templates.js +16 -4
  76. package/dist/cli/templates.js.map +1 -1
  77. package/dist/config/helpers.d.ts +9 -1
  78. package/dist/config/helpers.d.ts.map +1 -1
  79. package/dist/config/helpers.js +30 -75
  80. package/dist/config/helpers.js.map +1 -1
  81. package/dist/config/schemas/config.d.ts +5 -20
  82. package/dist/config/schemas/config.d.ts.map +1 -1
  83. package/dist/config/schemas/config.js +6 -2
  84. package/dist/config/schemas/config.js.map +1 -1
  85. package/dist/config/schemas/media.d.ts +1 -10
  86. package/dist/config/schemas/media.d.ts.map +1 -1
  87. package/dist/config/schemas/media.js +8 -6
  88. package/dist/config/schemas/media.js.map +1 -1
  89. package/dist/config/types.d.ts +0 -3
  90. package/dist/config/types.d.ts.map +1 -1
  91. package/dist/content-id-index.d.ts +12 -6
  92. package/dist/content-id-index.d.ts.map +1 -1
  93. package/dist/content-id-index.js +12 -6
  94. package/dist/content-id-index.js.map +1 -1
  95. package/dist/content-index-generation.d.ts +30 -0
  96. package/dist/content-index-generation.d.ts.map +1 -0
  97. package/dist/content-index-generation.js +131 -0
  98. package/dist/content-index-generation.js.map +1 -0
  99. package/dist/content-index-registry.d.ts +38 -0
  100. package/dist/content-index-registry.d.ts.map +1 -0
  101. package/dist/content-index-registry.js +53 -0
  102. package/dist/content-index-registry.js.map +1 -0
  103. package/dist/content-store.d.ts +130 -6
  104. package/dist/content-store.d.ts.map +1 -1
  105. package/dist/content-store.js +333 -31
  106. package/dist/content-store.js.map +1 -1
  107. package/dist/editor/Editor.d.ts.map +1 -1
  108. package/dist/editor/Editor.js +8 -4
  109. package/dist/editor/Editor.js.map +1 -1
  110. package/dist/editor/FormRenderer.d.ts +7 -0
  111. package/dist/editor/FormRenderer.d.ts.map +1 -1
  112. package/dist/editor/FormRenderer.js +12 -3
  113. package/dist/editor/FormRenderer.js.map +1 -1
  114. package/dist/editor/components/EditorHeader.d.ts.map +1 -1
  115. package/dist/editor/components/EditorHeader.js +3 -4
  116. package/dist/editor/components/EditorHeader.js.map +1 -1
  117. package/dist/editor/components/EditorSidebar.d.ts.map +1 -1
  118. package/dist/editor/components/EditorSidebar.js +2 -4
  119. package/dist/editor/components/EditorSidebar.js.map +1 -1
  120. package/dist/editor/fields/ReferenceField.d.ts.map +1 -1
  121. package/dist/editor/fields/ReferenceField.js +19 -2
  122. package/dist/editor/fields/ReferenceField.js.map +1 -1
  123. package/dist/editor/group-manager/hooks/useGroupState.d.ts.map +1 -1
  124. package/dist/editor/group-manager/hooks/useGroupState.js +5 -2
  125. package/dist/editor/group-manager/hooks/useGroupState.js.map +1 -1
  126. package/dist/editor/hooks/useDraftManager.d.ts +8 -0
  127. package/dist/editor/hooks/useDraftManager.d.ts.map +1 -1
  128. package/dist/editor/hooks/useDraftManager.js +102 -1
  129. package/dist/editor/hooks/useDraftManager.js.map +1 -1
  130. package/dist/editor/hooks/useEntryManager.d.ts +9 -2
  131. package/dist/editor/hooks/useEntryManager.d.ts.map +1 -1
  132. package/dist/editor/hooks/useEntryManager.js +9 -3
  133. package/dist/editor/hooks/useEntryManager.js.map +1 -1
  134. package/dist/editor/hooks/useSchemaManager.d.ts.map +1 -1
  135. package/dist/editor/hooks/useSchemaManager.js +2 -1
  136. package/dist/editor/hooks/useSchemaManager.js.map +1 -1
  137. package/dist/editor/schema-editor/CollectionEditor.d.ts +4 -4
  138. package/dist/editor/schema-editor/CollectionEditor.d.ts.map +1 -1
  139. package/dist/editor/schema-editor/CollectionEditor.js +32 -12
  140. package/dist/editor/schema-editor/CollectionEditor.js.map +1 -1
  141. package/dist/entry-link-resolver.d.ts.map +1 -1
  142. package/dist/entry-link-resolver.js +5 -0
  143. package/dist/entry-link-resolver.js.map +1 -1
  144. package/dist/git-manager.d.ts +38 -3
  145. package/dist/git-manager.d.ts.map +1 -1
  146. package/dist/git-manager.js +141 -33
  147. package/dist/git-manager.js.map +1 -1
  148. package/dist/github-service.d.ts +13 -3
  149. package/dist/github-service.d.ts.map +1 -1
  150. package/dist/github-service.js +23 -7
  151. package/dist/github-service.js.map +1 -1
  152. package/dist/http/handler.d.ts +1 -1
  153. package/dist/http/handler.d.ts.map +1 -1
  154. package/dist/http/handler.js +36 -7
  155. package/dist/http/handler.js.map +1 -1
  156. package/dist/http/router.d.ts +11 -0
  157. package/dist/http/router.d.ts.map +1 -1
  158. package/dist/http/router.js +80 -16
  159. package/dist/http/router.js.map +1 -1
  160. package/dist/paths/validation.d.ts.map +1 -1
  161. package/dist/paths/validation.js +12 -0
  162. package/dist/paths/validation.js.map +1 -1
  163. package/dist/schema/schema-store.d.ts +9 -0
  164. package/dist/schema/schema-store.d.ts.map +1 -1
  165. package/dist/schema/schema-store.js +57 -8
  166. package/dist/schema/schema-store.js.map +1 -1
  167. package/dist/services.d.ts +1 -0
  168. package/dist/services.d.ts.map +1 -1
  169. package/dist/services.js +5 -2
  170. package/dist/services.js.map +1 -1
  171. package/dist/sync-core.d.ts.map +1 -1
  172. package/dist/sync-core.js +22 -9
  173. package/dist/sync-core.js.map +1 -1
  174. package/dist/user.d.ts +0 -18
  175. package/dist/user.d.ts.map +1 -1
  176. package/dist/user.js +7 -22
  177. package/dist/user.js.map +1 -1
  178. package/dist/utils/error.d.ts +8 -0
  179. package/dist/utils/error.d.ts.map +1 -1
  180. package/dist/utils/error.js +35 -7
  181. package/dist/utils/error.js.map +1 -1
  182. package/dist/validation/deletion-checker.d.ts.map +1 -1
  183. package/dist/validation/deletion-checker.js +6 -5
  184. package/dist/validation/deletion-checker.js.map +1 -1
  185. package/dist/validation/entry-validator.d.ts +67 -0
  186. package/dist/validation/entry-validator.d.ts.map +1 -0
  187. package/dist/validation/entry-validator.js +277 -0
  188. package/dist/validation/entry-validator.js.map +1 -0
  189. package/dist/validation/field-traversal.d.ts +23 -1
  190. package/dist/validation/field-traversal.d.ts.map +1 -1
  191. package/dist/validation/field-traversal.js +29 -9
  192. package/dist/validation/field-traversal.js.map +1 -1
  193. package/dist/worker/cms-worker.d.ts +67 -6
  194. package/dist/worker/cms-worker.d.ts.map +1 -1
  195. package/dist/worker/cms-worker.js +190 -67
  196. package/dist/worker/cms-worker.js.map +1 -1
  197. package/package.json +1 -2
  198. package/dist/editor/components/EditorContext.d.ts +0 -35
  199. package/dist/editor/components/EditorContext.d.ts.map +0 -1
  200. package/dist/editor/components/EditorContext.js +0 -19
  201. package/dist/editor/components/EditorContext.js.map +0 -1
  202. package/dist/editor/env.d.ts +0 -5
  203. package/dist/editor/env.d.ts.map +0 -1
  204. package/dist/editor/env.js +0 -5
  205. package/dist/editor/env.js.map +0 -1
@@ -35,7 +35,42 @@ export interface CmsWorkerConfig {
35
35
  maxRetries?: number;
36
36
  /** Content root directory name relative to repo root (default: 'content') */
37
37
  contentRoot?: string;
38
+ /**
39
+ * Worker lock staleness TTL in ms (default: 60000, minimum 2000).
40
+ * The holder refreshes the lock heartbeat at half this interval; a lock
41
+ * whose heartbeat is older than this is considered abandoned and taken
42
+ * over by the next worker to start.
43
+ */
44
+ lockStaleMs?: number;
45
+ }
46
+ /**
47
+ * An error inherent to the task itself (malformed payload, unknown action):
48
+ * retrying can never succeed, so the task should fail fast instead of
49
+ * burning its retry budget.
50
+ */
51
+ export declare class PermanentTaskError extends Error {
38
52
  }
53
+ /**
54
+ * Classify a task failure as permanent (fail fast) or transient (retry).
55
+ *
56
+ * Transient — worth retrying with backoff:
57
+ * - network errors / anything without an HTTP status (git failures included:
58
+ * most push/fetch failures are connectivity or contention and the retry
59
+ * budget bounds the pathological cases)
60
+ * - HTTP 408 (request timeout) and 429 (rate limited)
61
+ * - HTTP 403 that carries a rate-limit signal (see `isRateLimitSignal403`):
62
+ * GitHub returns 403, not 429, for both primary and secondary/abuse rate
63
+ * limits, and our Octokit instance has no throttling/retry plugin — without
64
+ * this carve-out a rate-limited push-and-create-or-update-pr task would
65
+ * fail permanently and wedge the branch (`sync-failed`, no retry).
66
+ * - HTTP 5xx (server-side, usually recovers)
67
+ *
68
+ * Permanent — retrying the identical request cannot succeed:
69
+ * - PermanentTaskError (malformed payload, unknown action)
70
+ * - other HTTP 4xx (e.g. 401/404/422): the request itself is bad
71
+ * - plain HTTP 403 with no rate-limit signal: a real permission denial
72
+ */
73
+ export declare function isPermanentTaskFailure(err: unknown): boolean;
39
74
  /**
40
75
  * CMS Worker daemon.
41
76
  * Handles operations that Lambda (with no internet) cannot perform:
@@ -61,19 +96,40 @@ export declare class CmsWorker {
61
96
  private taskTimeoutMs;
62
97
  private maxRetries;
63
98
  private lockFilePath;
99
+ private lockStaleMs;
100
+ private releaseLockFn;
64
101
  private contentRoot;
65
102
  private log;
66
103
  constructor(config: CmsWorkerConfig);
67
104
  start(): Promise<void>;
68
105
  stop(): Promise<void>;
69
106
  /**
70
- * Acquire an EFS-based lock file to prevent concurrent workers.
71
- * Uses O_CREAT|O_EXCL for atomic file creation.
72
- * Stale locks (older than 10 minutes with no running PID) are overwritten.
107
+ * Acquire the cross-host worker lock (DEP-C2).
108
+ *
109
+ * The task queue is single-consumer (see task-queue/task-queue.ts): two
110
+ * concurrent workers would double-process tasks (duplicate pushes, duplicate
111
+ * PRs). The workspace lives on a shared filesystem (EFS), so mutual
112
+ * exclusion must be sound ACROSS HOSTS — a PID liveness probe
113
+ * (`process.kill(pid, 0)`) only means something on the holder's own machine
114
+ * and must never participate in staleness decisions.
115
+ *
116
+ * proper-lockfile provides a heartbeat lease with no PID involved: the lock
117
+ * is a directory created atomically (mkdir — atomic on NFS/EFS), the holder
118
+ * refreshes its mtime every lockStaleMs/2, and the lock is considered
119
+ * abandoned — and taken over — only when that heartbeat is older than
120
+ * lockStaleMs. Liveness is judged purely by heartbeat freshness.
121
+ *
122
+ * No acquire retries: a second worker exits immediately, matching daemon
123
+ * semantics (the supervisor restarts it later). After a crash, the dead
124
+ * holder's heartbeat expires within lockStaleMs and the next start succeeds.
125
+ *
126
+ * Staleness is judged by comparing the lock's mtime against the local
127
+ * clock, so correct cross-host takeover assumes reasonable clock agreement
128
+ * between hosts (e.g. NTP); with the default TTL, ordinary clock skew is
129
+ * negligible, but a host with a badly wrong clock could misjudge liveness.
73
130
  */
74
131
  private acquireLock;
75
132
  private releaseLock;
76
- private isPidAlive;
77
133
  /**
78
134
  * Schedule a function to run repeatedly with setTimeout chaining.
79
135
  * The next invocation starts `interval` ms after the previous one completes,
@@ -93,8 +149,13 @@ export declare class CmsWorker {
93
149
  */
94
150
  processTaskQueue(): Promise<void>;
95
151
  /**
96
- * Execute a task with a timeout. Uses AbortController to cancel
97
- * the underlying operation if the timeout fires.
152
+ * Execute a task bounded by taskTimeoutMs (DEP-H1). Two layers:
153
+ * - An AbortSignal cancels Octokit HTTP calls promptly.
154
+ * - A Promise.race rejects when the timeout fires, so work that cannot
155
+ * observe the signal (git subprocesses via simple-git) still fails the
156
+ * attempt and the worker moves on instead of stalling forever.
157
+ * pushBranchToGitHub additionally kills stalled git processes via
158
+ * simple-git's block timeout, so a hung push doesn't leak a process.
98
159
  */
99
160
  private executeTaskWithTimeout;
100
161
  private executeTask;
@@ -1 +1 @@
1
- {"version":3,"file":"cms-worker.d.ts","sourceRoot":"","sources":["../../src/worker/cms-worker.ts"],"names":[],"mappings":"AAmBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAwBD;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IAgBR,OAAO,CAAC,MAAM;IAf1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,GAAG,CAAqB;gBAEZ,MAAM,EAAE,eAAe;IAarC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;;OAIG;YACW,WAAW;YAoDX,WAAW;IAQzB,OAAO,CAAC,UAAU;IASlB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;OAGG;YACW,eAAe;IAe7B;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAgCvC;;;OAGG;YACW,sBAAsB;YAUtB,WAAW;IAyHzB;;;OAGG;YACW,oBAAoB;IA4BlC;;;OAGG;YACW,6BAA6B;IAsB3C,OAAO,CAAC,cAAc;YAIR,kBAAkB;IAOhC;;;OAGG;YACW,oBAAoB;IAqB5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAsBhB,oBAAoB;IAwL5B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAYxC"}
1
+ {"version":3,"file":"cms-worker.d.ts","sourceRoot":"","sources":["../../src/worker/cms-worker.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;AAEpD,MAAM,WAAW,eAAe;IAC9B,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAA;IACrB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAA;IACnB,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,kBAAkB,CAAA;IACrC,qDAAqD;IACrD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,uDAAuD;IACvD,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,kEAAkE;IAClE,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAMD;;;;GAIG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;CAAG;AAEhD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAO5D;AA2DD;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IAkBR,OAAO,CAAC,MAAM;IAjB1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,mBAAmB,CAAQ;IACnC,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,cAAc,CAA4B;IAClD,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,gBAAgB,CAA2B;IACnD,OAAO,CAAC,gBAAgB,CAAQ;IAChC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,YAAY,CAAQ;IAC5B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,GAAG,CAAqB;gBAEZ,MAAM,EAAE,eAAe;IAcrC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0CtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAmB3B;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;YACW,WAAW;YAyBX,WAAW;IAWzB;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAkBpB;;;OAGG;YACW,eAAe;IAe7B;;;;;OAKG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAwCvC;;;;;;;;OAQG;YACW,sBAAsB;YAqBtB,WAAW;IA0IzB;;;OAGG;YACW,oBAAoB;IA4BlC;;;OAGG;YACW,6BAA6B;IAsB3C,OAAO,CAAC,cAAc;YAIR,kBAAkB;IAahC;;;OAGG;YACW,oBAAoB;IAqB5B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YA4BhB,oBAAoB;IA8L5B,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAYxC"}
@@ -1,25 +1,107 @@
1
1
  import fs from 'node:fs/promises';
2
2
  import path from 'node:path';
3
3
  import { simpleGit } from 'simple-git';
4
+ import lockfile from 'proper-lockfile';
4
5
  import { Octokit } from '@octokit/rest';
5
6
  import { dequeueTask, completeTask, failTask, retryTask, recoverOrphanedTasks, cleanupOldTasks, cmsTaskQueueLogger, } from './task-queue.js';
6
7
  import { getBranchMetadataFileManager, BranchMetadataFileManager } from '../branch-metadata.js';
7
8
  import { extractIdFromFilename } from '../content-id-index.js';
9
+ import { invalidateContentIndexesDurable } from '../content-index-generation.js';
8
10
  import { ROOT_COLLECTION_ID } from '../paths/types.js';
9
- import { isFileExistsError } from '../utils/error.js';
11
+ import { getErrorMessage, isNodeError } from '../utils/error.js';
10
12
  const DEFAULT_TASK_TIMEOUT = 60_000;
11
13
  const DEFAULT_MAX_RETRIES = 3;
14
+ const DEFAULT_LOCK_STALE_MS = 60_000;
15
+ /**
16
+ * An error inherent to the task itself (malformed payload, unknown action):
17
+ * retrying can never succeed, so the task should fail fast instead of
18
+ * burning its retry budget.
19
+ */
20
+ export class PermanentTaskError extends Error {
21
+ }
22
+ /**
23
+ * Classify a task failure as permanent (fail fast) or transient (retry).
24
+ *
25
+ * Transient — worth retrying with backoff:
26
+ * - network errors / anything without an HTTP status (git failures included:
27
+ * most push/fetch failures are connectivity or contention and the retry
28
+ * budget bounds the pathological cases)
29
+ * - HTTP 408 (request timeout) and 429 (rate limited)
30
+ * - HTTP 403 that carries a rate-limit signal (see `isRateLimitSignal403`):
31
+ * GitHub returns 403, not 429, for both primary and secondary/abuse rate
32
+ * limits, and our Octokit instance has no throttling/retry plugin — without
33
+ * this carve-out a rate-limited push-and-create-or-update-pr task would
34
+ * fail permanently and wedge the branch (`sync-failed`, no retry).
35
+ * - HTTP 5xx (server-side, usually recovers)
36
+ *
37
+ * Permanent — retrying the identical request cannot succeed:
38
+ * - PermanentTaskError (malformed payload, unknown action)
39
+ * - other HTTP 4xx (e.g. 401/404/422): the request itself is bad
40
+ * - plain HTTP 403 with no rate-limit signal: a real permission denial
41
+ */
42
+ export function isPermanentTaskFailure(err) {
43
+ if (err instanceof PermanentTaskError)
44
+ return true;
45
+ const status = getHttpStatus(err);
46
+ if (status === null)
47
+ return false;
48
+ if (status === 408 || status === 429)
49
+ return false;
50
+ if (status === 403 && isRateLimitSignal403(err))
51
+ return false;
52
+ return status >= 400 && status < 500;
53
+ }
54
+ /** Extract an HTTP status from an error, if present (Octokit RequestError shape). */
55
+ function getHttpStatus(err) {
56
+ if (err instanceof Error && 'status' in err) {
57
+ const status = err.status;
58
+ if (typeof status === 'number')
59
+ return status;
60
+ }
61
+ return null;
62
+ }
63
+ /** Narrow an unknown value to a response-headers record, if present (Octokit lowercases header names). */
64
+ function getResponseHeaders(err) {
65
+ if (typeof err !== 'object' || err === null || !('response' in err))
66
+ return null;
67
+ const response = err.response;
68
+ if (typeof response !== 'object' || response === null || !('headers' in response))
69
+ return null;
70
+ const headers = response.headers;
71
+ if (typeof headers !== 'object' || headers === null)
72
+ return null;
73
+ return headers;
74
+ }
75
+ /**
76
+ * Detect whether a 403 is a GitHub rate-limit response rather than a plain
77
+ * permission denial. GitHub signals rate limiting on 403s three ways: the
78
+ * primary limit zeroes out `x-ratelimit-remaining`, secondary/abuse limits
79
+ * often include a `retry-after` header, and both cases produce a message
80
+ * containing "rate limit" (e.g. "You have exceeded a secondary rate limit").
81
+ */
82
+ function isRateLimitSignal403(err) {
83
+ const headers = getResponseHeaders(err);
84
+ if (headers) {
85
+ if (headers['x-ratelimit-remaining'] === '0')
86
+ return true;
87
+ if (typeof headers['retry-after'] === 'string' && headers['retry-after'].length > 0)
88
+ return true;
89
+ }
90
+ if (err instanceof Error && /rate limit/i.test(err.message))
91
+ return true;
92
+ return false;
93
+ }
12
94
  // Payload validation helpers — fail fast with clear errors instead of silent `as` casts
13
95
  function requireString(payload, key) {
14
96
  const val = payload[key];
15
97
  if (typeof val !== 'string')
16
- throw new Error(`Task payload missing required string field: ${key}`);
98
+ throw new PermanentTaskError(`Task payload missing required string field: ${key}`);
17
99
  return val;
18
100
  }
19
101
  function requireNumber(payload, key) {
20
102
  const val = payload[key];
21
103
  if (typeof val !== 'number')
22
- throw new Error(`Task payload missing required number field: ${key}`);
104
+ throw new PermanentTaskError(`Task payload missing required number field: ${key}`);
23
105
  return val;
24
106
  }
25
107
  function optionalString(payload, key, fallback) {
@@ -43,6 +125,7 @@ export class CmsWorker {
43
125
  this.activeTimeouts = new Set();
44
126
  this.running = false;
45
127
  this.activeOperations = new Set();
128
+ this.releaseLockFn = null;
46
129
  this.log = cmsTaskQueueLogger;
47
130
  this.octokit = new Octokit({ auth: config.githubToken });
48
131
  this.taskDir = path.join(config.workspacePath, '.tasks');
@@ -53,6 +136,7 @@ export class CmsWorker {
53
136
  this.taskTimeoutMs = config.taskTimeoutMs ?? DEFAULT_TASK_TIMEOUT;
54
137
  this.maxRetries = config.maxRetries ?? DEFAULT_MAX_RETRIES;
55
138
  this.lockFilePath = path.join(config.workspacePath, '.tasks', '.worker-lock');
139
+ this.lockStaleMs = config.lockStaleMs ?? DEFAULT_LOCK_STALE_MS;
56
140
  this.contentRoot = config.contentRoot ?? 'content';
57
141
  }
58
142
  async start() {
@@ -107,72 +191,63 @@ export class CmsWorker {
107
191
  console.log('CMS Worker stopped');
108
192
  }
109
193
  /**
110
- * Acquire an EFS-based lock file to prevent concurrent workers.
111
- * Uses O_CREAT|O_EXCL for atomic file creation.
112
- * Stale locks (older than 10 minutes with no running PID) are overwritten.
194
+ * Acquire the cross-host worker lock (DEP-C2).
195
+ *
196
+ * The task queue is single-consumer (see task-queue/task-queue.ts): two
197
+ * concurrent workers would double-process tasks (duplicate pushes, duplicate
198
+ * PRs). The workspace lives on a shared filesystem (EFS), so mutual
199
+ * exclusion must be sound ACROSS HOSTS — a PID liveness probe
200
+ * (`process.kill(pid, 0)`) only means something on the holder's own machine
201
+ * and must never participate in staleness decisions.
202
+ *
203
+ * proper-lockfile provides a heartbeat lease with no PID involved: the lock
204
+ * is a directory created atomically (mkdir — atomic on NFS/EFS), the holder
205
+ * refreshes its mtime every lockStaleMs/2, and the lock is considered
206
+ * abandoned — and taken over — only when that heartbeat is older than
207
+ * lockStaleMs. Liveness is judged purely by heartbeat freshness.
208
+ *
209
+ * No acquire retries: a second worker exits immediately, matching daemon
210
+ * semantics (the supervisor restarts it later). After a crash, the dead
211
+ * holder's heartbeat expires within lockStaleMs and the next start succeeds.
212
+ *
213
+ * Staleness is judged by comparing the lock's mtime against the local
214
+ * clock, so correct cross-host takeover assumes reasonable clock agreement
215
+ * between hosts (e.g. NTP); with the default TTL, ordinary clock skew is
216
+ * negligible, but a host with a badly wrong clock could misjudge liveness.
113
217
  */
114
218
  async acquireLock() {
115
- await fs.mkdir(path.dirname(this.lockFilePath), { recursive: true });
116
- const lockContent = JSON.stringify({
117
- pid: process.pid,
118
- timestamp: new Date().toISOString(),
119
- });
120
- // Try atomic create first
121
- try {
122
- const handle = await fs.open(this.lockFilePath, 'wx');
123
- await handle.writeFile(lockContent, 'utf-8');
124
- await handle.close();
125
- return;
126
- }
127
- catch (err) {
128
- if (!isFileExistsError(err))
129
- throw err;
130
- }
131
- // Lock file exists — check staleness
132
- try {
133
- const content = await fs.readFile(this.lockFilePath, 'utf-8');
134
- const { pid, timestamp } = JSON.parse(content);
135
- const lockAgeMs = Date.now() - new Date(timestamp).getTime();
136
- const pidAlive = this.isPidAlive(pid);
137
- if (pidAlive && lockAgeMs < 10 * 60_000) {
138
- throw new Error(`Another worker is running (PID ${pid}, locked at ${timestamp}). Exiting.`);
139
- }
140
- console.log(`Overwriting stale lock (PID ${pid}, age ${Math.round(lockAgeMs / 1000)}s)`);
141
- }
142
- catch (err) {
143
- if (err instanceof Error && err.message.startsWith('Another worker'))
144
- throw err;
145
- // Lock file is corrupt or unreadable — overwrite it
146
- }
147
- // Stale or corrupt lock — unlink and retry with atomic create
148
- await fs.unlink(this.lockFilePath).catch(() => { });
219
+ await fs.mkdir(this.taskDir, { recursive: true });
149
220
  try {
150
- const handle = await fs.open(this.lockFilePath, 'wx');
151
- await handle.writeFile(lockContent, 'utf-8');
152
- await handle.close();
221
+ this.releaseLockFn = await lockfile.lock(this.taskDir, {
222
+ lockfilePath: this.lockFilePath,
223
+ stale: this.lockStaleMs,
224
+ onCompromised: (err) => {
225
+ // Our heartbeat could not be maintained (lock deleted or taken
226
+ // over). Another worker may now be consuming the queue — stop
227
+ // processing to preserve the single-consumer invariant.
228
+ console.error('Worker lock compromised, shutting down:', getErrorMessage(err));
229
+ this.releaseLockFn = null; // the lock is already lost; nothing to release
230
+ void this.stop();
231
+ },
232
+ });
153
233
  }
154
234
  catch (err) {
155
- if (isFileExistsError(err)) {
156
- throw new Error('Another worker acquired the lock during stale lock recovery. Exiting.');
235
+ if (isNodeError(err) && err.code === 'ELOCKED') {
236
+ throw new Error(`Another worker is running (lock ${this.lockFilePath} has a heartbeat fresher than ${this.lockStaleMs}ms). Exiting.`);
157
237
  }
158
238
  throw err;
159
239
  }
160
240
  }
161
241
  async releaseLock() {
242
+ const release = this.releaseLockFn;
243
+ this.releaseLockFn = null;
244
+ if (!release)
245
+ return;
162
246
  try {
163
- await fs.unlink(this.lockFilePath);
164
- }
165
- catch {
166
- // Lock file already gone
167
- }
168
- }
169
- isPidAlive(pid) {
170
- try {
171
- process.kill(pid, 0);
172
- return true;
247
+ await release();
173
248
  }
174
249
  catch {
175
- return false;
250
+ // Lock already released or compromised
176
251
  }
177
252
  }
178
253
  /**
@@ -236,32 +311,50 @@ export class CmsWorker {
236
311
  await this.updateBranchMetadata(task, result);
237
312
  }
238
313
  catch (err) {
239
- const message = err instanceof Error ? err.message : 'Unknown error';
314
+ const message = getErrorMessage(err);
240
315
  console.error(`Task ${task.id} (${task.action}) failed:`, message);
316
+ // DEP-L1: only transient failures (network, 429/5xx, timeouts) are
317
+ // worth retrying; permanent ones (malformed payload, other 4xx) would
318
+ // just burn the retry budget on an identical doomed request.
319
+ const permanent = isPermanentTaskFailure(err);
241
320
  const retryCount = task.retryCount ?? 0;
242
321
  const maxRetries = task.maxRetries ?? this.maxRetries;
243
- if (retryCount < maxRetries) {
322
+ if (!permanent && retryCount < maxRetries) {
244
323
  await retryTask(this.taskDir, task.id, message, this.log);
245
324
  console.log(` Will retry (attempt ${retryCount + 1}/${maxRetries})`);
246
325
  }
247
326
  else {
248
327
  await failTask(this.taskDir, task.id, message, this.log);
249
328
  await this.updateBranchMetadataOnFailure(task, message);
250
- console.error(` Permanently failed after ${maxRetries} retries`);
329
+ console.error(permanent
330
+ ? ' Permanently failed (non-retryable error)'
331
+ : ` Permanently failed after ${maxRetries} retries`);
251
332
  }
252
333
  }
253
334
  processed++;
254
335
  }
255
336
  }
256
337
  /**
257
- * Execute a task with a timeout. Uses AbortController to cancel
258
- * the underlying operation if the timeout fires.
338
+ * Execute a task bounded by taskTimeoutMs (DEP-H1). Two layers:
339
+ * - An AbortSignal cancels Octokit HTTP calls promptly.
340
+ * - A Promise.race rejects when the timeout fires, so work that cannot
341
+ * observe the signal (git subprocesses via simple-git) still fails the
342
+ * attempt and the worker moves on instead of stalling forever.
343
+ * pushBranchToGitHub additionally kills stalled git processes via
344
+ * simple-git's block timeout, so a hung push doesn't leak a process.
259
345
  */
260
346
  async executeTaskWithTimeout(task) {
261
347
  const controller = new AbortController();
262
348
  const timer = setTimeout(() => controller.abort(), this.taskTimeoutMs);
263
349
  try {
264
- return await this.executeTask(task, controller.signal);
350
+ const work = this.executeTask(task, controller.signal);
351
+ // If the timeout wins the race, the losing promise must not surface an
352
+ // unhandled rejection when it eventually settles.
353
+ work.catch(() => { });
354
+ const timedOut = new Promise((_, reject) => {
355
+ controller.signal.addEventListener('abort', () => reject(new Error(`Task timed out after ${this.taskTimeoutMs}ms`)), { once: true });
356
+ });
357
+ return await Promise.race([work, timedOut]);
265
358
  }
266
359
  finally {
267
360
  clearTimeout(timer);
@@ -306,6 +399,11 @@ export class CmsWorker {
306
399
  return { prNumber };
307
400
  }
308
401
  case 'push-and-create-or-update-pr': {
402
+ // GIT-H1: idempotent create-or-update. Used for both content-branch
403
+ // submits and settings-branch syncs so a retry after a crash (task
404
+ // completed on GitHub but branch metadata never recorded the PR
405
+ // number) recovers the existing PR instead of hitting the 422 that
406
+ // a blind `pulls.create` would throw on a duplicate head+base.
309
407
  const branch = requireString(payload, 'branch');
310
408
  await this.pushBranchToGitHub(branch);
311
409
  // Check if an open PR already exists for this branch
@@ -318,11 +416,19 @@ export class CmsWorker {
318
416
  request: { signal },
319
417
  });
320
418
  if (existingPRs.data.length > 0) {
321
- const existing = existingPRs.data[0];
419
+ // GIT-M5: GitHub disallows more than one open PR for a given
420
+ // head+base pair, so this should always be a single match. Guard
421
+ // against blindly trusting array order anyway.
422
+ let existing = existingPRs.data[0];
423
+ if (existingPRs.data.length > 1) {
424
+ existing = [...existingPRs.data].sort((a, b) => new Date(b.updated_at).getTime() - new Date(a.updated_at).getTime())[0];
425
+ console.warn(`Found ${existingPRs.data.length} open PRs for ${branch}; updating the most recently updated (#${existing.number})`);
426
+ }
322
427
  await this.octokit.pulls.update({
323
428
  owner: this.config.githubOwner,
324
429
  repo: this.config.githubRepo,
325
430
  pull_number: existing.number,
431
+ title: optionalString(payload, 'title', `Submit ${branch}`),
326
432
  body: optionalString(payload, 'body', ''),
327
433
  request: { signal },
328
434
  });
@@ -334,7 +440,7 @@ export class CmsWorker {
334
440
  repo: this.config.githubRepo,
335
441
  head: branch,
336
442
  base: optionalString(payload, 'baseBranch', this.baseBranch),
337
- title: optionalString(payload, 'title', `Settings update`),
443
+ title: optionalString(payload, 'title', `Submit ${branch}`),
338
444
  body: optionalString(payload, 'body', ''),
339
445
  request: { signal },
340
446
  });
@@ -377,7 +483,7 @@ export class CmsWorker {
377
483
  return { deleted: true };
378
484
  }
379
485
  default:
380
- throw new Error(`Unknown task action: ${action}`);
486
+ throw new PermanentTaskError(`Unknown task action: ${action}`);
381
487
  }
382
488
  }
383
489
  /**
@@ -438,7 +544,13 @@ export class CmsWorker {
438
544
  return `https://x-access-token:${this.config.githubToken}@github.com/${this.config.githubOwner}/${this.config.githubRepo}.git`;
439
545
  }
440
546
  async pushBranchToGitHub(branch) {
441
- const git = simpleGit({ baseDir: this.remoteGitPath });
547
+ const git = simpleGit({
548
+ baseDir: this.remoteGitPath,
549
+ // DEP-H1: kill the git process if it produces no output for
550
+ // taskTimeoutMs (network stall, credential prompt) instead of letting
551
+ // it hang past the task timeout.
552
+ timeout: { block: this.taskTimeoutMs },
553
+ });
442
554
  // Pass URL directly to avoid persisting the token in remote.git/config
443
555
  await git.push(this.buildGitHubUrl(), branch);
444
556
  console.log(`Pushed ${branch} to GitHub`);
@@ -470,7 +582,13 @@ export class CmsWorker {
470
582
  if (!this.running)
471
583
  return;
472
584
  console.log('Syncing git...');
473
- const git = simpleGit({ baseDir: this.remoteGitPath });
585
+ const git = simpleGit({
586
+ baseDir: this.remoteGitPath,
587
+ // DEP-H1: a hung fetch/push would stall the sync loop forever
588
+ // (scheduleLoop only reschedules after completion). The block timeout
589
+ // is inactivity-based, so a slow-but-flowing transfer is unaffected.
590
+ timeout: { block: this.taskTimeoutMs },
591
+ });
474
592
  // Fetch all branches from GitHub using direct URL (no named remote)
475
593
  // We use raw git commands since simple-git's fetch() with a URL
476
594
  // doesn't support --prune directly
@@ -608,6 +726,11 @@ export class CmsWorker {
608
726
  await branchGit.rebase(['--abort']).catch(() => { });
609
727
  continue;
610
728
  }
729
+ // The rebase rewrote the branch clone's working tree — mark ContentStore
730
+ // ID indexes rooted here stale so lookups rebuild from disk, in this
731
+ // process and (via the on-disk generation marker) in the Lambda
732
+ // containers sharing this filesystem.
733
+ await invalidateContentIndexesDurable(branchPath);
611
734
  // Convert file paths to ContentIds — immutable, survives slug renames.
612
735
  // Entry files have IDs in their filename (e.g., "post.slug.a1b2c3d4e5f6.mdx").
613
736
  // .collection.json files have no ID themselves (extractIdFromFilename returns null
@@ -1 +1 @@
1
- {"version":3,"file":"cms-worker.js","sourceRoot":"","sources":["../../src/worker/cms-worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cms-worker.js","sourceRoot":"","sources":["../../src/worker/cms-worker.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "//": "@codemirror/language, @lezer/highlight: workaround — @mdxeditor/editor uses cm6-theme-basic-light which peer-requires these but mdxeditor doesn't declare them as dependencies",
3
3
  "name": "canopycms",
4
- "version": "0.0.54",
4
+ "version": "0.0.55",
5
5
  "description": "CanopyCMS core package: schema-driven content, branch-aware editing, and editor UI for Next.js.",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -100,7 +100,6 @@
100
100
  "minimist": "^1.2.8",
101
101
  "pathe": "^1.1.2",
102
102
  "proper-lockfile": "^4.1.2",
103
- "react-icons": "^5.5.0",
104
103
  "react-split-pane": "^0.1.92",
105
104
  "short-uuid": "^6.0.3",
106
105
  "simple-git": "^3.36.0",