@critical-path/client 0.20.5 → 0.20.6

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/CHANGELOG.md DELETED
@@ -1,657 +0,0 @@
1
- # @critical-path/client
2
-
3
- ## 0.20.5
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [810d8d1]
8
- - @critical-path/core@0.36.0
9
-
10
- ## 0.20.4
11
-
12
- ### Patch Changes
13
-
14
- - Updated dependencies [b13f7c4]
15
- - @critical-path/core@0.35.0
16
-
17
- ## 0.20.3
18
-
19
- ### Patch Changes
20
-
21
- - Updated dependencies [1cc0d4c]
22
- - @critical-path/core@0.34.0
23
-
24
- ## 0.20.2
25
-
26
- ### Patch Changes
27
-
28
- - Updated dependencies [aa94129]
29
- - @critical-path/core@0.33.0
30
-
31
- ## 0.20.1
32
-
33
- ### Patch Changes
34
-
35
- - Updated dependencies [a3fe03d]
36
- - @critical-path/core@0.32.0
37
-
38
- ## 0.20.0
39
-
40
- ### Minor Changes
41
-
42
- - 40e5958: Real S3 uploads and signed URLs, and server-chosen storage keys.
43
-
44
- **@critical-path/core**
45
- - **BREAKING:** `S3StorageAdapter` now takes your AWS SDK v3 `client`, `commands` (`PutObjectCommand`, `DeleteObjectCommand`, optional `GetObjectCommand`) and a `presign` function (`getSignedUrl` from `@aws-sdk/s3-request-presigner`). Uploads send real commands and propagate S3 errors; previously failures were swallowed and reported as success. Presigned uploads are actually signed and cover `Content-Type`. New `signedDownloads` for private buckets. The unused `accessKeyId`/`secretAccessKey`/`sessionToken`/`s3Client` options are removed.
46
- - **BREAKING:** `FirebaseStorageAdapter` requires a `bucket`; it no longer silently uses an in-memory mock. It throws instead of returning a public URL when the bucket cannot sign uploads.
47
- - **BREAKING:** `engine.getPresignedAttachmentUploadUrl({ projectId, filename, contentType?, expiresInSeconds? })` generates the storage key under `projects/<projectId>/`, instead of accepting a caller-chosen `storageKey`.
48
- - Attachments created through an actor view must use a `storageKey` under their project's prefix, so callers cannot register (and then delete) other projects' files. Uploads through views are always stored under the project prefix.
49
- - New `buildStorageKey` (validates path prefixes, crypto-random component) and `contentDispositionFor`. HTML, SVG and script uploads are stored as downloads.
50
-
51
- **@critical-path/server**
52
- - **BREAKING:** `POST /attachments/presign` takes `{ projectId, filename, contentType?, expiresInSeconds? }`. `POST /attachments/upload` no longer accepts `pathPrefix`.
53
-
54
- **@critical-path/client**
55
- - `getPresignedAttachmentUploadUrl` and `uploadAttachmentFile` use the updated request bodies.
56
-
57
- ### Patch Changes
58
-
59
- - Updated dependencies [40e5958]
60
- - @critical-path/core@0.31.0
61
-
62
- ## 0.19.0
63
-
64
- ### Minor Changes
65
-
66
- - b453472: Client SDK hardening.
67
-
68
- - **BREAKING:** non-2xx responses throw `CriticalPathError` (`status`, `issues`, `body`, `isNotFound`) instead of a plain `Error`. The message is unchanged.
69
- - `headers` can be an (async) function, resolved before every request, so you can refresh tokens.
70
- - New `timeoutMs` and opt-in `retry: { retries, baseDelayMs }`. Retries apply to GET only, on network errors and 429/502/503/504, and honour `Retry-After`.
71
- - New `client.with({ signal, headers, timeoutMs })` returns a scoped client for cancellation and per-call headers.
72
- - `Content-Type: application/json` is only sent with a body.
73
- - All ids in URL paths are now encoded.
74
- - New `getWebhook`, `getContainer` and `getIteration`.
75
-
76
- ## 0.18.0
77
-
78
- ### Minor Changes
79
-
80
- - cdb300a: Task filtering and pagination.
81
-
82
- **@critical-path/core**
83
- - New `engine.queryTasks(query)` and `engine.queryActivities(query)` return `Page<T>` (`{ items, nextCursor }`).
84
- - Tasks are ordered oldest first, activities newest first, using keyset cursors on `createdAt` then `id`.
85
- - Task filters: `status[]`, `priority[]`, `assigneeId` (also matches `assignees`), `iterationId`, `deliverableId`, `containerId`, `parentId` (`null` means top-level), `projectIds`.
86
- - Results are limited to projects the actor can read.
87
- - **BREAKING (storage adapters):** `queryTasks` and `queryActivities` are required. `SQLiteStore` filters and pages in SQL and adds indexes for tasks, activities, comments and dependencies. Helpers (`paginate`, `matchesTaskQuery`, cursors, `DEFAULT_PAGE_SIZE` / `MAX_PAGE_SIZE`) are exported for custom adapters.
88
-
89
- **@critical-path/server**
90
- - **BREAKING:** `GET /tasks` and `GET /activities` are paginated (default 100, max 500) and return `nextCursor`. `GET /tasks` accepts the filters above as query parameters. Unknown parameters return `400`.
91
-
92
- **@critical-path/client**
93
- - `getTasks` and `getActivities` follow pagination and still return everything. New `queryTasks` and `queryActivities` return single pages.
94
-
95
- **@critical-path/mcp**
96
- - **BREAKING:** `list_tasks` returns `{ tasks, nextCursor }` and accepts `iterationId`, `limit` and `cursor`. It now filters in the store instead of loading every task.
97
-
98
- ### Patch Changes
99
-
100
- - Updated dependencies [cdb300a]
101
- - @critical-path/core@0.30.0
102
-
103
- ## 0.17.0
104
-
105
- ### Minor Changes
106
-
107
- - a019d37: Cascading deletes and dependency removal.
108
-
109
- **@critical-path/core**
110
- - **BREAKING:** `deleteTask` now also deletes subtasks (recursively), dependencies, comments, attachments (including stored files and comment attachments) and time entries. Pass `{ subtasks: 'detach' }` to keep subtasks.
111
- - **BREAKING:** `deleteProject` also deletes containers, iterations, deliverables and project attachments. `project.deleted`'s `deletedTaskIds` includes subtasks.
112
- - Deleting a container, iteration or deliverable clears the reference on its tasks; nested containers are detached.
113
- - New `engine.removeDependency(id)` and `dependency.removed` event.
114
- - **BREAKING (storage adapters):** `DependencyRepository` gains `getDependency` and `removeDependency`, and `TimeEntryRepository` gains `deleteTimeEntry`.
115
- - `SQLiteStore` no longer returns `null` for unset optional fields.
116
- - `FirebaseStore` updates now remove fields cleared with `undefined` (for example, reopening a completed task now clears `completedAt`).
117
-
118
- **@critical-path/server**
119
- - New `DELETE /tasks/:id/dependencies/:dependencyId`. `DELETE /tasks/:id` accepts `?subtasks=detach`.
120
-
121
- **@critical-path/client**
122
- - New `removeDependency(taskId, dependencyId)`. `deleteTask(id, { subtasks })`.
123
-
124
- ### Patch Changes
125
-
126
- - Updated dependencies [a019d37]
127
- - @critical-path/core@0.29.0
128
-
129
- ## 0.16.1
130
-
131
- ### Patch Changes
132
-
133
- - Updated dependencies [4fbbc40]
134
- - @critical-path/core@0.28.0
135
-
136
- ## 0.16.0
137
-
138
- ### Minor Changes
139
-
140
- - 1a516bd: Signed, retried webhooks driven by domain events.
141
-
142
- **@critical-path/core**
143
- - **BREAKING:** webhooks are delivered from the domain event bus instead of ad-hoc calls, so every published event is deliverable, including `task.updated`, `time.logged` and `dependency.added`.
144
- - The payload is now `{ id, event, occurredAt, tenantId?, data }`, where `data` is the domain event payload.
145
- - A status change delivers both `task.status_changed` and `task.updated` to webhooks subscribed to both.
146
- - Deliveries carry `X-CriticalPath-Event`, `X-CriticalPath-Delivery` (stable across retries), `X-CriticalPath-Timestamp` and `X-CriticalPath-Signature` (HMAC-SHA256). New exports: `verifyWebhookSignature`, `signWebhookPayload`, `generateWebhookSecret`.
147
- - New `webhookDelivery` engine option:
148
- - `timeoutMs` (default 10s), `maxAttempts` (default 5) and exponential `retryBaseDelayMs`.
149
- - A pluggable `queue`; the default is in-process.
150
- - `allowPrivateUrls` (default `false`).
151
- - `onDelivered` and `onDeliveryFailed` callbacks.
152
- - `engine.webhooks` exposes `deliver(job)` for custom queues and `idle()` for tests.
153
- - `config.webhooks` are now honoured as static webhooks.
154
- - New engine methods `getWebhooks`, `getWebhook`, `createWebhook` and `updateWebhook`/`deleteWebhook`. They require `workspace.manage` and are tenant-scoped. Secrets are generated when omitted, returned only on creation, and redacted afterwards (`PublicWebhook.hasSecret`).
155
- - **BREAKING:** `WebhookRepository` gains `getWebhook`, `updateWebhook` and `deleteWebhook`; custom storage adapters must implement them. `Webhook` gains `tenantId`, and `WebhookEvent` is now any domain event name or `'*'`. SQLite now persists the webhook `name` and `tenantId`.
156
- - New `DOMAIN_EVENT_NAMES`. The `project.deleted` and `workflow.deleted` payloads include `tenantId`; `attachment.deleted` includes `projectId`.
157
-
158
- **@critical-path/server**
159
- - New `GET/POST /webhooks` and `GET/PATCH/DELETE /webhooks/:id` routes. Event names are validated.
160
-
161
- **@critical-path/client**
162
- - New `getWebhooks`, `createWebhook`, `updateWebhook` and `deleteWebhook`.
163
-
164
- ### Patch Changes
165
-
166
- - Updated dependencies [1a516bd]
167
- - @critical-path/core@0.27.0
168
-
169
- ## 0.15.1
170
-
171
- ### Patch Changes
172
-
173
- - 719e844: Role-based authorization and multi-tenancy.
174
-
175
- **@critical-path/core**
176
- - New `authorize` engine option and `createRolePolicy()`:
177
- - Project roles (`viewer`, `contributor`, `project_manager`, `admin`) come from `project.members`.
178
- - Workspace superusers come from `actor.roles`.
179
- - Authors manage their own comments and attachments.
180
- - Checks run on `withActor` views. Unreadable or cross-tenant projects behave as not found, denied actions throw the new `ForbiddenError`, and lists are filtered.
181
- - `Actor` gains `tenantId` and `roles`. Projects, workflows and teams gain `tenantId`, stamped from the actor and never accepted from payloads. Reads are scoped to the actor's tenant, including the default-workflow fallback.
182
- - **BREAKING:** `Project.members` is now `{ userId, role }[]` (was `string[]`). Project creators become `admin` members.
183
- - New `engine.getActivities()` and `engine.getTimeEntries()`, which respect authorization.
184
- - **BREAKING:** on views, presigned uploads require `projectId` and are confined to `projects/<projectId>/`. The presign request schema now requires `projectId`.
185
- - `SQLiteStore` persists `tenantId` (migrated automatically).
186
-
187
- **@critical-path/server**
188
- - `RequestContext` gains `tenantId` and `roles`, which are passed to the actor. `ForbiddenError` maps to `403`. Activities and time entries are read through the engine.
189
-
190
- **@critical-path/client / @critical-path/mcp**
191
- - Rebuilt for the new presign `projectId` requirement and project member shape.
192
- - Updated dependencies [719e844]
193
- - @critical-path/core@0.26.0
194
-
195
- ## 0.15.0
196
-
197
- ### Minor Changes
198
-
199
- - fd79762: **BREAKING:** strict request bodies, no identity in payloads, and CORS off by default.
200
-
201
- **@critical-path/core**
202
- - Request schemas are strict: unknown keys, server-assigned fields and identity fields are rejected instead of stripped.
203
- - Identity is never read from payloads. `updateTask` no longer reads `actorId`/`actorName`/`actorType`/`actor` from the update object; pass them as the third `options` argument or use `withActor`. `addComment`, `addCommentReaction`, `removeCommentReaction` and `createAttachment` take the actor from `withActor`, falling back to an optional `authorId`/`userId`/`uploaderId`, then `'system'`.
204
- - Schemas export request body types (`CreateTaskBody`, `UpdateTaskBody`, ...).
205
-
206
- **@critical-path/server**
207
- - Bodies containing unknown, server-assigned or identity fields return `400`.
208
- - Every request runs as the `getContext` user, or `ANONYMOUS_ACTOR` (`anonymous`). Authors of comments, reactions, attachments and time entries are no longer accepted from bodies.
209
- - `DELETE /comments/:id/reactions` takes `?emoji=` only.
210
- - CORS is off by default (`cors: false`). Pass `cors: { origins: [...] }` to allow cross-origin browsers.
211
-
212
- **@critical-path/client**
213
- - Method parameters use the server's body types, so identity fields no longer type-check. `addCommentReaction`/`removeCommentReaction` take `{ emoji }`; `addTodo`/`toggleTodo` drop the actor options argument.
214
- - New `updateProject`, `deleteProject` and `addDependency`. `uploadAttachmentFile` base64-encodes binary data (previously it sent unusable JSON for `Uint8Array`/`ArrayBuffer`).
215
- - CLI: `--author`, `--actor-id`, `--actor-name`, `--agent-name` and `CRITICAL_PATH_AUTHOR_ID`/`ACTOR_ID`/`AGENT_NAME` are removed; identity comes from the `--key` token via the server's `getContext`.
216
-
217
- **@critical-path/mcp**
218
- - Tool arguments are strict: undeclared arguments return an `isError` result.
219
- - `add_comment` no longer takes `authorId`. With an `engine`, writes are attributed to the new `actor` server option (default `DEFAULT_MCP_ACTOR`).
220
-
221
- **@critical-path/react / @critical-path/svelte**
222
- - `addReaction`/`removeReaction` take `(commentId, emoji)`; comment and attachment inputs no longer accept `authorId`/`uploaderId`. Task, comment and deliverable update parameters use the schema body types.
223
-
224
- ### Patch Changes
225
-
226
- - Updated dependencies [fd79762]
227
- - @critical-path/core@0.25.0
228
-
229
- ## 0.14.9
230
-
231
- ### Patch Changes
232
-
233
- - Updated dependencies [b54e22c]
234
- - @critical-path/core@0.24.0
235
-
236
- ## 0.14.8
237
-
238
- ### Patch Changes
239
-
240
- - Updated dependencies [6dd5529]
241
- - @critical-path/core@0.23.0
242
-
243
- ## 0.14.7
244
-
245
- ### Patch Changes
246
-
247
- - b243a37: Fix correctness and safety issues found in a code audit.
248
-
249
- **@critical-path/core**
250
- - `SQLiteStore` now loads `node:sqlite` via `process.getBuiltinModule`, fixing `require is not defined` when constructed from a filename in plain Node ESM.
251
- - Removed the unused `better-sqlite3` runtime dependency.
252
- - `engine.addDependency` now detects indirect cycles (e.g. A → B → C → D → A), not just cycles between direct neighbours.
253
- - Fixed `generateKeyBetween` returning out-of-range, duplicate keys after repeated inserts after the same item. It now throws a `RangeError` when `a >= b`.
254
- - Added `engine.deleteProject(id)`, which deletes a project's tasks through `deleteTask` and publishes a new `project.deleted` event and webhook.
255
- - Added exported `ValidationError` and `NotFoundError` classes. `logTime` now rejects non-numeric hours.
256
-
257
- **@critical-path/server**
258
- - `DELETE /projects/:id`, `POST /tasks/:id/dependencies` and `POST /time-entries` now go through the engine, so cycle checks, hour validation, roll-ups, events and webhooks apply.
259
- - Added `PATCH /projects/:id`.
260
- - `DELETE` on a resource that does not exist now returns `404` instead of `200 { success: false }`.
261
- - Malformed JSON returns `400`, validation errors `400`, `NotFoundError` `404`, and dependency cycles `409`. Unexpected errors return a generic `500` message outside development.
262
- - `OPTIONS` preflight requests return `204` with CORS headers.
263
- - New router/adapter options: `onError(error, request)` to report unexpected errors or return a custom response, and `exposeErrors` to include real messages in 500 responses (defaults to on only when `NODE_ENV === 'development'`).
264
- - `createNextHandler` returns a callable handler that also exposes per-method properties, so `export { handler as GET }` works as documented.
265
-
266
- **@critical-path/mcp**
267
- - Tools excluded via the `tools` option can no longer be called by name.
268
- - Tool arguments are validated with each tool's zod schema; undeclared fields are stripped.
269
- - Tool listings include `title` and MCP `readOnlyHint` / `destructiveHint` annotations.
270
-
271
- **@critical-path/svelte**
272
- - Rebuilt with the bundled `@critical-path/mcp` WebMCP argument validation.
273
-
274
- **@critical-path/client**
275
- - Delete methods resolve to `false` when the server returns `404`, keeping their boolean contract with the new server behaviour.
276
- - Updated dependencies [b243a37]
277
- - @critical-path/core@0.22.0
278
-
279
- ## 0.14.6
280
-
281
- ### Patch Changes
282
-
283
- - Updated dependencies [f3301bf]
284
- - @critical-path/core@0.21.0
285
-
286
- ## 0.14.5
287
-
288
- ### Patch Changes
289
-
290
- - 8acf018: Do not default parentId to active task in `critical-path propose` so staged follow-up recommendations appear as top-level draft cards instead of subtasks unless `--parent` is explicitly specified.
291
-
292
- ## 0.14.4
293
-
294
- ### Patch Changes
295
-
296
- - Updated dependencies [b8a68dd]
297
- - @critical-path/core@0.20.2
298
-
299
- ## 0.14.3
300
-
301
- ### Patch Changes
302
-
303
- - Updated dependencies [500b353]
304
- - @critical-path/core@0.20.1
305
-
306
- ## 0.14.2
307
-
308
- ### Patch Changes
309
-
310
- - Updated dependencies [c83235b]
311
- - @critical-path/core@0.20.0
312
-
313
- ## 0.14.1
314
-
315
- ### Patch Changes
316
-
317
- - f816145: Preserve real actor identity and metadata in `updateTask`, activity logs, and domain events, preventing status changes and updates from erroneously attributing the task's assignee as the initiating actor.
318
- - Updated dependencies [f816145]
319
- - @critical-path/core@0.19.1
320
-
321
- ## 0.14.0
322
-
323
- ### Minor Changes
324
-
325
- - f539a11: Add subtask and checklist CLI commands (`critical-path subtask`, `critical-path checklist`) and CriticalPathClient helpers (`createSubtask`, `addTodo`, `toggleTodo`).
326
-
327
- ## 0.13.1
328
-
329
- ### Patch Changes
330
-
331
- - 1c85472: Fix direct execution detection in `critical-path` CLI when invoked via symlinks or paths containing spaces.
332
-
333
- ## 0.13.0
334
-
335
- ### Minor Changes
336
-
337
- - b86b6fc: Introduce `critical-path` CLI commands (`status`, `block`, `clarify`, `propose`, `deliverable`, `comment`) and `CriticalPathClient.updateStatus` for agent execution telemetry and task management.
338
-
339
- ## 0.12.1
340
-
341
- ### Patch Changes
342
-
343
- - Updated dependencies [31a6dde]
344
- - Updated dependencies [31a6dde]
345
- - @critical-path/core@0.19.0
346
-
347
- ## 0.12.0
348
-
349
- ### Minor Changes
350
-
351
- - adf44f6: Add headless workload and capacity distribution engine for streamgraphs, stacked area charts, and team capacity planning. Features include contiguous calendar bucketing (`day`, `week`, `month`), multi-dimension grouping (`assignee`, `team`, `taskType`, `priority`, `status`), effort metric distribution (`scheduled`, `logged`, `remaining`, `blended`), tabular zero-filled series matrix for D3 stack layouts, and capacity/utilization thresholds.
352
-
353
- ### Patch Changes
354
-
355
- - Updated dependencies [adf44f6]
356
- - @critical-path/core@0.18.0
357
-
358
- ## 0.11.0
359
-
360
- ### Minor Changes
361
-
362
- - 9c31e8d: Introduce comprehensive Task Metrics, Inferred Actuals, Progress Inference, Earned Value Management (EVM), and Time-Series Progress History Curve Profiling.
363
- - **Inferred Actuals**: Automatic start/completion auto-stamping on workflow transitions with fallback inference from activity logs, plus automatic completion timestamp clearing on task re-open.
364
- - **Reality Delta**: Multi-dimensional variance analysis comparing planned estimates to logged hours (`effortVarianceHours`, `durationVarianceHours`, `accuracyRatio`, `isOverdue`, `isOverEstimate`).
365
- - **Progress Inference**: Deterministic priority waterfall resolving completion progress across explicit values, checklist/todo completion ratios, logged effort, and elapsed schedule time.
366
- - **Earned Value Management (EVM)**: Task-level PV, EV, AC, CV, SV, CPI, and SPI calculations.
367
- - **Time-Series History & Curve Shapes**: Historical timeline reconstruction from activity logs with piecewise interpolation curve classification (`linear`, `s_curve`, `early_surge`, `late_rush`, `stalled`).
368
- - **Full-Stack Integration**: REST endpoints (`/tasks/:id/metrics`, `/tasks/:id/progress-history`), Client SDK methods, React `useTaskMetrics` hook, Svelte 5 `TaskMetricsState`, and MCP tools (`get_task_metrics`, `get_task_progress_history`).
369
-
370
- ### Patch Changes
371
-
372
- - Updated dependencies [9c31e8d]
373
- - @critical-path/core@0.17.0
374
-
375
- ## 0.10.0
376
-
377
- ### Minor Changes
378
-
379
- - e2a7eef: Introduce Ladder of Abstraction and Critical Path Method (CPM) timeline synthesis to the framework data model:
380
- - **Core Domain**: Multi-scale timeline synthesis model across Macro phase rollups, Standard CPM Gantt schedule (early/late bounds, float/slack calculation, bottleneck identification), and Concrete grounding (deliverables, file attachments, daily effort distribution, and reality deltas). Added `calculateCriticalPath`, `getTimelineLadder`, and `getTaskLadder` to `CriticalPathEngine`.
381
- - **Server Router**: HTTP endpoints `GET /projects/:id/critical-path`, `GET /projects/:id/ladder`, and `GET /tasks/:id/ladder`.
382
- - **Client SDK**: `CriticalPathClient` methods `calculateCriticalPath`, `getTimelineLadder`, and `getTaskLadder`.
383
- - **MCP**: New AI tools `calculate_critical_path`, `get_timeline_ladder`, and `get_task_ladder`.
384
- - **React**: Custom hooks `useTimelineLadder`, `useCriticalPath`, and `useTaskLadder`.
385
- - **Svelte 5**: Svelte 5 Runes state classes `TimelineLadderState` and `CriticalPathState`.
386
-
387
- ### Patch Changes
388
-
389
- - Updated dependencies [e2a7eef]
390
- - @critical-path/core@0.16.0
391
-
392
- ## 0.9.2
393
-
394
- ### Patch Changes
395
-
396
- - dbd2072: Add comprehensive unit test coverage for task state lifecycle behaviors and upstream/downstream dependency validation.
397
- - Updated dependencies [dbd2072]
398
- - @critical-path/core@0.15.2
399
-
400
- ## 0.9.1
401
-
402
- ### Patch Changes
403
-
404
- - Updated dependencies [f53afab]
405
- - @critical-path/core@0.15.1
406
-
407
- ## 0.9.0
408
-
409
- ### Minor Changes
410
-
411
- - 21eb85c: Implement Universal Semantic Statuses & System-Derived Implied Statuses (3-Tier Status Architecture)
412
-
413
- - **Tier 1 (Universal Semantic Statuses)**: Defined canonical status enum `SemanticStatus = 'not_started' | 'in_progress' | 'completed' | 'canceled'` providing universal semantic meaning across any industry domain.
414
- - **Tier 2 (Workflow-Defined Statuses)**: Updated `StatusDefinition` to map domain-specific statuses to a semantic `category`. Updated built-in workflows (Software, Creative, VFX, Simple) to classify statuses by category.
415
- - **Tier 3 (System-Derived Implied Statuses)**: Added `deriveTaskLifecycleState` and `engine.getTaskLifecycleState(taskId)` returning dynamic indicators:
416
- - Dependency: `isReady`, `isBlocked`, `blockingTaskIds`
417
- - Schedule: `isOverdue`, `isUpcoming`, `isUnplanned`
418
- - Ownership: `isUnassigned`, `isStalled`
419
- - Estimate/Pace: `isOverEstimate`, `isPaceWarning`
420
- - Convenience flags: `isDone`, `isActive`, `isCancelled`
421
- - **Domain Entities & Engine**: Added automatic timestamp progression (`actualStartDate`, `actualEndDate`), progress completion, and event emission driven by semantic status categories.
422
- - **React UI Hooks**: Updated `useKanban` to support dynamic custom workflow columns without dropping tasks, plus added `groupBy: 'semantic' | 'workflow'` option.
423
- - **Client SDK**: Added `client.getTaskLifecycleState(taskId)`.
424
-
425
- ### Patch Changes
426
-
427
- - Updated dependencies [21eb85c]
428
- - @critical-path/core@0.15.0
429
-
430
- ## 0.8.4
431
-
432
- ### Patch Changes
433
-
434
- - Updated dependencies [3dc2798]
435
- - @critical-path/core@0.14.0
436
-
437
- ## 0.8.3
438
-
439
- ### Patch Changes
440
-
441
- - Updated dependencies [573a4fa]
442
- - @critical-path/core@0.13.3
443
-
444
- ## 0.8.2
445
-
446
- ### Patch Changes
447
-
448
- - Updated dependencies [03d269c]
449
- - @critical-path/core@0.13.2
450
-
451
- ## 0.8.1
452
-
453
- ### Patch Changes
454
-
455
- - Updated dependencies [a7d17c0]
456
- - @critical-path/core@0.13.1
457
-
458
- ## 0.8.0
459
-
460
- ### Minor Changes
461
-
462
- - a4a464b: Support multi-assignees and backward workflow status transitions:
463
- - Add `TaskAssignee` interface (`id`, `name`, `role`, `type: 'user' | 'agent' | 'team'`, `avatarUrl`) and `assignees?: TaskAssignee[]` to `Task` entity and SQLite storage adapter.
464
- - Add `getAllowedPreviousStatuses(workflow, currentStatus)` utility and `CriticalPathEngine.getAllowedPreviousTaskTransitions(taskId)` for calculating valid backward transitions.
465
- - Expose `allowedPreviousStatuses` in server endpoint `GET /tasks/:taskId/transitions`.
466
- - Add `getAllowedPreviousTaskTransitions(taskId)` to `CriticalPathClient` SDK.
467
-
468
- ### Patch Changes
469
-
470
- - Updated dependencies [a4a464b]
471
- - @critical-path/core@0.13.0
472
-
473
- ## 0.7.0
474
-
475
- ### Minor Changes
476
-
477
- - 5a5930f: Add first-class Deliverable entity, Creative Workflow presets, and reactive UI bindings:
478
- - `@critical-path/core`: Added `Deliverable` entity, `DeliverableSummary` rollup computation, `DEFAULT_CREATIVE_WORKFLOW` preset, `deliverableId` on tasks, store implementations (InMemory, SQLite, Firebase), domain events, and webhook integration.
479
- - `@critical-path/server`: Added RESTful API endpoints for `/deliverables` and `/deliverables/:id/summary`.
480
- - `@critical-path/client`: Added deliverable management and summary methods to `CriticalPathClient`.
481
- - `@critical-path/react`: Added `useDeliverables` and `useDeliverableSummary` React hooks.
482
- - `@critical-path/svelte`: Added `DeliverableState` and `createDeliverableState` Svelte 5 Runes state management.
483
-
484
- ### Patch Changes
485
-
486
- - Updated dependencies [5a5930f]
487
- - @critical-path/core@0.12.0
488
-
489
- ## 0.6.0
490
-
491
- ### Minor Changes
492
-
493
- - 55549e9: Support @mentions in comments with extraction and segmentation utilities
494
-
495
- - Add `mentions?: string[]` to `Comment` interface
496
- - Add `extractMentions` and `parseMentionSegments` utilities for mention parsing and UI rendering
497
- - Auto-extract and populate mentions during `addComment` and `updateComment` in the engine
498
- - Update SQLite comments schema with `mentions` column and migration
499
- - Preserve and pass through mentions in server routes, client SDK, and Svelte bindings
500
-
501
- ### Patch Changes
502
-
503
- - Updated dependencies [55549e9]
504
- - @critical-path/core@0.11.0
505
-
506
- ## 0.5.0
507
-
508
- ### Minor Changes
509
-
510
- - e9003d3: Add emoji reactions support for comment conversations with domain events, deduplication, REST endpoints, client SDK, and React/Svelte state integrations.
511
-
512
- ### Patch Changes
513
-
514
- - Updated dependencies [e9003d3]
515
- - @critical-path/core@0.10.0
516
-
517
- ## 0.4.4
518
-
519
- ### Patch Changes
520
-
521
- - Updated dependencies [e983557]
522
- - @critical-path/core@0.9.0
523
-
524
- ## 0.4.3
525
-
526
- ### Patch Changes
527
-
528
- - 2d5ff04: fix(core): decode base64 strings and data URIs into binary Uint8Array in storage adapters
529
- - Updated dependencies [2d5ff04]
530
- - @critical-path/core@0.8.3
531
-
532
- ## 0.4.2
533
-
534
- ### Patch Changes
535
-
536
- - fix(core): decode base64 strings and data URIs into binary Uint8Array in storage adapters
537
- - Updated dependencies
538
- - @critical-path/core@0.8.2
539
-
540
- ## 0.4.1
541
-
542
- ### Patch Changes
543
-
544
- - 315425c: fix(core): generate Firebase Storage download tokens and construct valid public URLs
545
- - Updated dependencies [315425c]
546
- - @critical-path/core@0.8.1
547
-
548
- ## 0.4.0
549
-
550
- ### Minor Changes
551
-
552
- - 1811922: Add attachment URL validation against large data URIs, sanitize undefined properties in FirebaseStore, provide direct attachment upload routes & SDK methods, and introduce TaskActivityState for combined comment & attachment threads.
553
-
554
- ### Patch Changes
555
-
556
- - Updated dependencies [1811922]
557
- - @critical-path/core@0.8.0
558
-
559
- ## 0.3.0
560
-
561
- ### Minor Changes
562
-
563
- - a48a04a: Add threaded conversations, attachment metadata management, and storage adapters (S3 & Firebase Storage):
564
-
565
- - **`@critical-path/core`**:
566
- - Added `Attachment` entity, `CreateAttachmentInput`, `UploadFileInput`, and `FileStorageAdapter` contracts.
567
- - Added `InMemoryFileStore`, duck-typed `S3StorageAdapter` (compatible with AWS SDK v3, v2, MinIO, and Cloudflare R2), and `FirebaseStorageAdapter` (compatible with Google Cloud Storage and Firebase Admin SDK).
568
- - Extended `Comment` with `authorType` (`user`, `agent`, `system`) and `parentId` for threaded discussions.
569
- - Implemented full comment and attachment repository methods across `InMemoryStore`, `SQLiteStore`, and `FirebaseStore`.
570
- - Added engine operations for upload, presigning, and deleting attachments with domain events (`comment.*`, `attachment.*`) and webhooks.
571
-
572
- - **`@critical-path/server`**:
573
- - Added RESTful routes for comments (`GET/POST /tasks/:taskId/comments`, `GET/POST /comments`, `GET/PATCH/DELETE /comments/:id`).
574
- - Added RESTful routes for attachments (`GET/POST /tasks/:taskId/attachments`, `GET/POST /attachments`, `GET/DELETE /attachments/:id`, `POST /attachments/presign`).
575
-
576
- - **`@critical-path/client`**:
577
- - Added SDK methods `getComments`, `getComment`, `addComment`, `updateComment`, `deleteComment`.
578
- - Added SDK methods `getAttachments`, `getAttachment`, `createAttachment`, `deleteAttachment`, and `getPresignedAttachmentUploadUrl`.
579
-
580
- - **`@critical-path/react`**:
581
- - Added `useComments(taskId)` with reactive thread tree derivation (`threads` containing nested `replies`) and comment mutations.
582
- - Added `useAttachments(filter)` with attachment creation and deletion.
583
-
584
- - **`@critical-path/svelte`**:
585
- - Added Svelte 5 Rune-based `CommentState` / `createCommentState(client, taskId)` with derived threaded hierarchy.
586
- - Added Svelte 5 Rune-based `AttachmentState` / `createAttachmentState(client, filter)`.
587
-
588
- ### Patch Changes
589
-
590
- - Updated dependencies [a48a04a]
591
- - @critical-path/core@0.7.0
592
-
593
- ## 0.2.4
594
-
595
- ### Patch Changes
596
-
597
- - Updated dependencies [6e9dece]
598
- - @critical-path/core@0.6.0
599
-
600
- ## 0.2.3
601
-
602
- ### Patch Changes
603
-
604
- - Updated dependencies [c24b76c]
605
- - @critical-path/core@0.5.2
606
-
607
- ## 0.2.2
608
-
609
- ### Patch Changes
610
-
611
- - Updated dependencies [34067fd]
612
- - @critical-path/core@0.5.1
613
-
614
- ## 0.2.1
615
-
616
- ### Patch Changes
617
-
618
- - Updated dependencies [83a5c17]
619
- - @critical-path/core@0.5.0
620
-
621
- ## 0.2.0
622
-
623
- ### Minor Changes
624
-
625
- - 35576a6: Introduce Workflow concept to the project management model with status definitions, allowed transition validation, task types, webhook events (workflow.created, workflow.updated, workflow.deleted), server routes, SDK methods, and React/Svelte state hooks.
626
-
627
- ### Patch Changes
628
-
629
- - Updated dependencies [35576a6]
630
- - @critical-path/core@0.4.0
631
-
632
- ## 0.1.5
633
-
634
- ### Patch Changes
635
-
636
- - Updated dependencies [4b92228]
637
- - @critical-path/core@0.3.0
638
-
639
- ## 0.1.4
640
-
641
- ### Patch Changes
642
-
643
- - Updated dependencies [df22aad]
644
- - @critical-path/core@0.2.1
645
-
646
- ## 0.1.3
647
-
648
- ### Patch Changes
649
-
650
- - Updated dependencies [755286a]
651
- - @critical-path/core@0.2.0
652
-
653
- ## 0.1.2
654
-
655
- ### Patch Changes
656
-
657
- - Initial open-source release of the type-safe Critical Path HTTP Client SDK.
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=cli.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.test.d.ts","sourceRoot":"","sources":["../src/cli.test.ts"],"names":[],"mappings":""}