19 tasks covering core testing, Redis hardening, WebSocket client/server adapters, Worker adapter, and final review gates. Iroh adapters are tracked as a deferred placeholder blocked on the @alkdev/iroh fork. Phases: core validation → Redis hardening → review gate → WebSocket adapters → review gate → Worker adapter → review gate → final validation.
1.7 KiB
1.7 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | |
|---|---|---|---|---|---|---|---|---|
| redis-channel-prefix-and-error-handling | Add channel prefix and error handling to Redis event target | pending |
|
narrow | low | component | implementation |
Description
The architecture doc for the Redis adapter lists two limitations that need to be addressed:
-
No channel prefix — raw event types as channel names risk collision in shared Redis instances. The adapter should support a configurable prefix like
createRedisEventTarget({ ..., prefix: "alk:events:" }). -
No error handling — connection failures, reconnection, and message parse errors are not handled. The adapter should:
- Handle serializer parse errors gracefully (log warning, skip message)
- Handle subscribe client disconnect gracefully (registered callbacks remain but won't fire)
- Note that in-flight messages after unsubscribe are harmless (empty callback set = no-op)
These are quality-of-life improvements that make the adapter production-ready.
Acceptance Criteria
CreateRedisEventTargetArgsaccepts an optionalprefixfield (string, default"")- When
prefixis set, channel names are prefixed:"alk:events:call.responded:uuid-123" - Both publish and subscribe use the same prefix convention
- Malformed messages from Redis (serializer parse errors) are caught and logged, not thrown
- Existing tests updated to cover prefix behavior
- New tests for prefix behavior and error handling
References
- docs/architecture/event-targets/redis.md (Limitations section)
- src/event-target-redis.ts
Notes
To be filled by implementation agent
Summary
To be filled on completion