@temporalio/workflow 1.11.0 → 1.11.2

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/lib/flags.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ import type { WorkflowInfo } from './interfaces';
1
2
  export type SdkFlag = {
2
3
  get id(): number;
3
4
  get default(): boolean;
5
+ get alternativeConditions(): AltConditionFn[] | undefined;
4
6
  };
5
7
  export declare const SdkFlags: {
6
8
  /**
@@ -11,7 +13,9 @@ export declare const SdkFlags: {
11
13
  * of the timeout, similar to how `condition(fn, timeout)` works.
12
14
  * - Timers created using setTimeout can now be intercepted.
13
15
  *
14
- * @since Introduced in 1.10.2/1.11.0.
16
+ * @since Introduced in 1.10.2/1.11.0. However, due to an SDK bug, SDKs v1.11.0 and v1.11.1 were not
17
+ * properly writing back the flags to history, possibly resulting in NDE on replay. We therefore
18
+ * consider that a WFT emitted by Worker v1.11.0 or v1.11.1 to implicitly have this flag on.
15
19
  */
16
20
  readonly NonCancellableScopesAreShieldedFromPropagation: SdkFlag;
17
21
  /**
@@ -29,8 +33,27 @@ export declare const SdkFlags: {
29
33
  * `signalWorkflow` jobs - and now `doUpdate` jobs as well - have been given a proper chance to
30
34
  * execute before the Workflow main function might completes.
31
35
  *
32
- * @since Introduced in 1.11.0. This change is not rollback-safe.
36
+ * @since Introduced in 1.11.0. This change is not rollback-safe. However, due to an SDK bug, SDKs
37
+ * v1.11.0 and v1.11.1 were not properly writing back the flags to history, possibly resulting
38
+ * in NDE on replay. We therefore consider that a WFT emitted by Worker v1.11.0 or v1.11.1
39
+ * to implicitely have this flag on.
33
40
  */
34
41
  readonly ProcessWorkflowActivationJobsAsSingleBatch: SdkFlag;
35
42
  };
36
43
  export declare function assertValidFlag(id: number): void;
44
+ /**
45
+ * An SDK Flag Alternate Condition provides an alternative way of determining whether a flag
46
+ * should be considered as enabled for the current WFT; e.g. by looking at the version of the SDK
47
+ * that emitted a WFT. The main use case for this is to retroactively turn on some flags for WFT
48
+ * emitted by previous SDKs that contained a bug.
49
+ *
50
+ * Note that conditions are only evaluated while replaying, and only if the corresponing flag is
51
+ * not already set. Also, alternate conditions will not cause the flag to be persisted to the
52
+ * "used flags" set, which means that further Workflow Tasks may not reflect this flag if the
53
+ * condition no longer holds. This is so to avoid incorrect behaviors in case where a Workflow
54
+ * Execution has gone through a newer SDK version then again through an older one.
55
+ */
56
+ type AltConditionFn = (ctx: {
57
+ info: WorkflowInfo;
58
+ }) => boolean;
59
+ export {};
package/lib/flags.js CHANGED
@@ -11,9 +11,11 @@ exports.SdkFlags = {
11
11
  * of the timeout, similar to how `condition(fn, timeout)` works.
12
12
  * - Timers created using setTimeout can now be intercepted.
13
13
  *
14
- * @since Introduced in 1.10.2/1.11.0.
14
+ * @since Introduced in 1.10.2/1.11.0. However, due to an SDK bug, SDKs v1.11.0 and v1.11.1 were not
15
+ * properly writing back the flags to history, possibly resulting in NDE on replay. We therefore
16
+ * consider that a WFT emitted by Worker v1.11.0 or v1.11.1 to implicitly have this flag on.
15
17
  */
16
- NonCancellableScopesAreShieldedFromPropagation: defineFlag(1, true),
18
+ NonCancellableScopesAreShieldedFromPropagation: defineFlag(1, true, [buildIdSdkVersionMatches(/1\.11\.[01]/)]),
17
19
  /**
18
20
  * Prior to 1.11.0, when processing a Workflow activation, the SDK would execute `notifyHasPatch`
19
21
  * and `signalWorkflow` jobs in distinct phases, before other types of jobs. The primary reason
@@ -29,12 +31,15 @@ exports.SdkFlags = {
29
31
  * `signalWorkflow` jobs - and now `doUpdate` jobs as well - have been given a proper chance to
30
32
  * execute before the Workflow main function might completes.
31
33
  *
32
- * @since Introduced in 1.11.0. This change is not rollback-safe.
34
+ * @since Introduced in 1.11.0. This change is not rollback-safe. However, due to an SDK bug, SDKs
35
+ * v1.11.0 and v1.11.1 were not properly writing back the flags to history, possibly resulting
36
+ * in NDE on replay. We therefore consider that a WFT emitted by Worker v1.11.0 or v1.11.1
37
+ * to implicitely have this flag on.
33
38
  */
34
- ProcessWorkflowActivationJobsAsSingleBatch: defineFlag(2, true),
39
+ ProcessWorkflowActivationJobsAsSingleBatch: defineFlag(2, true, [buildIdSdkVersionMatches(/1\.11\.[01]/)]),
35
40
  };
36
- function defineFlag(id, def) {
37
- const flag = { id, default: def };
41
+ function defineFlag(id, def, alternativeConditions) {
42
+ const flag = { id, default: def, alternativeConditions };
38
43
  flagsRegistry.set(id, flag);
39
44
  return flag;
40
45
  }
@@ -43,4 +48,8 @@ function assertValidFlag(id) {
43
48
  throw new TypeError(`Unknown SDK flag: ${id}`);
44
49
  }
45
50
  exports.assertValidFlag = assertValidFlag;
51
+ function buildIdSdkVersionMatches(version) {
52
+ const regex = new RegExp(`^@temporalio/worker@(${version.source})[+]`);
53
+ return ({ info }) => info.currentBuildId != null && regex.test(info.currentBuildId);
54
+ }
46
55
  //# sourceMappingURL=flags.js.map
package/lib/flags.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":";;;AAKA,MAAM,aAAa,GAAyB,IAAI,GAAG,EAAE,CAAC;AAEzC,QAAA,QAAQ,GAAG;IACtB;;;;;;;;;OASG;IACH,8CAA8C,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;IAEnE;;;;;;;;;;;;;;;;OAgBG;IACH,0CAA0C,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC;CACvD,CAAC;AAEX,SAAS,UAAU,CAAC,EAAU,EAAE,GAAY;IAC1C,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAClC,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,EAAU;IACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAFD,0CAEC"}
1
+ {"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":";;;AAQA,MAAM,aAAa,GAAyB,IAAI,GAAG,EAAE,CAAC;AAEzC,QAAA,QAAQ,GAAG;IACtB;;;;;;;;;;;OAWG;IACH,8CAA8C,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;IAE9G;;;;;;;;;;;;;;;;;;;OAmBG;IACH,0CAA0C,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,wBAAwB,CAAC,aAAa,CAAC,CAAC,CAAC;CAClG,CAAC;AAEX,SAAS,UAAU,CAAC,EAAU,EAAE,GAAY,EAAE,qBAAwC;IACpF,MAAM,IAAI,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,qBAAqB,EAAE,CAAC;IACzD,aAAa,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5B,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,eAAe,CAAC,EAAU;IACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAFD,0CAEC;AAgBD,SAAS,wBAAwB,CAAC,OAAe;IAC/C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,wBAAwB,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC;IACvE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACtF,CAAC"}
@@ -377,8 +377,6 @@ export interface WorkflowCreateOptions {
377
377
  info: WorkflowInfo;
378
378
  randomnessSeed: number[];
379
379
  now: number;
380
- patches: string[];
381
- sdkFlags: number[];
382
380
  showStackTraceSources: boolean;
383
381
  }
384
382
  export interface WorkflowCreateOptionsInternal extends WorkflowCreateOptions {
@@ -195,7 +195,7 @@ export declare class Activator implements ActivationHandler {
195
195
  */
196
196
  readonly getTimeOfDay: () => bigint;
197
197
  readonly registeredActivityNames: Set<string>;
198
- constructor({ info, now, showStackTraceSources, sourceMap, getTimeOfDay, sdkFlags, randomnessSeed, patches, registeredActivityNames, }: WorkflowCreateOptionsInternal);
198
+ constructor({ info, now, showStackTraceSources, sourceMap, getTimeOfDay, randomnessSeed, registeredActivityNames, }: WorkflowCreateOptionsInternal);
199
199
  /**
200
200
  * May be invoked from outside the VM.
201
201
  */
@@ -213,7 +213,8 @@ export declare class Activator implements ActivationHandler {
213
213
  pushCommand(cmd: coresdk.workflow_commands.IWorkflowCommand, complete?: boolean): void;
214
214
  concludeActivation(): ActivationCompletion;
215
215
  startWorkflowNextHandler({ args }: WorkflowExecuteInput): Promise<any>;
216
- startWorkflow(activation: coresdk.workflow_activation.IStartWorkflow): void;
216
+ startWorkflow(activation: coresdk.workflow_activation.IInitializeWorkflow): void;
217
+ initializeWorkflow(activation: coresdk.workflow_activation.IInitializeWorkflow): void;
217
218
  cancelWorkflow(_activation: coresdk.workflow_activation.ICancelWorkflow): void;
218
219
  fireTimer(activation: coresdk.workflow_activation.IFireTimer): void;
219
220
  resolveActivity(activation: coresdk.workflow_activation.IResolveActivity): void;
@@ -241,8 +242,13 @@ export declare class Activator implements ActivationHandler {
241
242
  */
242
243
  addKnownFlags(flags: number[]): void;
243
244
  /**
244
- * Check if a flag is known to the Workflow Execution; if not, enable the flag if workflow
245
- * is not replaying and the flag is configured to be enabled by default.
245
+ * Check if an SDK Flag may be considered as enabled for the current Workflow Task.
246
+ *
247
+ * SDK flags play a role similar to the `patched()` API, but are meant for internal usage by the
248
+ * SDK itself. They make it possible for the SDK to evolve its behaviors over time, while still
249
+ * maintaining compatibility with Workflow histories produced by older SDKs, without causing
250
+ * determinism violations.
251
+ *
246
252
  * May be invoked from outside the VM.
247
253
  */
248
254
  hasFlag(flag: SdkFlag): boolean;
package/lib/internals.js CHANGED
@@ -42,7 +42,7 @@ var StartChildWorkflowExecutionFailedCause;
42
42
  * - Call user-defined functions, including any form of interceptor.
43
43
  */
44
44
  class Activator {
45
- constructor({ info, now, showStackTraceSources, sourceMap, getTimeOfDay, sdkFlags, randomnessSeed, patches, registeredActivityNames, }) {
45
+ constructor({ info, now, showStackTraceSources, sourceMap, getTimeOfDay, randomnessSeed, registeredActivityNames, }) {
46
46
  /**
47
47
  * Cache for modules - referenced in reusable-vm.ts
48
48
  */
@@ -229,10 +229,6 @@ class Activator {
229
229
  this.sourceMap = sourceMap;
230
230
  this.random = (0, alea_1.alea)(randomnessSeed);
231
231
  this.registeredActivityNames = registeredActivityNames;
232
- this.addKnownFlags(sdkFlags);
233
- for (const patchId of patches) {
234
- this.notifyHasPatch({ patchId });
235
- }
236
232
  }
237
233
  /**
238
234
  * May be invoked from outside the VM.
@@ -301,6 +297,19 @@ class Activator {
301
297
  args: (0, common_1.arrayFromPayloads)(this.payloadConverter, activation.arguments),
302
298
  })).then(this.completeWorkflow.bind(this), this.handleWorkflowFailure.bind(this)));
303
299
  }
300
+ initializeWorkflow(activation) {
301
+ const { continuedFailure, lastCompletionResult, memo, searchAttributes } = activation;
302
+ // Most things related to initialization have already been handled in the constructor
303
+ this.mutateWorkflowInfo((info) => ({
304
+ ...info,
305
+ searchAttributes: (0, common_1.mapFromPayloads)(common_1.searchAttributePayloadConverter, searchAttributes?.indexedFields) ?? {},
306
+ memo: (0, common_1.mapFromPayloads)(this.payloadConverter, memo?.fields),
307
+ lastResult: (0, common_1.fromPayloadsAtIndex)(this.payloadConverter, 0, lastCompletionResult?.payloads),
308
+ lastFailure: continuedFailure != null
309
+ ? this.failureConverter.failureToError(continuedFailure, this.payloadConverter)
310
+ : undefined,
311
+ }));
312
+ }
304
313
  cancelWorkflow(_activation) {
305
314
  this.cancelled = true;
306
315
  this.rootScope.cancel();
@@ -652,18 +661,46 @@ class Activator {
652
661
  }
653
662
  }
654
663
  /**
655
- * Check if a flag is known to the Workflow Execution; if not, enable the flag if workflow
656
- * is not replaying and the flag is configured to be enabled by default.
664
+ * Check if an SDK Flag may be considered as enabled for the current Workflow Task.
665
+ *
666
+ * SDK flags play a role similar to the `patched()` API, but are meant for internal usage by the
667
+ * SDK itself. They make it possible for the SDK to evolve its behaviors over time, while still
668
+ * maintaining compatibility with Workflow histories produced by older SDKs, without causing
669
+ * determinism violations.
670
+ *
657
671
  * May be invoked from outside the VM.
658
672
  */
659
673
  hasFlag(flag) {
660
- if (this.knownFlags.has(flag.id)) {
674
+ if (this.knownFlags.has(flag.id))
661
675
  return true;
662
- }
676
+ // If not replaying, enable the flag if it is configured to be enabled by default. Setting a
677
+ // flag's default to false allows progressive rollout of new feature flags, with the possibility
678
+ // of reverting back to a version of the SDK where the flag is supported but disabled by default.
679
+ // It is also useful for testing purpose.
663
680
  if (!this.info.unsafe.isReplaying && flag.default) {
664
681
  this.knownFlags.add(flag.id);
665
682
  return true;
666
683
  }
684
+ // When replaying, a flag is considered enabled if it was enabled during the original execution of
685
+ // that Workflow Task; this is normally determined by the presence of the flag ID in the corresponding
686
+ // WFT Completed's `sdkMetadata.langUsedFlags`.
687
+ //
688
+ // SDK Flag Alternate Condition provides an alternative way of determining whether a flag should
689
+ // be considered as enabled for the current WFT; e.g. by looking at the version of the SDK that
690
+ // emitted a WFT. The main use case for this is to retroactively turn on some flags for WFT emitted
691
+ // by previous SDKs that contained a bug. Alt Conditions should only be used as a last resort.
692
+ //
693
+ // Note that conditions are only evaluated while replaying. Also, alternate conditions will not
694
+ // cause the flag to be persisted to the "used flags" set, which means that further Workflow Tasks
695
+ // may not reflect this flag if the condition no longer holds. This is so to avoid incorrect
696
+ // behaviors in case where a Workflow Execution has gone through a newer SDK version then again
697
+ // through an older one.
698
+ if (this.info.unsafe.isReplaying && flag.alternativeConditions) {
699
+ for (const cond of flag.alternativeConditions) {
700
+ if (cond({ info: this.info }))
701
+ return true;
702
+ }
703
+ }
667
704
  return false;
668
705
  }
669
706
  removeFromCache() {
@@ -1 +1 @@
1
- {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,14 @@ export { PromiseStackStore } from './internals';
7
7
  * Sets required internal state and instantiates the workflow and interceptors.
8
8
  */
9
9
  export declare function initRuntime(options: WorkflowCreateOptionsInternal): void;
10
+ /**
11
+ * Initialize the workflow. Or to be exact, _complete_ initialization, as most part has been done in constructor).
12
+ */
13
+ export declare function initialize(initializeWorkflowJob: coresdk.workflow_activation.IInitializeWorkflow): void;
10
14
  /**
11
15
  * Run a chunk of activation jobs
12
16
  */
13
- export declare function activate(activation: coresdk.workflow_activation.IWorkflowActivation, batchIndex: number): void;
17
+ export declare function activate(activation: coresdk.workflow_activation.IWorkflowActivation, batchIndex?: number): void;
14
18
  /**
15
19
  * Conclude a single activation.
16
20
  * Should be called after processing all activation jobs and queued microtasks.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.dispose = exports.tryUnblockConditions = exports.concludeActivation = exports.activate = exports.initRuntime = void 0;
3
+ exports.dispose = exports.tryUnblockConditions = exports.concludeActivation = exports.activate = exports.initialize = exports.initRuntime = void 0;
4
4
  /**
5
5
  * Exported functions for the Worker to interact with the Workflow isolate
6
6
  *
@@ -99,15 +99,24 @@ function fixPrototypes(obj) {
99
99
  else
100
100
  return obj;
101
101
  }
102
+ /**
103
+ * Initialize the workflow. Or to be exact, _complete_ initialization, as most part has been done in constructor).
104
+ */
105
+ function initialize(initializeWorkflowJob) {
106
+ (0, global_attributes_1.getActivator)().initializeWorkflow(initializeWorkflowJob);
107
+ }
108
+ exports.initialize = initialize;
102
109
  /**
103
110
  * Run a chunk of activation jobs
104
111
  */
105
- function activate(activation, batchIndex) {
112
+ function activate(activation, batchIndex = 0) {
106
113
  const activator = (0, global_attributes_1.getActivator)();
107
114
  const intercept = (0, interceptors_1.composeInterceptors)(activator.interceptors.internals, 'activate', ({ activation }) => {
108
115
  // Cast from the interface to the class which has the `variant` attribute.
109
116
  // This is safe because we know that activation is a proto class.
110
117
  const jobs = activation.jobs;
118
+ // Initialization will have been handled already, but we might still need to start the workflow function
119
+ const startWorkflowJob = jobs[0].variant === 'initializeWorkflow' ? jobs.shift()?.initializeWorkflow : undefined;
111
120
  for (const job of jobs) {
112
121
  if (job.variant === undefined)
113
122
  throw new TypeError('Expected job.variant to be defined');
@@ -118,6 +127,21 @@ function activate(activation, batchIndex) {
118
127
  if (job.variant !== 'queryWorkflow')
119
128
  tryUnblockConditions();
120
129
  }
130
+ if (startWorkflowJob) {
131
+ const safeJobTypes = [
132
+ 'initializeWorkflow',
133
+ 'signalWorkflow',
134
+ 'doUpdate',
135
+ 'cancelWorkflow',
136
+ 'updateRandomSeed',
137
+ ];
138
+ if (jobs.some((job) => !safeJobTypes.includes(job.variant))) {
139
+ throw new TypeError('Received both initializeWorkflow and non-signal/non-update jobs in the same activation: ' +
140
+ JSON.stringify(jobs.map((job) => job.variant)));
141
+ }
142
+ activator.startWorkflow(startWorkflowJob);
143
+ tryUnblockConditions();
144
+ }
121
145
  });
122
146
  intercept({ activation, batchIndex });
123
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"worker-interface.js","sourceRoot":"","sources":["../src/worker-interface.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-interface.js","sourceRoot":"","sources":["../src/worker-interface.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,+CAAuD;AACvD,sEAA0E;AAE1E,6DAAsD;AACtD,iDAAsD;AAGtD,2CAAwC;AACxC,2DAAwE;AAKxE,MAAM,MAAM,GAAG,UAAiB,CAAC;AACjC,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC;AAErC;;;;GAIG;AACH,SAAgB,WAAW,CAAC,OAAsC;IAChE,MAAM,SAAS,GAAG,IAAI,qBAAS,CAAC;QAC9B,GAAG,OAAO;QACV,IAAI,EAAE,aAAa,CAAC;YAClB,GAAG,OAAO,CAAC,IAAI;YACf,MAAM,EAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,YAAY,CAAC,GAAG,EAAE;SAC1D,CAAC;KACH,CAAC,CAAC;IACH,+EAA+E;IAC/E,iHAAiH;IACjH,mCAAmC;IACnC,IAAA,uCAAmB,EAAC,SAAS,CAAC,CAAC;IAE/B,wCAAwC;IACxC,8DAA8D;IAC9D,MAAM,sBAAsB,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC,gBAAgB,CAAC;IAC/F,2DAA2D;IAC3D,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,SAAS,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;IACtD,CAAC;IACD,wCAAwC;IACxC,8DAA8D;IAC9D,MAAM,sBAAsB,GAAG,OAAO,CAAC,qCAAqC,CAAC,CAAC,gBAAgB,CAAC;IAC/F,2DAA2D;IAC3D,IAAI,sBAAsB,IAAI,IAAI,EAAE,CAAC;QACnC,SAAS,CAAC,gBAAgB,GAAG,sBAAsB,CAAC;IACtD,CAAC;IAED,MAAM,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAC,YAAY,CAAC;IACpE,IAAI,eAAe,KAAK,SAAS,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACtE,MAAM,IAAI,0BAAiB,CAAC,+CAA+C,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,YAAY,GAAG,kBAAkB,EAAE,CAAC;IAC1C,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAgC,GAAG,CAAC,YAAY,CAAC;QAC9D,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBAClC,MAAM,IAAI,SAAS,CAAC,+EAA+E,OAAO,GAAG,CAAC,CAAC;YACjH,CAAC;YACD,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC;YAC/B,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC;YACrE,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC;YACvE,SAAS,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,MAAM,iBAAiB,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC;IAEzC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE,CAAC;QACrC,SAAS,CAAC,QAAQ,GAAG,UAAU,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;QACnD,SAAS,CAAC,QAAQ,GAAG,iBAAiB,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GACX,UAAU,KAAK,SAAS;YACtB,CAAC,CAAC,qDAAqD;YACvD,CAAC,CAAC,kCAAkC,OAAO,UAAU,GAAG,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,0CAA0C,SAAS,CAAC,IAAI,CAAC,YAAY,MAAM,OAAO,EAAE,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AA9DD,kCA8DC;AAED;;;;;GAKG;AACH,SAAS,aAAa,CAAI,GAAM;IAC9B,IAAI,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC3C,QAAQ,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;YACtD,KAAK,OAAO;gBACV,OAAO,KAAK,CAAC,IAAI,CAAE,GAAsB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAM,CAAC;YACrE,KAAK,MAAM;gBACT,OAAO,IAAI,IAAI,CAAC,GAAsB,CAAM,CAAC;YAC/C;gBACE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAM,CAAC;QAC9G,CAAC;IACH,CAAC;;QAAM,OAAO,GAAG,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,qBAAsE;IAC/F,IAAA,gCAAY,GAAE,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAC3D,CAAC;AAFD,gCAEC;AAED;;GAEG;AACH,SAAgB,QAAQ,CAAC,UAA2D,EAAE,UAAU,GAAG,CAAC;IAClG,MAAM,SAAS,GAAG,IAAA,gCAAY,GAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAA,kCAAmB,EAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACrG,0EAA0E;QAC1E,iEAAiE;QACjE,MAAM,IAAI,GAAG,UAAU,CAAC,IAA2D,CAAC;QAEpF,wGAAwG;QACxG,MAAM,gBAAgB,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,oBAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS;gBAAE,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;YAEzF,MAAM,OAAO,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACjC,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,SAAS,CAAC,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC;YAE3E,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAc,CAAC,8BAA8B,CAAC,CAAC;YAEtE,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe;gBAAE,oBAAoB,EAAE,CAAC;QAC9D,CAAC;QAED,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,YAAY,GAAmE;gBACnF,oBAAoB;gBACpB,gBAAgB;gBAChB,UAAU;gBACV,gBAAgB;gBAChB,kBAAkB;aACnB,CAAC;YACF,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;gBAC5D,MAAM,IAAI,SAAS,CACjB,0FAA0F;oBACxF,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CACjD,CAAC;YACJ,CAAC;YAED,SAAS,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC1C,oBAAoB,EAAE,CAAC;QACzB,CAAC;IACH,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;AACxC,CAAC;AAzCD,4BAyCC;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB;IAChC,MAAM,SAAS,GAAG,IAAA,gCAAY,GAAE,CAAC;IACjC,SAAS,CAAC,qBAAqB,EAAE,CAAC;IAClC,MAAM,SAAS,GAAG,IAAA,kCAAmB,EAAC,SAAS,CAAC,YAAY,CAAC,SAAS,EAAE,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IAChH,MAAM,oBAAoB,GAAG,SAAS,CAAC,kBAAkB,EAAE,CAAC;IAC5D,MAAM,EAAE,QAAQ,EAAE,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,oBAAoB,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC5E,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxB,SAAS,CAAC,wBAAwB,EAAE,CAAC;IACvC,CAAC;IAED,OAAO;QACL,KAAK,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;QAC3B,UAAU,EAAE,EAAE,GAAG,oBAAoB,EAAE,QAAQ,EAAE;KAClD,CAAC;AACJ,CAAC;AAdD,gDAcC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC;IACrB,SAAS,CAAC;QACR,MAAM,aAAa,GAAG,YAAY,CAAC;QACnC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAA,gCAAY,GAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,CAAC;YACrE,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC;gBACd,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,YAAY,EAAE,CAAC;gBACf,qDAAqD;gBACrD,IAAA,gCAAY,GAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QACD,IAAI,aAAa,KAAK,YAAY,EAAE,CAAC;YACnC,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAjBD,oDAiBC;AAED,SAAgB,OAAO;IACrB,MAAM,OAAO,GAAG,IAAA,kCAAmB,EAAC,IAAA,gCAAY,GAAE,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/F,IAAA,mCAAc,GAAE,CAAC;QACjB,IAAA,mCAAoB,GAAE,CAAC;IACzB,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;AACd,CAAC;AAND,0BAMC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@temporalio/workflow",
3
- "version": "1.11.0",
3
+ "version": "1.11.2",
4
4
  "description": "Temporal.io SDK Workflow sub-package",
5
5
  "keywords": [
6
6
  "temporal",
@@ -22,8 +22,8 @@
22
22
  "types": "lib/index.d.ts",
23
23
  "scripts": {},
24
24
  "dependencies": {
25
- "@temporalio/common": "1.11.0",
26
- "@temporalio/proto": "1.11.0"
25
+ "@temporalio/common": "1.11.2",
26
+ "@temporalio/proto": "1.11.2"
27
27
  },
28
28
  "devDependencies": {
29
29
  "source-map": "^0.7.4"
@@ -35,5 +35,5 @@
35
35
  "src",
36
36
  "lib"
37
37
  ],
38
- "gitHead": "3d7dd521cadc2ebcc4989360eeb0bedacd4533ab"
38
+ "gitHead": "e78b4f71236ccd3227e674bad68439e961fec639"
39
39
  }
package/src/flags.ts CHANGED
@@ -1,6 +1,9 @@
1
+ import type { WorkflowInfo } from './interfaces';
2
+
1
3
  export type SdkFlag = {
2
4
  get id(): number;
3
5
  get default(): boolean;
6
+ get alternativeConditions(): AltConditionFn[] | undefined;
4
7
  };
5
8
 
6
9
  const flagsRegistry: Map<number, SdkFlag> = new Map();
@@ -14,9 +17,11 @@ export const SdkFlags = {
14
17
  * of the timeout, similar to how `condition(fn, timeout)` works.
15
18
  * - Timers created using setTimeout can now be intercepted.
16
19
  *
17
- * @since Introduced in 1.10.2/1.11.0.
20
+ * @since Introduced in 1.10.2/1.11.0. However, due to an SDK bug, SDKs v1.11.0 and v1.11.1 were not
21
+ * properly writing back the flags to history, possibly resulting in NDE on replay. We therefore
22
+ * consider that a WFT emitted by Worker v1.11.0 or v1.11.1 to implicitly have this flag on.
18
23
  */
19
- NonCancellableScopesAreShieldedFromPropagation: defineFlag(1, true),
24
+ NonCancellableScopesAreShieldedFromPropagation: defineFlag(1, true, [buildIdSdkVersionMatches(/1\.11\.[01]/)]),
20
25
 
21
26
  /**
22
27
  * Prior to 1.11.0, when processing a Workflow activation, the SDK would execute `notifyHasPatch`
@@ -33,13 +38,16 @@ export const SdkFlags = {
33
38
  * `signalWorkflow` jobs - and now `doUpdate` jobs as well - have been given a proper chance to
34
39
  * execute before the Workflow main function might completes.
35
40
  *
36
- * @since Introduced in 1.11.0. This change is not rollback-safe.
41
+ * @since Introduced in 1.11.0. This change is not rollback-safe. However, due to an SDK bug, SDKs
42
+ * v1.11.0 and v1.11.1 were not properly writing back the flags to history, possibly resulting
43
+ * in NDE on replay. We therefore consider that a WFT emitted by Worker v1.11.0 or v1.11.1
44
+ * to implicitely have this flag on.
37
45
  */
38
- ProcessWorkflowActivationJobsAsSingleBatch: defineFlag(2, true),
46
+ ProcessWorkflowActivationJobsAsSingleBatch: defineFlag(2, true, [buildIdSdkVersionMatches(/1\.11\.[01]/)]),
39
47
  } as const;
40
48
 
41
- function defineFlag(id: number, def: boolean): SdkFlag {
42
- const flag = { id, default: def };
49
+ function defineFlag(id: number, def: boolean, alternativeConditions?: AltConditionFn[]): SdkFlag {
50
+ const flag = { id, default: def, alternativeConditions };
43
51
  flagsRegistry.set(id, flag);
44
52
  return flag;
45
53
  }
@@ -47,3 +55,22 @@ function defineFlag(id: number, def: boolean): SdkFlag {
47
55
  export function assertValidFlag(id: number): void {
48
56
  if (!flagsRegistry.has(id)) throw new TypeError(`Unknown SDK flag: ${id}`);
49
57
  }
58
+
59
+ /**
60
+ * An SDK Flag Alternate Condition provides an alternative way of determining whether a flag
61
+ * should be considered as enabled for the current WFT; e.g. by looking at the version of the SDK
62
+ * that emitted a WFT. The main use case for this is to retroactively turn on some flags for WFT
63
+ * emitted by previous SDKs that contained a bug.
64
+ *
65
+ * Note that conditions are only evaluated while replaying, and only if the corresponing flag is
66
+ * not already set. Also, alternate conditions will not cause the flag to be persisted to the
67
+ * "used flags" set, which means that further Workflow Tasks may not reflect this flag if the
68
+ * condition no longer holds. This is so to avoid incorrect behaviors in case where a Workflow
69
+ * Execution has gone through a newer SDK version then again through an older one.
70
+ */
71
+ type AltConditionFn = (ctx: { info: WorkflowInfo }) => boolean;
72
+
73
+ function buildIdSdkVersionMatches(version: RegExp): AltConditionFn {
74
+ const regex = new RegExp(`^@temporalio/worker@(${version.source})[+]`);
75
+ return ({ info }) => info.currentBuildId != null && regex.test(info.currentBuildId);
76
+ }
package/src/interfaces.ts CHANGED
@@ -452,8 +452,6 @@ export interface WorkflowCreateOptions {
452
452
  info: WorkflowInfo;
453
453
  randomnessSeed: number[];
454
454
  now: number;
455
- patches: string[];
456
- sdkFlags: number[];
457
455
  showStackTraceSources: boolean;
458
456
  }
459
457
 
package/src/internals.ts CHANGED
@@ -18,6 +18,10 @@ import {
18
18
  ApplicationFailure,
19
19
  WorkflowUpdateType,
20
20
  WorkflowUpdateValidatorType,
21
+ mapFromPayloads,
22
+ searchAttributePayloadConverter,
23
+ fromPayloadsAtIndex,
24
+ SearchAttributes,
21
25
  } from '@temporalio/common';
22
26
  import { composeInterceptors } from '@temporalio/common/lib/interceptors';
23
27
  import { checkExtends } from '@temporalio/common/lib/type-helpers';
@@ -365,9 +369,7 @@ export class Activator implements ActivationHandler {
365
369
  showStackTraceSources,
366
370
  sourceMap,
367
371
  getTimeOfDay,
368
- sdkFlags,
369
372
  randomnessSeed,
370
- patches,
371
373
  registeredActivityNames,
372
374
  }: WorkflowCreateOptionsInternal) {
373
375
  this.getTimeOfDay = getTimeOfDay;
@@ -377,11 +379,6 @@ export class Activator implements ActivationHandler {
377
379
  this.sourceMap = sourceMap;
378
380
  this.random = alea(randomnessSeed);
379
381
  this.registeredActivityNames = registeredActivityNames;
380
-
381
- this.addKnownFlags(sdkFlags);
382
- for (const patchId of patches) {
383
- this.notifyHasPatch({ patchId });
384
- }
385
382
  }
386
383
 
387
384
  /**
@@ -449,7 +446,7 @@ export class Activator implements ActivationHandler {
449
446
  return await workflow(...args);
450
447
  }
451
448
 
452
- public startWorkflow(activation: coresdk.workflow_activation.IStartWorkflow): void {
449
+ public startWorkflow(activation: coresdk.workflow_activation.IInitializeWorkflow): void {
453
450
  const execute = composeInterceptors(this.interceptors.inbound, 'execute', this.startWorkflowNextHandler.bind(this));
454
451
 
455
452
  untrackPromise(
@@ -462,6 +459,23 @@ export class Activator implements ActivationHandler {
462
459
  );
463
460
  }
464
461
 
462
+ public initializeWorkflow(activation: coresdk.workflow_activation.IInitializeWorkflow): void {
463
+ const { continuedFailure, lastCompletionResult, memo, searchAttributes } = activation;
464
+
465
+ // Most things related to initialization have already been handled in the constructor
466
+ this.mutateWorkflowInfo((info) => ({
467
+ ...info,
468
+ searchAttributes:
469
+ (mapFromPayloads(searchAttributePayloadConverter, searchAttributes?.indexedFields) as SearchAttributes) ?? {},
470
+ memo: mapFromPayloads(this.payloadConverter, memo?.fields),
471
+ lastResult: fromPayloadsAtIndex(this.payloadConverter, 0, lastCompletionResult?.payloads),
472
+ lastFailure:
473
+ continuedFailure != null
474
+ ? this.failureConverter.failureToError(continuedFailure, this.payloadConverter)
475
+ : undefined,
476
+ }));
477
+ }
478
+
465
479
  public cancelWorkflow(_activation: coresdk.workflow_activation.ICancelWorkflow): void {
466
480
  this.cancelled = true;
467
481
  this.rootScope.cancel();
@@ -865,18 +879,47 @@ export class Activator implements ActivationHandler {
865
879
  }
866
880
 
867
881
  /**
868
- * Check if a flag is known to the Workflow Execution; if not, enable the flag if workflow
869
- * is not replaying and the flag is configured to be enabled by default.
882
+ * Check if an SDK Flag may be considered as enabled for the current Workflow Task.
883
+ *
884
+ * SDK flags play a role similar to the `patched()` API, but are meant for internal usage by the
885
+ * SDK itself. They make it possible for the SDK to evolve its behaviors over time, while still
886
+ * maintaining compatibility with Workflow histories produced by older SDKs, without causing
887
+ * determinism violations.
888
+ *
870
889
  * May be invoked from outside the VM.
871
890
  */
872
891
  public hasFlag(flag: SdkFlag): boolean {
873
- if (this.knownFlags.has(flag.id)) {
874
- return true;
875
- }
892
+ if (this.knownFlags.has(flag.id)) return true;
893
+
894
+ // If not replaying, enable the flag if it is configured to be enabled by default. Setting a
895
+ // flag's default to false allows progressive rollout of new feature flags, with the possibility
896
+ // of reverting back to a version of the SDK where the flag is supported but disabled by default.
897
+ // It is also useful for testing purpose.
876
898
  if (!this.info.unsafe.isReplaying && flag.default) {
877
899
  this.knownFlags.add(flag.id);
878
900
  return true;
879
901
  }
902
+
903
+ // When replaying, a flag is considered enabled if it was enabled during the original execution of
904
+ // that Workflow Task; this is normally determined by the presence of the flag ID in the corresponding
905
+ // WFT Completed's `sdkMetadata.langUsedFlags`.
906
+ //
907
+ // SDK Flag Alternate Condition provides an alternative way of determining whether a flag should
908
+ // be considered as enabled for the current WFT; e.g. by looking at the version of the SDK that
909
+ // emitted a WFT. The main use case for this is to retroactively turn on some flags for WFT emitted
910
+ // by previous SDKs that contained a bug. Alt Conditions should only be used as a last resort.
911
+ //
912
+ // Note that conditions are only evaluated while replaying. Also, alternate conditions will not
913
+ // cause the flag to be persisted to the "used flags" set, which means that further Workflow Tasks
914
+ // may not reflect this flag if the condition no longer holds. This is so to avoid incorrect
915
+ // behaviors in case where a Workflow Execution has gone through a newer SDK version then again
916
+ // through an older one.
917
+ if (this.info.unsafe.isReplaying && flag.alternativeConditions) {
918
+ for (const cond of flag.alternativeConditions) {
919
+ if (cond({ info: this.info })) return true;
920
+ }
921
+ }
922
+
880
923
  return false;
881
924
  }
882
925
 
@@ -107,16 +107,26 @@ function fixPrototypes<X>(obj: X): X {
107
107
  } else return obj;
108
108
  }
109
109
 
110
+ /**
111
+ * Initialize the workflow. Or to be exact, _complete_ initialization, as most part has been done in constructor).
112
+ */
113
+ export function initialize(initializeWorkflowJob: coresdk.workflow_activation.IInitializeWorkflow): void {
114
+ getActivator().initializeWorkflow(initializeWorkflowJob);
115
+ }
116
+
110
117
  /**
111
118
  * Run a chunk of activation jobs
112
119
  */
113
- export function activate(activation: coresdk.workflow_activation.IWorkflowActivation, batchIndex: number): void {
120
+ export function activate(activation: coresdk.workflow_activation.IWorkflowActivation, batchIndex = 0): void {
114
121
  const activator = getActivator();
115
122
  const intercept = composeInterceptors(activator.interceptors.internals, 'activate', ({ activation }) => {
116
123
  // Cast from the interface to the class which has the `variant` attribute.
117
124
  // This is safe because we know that activation is a proto class.
118
125
  const jobs = activation.jobs as coresdk.workflow_activation.WorkflowActivationJob[];
119
126
 
127
+ // Initialization will have been handled already, but we might still need to start the workflow function
128
+ const startWorkflowJob = jobs[0].variant === 'initializeWorkflow' ? jobs.shift()?.initializeWorkflow : undefined;
129
+
120
130
  for (const job of jobs) {
121
131
  if (job.variant === undefined) throw new TypeError('Expected job.variant to be defined');
122
132
 
@@ -127,6 +137,25 @@ export function activate(activation: coresdk.workflow_activation.IWorkflowActiva
127
137
 
128
138
  if (job.variant !== 'queryWorkflow') tryUnblockConditions();
129
139
  }
140
+
141
+ if (startWorkflowJob) {
142
+ const safeJobTypes: coresdk.workflow_activation.WorkflowActivationJob['variant'][] = [
143
+ 'initializeWorkflow',
144
+ 'signalWorkflow',
145
+ 'doUpdate',
146
+ 'cancelWorkflow',
147
+ 'updateRandomSeed',
148
+ ];
149
+ if (jobs.some((job) => !safeJobTypes.includes(job.variant))) {
150
+ throw new TypeError(
151
+ 'Received both initializeWorkflow and non-signal/non-update jobs in the same activation: ' +
152
+ JSON.stringify(jobs.map((job) => job.variant))
153
+ );
154
+ }
155
+
156
+ activator.startWorkflow(startWorkflowJob);
157
+ tryUnblockConditions();
158
+ }
130
159
  });
131
160
  intercept({ activation, batchIndex });
132
161
  }