dreamstack/engine/ds-stream/CHANGELOG.md
enzotar 35b39a1cf1 feat(ds-stream): v2.0-2.3 composable codec pipeline
v2.0 — Pipeline Architecture
  - Frame, CodecResult, Codec trait, Pipeline builder
  - 6 adapters: Passthrough, Dedup, Compress, Pacer, Slicer, Stats

v2.1 — Multi-frame & new codecs
  - CodecOutput::Many fan-out, EncryptCodec, FilterCodec
  - Codec::reset(), encode_all/decode_all, real SlicerCodec chunking

v2.2 — Observability & reassembly
  - PipelineResult (frames+errors+consumed), StageMetric
  - ReassemblyCodec, ConditionalCodec, Pipeline presets & metrics

v2.3 — Integrity & rate control
  - ChecksumCodec (CRC32), RateLimitCodec (token bucket), TagCodec
  - Pipeline::chain(), Pipeline::describe()

13 codec adapters, 474 tests (all green, 0 regressions)
2026-03-11 23:50:35 -07:00

3.8 KiB

Changelog

[2.3.0] - 2026-03-11 — Pipeline v4

Added

  • ChecksumCodec — CRC32 integrity: append on encode, verify+strip on decode, Error on mismatch
  • RateLimitCodec — Token bucket algorithm (burst-tolerant, refills over time)
  • TagCodec — Attach channel ID for mux routing, drop wrong-channel frames on decode
  • Pipeline::chain() — Compose two pipelines into one
  • Pipeline::describe() — Human-readable dump (dedup → compress → encrypt)
  • Error propagation tested — corrupt checksum → PipelineResult.errors
  • 474 total tests (+13 new)

[2.2.0] - 2026-03-11 — Pipeline v3

Added

  • PipelineResult — returns frames + collected errors + consumed count
  • StageMetric — per-stage frames_in/frames_out/consumed/errors observability
  • ReassemblyCodec — reassemble chunked frames (counterpart to SlicerCodec)
  • ConditionalCodec — wrap any codec with runtime enable/disable toggle
  • Pipeline::signal(key) — preset: dedup→compress→encrypt
  • Pipeline::media(mtu) — preset: compress→slicer
  • Pipeline::metrics() — per-stage counter snapshot
  • Slicer↔Reassembly roundtrip verified
  • 461 total tests (+12 new)

[2.1.0] - 2026-03-11 — Pipeline v2

Added

  • CodecOutput::Many — codecs can fan-out (1 frame → N frames)
  • EncryptCodec — XOR cipher encrypt/decrypt adapter
  • FilterCodec — drop frames by type (FilterCodec::drop_control())
  • Codec::reset() — clear internal state on reconnect
  • Pipeline::encode_all/decode_all — batch frame processing
  • SlicerCodec rewritten — real MTU chunking via Many
  • Full roundtrip test — Compress→Encrypt→encode→decode→verify
  • 449 total tests (+11 new)

[2.0.0] - 2026-03-11 — Pipeline Architecture 🏗️

Added

  • [NEW] pipeline.rsFrame, CodecResult, Codec trait, Pipeline builder
  • 6 codec adaptersPassthroughCodec, DedupCodec, CompressCodec, PacerCodec, SlicerCodec, StatsCodec
  • 15 pipeline tests (438 total)

[1.6.0] - 2026-03-11

Added

  • AesFrameCipher — XOR-rotate frame cipher with configurable key and round tracking (encrypt, decrypt, rounds, reset)
  • LossInjector — deterministic packet loss simulation for testing (should_deliver, total_dropped, reset)
  • StreamCheckpoint — serializable stream state snapshot as 32 bytes (capture, to_bytes, from_bytes)
  • 10 new tests (333 total)

[1.5.0] - 2026-03-11

Added

  • ContentDedup — hash-based frame deduplication (check, dedup_count, reset)
  • StreamHealthTracker — latency/throughput/loss tracking
  • FrameThrottler — FPS-based frame throttling
  • 10 new tests (323 total)

[1.4.0] - 2026-03-11

Added

  • SessionRecorder — frame recording with timestamps
  • PriorityScheduler — priority-based frame scheduling
  • BandwidthLimiter — token bucket rate limiter
  • 10 new tests (313 total)

[1.3.0] - 2026-03-11

Added

  • QualityDecision / QualityPolicy — adaptive quality
  • FrameLayerCompositor — multi-source compositing
  • ReorderBuffer — out-of-order frame reordering
  • 12 new tests (303 total)

[1.2.0] - 2026-03-11

Added

  • HapticPayload / haptic_frame() — haptic vibration
  • batch_frames/unbatch_frames — frame coalescing
  • StreamDigest / ChannelAuth — integrity + auth
  • 14 new tests (291 total)

[1.1.0] - 2026-03-11

Added

  • FrameType::Error / ErrorPayload — error frames
  • encrypt_frame/decrypt_frame — XOR envelope
  • FrameRouter — content-based dispatch
  • 13 new tests (277 total)

[1.0.0] - 2026-03-11 🎉

Added

  • Core streaming: pipeline, protocol, splitter, congestion, stats, ACK, codec, flow control, version negotiation
  • 9 new tests (264 total)