docs(planning): mark Phase 1.5 live broadcast as Done
Tasks 1.5.4, 1.5.5, 1.5.6 marked 🟩 with commit hashes and implementation
notes. Phase 1.5 status updated to Done in ROADMAP.md.
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
# Task 1.5.4 — Broadcast consumer group & fan-out
|
||||
|
||||
**Phase:** 1.5 — Live broadcast
|
||||
**Status:** ⬜ Not started
|
||||
**Status:** 🟩 Done
|
||||
**Depends on:** 1.5.3
|
||||
**Wiki refs:** `docs/wiki/synthesis/processor-ws-contract.md` §Streaming updates, §Multi-instance behaviour; `docs/wiki/concepts/live-channel-architecture.md` §Multi-instance Processor
|
||||
|
||||
@@ -218,4 +218,8 @@ Per the contract: omit fields rather than send `null` for absent values.
|
||||
|
||||
## Done
|
||||
|
||||
(Filled in when the task lands.)
|
||||
Landed in `c07ea0e`. Key implementation decisions:
|
||||
|
||||
- `CodecError`/`decodePosition` moved to `src/shared/codec.ts`; `Position`/`AttributeValue` moved to `src/shared/types.ts`. Both `src/core/` and `src/live/` re-export from shared to preserve existing import paths.
|
||||
- `broadcast.ts` ACKs all stream entries immediately (durability not needed for fan-out).
|
||||
- Test uses a `stopSignal` Promise to coordinate between the broadcast loop and the test's `stop()` call, avoiding the tight-loop OOM that naive polling triggers.
|
||||
|
||||
Reference in New Issue
Block a user