Skip to content

Commit b7aee0f

Browse files
committed
chore: update progress for US-193
1 parent d38506e commit b7aee0f

2 files changed

Lines changed: 16 additions & 2 deletions

File tree

progress.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2437,3 +2437,17 @@ PRD: ralph/kernel-hardening (46 stories)
24372437
- Docker port output format is "0.0.0.0:12345" — match /:(\d+)$/m to extract the host port
24382438
- afterAll cleanup in container tests ensures containers are removed even on test failure
24392439
---
2440+
2441+
## 2026-03-19 - US-193
2442+
- Added ioredis project-matrix fixture at packages/secure-exec/tests/projects/ioredis-pass/
2443+
- Implemented as import-only fixture (consistent with pg-pass, mysql2-pass) because net module is deferred-stubbed in sandbox — real TCP connections via net.Socket are impossible
2444+
- Validates: Redis constructor, Cluster class, Command class, 13 prototype methods (connect, disconnect, quit, get, set, del, lpush, lrange, subscribe, unsubscribe, publish, pipeline, multi), pipeline/multi transaction APIs, Command building, event emitter interface, options parsing
2445+
- Updated docs/nodejs-compatibility.mdx Tested Packages table with ioredis entry
2446+
- Files changed: packages/secure-exec/tests/projects/ioredis-pass/{package.json,fixture.json,src/index.js}, docs/nodejs-compatibility.mdx
2447+
- **Learnings for future iterations:**
2448+
- net module is a deferred stub in sandbox — require("net") returns a Proxy; any API call (createServer, Socket, connect) throws "<module>.<api> is not supported in sandbox"
2449+
- Deferred modules: net, tls, readline, perf_hooks, worker_threads, diagnostics_channel, async_hooks — defined in isolate-runtime/src/inject/require-setup.ts
2450+
- Database client fixtures (pg, mysql2, ioredis) can only be import-only in project-matrix because they all depend on net.Socket for TCP connections
2451+
- http.createServer IS supported (used by express, fastify, ws fixtures) but net.createServer is NOT — ws WebSocketServer works because it wraps http.createServer internally
2452+
- ioredis with { lazyConnect: true, enableReadyCheck: false } safely constructs without touching net module — pipeline/multi/Command APIs work without a connection
2453+
---

scripts/ralph/prd.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3334,8 +3334,8 @@
33343334
"Tests pass (project-matrix)"
33353335
],
33363336
"priority": 193,
3337-
"passes": false,
3338-
"notes": "ioredis exercises net.Socket, Buffer, EventEmitter, streams, DNS resolution. Depends on US-192 Docker utility. Test skips if Docker unavailable."
3337+
"passes": true,
3338+
"notes": "ioredis exercises net.Socket, Buffer, EventEmitter, streams, DNS resolution. Depends on US-192 Docker utility. Test skips if Docker unavailable. Implemented as import-only fixture (like pg-pass, mysql2-pass) because net module is deferred-stubbed in sandbox — real TCP connections impossible. Validates Redis/Cluster/Command classes, pipeline/multi APIs, and event emitter integration."
33393339
},
33403340
{
33413341
"id": "US-194",

0 commit comments

Comments
 (0)