@critical-path/core 0.43.0 → 0.44.0

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/README.md CHANGED
@@ -355,7 +355,7 @@ const leveled = await engine.calculateCriticalPath('proj_123', { calendars: 'ass
355
355
  console.log(leveled.unleveledProjectEndDate, '->', leveled.projectEndDate);
356
356
  ```
357
357
 
358
- With `calendars: 'assignee'` (or `criticalPathCalendars: 'assignee'` on the engine), each task uses its assignee's schedule, then its team's, then the project calendar. Passes run on dates, slack is measured in each task's calendar, and each calendar is evaluated in its own `timezone` (IANA name; default UTC), including daylight-saving changes. `levelResources: true` additionally delays tasks so nobody works on two at once (priority rule `levelingPriority`, default least slack), reporting `levelingDelayHours` and `waitingOn` per task. Tasks with `allocation` below 1 take that share of their assignee (a 16h task at 0.5 spans 32 working hours); levelling fits them within 100% per person, and `overallocations` lists who is booked above 100% and when.
358
+ With `calendars: 'assignee'` (or `criticalPathCalendars: 'assignee'` on the engine), each task uses its assignee's schedule, then its team's, then the project calendar. Passes run on dates, slack is measured in each task's calendar, and each calendar is evaluated in its own `timezone` (IANA name; default UTC), including daylight-saving changes. `levelResources: true` additionally delays tasks so nobody works on two at once (priority rule `levelingPriority`, default least slack), reporting `levelingDelayHours` and `waitingOn` per task. Tasks with `allocation` below 1 take that share of their assignee (a 16h task at 0.5 spans 32 working hours); levelling fits them within 100% per person, and `overallocations` lists who is booked above 100% and when. Teams act as pools of `headcount` people (default: member count) shared by team-only tasks and members' own tasks.
359
359
 
360
360
  ### 9. Fractional Lexical Indexing (Kanban Reordering)
361
361
 
@@ -1 +1 @@
1
- {"version":3,"file":"cpm.d.ts","sourceRoot":"","sources":["../../src/domain/cpm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EAEd,oBAAoB,EACpB,YAAY,EACZ,IAAI,EACJ,IAAI,EAEL,MAAM,mBAAmB,CAAC;AAW3B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYvD;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAGpD;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,iFAAiF;IACjF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,4FAA4F;AAC5F,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE,GACnE,YAAY,CAOd;AAybD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,IAAI,EAAE,EACb,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,GAAE,UAAe,GACvB,oBAAoB,CA4JtB"}
1
+ {"version":3,"file":"cpm.d.ts","sourceRoot":"","sources":["../../src/domain/cpm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,cAAc,EAEd,oBAAoB,EACpB,YAAY,EACZ,IAAI,EACJ,IAAI,EAEL,MAAM,mBAAmB,CAAC;AAW3B,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAYvD;AAED,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAGpD;AAED,wEAAwE;AACxE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEtD;AAED,MAAM,WAAW,UAAU;IACzB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,iFAAiF;IACjF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,kFAAkF;IAClF,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE1E,4FAA4F;AAC5F,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;IAAE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAE,GACnE,YAAY,CAOd;AAkfD;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,IAAI,EAAE,EACb,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,GAAE,UAAe,GACvB,oBAAoB,CA4JtB"}
@@ -116,12 +116,13 @@ function calculateCalendarCPM(projectId, calculatedAt, graph, options) {
116
116
  const ctx = { taskMap, calendarOf, durationOf, projectStart };
117
117
  const early = forwardPass(topoOrder, prerequisites, ctx);
118
118
  const late = backwardPass([...topoOrder].reverse(), (id) => successors.get(id), latest(early.finish, projectStart), ctx);
119
+ const resourcesOf = resourceModel(options.teams);
119
120
  if (!options.levelResources) {
120
121
  const analysis = buildAnalysis(projectId, calculatedAt, taskIds, early, late, projectSchedule, ctx);
121
- return { ...analysis, overallocations: findOverallocations(taskMap, early) };
122
+ return { ...analysis, overallocations: findOverallocations(taskMap, early, resourcesOf) };
122
123
  }
123
124
  const unleveledSlack = new Map(taskIds.map((id) => [id, slackHours(early.finish.get(id), late.finish.get(id), calendarOf.get(id))]));
124
- const leveled = levelSchedule(graph, ctx, unleveledSlack, options.levelingPriority ?? 'slack');
125
+ const leveled = levelSchedule(graph, ctx, unleveledSlack, options.levelingPriority ?? 'slack', resourcesOf);
125
126
  const leveledLate = backwardPass(leveled.backwardOrder, (id) => [...successors.get(id), ...(leveled.resourceSuccessors.get(id) ?? [])], latest(leveled.early.finish, projectStart), ctx);
126
127
  const analysis = buildAnalysis(projectId, calculatedAt, taskIds, leveled.early, leveledLate, projectSchedule, ctx, (id) => {
127
128
  const delay = round2(getWorkingHoursBetween(early.start.get(id), leveled.early.start.get(id), calendarOf.get(id)));
@@ -132,7 +133,7 @@ function calculateCalendarCPM(projectId, calculatedAt, graph, options) {
132
133
  ...analysis,
133
134
  leveled: true,
134
135
  unleveledProjectEndDate: latest(early.finish, projectStart).toISOString(),
135
- overallocations: findOverallocations(taskMap, leveled.early)
136
+ overallocations: findOverallocations(taskMap, leveled.early, resourcesOf)
136
137
  };
137
138
  }
138
139
  function latest(dates, floor) {
@@ -187,15 +188,16 @@ const PRIORITY_RANK = { urgent: 0, high: 1, medium: 2, low: 3, none: 4 };
187
188
  /**
188
189
  * Resource levelling with a serial schedule-generation scheme: repeatedly take the eligible task
189
190
  * (all predecessors placed) that ranks first under `rule`, and place it at the earliest time its
190
- * predecessors are finished and its assignee has `allocation` spare for its whole span on their
191
- * calendar. Each assignee's bookings total at most 1 at any moment; tasks are not split.
192
- * Unassigned tasks and zero-duration milestones do not occupy anyone.
191
+ * predecessors are finished and every resource it uses (see `resourceModel`) has `allocation`
192
+ * spare for its whole span on the task's calendar. Tasks are not split. Tasks without resources
193
+ * and zero-duration milestones do not occupy anything.
193
194
  *
194
195
  * Returns the levelled early dates, which task each delayed task waited for, and resource links
195
- * (`resourceSuccessors`): for every two tasks of one assignee that cannot overlap (allocations
196
- * sum above 1), the earlier one precedes the later one, so the backward pass keeps them apart.
196
+ * (`resourceSuccessors`) so the backward pass keeps the levelling: for every two tasks on one
197
+ * resource whose allocations exceed its capacity the earlier precedes the later, and each delayed
198
+ * task follows the task whose finish freed its capacity.
197
199
  */
198
- function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder }, ctx, unleveledSlack, rule) {
200
+ function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder }, ctx, unleveledSlack, rule, resourcesOf) {
199
201
  const creation = new Map([...taskIds]
200
202
  .sort((a, b) => (taskMap.get(a).createdAt ?? '').localeCompare(taskMap.get(b).createdAt ?? '') || a.localeCompare(b))
201
203
  .map((id, i) => [id, i]));
@@ -222,6 +224,7 @@ function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder
222
224
  const finish = new Map();
223
225
  const waitingOn = new Map();
224
226
  const busy = new Map();
227
+ const capacityOf = new Map();
225
228
  const placed = [];
226
229
  const remaining = new Map(taskIds.map((id) => [id, prerequisites.get(id).size]));
227
230
  const eligible = new Set(taskIds.filter((id) => remaining.get(id) === 0));
@@ -239,13 +242,17 @@ function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder
239
242
  }
240
243
  const calendar = ctx.calendarOf.get(id);
241
244
  const duration = ctx.durationOf.get(id);
242
- const assignee = taskMap.get(id).assigneeId;
243
- const slots = assignee && duration > 0 ? busy.get(assignee) ?? [] : [];
245
+ const resources = duration > 0 ? resourcesOf(taskMap.get(id)) : [];
244
246
  const allocation = getTaskAllocation(taskMap.get(id));
245
247
  let es = nextWorkingTime(ready, calendar);
246
248
  let ef = addWorkingHours(es, duration, calendar);
247
249
  for (;;) {
248
- const release = firstCapacityRelease(slots, es.getTime(), ef.getTime(), allocation);
250
+ let release;
251
+ for (const resource of resources) {
252
+ release = firstCapacityRelease(busy.get(resource.key) ?? [], es.getTime(), ef.getTime(), allocation, resource.capacity);
253
+ if (release)
254
+ break;
255
+ }
249
256
  if (!release)
250
257
  break;
251
258
  waitingOn.set(id, release.taskId);
@@ -254,8 +261,9 @@ function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder
254
261
  }
255
262
  start.set(id, es);
256
263
  finish.set(id, ef);
257
- if (assignee && duration > 0) {
258
- busy.set(assignee, [...slots, { start: es.getTime(), end: ef.getTime(), allocation, taskId: id }]);
264
+ for (const resource of resources) {
265
+ busy.set(resource.key, [...(busy.get(resource.key) ?? []), { start: es.getTime(), end: ef.getTime(), allocation, taskId: id }]);
266
+ capacityOf.set(resource.key, resource.capacity);
259
267
  }
260
268
  placed.push(id);
261
269
  for (const s of successors.get(id)) {
@@ -266,29 +274,42 @@ function levelSchedule({ taskMap, taskIds, prerequisites, successors, topoOrder
266
274
  }
267
275
  }
268
276
  const resourceSuccessors = new Map();
269
- for (const slots of busy.values()) {
277
+ const link = (from, to) => {
278
+ if (from !== to)
279
+ resourceSuccessors.set(from, (resourceSuccessors.get(from) ?? new Set()).add(to));
280
+ };
281
+ for (const [key, slots] of busy) {
282
+ const capacity = capacityOf.get(key);
270
283
  const ordered = [...slots].sort((a, b) => a.start - b.start);
271
284
  for (let i = 0; i < ordered.length; i++) {
272
285
  for (let j = i + 1; j < ordered.length; j++) {
273
286
  const [u, v] = [ordered[i], ordered[j]];
274
- if (u.end <= v.start && u.allocation + v.allocation > 1 + EPSILON) {
275
- resourceSuccessors.set(u.taskId, [...(resourceSuccessors.get(u.taskId) ?? []), v.taskId]);
276
- }
287
+ if (u.end <= v.start && u.allocation + v.allocation > capacity + EPSILON)
288
+ link(u.taskId, v.taskId);
277
289
  }
278
290
  }
279
291
  }
292
+ // In pools a delayed task may not conflict pairwise with anything; it still follows the task
293
+ // whose finish freed its capacity.
294
+ for (const [taskId, blocker] of waitingOn)
295
+ link(blocker, taskId);
280
296
  // Every edge (dependency or resource chain) goes forward in levelled start time; ties are
281
297
  // zero-duration tasks, ordered by placement.
282
298
  const placement = new Map(placed.map((id, i) => [id, i]));
283
299
  const backwardOrder = [...taskIds].sort((a, b) => start.get(b).getTime() - start.get(a).getTime() || placement.get(b) - placement.get(a));
284
- return { early: { start, finish }, waitingOn, resourceSuccessors, backwardOrder };
300
+ return {
301
+ early: { start, finish },
302
+ waitingOn,
303
+ resourceSuccessors: new Map([...resourceSuccessors].map(([k, v]) => [k, [...v]])),
304
+ backwardOrder
305
+ };
285
306
  }
286
307
  const EPSILON = 1e-9;
287
308
  /**
288
- * If `allocation` does not fit alongside `bookings` somewhere in [start, end), returns the booking
309
+ * If `allocation` does not fit alongside `bookings` within `capacity` somewhere in [start, end), returns the booking
289
310
  * whose end frees enough capacity soonest after the first overloaded moment; otherwise undefined.
290
311
  */
291
- function firstCapacityRelease(bookings, start, end, allocation) {
312
+ function firstCapacityRelease(bookings, start, end, allocation, capacity) {
292
313
  const overlapping = bookings.filter((b) => b.start < end && b.end > start);
293
314
  if (overlapping.length === 0)
294
315
  return undefined;
@@ -297,44 +318,74 @@ function firstCapacityRelease(bookings, start, end, allocation) {
297
318
  for (const t of points) {
298
319
  const active = overlapping.filter((b) => b.start <= t && b.end > t);
299
320
  const used = active.reduce((sum, b) => sum + b.allocation, 0);
300
- if (used + allocation <= 1 + EPSILON)
321
+ if (used + allocation <= capacity + EPSILON)
301
322
  continue;
302
323
  // Release bookings in end order until the task fits.
303
324
  let freed = used;
304
325
  for (const b of [...active].sort((x, y) => x.end - y.end)) {
305
326
  freed -= b.allocation;
306
- if (freed + allocation <= 1 + EPSILON)
327
+ if (freed + allocation <= capacity + EPSILON)
307
328
  return b;
308
329
  }
309
330
  }
310
331
  return undefined;
311
332
  }
312
- /** Periods in which an assignee's overlapping tasks need more than 100% of them. */
313
- function findOverallocations(taskMap, dates) {
314
- const byAssignee = new Map();
333
+ /**
334
+ * Which resources each task uses. An assigned task uses its assignee and every team pool the
335
+ * assignee belongs to (their own work takes up team capacity); a task with only `teamId` uses that
336
+ * team's pool. A pool's capacity is `team.headcount`, else its member count; pools with no capacity
337
+ * are ignored, so their tasks stay unconstrained.
338
+ */
339
+ function resourceModel(teams = []) {
340
+ const pools = teams
341
+ .map((team) => ({ team, capacity: team.headcount ?? team.memberIds.length }))
342
+ .filter((pool) => pool.capacity > 0);
343
+ const poolResource = ({ team, capacity }) => ({ key: `team:${team.id}`, capacity, teamId: team.id });
344
+ return (task) => {
345
+ if (task.assigneeId) {
346
+ return [
347
+ { key: `user:${task.assigneeId}`, capacity: 1, assigneeId: task.assigneeId },
348
+ ...pools.filter((pool) => pool.team.memberIds.includes(task.assigneeId)).map(poolResource)
349
+ ];
350
+ }
351
+ const pool = task.teamId ? pools.find((p) => p.team.id === task.teamId) : undefined;
352
+ return pool ? [poolResource(pool)] : [];
353
+ };
354
+ }
355
+ /** Periods in which an assignee or team pool is booked above its capacity. */
356
+ function findOverallocations(taskMap, dates, resourcesOf) {
357
+ const byResource = new Map();
315
358
  for (const [id, task] of taskMap) {
316
359
  const s = dates.start.get(id).getTime();
317
360
  const e = dates.finish.get(id).getTime();
318
- if (!task.assigneeId || e <= s)
361
+ if (e <= s)
319
362
  continue;
320
- byAssignee.set(task.assigneeId, [...(byAssignee.get(task.assigneeId) ?? []), { start: s, end: e, allocation: getTaskAllocation(task), taskId: id }]);
363
+ for (const resource of resourcesOf(task)) {
364
+ const entry = byResource.get(resource.key) ?? { resource, bookings: [] };
365
+ entry.bookings.push({ start: s, end: e, allocation: getTaskAllocation(task), taskId: id });
366
+ byResource.set(resource.key, entry);
367
+ }
321
368
  }
322
369
  const result = [];
323
- for (const [assigneeId, bookings] of byAssignee) {
370
+ for (const { resource, bookings } of byResource.values()) {
371
+ const owner = resource.assigneeId ? { assigneeId: resource.assigneeId } : { teamId: resource.teamId };
324
372
  const points = [...new Set(bookings.flatMap((b) => [b.start, b.end]))].sort((a, b) => a - b);
373
+ let previous;
325
374
  for (let i = 0; i + 1 < points.length; i++) {
326
375
  const [from, to] = [points[i], points[i + 1]];
327
376
  const active = bookings.filter((b) => b.start <= from && b.end >= to);
328
377
  const allocation = round2(active.reduce((sum, b) => sum + b.allocation, 0));
329
- if (allocation <= 1 + EPSILON)
378
+ if (allocation <= resource.capacity + EPSILON) {
379
+ previous = undefined;
330
380
  continue;
381
+ }
331
382
  const taskIds = active.map((b) => b.taskId).sort();
332
- const previous = result.at(-1);
333
- if (previous && previous.assigneeId === assigneeId && previous.end === new Date(from).toISOString() && previous.taskIds.join() === taskIds.join()) {
383
+ if (previous && previous.end === new Date(from).toISOString() && previous.taskIds.join() === taskIds.join()) {
334
384
  previous.end = new Date(to).toISOString();
335
385
  }
336
386
  else {
337
- result.push({ assigneeId, start: new Date(from).toISOString(), end: new Date(to).toISOString(), allocation, taskIds });
387
+ previous = { ...owner, start: new Date(from).toISOString(), end: new Date(to).toISOString(), allocation, capacity: resource.capacity, taskIds };
388
+ result.push(previous);
338
389
  }
339
390
  }
340
391
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cpm.js","sourceRoot":"","sources":["../../src/domain/cpm.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cpm.js","sourceRoot":"","sources":["../../src/domain/cpm.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
@@ -12,9 +12,12 @@ import { WebhookDispatcher, assertWebhookUrl } from '../webhooks/dispatcher.js';
12
12
  import { buildStorageKey, normalizeUploadData } from '../storage/file-storage.js';
13
13
  import { generateWebhookSecret } from '../webhooks/signature.js';
14
14
  import { calculateCPM } from '../domain/cpm.js';
15
+ import { CreateTaskSchema } from '../schemas/index.js';
15
16
  import { buildTimelineLadder, aggregateConcreteEvidenceForTask } from '../domain/ladder.js';
16
17
  import { calculateTaskMetrics, reconstructTaskProgressHistory } from '../domain/metrics.js';
17
18
  import { calculateWorkloadDistribution } from '../domain/workload.js';
19
+ /** Every caller-settable task field, derived from the create schema so new fields are never dropped. */
20
+ const CREATE_TASK_FIELDS = Object.keys(CreateTaskSchema.shape);
18
21
  export class CriticalPathEngine {
19
22
  config;
20
23
  store;
@@ -578,60 +581,43 @@ export class CriticalPathEngine {
578
581
  const projectId = taskInput.projectId;
579
582
  const project = await this.store.getProject(projectId);
580
583
  const workflow = await this.resolveProjectWorkflow(projectId);
584
+ // Merge hook output over the caller's input for every schema-known task field. Unknown keys
585
+ // (id, timestamps, identity fields, anything else) never reach the store.
586
+ const input = {};
587
+ for (const field of CREATE_TASK_FIELDS) {
588
+ const value = processedInput[field] ?? taskInput[field];
589
+ if (value !== undefined)
590
+ input[field] = value;
591
+ }
581
592
  // Validate custom fields on the final (post-plugin) input, including required fields when none are given
582
- validateCustomFieldValues(project?.customFieldDefinitions, processedInput.customFields ?? taskInput.customFields, this.plugins.getCustomFieldTypes());
593
+ validateCustomFieldValues(project?.customFieldDefinitions, input.customFields, this.plugins.getCustomFieldTypes());
583
594
  const defaultStatus = workflow?.defaultStatusKey || 'todo';
584
595
  const initialStatus = processedInput.status || taskInput.status || defaultStatus;
585
596
  const now = new Date().toISOString();
586
597
  // Derive initial lifecycle timestamps and semantic status
587
598
  const statusDef = resolveStatusDefinition(initialStatus, project?.statusDefinitions || workflow?.statuses);
588
- const semanticStatus = processedInput.semanticStatus ?? taskInput.semanticStatus ?? statusDef.category;
589
- const actualStartDate = processedInput.actualStartDate ?? taskInput.actualStartDate ?? (statusDef.category === 'in_progress' ? now : undefined);
590
- const inProgressSince = processedInput.inProgressSince ?? taskInput.inProgressSince ?? (statusDef.category === 'in_progress' ? now : undefined);
591
- const actualEndDate = processedInput.actualEndDate ?? taskInput.actualEndDate ?? ((statusDef.category === 'completed' || statusDef.category === 'canceled') ? now : undefined);
592
- const completedAt = processedInput.completedAt ?? taskInput.completedAt ?? (statusDef.category === 'completed' ? now : undefined);
593
- const isInitialBlocked = processedInput.isBlocked ?? taskInput.isBlocked ?? false;
594
- const blockedSince = processedInput.blockedSince ?? taskInput.blockedSince ?? (isInitialBlocked && statusDef.category === 'in_progress' ? now : undefined);
595
- const blockedDurationSeconds = processedInput.blockedDurationSeconds ?? taskInput.blockedDurationSeconds;
599
+ const inProgress = statusDef.category === 'in_progress';
600
+ const completed = statusDef.category === 'completed';
601
+ const isBlocked = input.isBlocked ?? false;
596
602
  const created = await this.store.createTask({
603
+ ...input,
597
604
  projectId,
598
605
  title: processedInput.title || taskInput.title,
599
- description: processedInput.description ?? taskInput.description,
600
606
  status: initialStatus,
601
- semanticStatus,
607
+ semanticStatus: input.semanticStatus ?? statusDef.category,
602
608
  priority: processedInput.priority || taskInput.priority || 'medium',
603
609
  taskType: processedInput.taskType || taskInput.taskType || 'task',
604
- assigneeId: processedInput.assigneeId ?? taskInput.assigneeId,
605
- assignees: processedInput.assignees ?? taskInput.assignees,
606
- reporterId: processedInput.reporterId ?? taskInput.reporterId,
607
- reviewerId: processedInput.reviewerId ?? taskInput.reviewerId,
608
- iterationId: processedInput.iterationId ?? taskInput.iterationId,
609
- teamId: processedInput.teamId ?? taskInput.teamId,
610
- containerId: processedInput.containerId ?? taskInput.containerId,
611
- deliverableId: processedInput.deliverableId ?? taskInput.deliverableId,
612
- plannedStartDate: processedInput.plannedStartDate ?? taskInput.plannedStartDate,
613
- actualStartDate,
614
- actualEndDate,
615
- completedAt,
616
- dueDate: processedInput.dueDate ?? taskInput.dueDate,
617
- estimatedHours: processedInput.estimatedHours ?? taskInput.estimatedHours,
618
- allocation: processedInput.allocation ?? taskInput.allocation,
619
- loggedHours: processedInput.loggedHours ?? taskInput.loggedHours ?? 0,
620
- actualHours: processedInput.actualHours ?? taskInput.actualHours,
621
- billableHours: processedInput.billableHours ?? taskInput.billableHours,
622
- estimatedDurationMinutes: processedInput.estimatedDurationMinutes ?? taskInput.estimatedDurationMinutes,
623
- actualDurationMinutes: processedInput.actualDurationMinutes ?? taskInput.actualDurationMinutes,
624
- billableDurationMinutes: processedInput.billableDurationMinutes ?? taskInput.billableDurationMinutes,
625
- actualDurationSeconds: processedInput.actualDurationSeconds ?? taskInput.actualDurationSeconds,
626
- inProgressSince,
627
- blockedDurationSeconds,
628
- blockedSince,
629
- progress: processedInput.progress ?? taskInput.progress ?? (statusDef.category === 'completed' ? 100 : 0),
630
- isBlocked: isInitialBlocked,
631
- blockedReason: processedInput.blockedReason ?? taskInput.blockedReason ?? null,
632
- tags: processedInput.tags ?? taskInput.tags ?? [],
633
- customFields: processedInput.customFields ?? taskInput.customFields ?? {},
634
- parentId: processedInput.parentId ?? taskInput.parentId
610
+ actualStartDate: input.actualStartDate ?? (inProgress ? now : undefined),
611
+ actualEndDate: input.actualEndDate ?? (completed || statusDef.category === 'canceled' ? now : undefined),
612
+ completedAt: input.completedAt ?? (completed ? now : undefined),
613
+ loggedHours: input.loggedHours ?? 0,
614
+ inProgressSince: input.inProgressSince ?? (inProgress ? now : undefined),
615
+ blockedSince: input.blockedSince ?? (isBlocked && inProgress ? now : undefined),
616
+ progress: input.progress ?? (completed ? 100 : 0),
617
+ isBlocked,
618
+ blockedReason: input.blockedReason ?? null,
619
+ tags: input.tags ?? [],
620
+ customFields: input.customFields ?? {}
635
621
  });
636
622
  await this.plugins.runAfterTaskCreate(created);
637
623
  // Publish typed Domain Event
@@ -2012,7 +1998,9 @@ export class CriticalPathEngine {
2012
1998
  }
2013
1999
  if (calendars === 'project')
2014
2000
  return calculateCPM(projectId, tasks, dependencies, { schedule, projectStartDate });
2015
- const [users, teams] = await Promise.all([options.users ?? this.getUsers(), options.teams ?? this.store.getTeams()]);
2001
+ const [users, allTeams] = await Promise.all([options.users ?? this.getUsers(), options.teams ?? this.store.getTeams()]);
2002
+ // Only the project's tenant: team pools match members by user id.
2003
+ const teams = options.teams ? allTeams : allTeams.filter((t) => (t.tenantId ?? undefined) === (project?.tenantId ?? undefined));
2016
2004
  return calculateCPM(projectId, tasks, dependencies, {
2017
2005
  schedule,
2018
2006
  projectStartDate,