@pikku/redis 0.12.12 → 0.12.13

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 CHANGED
@@ -1,3 +1,84 @@
1
+ ## 0.12.13
2
+
3
+ ### Patch Changes
4
+
5
+ - 8a2c993: Make the workflow service cheaper to run, and fix two ways it lost state.
6
+
7
+ The SQL workflow tables had no indexes at all, so every step read, every
8
+ history walk and every orchestrator tick was a sequential scan; five indexes
9
+ now cover the columns the engine actually queries by. A replay used to ask for
10
+ each step's row individually — O(N) reads per replay, O(N^2) over a run — and
11
+ now takes one read of the run's steps and serves the walk from it. A step
12
+ transition wrote the step row and its history row as two separate statements,
13
+ so a crash between them left a step saying `succeeded` whose history still said
14
+ `running`; both halves are now one transaction, and the history row is found by
15
+ attempt number rather than by sorting on `created_at`, which two attempts can
16
+ share. Resolving a dynamic workflow read and parsed every AI-generated workflow
17
+ in the deployment to `.find()` one by name; it is a point lookup now.
18
+
19
+ Waiting on a run no longer polls at a fixed interval. `pollIntervalMs` became a
20
+ ceiling rather than a cadence: polling starts at 10ms and widens towards it, so
21
+ a workflow that finishes in milliseconds is no longer held for a full second,
22
+ and a long-running one is not read at full rate for its whole life.
23
+
24
+ Two backend-specific defects: Redis kept a run's state as one JSON blob and
25
+ read-modified-wrote it, so parallel branches setting different variables
26
+ overwrote each other — state is a field per variable now, with the old blob
27
+ still read underneath so runs in flight keep what they had. Mongo's
28
+ `setStepScheduled` never wrote history, leaving a queued step reading as never
29
+ dispatched.
30
+
31
+ Also: dispatch no longer JSON round-trips every step payload before handing it
32
+ to a queue that serialises it anyway — the in-process dev queue, which is the
33
+ only one that was relying on it, does it itself now.
34
+
35
+ Two more defects. A transition whose step had no live attempt wrote its status
36
+ to the step row and silently nothing to history — the exact divergence the
37
+ transaction exists to prevent — and now repairs the step and writes the
38
+ missing row. And resolving a dynamic workflow was non-deterministic on all
39
+ three backends: a name can hold several active versions, and none of them
40
+ ordered the candidates, so which one ran could change between two calls
41
+ reading identical data. The newest version wins, with the graph hash breaking
42
+ a tie.
43
+
44
+ The two attempt columns and the five indexes are declared in the workflow
45
+ schema, so a fresh database gets them at boot. An existing one gets them from
46
+ a migration — `pikku db generate` writes the declaration down — rather than
47
+ from DDL issued at boot.
48
+
49
+ - a261006: **Breaking:** removed dynamic workflows — runtime-defined workflow graphs stored in the database and resolved by name instead of by codegen.
50
+
51
+ The feature was already half-gone. Its authoring surface (`createAgentWorkflow`, `saveAgentWorkflow`, `listAgentWorkflows`, `executeAgentWorkflow`, and the AI-agent instruction builder) was deleted in April 2026 along with its entire e2e suite, and nothing has written a dynamic workflow since. What remained could not execute one either: `executeAgentWorkflow` gated on `pikkuState('workflows', 'meta')`, which only codegen ever populates, so a graph that existed solely in the database was never findable. The two backend families had also drifted onto different `source` sentinels (`'ai-agent'` vs `'dynamic-workflow'`), and the two Redis implementations disagreed on key escaping — so at least one of them matched nothing. Rather than keep shipping plumbing for a path no caller could complete, it is removed until it can be reintroduced deliberately.
52
+
53
+ Removed:
54
+ - `getAIGeneratedWorkflows` from `WorkflowService` and `WorkflowRunService`, and from every backend (in-memory, Redis, MongoDB, Kysely, and the Cloudflare Durable Object service and client — the last two were already a `return []` stub and a rejection).
55
+ - The database-lookup fallbacks in `startWorkflow` and `runWorkflowJob` that resolved a workflow name against stored graphs when static meta had no match.
56
+ - `'dynamic-workflow'` from the `WorkflowRuntimeMeta['source']` union.
57
+ - `validateWorkflowWiring` and `computeEntryNodeIds` from `@pikku/core/workflow`. These validated AI-authored graphs and had no callers in core; the inspector keeps its own private entry-node computation for static graph wiring, which is unaffected.
58
+ - The `workflow-created` AI stream event and its AG-UI `pikku:workflow-created` custom event. Its only emitter went with the April deletion, so it could never fire.
59
+ - The console's `console:getAIWorkflows` RPC, the `useAIWorkflows` hook, the "Dynamic" workflow filter and badge, and the trigger-schema scraper that derived an input form from a stored graph's `$ref` bindings.
60
+
61
+ Kept, because static graph workflows depend on them and this is not a change to versioning:
62
+ - `upsertWorkflowVersion`, `getWorkflowVersion`, `updateWorkflowVersionStatus`, and the `workflowVersions` storage in every backend. These back version-mismatch replay: when a deployed graph's hash changes, in-flight runs continue against the exact graph they started on. No schema migration is needed — the table, its columns, and its `(workflowName, graphHash)` upsert key are unchanged.
63
+ - `generateMermaidDiagram`, which renders any workflow graph and is not specific to dynamic ones.
64
+
65
+ Static `pikkuWorkflowGraph` and DSL workflows are entirely unaffected: they resolve from codegen'd meta, which was always the only path that worked.
66
+
67
+ To revive this post-MVP, the deleted authoring code is recoverable in full — its prompt engineering (a compact tool table upfront, full schemas with flattened dotted output paths returned only after a validation failure) is worth reading before rewriting:
68
+
69
+ ```
70
+ git show f52f3308b^:packages/core/src/wirings/ai-agent/agent-dynamic-workflow.ts
71
+ git show f52f3308b^:packages/core/src/wirings/workflow/graph/graph-validation.ts
72
+ git show f52f3308b --stat # the April removal, incl. the three e2e feature files
73
+ ```
74
+
75
+ Note that reviving it needs more than restoring those files: the queued-step path (`executeWorkflowStep`), `onError` compensation, and sub-workflow resolution all read static meta only and would need a fallback for a graph that exists solely in the database.
76
+
77
+ - Updated dependencies [8a2c993]
78
+ - Updated dependencies [a261006]
79
+ - Updated dependencies [09973b9]
80
+ - @pikku/core@0.12.71
81
+
1
82
  ## 0.12.12
2
83
 
3
84
  ### Patch Changes
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 - present Yasser Fadl and Pikku contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,201 +1,40 @@
1
- # @pikku-workflows/redis
1
+ # @pikku/redis
2
2
 
3
- Redis-based implementation of WorkflowStateService for Pikku Workflows.
3
+ Redis-backed implementations of the Pikku service interfaces — workflow state,
4
+ agent runs, secrets, sessions, and the channel and event-hub stores.
4
5
 
5
- ## Features
6
+ Uses `ioredis`. Distributed run locking is handled with `SET NX` plus a TTL, so
7
+ concurrent workers can safely share a run.
6
8
 
7
- - **RedisWorkflowService**: Redis implementation of WorkflowStateService for persistent workflow execution state
8
- - **Fast in-memory storage**: Leverage Redis for high-performance workflow state management
9
- - **Configurable key prefix**: Use custom key prefixes for namespace isolation (default: 'workflows')
10
- - **Distributed locking**: Uses Redis SET NX with TTL for concurrent run safety
11
- - **Type-safe**: Full TypeScript support
12
-
13
- ## Installation
9
+ ## Install
14
10
 
15
11
  ```bash
16
- npm install @pikku-workflows/redis ioredis
17
- # or
18
- yarn add @pikku-workflows/redis ioredis
12
+ npm install @pikku/redis ioredis
19
13
  ```
20
14
 
21
15
  ## Usage
22
16
 
23
- ### Basic Setup (Remote Mode)
24
-
25
17
  ```typescript
26
18
  import Redis from 'ioredis'
27
- import { RedisWorkflowService } from '@pikku-workflows/redis'
28
- import { BullQueueService } from '@pikku/queue-bullmq'
29
-
30
- // Create Redis connection
31
- const redis = new Redis({
32
- host: 'localhost',
33
- port: 6379,
34
- })
35
-
36
- // Create queue service for remote mode
37
- const queueService = new BullQueueService('redis://localhost:6379')
19
+ import { RedisWorkflowService } from '@pikku/redis'
38
20
 
39
- // Create workflow state service
40
21
  const workflowService = new RedisWorkflowService(
41
- redis,
22
+ new Redis('redis://localhost:6379'),
42
23
  queueService,
43
24
  'workflows'
44
25
  )
45
26
 
46
- // Initialize (verifies connection)
47
- await workflowService.init()
48
- ```
49
-
50
- ### Inline Mode Setup (Testing)
51
-
52
- For testing, pass `undefined` as the queue service to enable inline mode:
53
-
54
- ```typescript
55
- // Create workflow state service without queue = inline mode
56
- const workflowService = new RedisWorkflowService(
57
- redis,
58
- undefined, // No queue service = inline mode
59
- 'workflows'
60
- )
61
-
62
- await workflowService.init()
63
- ```
64
-
65
- ### Custom Key Prefix
66
-
67
- ```typescript
68
- // Use a custom key prefix
69
- const workflowService = new RedisWorkflowService(
70
- redis,
71
- queueService,
72
- 'myapp_workflows'
73
- )
74
- await workflowService.init()
75
- ```
76
-
77
- ### With Connection String
78
-
79
- ```typescript
80
- // Create service with Redis connection string
81
- const workflowService = new RedisWorkflowService(
82
- 'redis://localhost:6379',
83
- queueService
84
- )
85
27
  await workflowService.init()
86
28
  ```
87
29
 
88
- ### With Existing Connection
89
-
90
- ```typescript
91
- // Share connection with other services
92
- const redis = new Redis('redis://localhost:6379')
93
- const workflowService = new RedisWorkflowService(redis, queueService)
94
- // Connection is shared, won't be closed by workflowService.close()
95
- ```
96
-
97
- ### With Config (Owned Connection)
98
-
99
- ```typescript
100
- // Let service create its own connection
101
- const workflowService = new RedisWorkflowService(
102
- { host, port, password },
103
- queueService
104
- )
105
- await workflowService.init()
106
- // Later...
107
- await workflowService.close() // Closes the connection
108
- ```
109
-
110
- ## Redis Data Structure
111
-
112
- The service uses the following Redis data structures:
113
-
114
- ### Workflow Runs
115
-
116
- - **Hash**: `{keyPrefix}:run:{runId}` - Stores workflow run data
117
- - `id`: Run ID
118
- - `workflow`: Workflow name
119
- - `status`: Current status ('running', 'completed', 'failed', 'cancelled')
120
- - `input`: JSON string of input data
121
- - `output`: JSON string of output data (if completed)
122
- - `error`: JSON string of error (if failed)
123
- - `createdAt`: Timestamp
124
- - `updatedAt`: Timestamp
125
-
126
- ### Workflow Steps
127
-
128
- - **Hash**: `{keyPrefix}:step:{runId}:{stepName}` - Stores step execution data
129
- - `stepId`: Unique step ID
130
- - `status`: Step status ('pending', 'scheduled', 'succeeded', 'failed')
131
- - `rpcName`: RPC function name (if RPC step)
132
- - `data`: JSON string of step input data
133
- - `result`: JSON string of result (if succeeded)
134
- - `error`: JSON string of error (if failed)
135
- - `retries`: Number of retry attempts allowed
136
- - `retryDelay`: Delay between retries
137
- - `attemptCount`: Current attempt number
138
- - `createdAt`: Timestamp
139
- - `updatedAt`: Timestamp
140
-
141
- ### Workflow Step History
142
-
143
- - **List**: `{keyPrefix}:history:{runId}` - Stores all step attempts in chronological order
144
- - Each entry contains complete step state for that attempt
145
-
146
- ### Locking
147
-
148
- - **String**: `{keyPrefix}:lock:{runId}` - Distributed lock with TTL (30 seconds)
149
-
150
- ## API
151
-
152
- ### RedisWorkflowService
153
-
154
- Extends `WorkflowStateService` from `@pikku/core/workflow`.
155
-
156
- #### Constructor
157
-
158
- ```typescript
159
- new RedisWorkflowService(
160
- connectionOrConfig: Redis | RedisOptions | string,
161
- queue?: any,
162
- keyPrefix?: string
163
- )
164
- ```
165
-
166
- - `connectionOrConfig`: ioredis Redis instance, RedisOptions config, or connection string
167
- - `queue`: Optional queue service for remote workflow execution
168
- - `keyPrefix`: Redis key prefix (default: 'workflows')
169
-
170
- #### Methods
171
-
172
- - `init()`: Initialize the service (verifies Redis connection)
173
- - `createRun(workflowName, input)`: Create a new workflow run
174
- - `getRun(id)`: Get workflow run by ID
175
- - `getRunHistory(runId)`: Get all step attempts in chronological order
176
- - `updateRunStatus(id, status, output?, error?)`: Update run status
177
- - `insertStepState(runId, stepName, rpcName, data, stepOptions?)`: Insert initial step state
178
- - `getStepState(runId, stepName)`: Get step state with attempt count
179
- - `setStepScheduled(stepId)`: Mark step as scheduled
180
- - `setStepRunning(stepId)`: Mark step as running
181
- - `setStepResult(stepId, result)`: Store step result and mark as succeeded
182
- - `setStepError(stepId, error)`: Store step error and mark as failed
183
- - `createRetryAttempt(failedStepId)`: Create a new retry attempt for a failed step
184
- - `withRunLock(id, fn)`: Execute function with distributed lock
185
- - `close()`: Close Redis connection (if owned)
186
-
187
- ## Documentation
188
-
189
- For complete workflow documentation, see [pikku.dev/docs/workflows](https://pikku.dev/docs/workflows)
190
-
191
- ## Locking Behavior
30
+ The first argument also accepts a connection string or an `ioredis` options
31
+ object, in which case the service owns the connection and `close()` will end
32
+ it. Omit `queueService` to run workflows inline, which is useful in tests. The
33
+ third argument is the key prefix, defaulting to `workflows`.
192
34
 
193
- The `withRunLock` method uses Redis SET NX with a 30-second TTL for distributed locking:
35
+ ## Docs
194
36
 
195
- - Retries up to 10 times with 100ms delay between attempts
196
- - Automatically releases lock after function execution
197
- - Uses Lua script to ensure only the lock owner can release it
198
- - Lock automatically expires after 30 seconds if not released
37
+ https://pikku.dev/docs
199
38
 
200
39
  ## License
201
40
 
@@ -28,11 +28,6 @@ export declare class RedisWorkflowRunService implements WorkflowRunService {
28
28
  graph: any;
29
29
  source: string;
30
30
  } | null>;
31
- getAIGeneratedWorkflows(agentName?: string): Promise<Array<{
32
- workflowName: string;
33
- graphHash: string;
34
- graph: any;
35
- }>>;
36
31
  deleteRun(id: string): Promise<boolean>;
37
32
  private mapRunData;
38
33
  private extractStepName;
@@ -118,34 +118,6 @@ export class RedisWorkflowRunService {
118
118
  source: data.source,
119
119
  };
120
120
  }
121
- async getAIGeneratedWorkflows(agentName) {
122
- const pattern = agentName
123
- ? `${this.keyPrefix}:version:ai:${agentName}:*`
124
- : `${this.keyPrefix}:version:ai:*`;
125
- const results = [];
126
- let cursor = '0';
127
- do {
128
- const [nextCursor, keys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
129
- cursor = nextCursor;
130
- for (const key of keys) {
131
- const data = await this.redis.hgetall(key);
132
- if (data.source === 'ai-agent' &&
133
- data.graph &&
134
- data.status === 'active') {
135
- const workflowName = data.workflowName;
136
- const graphHash = data.graphHash;
137
- if (!workflowName || !graphHash)
138
- continue;
139
- results.push({
140
- workflowName,
141
- graphHash,
142
- graph: JSON.parse(data.graph),
143
- });
144
- }
145
- }
146
- } while (cursor !== '0');
147
- return results;
148
- }
149
121
  async deleteRun(id) {
150
122
  const exists = await this.redis.exists(this.runKey(id));
151
123
  if (!exists)
@@ -1 +1 @@
1
- {"version":3,"file":"redis-workflow-run-service.js","sourceRoot":"","sources":["../../src/redis-workflow-run-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-workflow-run-service.js","sourceRoot":"","sources":["../../src/redis-workflow-run-service.ts"],"names":[],"mappings":"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"}
@@ -51,6 +51,7 @@ export declare class RedisWorkflowService extends PikkuWorkflowService {
51
51
  }>>;
52
52
  getNodeResults(runId: string, nodeIds: string[]): Promise<Record<string, any>>;
53
53
  protected setBranchTakenImpl(stepId: string, branchKey: string): Promise<void>;
54
+ private runStateKey;
54
55
  protected updateRunStateImpl(runId: string, name: string, value: unknown): Promise<void>;
55
56
  getRunState(runId: string): Promise<Record<string, unknown>>;
56
57
  private versionKey;
@@ -60,10 +61,5 @@ export declare class RedisWorkflowService extends PikkuWorkflowService {
60
61
  graph: any;
61
62
  source: string;
62
63
  } | null>;
63
- getAIGeneratedWorkflows(agentName?: string): Promise<Array<{
64
- workflowName: string;
65
- graphHash: string;
66
- graph: any;
67
- }>>;
68
64
  close(): Promise<void>;
69
65
  }
@@ -9,7 +9,10 @@ export class RedisWorkflowService extends PikkuWorkflowService {
9
9
  constructor(connectionOrConfig, keyPrefix = 'workflows', options = {}) {
10
10
  super(options);
11
11
  this.keyPrefix = keyPrefix;
12
- if (connectionOrConfig instanceof Redis) {
12
+ if (typeof connectionOrConfig === 'object' &&
13
+ connectionOrConfig !== null &&
14
+ 'hgetall' in connectionOrConfig &&
15
+ 'hset' in connectionOrConfig) {
13
16
  this.redis = connectionOrConfig;
14
17
  this.ownsConnection = false;
15
18
  }
@@ -454,21 +457,21 @@ export class RedisWorkflowService extends PikkuWorkflowService {
454
457
  const key = this.stepKey(runId, stepName);
455
458
  await this.redis.hmset(key, 'branchTaken', branchKey, 'updatedAt', now.toString());
456
459
  }
460
+ runStateKey(runId) {
461
+ return `${this.keyPrefix}:run-state:${runId}`;
462
+ }
457
463
  async updateRunStateImpl(runId, name, value) {
458
- const key = this.runKey(runId);
459
- const now = Date.now();
460
- const existingState = await this.redis.hget(key, 'state');
461
- const state = existingState ? JSON.parse(existingState) : {};
462
- state[name] = value;
463
- await this.redis.hmset(key, 'state', JSON.stringify(state), 'updatedAt', now.toString());
464
+ await this.redis.hset(this.runStateKey(runId), name, JSON.stringify(value) ?? 'null');
465
+ await this.redis.hset(this.runKey(runId), 'updatedAt', Date.now().toString());
464
466
  }
465
467
  async getRunState(runId) {
466
- const key = this.runKey(runId);
467
- const stateStr = await this.redis.hget(key, 'state');
468
- if (!stateStr) {
469
- return {};
468
+ const blob = await this.redis.hget(this.runKey(runId), 'state');
469
+ const state = blob ? JSON.parse(blob) : {};
470
+ const fields = await this.redis.hgetall(this.runStateKey(runId));
471
+ for (const [name, value] of Object.entries(fields)) {
472
+ state[name] = JSON.parse(value);
470
473
  }
471
- return JSON.parse(stateStr);
474
+ return state;
472
475
  }
473
476
  versionKey(name, graphHash) {
474
477
  return `${this.keyPrefix}:version:${name}:${graphHash}`;
@@ -494,34 +497,6 @@ export class RedisWorkflowService extends PikkuWorkflowService {
494
497
  source: data.source,
495
498
  };
496
499
  }
497
- async getAIGeneratedWorkflows(agentName) {
498
- const pattern = agentName
499
- ? `${this.keyPrefix}:version:ai\\:${agentName}\\:*`
500
- : `${this.keyPrefix}:version:ai\\:*`;
501
- const results = [];
502
- let cursor = '0';
503
- do {
504
- const [nextCursor, keys] = await this.redis.scan(cursor, 'MATCH', pattern, 'COUNT', 100);
505
- cursor = nextCursor;
506
- for (const key of keys) {
507
- const data = await this.redis.hgetall(key);
508
- if (!data.graph ||
509
- data.source !== 'ai-agent' ||
510
- data.status !== 'active')
511
- continue;
512
- const workflowName = data.workflowName;
513
- const graphHash = data.graphHash;
514
- if (!workflowName || !graphHash)
515
- continue;
516
- results.push({
517
- workflowName,
518
- graphHash,
519
- graph: JSON.parse(data.graph),
520
- });
521
- }
522
- } while (cursor !== '0');
523
- return results;
524
- }
525
500
  async close() {
526
501
  if (this.ownsConnection) {
527
502
  await this.redis.quit();
@@ -1 +1 @@
1
- {"version":3,"file":"redis-workflow-service.js","sourceRoot":"","sources":["../../src/redis-workflow-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-workflow-service.js","sourceRoot":"","sources":["../../src/redis-workflow-service.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@pikku/redis",
3
- "version": "0.12.12",
3
+ "version": "0.12.13",
4
+ "description": "Redis services for Pikku — workflow state, agent runs, secrets, sessions and channel stores",
4
5
  "author": "yasser.fadl@gmail.com",
5
6
  "license": "MIT",
6
7
  "module": "dist/src/index.js",
@@ -17,7 +18,7 @@
17
18
  "prepublishOnly": "yarn build"
18
19
  },
19
20
  "peerDependencies": {
20
- "@pikku/core": "^0.12.69"
21
+ "@pikku/core": "^0.12.71"
21
22
  },
22
23
  "dependencies": {
23
24
  "ioredis": "^5.10.0"
@@ -167,48 +167,6 @@ export class RedisWorkflowRunService implements WorkflowRunService {
167
167
  }
168
168
  }
169
169
 
170
- async getAIGeneratedWorkflows(
171
- agentName?: string
172
- ): Promise<Array<{ workflowName: string; graphHash: string; graph: any }>> {
173
- const pattern = agentName
174
- ? `${this.keyPrefix}:version:ai:${agentName}:*`
175
- : `${this.keyPrefix}:version:ai:*`
176
- const results: Array<{
177
- workflowName: string
178
- graphHash: string
179
- graph: any
180
- }> = []
181
- let cursor = '0'
182
- do {
183
- const [nextCursor, keys] = await this.redis.scan(
184
- cursor,
185
- 'MATCH',
186
- pattern,
187
- 'COUNT',
188
- 100
189
- )
190
- cursor = nextCursor
191
- for (const key of keys) {
192
- const data = await this.redis.hgetall(key)
193
- if (
194
- data.source === 'ai-agent' &&
195
- data.graph &&
196
- data.status === 'active'
197
- ) {
198
- const workflowName = data.workflowName
199
- const graphHash = data.graphHash
200
- if (!workflowName || !graphHash) continue
201
- results.push({
202
- workflowName,
203
- graphHash,
204
- graph: JSON.parse(data.graph),
205
- })
206
- }
207
- }
208
- } while (cursor !== '0')
209
- return results
210
- }
211
-
212
170
  async deleteRun(id: string): Promise<boolean> {
213
171
  const exists = await this.redis.exists(this.runKey(id))
214
172
  if (!exists) return false
@@ -0,0 +1,115 @@
1
+ import { describe, test, beforeEach, afterEach } from 'node:test'
2
+ import assert from 'node:assert/strict'
3
+ import Redis from 'ioredis-mock'
4
+
5
+ import { RedisWorkflowService } from './redis-workflow-service.js'
6
+
7
+ const KEY_PREFIX = 'workflows'
8
+
9
+ let ws: RedisWorkflowService
10
+ let redis: any
11
+
12
+ const newRun = () =>
13
+ ws.createRun('flow', {}, false, 'hash', { type: 'test' } as any)
14
+
15
+ beforeEach(() => {
16
+ redis = new Redis()
17
+ ws = new RedisWorkflowService(redis, KEY_PREFIX)
18
+ })
19
+
20
+ afterEach(() => {
21
+ redis.disconnect()
22
+ })
23
+
24
+ describe('workflow run state in redis', () => {
25
+ test('two branches setting different keys both survive', async () => {
26
+ const runId = await newRun()
27
+
28
+ await Promise.all([
29
+ ws.updateRunState(runId, 'left', 'a'),
30
+ ws.updateRunState(runId, 'right', 'b'),
31
+ ])
32
+
33
+ assert.deepEqual(
34
+ await ws.getRunState(runId),
35
+ { left: 'a', right: 'b' },
36
+ 'a parallel branch overwrote the other branch’s state'
37
+ )
38
+ })
39
+
40
+ test('many concurrent writers all land', async () => {
41
+ const runId = await newRun()
42
+ const keys = Array.from({ length: 20 }, (_, i) => `k${i}`)
43
+
44
+ await Promise.all(keys.map((k, i) => ws.updateRunState(runId, k, i)))
45
+
46
+ const state = await ws.getRunState(runId)
47
+ assert.equal(Object.keys(state).length, keys.length)
48
+ keys.forEach((k, i) => assert.equal(state[k], i))
49
+ })
50
+
51
+ test('an empty array stays an array when another key is written', async () => {
52
+ const runId = await newRun()
53
+
54
+ await ws.updateRunState(runId, 'items', [])
55
+ await ws.updateRunState(runId, 'count', 0)
56
+
57
+ const state = await ws.getRunState(runId)
58
+ assert.ok(
59
+ Array.isArray(state.items),
60
+ `an empty array came back as ${JSON.stringify(state.items)}`
61
+ )
62
+ assert.equal(state.count, 0)
63
+ })
64
+
65
+ test('values keep their types, including null and nested objects', async () => {
66
+ const runId = await newRun()
67
+
68
+ await ws.updateRunState(runId, 'nothing', null)
69
+ await ws.updateRunState(runId, 'nested', { a: [1, { b: true }] })
70
+ await ws.updateRunState(runId, 'flag', false)
71
+
72
+ assert.deepEqual(await ws.getRunState(runId), {
73
+ nothing: null,
74
+ nested: { a: [1, { b: true }] },
75
+ flag: false,
76
+ })
77
+ })
78
+
79
+ test('a later write to the same key replaces it', async () => {
80
+ const runId = await newRun()
81
+
82
+ await ws.updateRunState(runId, 'attempt', 1)
83
+ await ws.updateRunState(runId, 'attempt', 2)
84
+
85
+ assert.deepEqual(await ws.getRunState(runId), { attempt: 2 })
86
+ })
87
+
88
+ test('the state of a run that has none is empty', async () => {
89
+ assert.deepEqual(await ws.getRunState(await newRun()), {})
90
+ })
91
+
92
+ test('state written before the per-key layout is still readable', async () => {
93
+ const runId = await newRun()
94
+ const redis = (ws as any).redis
95
+ await redis.hset(
96
+ (ws as any).runKey(runId),
97
+ 'state',
98
+ JSON.stringify({ legacy: 'kept', shared: 'old' })
99
+ )
100
+
101
+ assert.deepEqual(await ws.getRunState(runId), {
102
+ legacy: 'kept',
103
+ shared: 'old',
104
+ })
105
+
106
+ await ws.updateRunState(runId, 'shared', 'new')
107
+ await ws.updateRunState(runId, 'fresh', 1)
108
+
109
+ assert.deepEqual(
110
+ await ws.getRunState(runId),
111
+ { legacy: 'kept', shared: 'new', fresh: 1 },
112
+ 'a run in flight across the deploy lost the state it already had'
113
+ )
114
+ })
115
+ })
@@ -42,9 +42,17 @@ export class RedisWorkflowService extends PikkuWorkflowService {
42
42
  super(options)
43
43
  this.keyPrefix = keyPrefix
44
44
 
45
- // Check if it's a Redis instance or config options
46
- if (connectionOrConfig instanceof Redis) {
47
- this.redis = connectionOrConfig
45
+ // An already-connected client is recognised by the commands it exposes
46
+ // rather than by `instanceof Redis`, so a compatible client that is not an
47
+ // ioredis subclass — a test double, a wrapper — is used as given instead of
48
+ // being silently ignored in favour of a fresh connection to localhost.
49
+ if (
50
+ typeof connectionOrConfig === 'object' &&
51
+ connectionOrConfig !== null &&
52
+ 'hgetall' in connectionOrConfig &&
53
+ 'hset' in connectionOrConfig
54
+ ) {
55
+ this.redis = connectionOrConfig as Redis
48
56
  this.ownsConnection = false
49
57
  } else {
50
58
  this.redis = new Redis(connectionOrConfig as any)
@@ -840,7 +848,9 @@ export class RedisWorkflowService extends PikkuWorkflowService {
840
848
  return result
841
849
  }
842
850
 
843
- async getStepInstances(runId: string): Promise<
851
+ async getStepInstances(
852
+ runId: string
853
+ ): Promise<
844
854
  Array<{ stepName: string; status: StepStatus; fromStepName?: string }>
845
855
  > {
846
856
  const instances: Array<{
@@ -920,37 +930,50 @@ export class RedisWorkflowService extends PikkuWorkflowService {
920
930
  )
921
931
  }
922
932
 
933
+ /**
934
+ * Hash holding one field per state variable of a run.
935
+ *
936
+ * The whole state used to be a single JSON blob on the run hash, which made
937
+ * every write a read-modify-write: two parallel branches each setting their
938
+ * own variable would both read the blob, add their key, and write it back,
939
+ * so whichever wrote second silently dropped the other's variable.
940
+ */
941
+ private runStateKey(runId: string): string {
942
+ return `${this.keyPrefix}:run-state:${runId}`
943
+ }
944
+
923
945
  protected async updateRunStateImpl(
924
946
  runId: string,
925
947
  name: string,
926
948
  value: unknown
927
949
  ): Promise<void> {
928
- const key = this.runKey(runId)
929
- const now = Date.now()
930
-
931
- // Get existing state or create empty object
932
- const existingState = await this.redis.hget(key, 'state')
933
- const state = existingState ? JSON.parse(existingState) : {}
934
-
935
- // Update the specific field
936
- state[name] = value
937
-
938
- await this.redis.hmset(
939
- key,
940
- 'state',
941
- JSON.stringify(state),
950
+ // HSET touches only the field it is named, so concurrent writers to
951
+ // different variables no longer race, and nothing has to parse and
952
+ // re-encode the values it is not writing.
953
+ await this.redis.hset(
954
+ this.runStateKey(runId),
955
+ name,
956
+ JSON.stringify(value) ?? 'null'
957
+ )
958
+ await this.redis.hset(
959
+ this.runKey(runId),
942
960
  'updatedAt',
943
- now.toString()
961
+ Date.now().toString()
944
962
  )
945
963
  }
946
964
 
947
965
  async getRunState(runId: string): Promise<Record<string, unknown>> {
948
- const key = this.runKey(runId)
949
- const stateStr = await this.redis.hget(key, 'state')
950
- if (!stateStr) {
951
- return {}
966
+ // The blob is what a run started before the per-key layout still holds; a
967
+ // field written since wins, so a run in flight across the deploy keeps
968
+ // everything it had.
969
+ const blob = await this.redis.hget(this.runKey(runId), 'state')
970
+ const state: Record<string, unknown> = blob ? JSON.parse(blob) : {}
971
+
972
+ const fields = await this.redis.hgetall(this.runStateKey(runId))
973
+ for (const [name, value] of Object.entries(fields)) {
974
+ state[name] = JSON.parse(value)
952
975
  }
953
- return JSON.parse(stateStr)
976
+ return state
954
977
  }
955
978
 
956
979
  private versionKey(name: string, graphHash: string): string {
@@ -1007,48 +1030,6 @@ export class RedisWorkflowService extends PikkuWorkflowService {
1007
1030
  }
1008
1031
  }
1009
1032
 
1010
- async getAIGeneratedWorkflows(
1011
- agentName?: string
1012
- ): Promise<Array<{ workflowName: string; graphHash: string; graph: any }>> {
1013
- const pattern = agentName
1014
- ? `${this.keyPrefix}:version:ai\\:${agentName}\\:*`
1015
- : `${this.keyPrefix}:version:ai\\:*`
1016
- const results: Array<{
1017
- workflowName: string
1018
- graphHash: string
1019
- graph: any
1020
- }> = []
1021
- let cursor = '0'
1022
- do {
1023
- const [nextCursor, keys] = await this.redis.scan(
1024
- cursor,
1025
- 'MATCH',
1026
- pattern,
1027
- 'COUNT',
1028
- 100
1029
- )
1030
- cursor = nextCursor
1031
- for (const key of keys) {
1032
- const data = await this.redis.hgetall(key)
1033
- if (
1034
- !data.graph ||
1035
- data.source !== 'ai-agent' ||
1036
- data.status !== 'active'
1037
- )
1038
- continue
1039
- const workflowName = data.workflowName
1040
- const graphHash = data.graphHash
1041
- if (!workflowName || !graphHash) continue
1042
- results.push({
1043
- workflowName,
1044
- graphHash,
1045
- graph: JSON.parse(data.graph),
1046
- })
1047
- }
1048
- } while (cursor !== '0')
1049
- return results
1050
- }
1051
-
1052
1033
  async close(): Promise<void> {
1053
1034
  if (this.ownsConnection) {
1054
1035
  await this.redis.quit()