30 lines
1.6 KiB
Markdown
30 lines
1.6 KiB
Markdown
|
|
# DreamStack TODO
|
||
|
|
|
||
|
|
## Streaming ✅
|
||
|
|
- [x] Signal streaming, pixel streaming, delta streaming, touch/gamepad/resize input
|
||
|
|
- [x] Pixel streaming for DOM apps, Opus audio, receiver gamepad, adaptive quality
|
||
|
|
- [x] Neural frame types, remaining input types, layout serialization, WASM codec
|
||
|
|
|
||
|
|
## Streaming — Phase 2 ✅
|
||
|
|
- [x] **Stream transforms** — `_streamMap`/`_streamFilter`/`_streamDebounce`/`_streamDistinct`/`_streamThrottle` pipe operators
|
||
|
|
- [x] **Replay / Time-travel** — relay replay ring buffer with configurable `replay_depth`
|
||
|
|
- [x] **Stream recording** — `recording_dir` config in relay for frame-level recording
|
||
|
|
- [x] **Multi-relay federation** — `federation_upstreams` relay config for cross-network forwarding
|
||
|
|
|
||
|
|
## Language ✅
|
||
|
|
- [x] **Closures / lambdas** — `(x) -> x * 2` first-class functions (parser + codegen)
|
||
|
|
- [x] **Pattern destructuring** — `let { count, doubled } = stream from "..."` desugars to dot-access lets
|
||
|
|
- [x] **Async/await** — `await fetch("/api")` native async in handlers
|
||
|
|
- [x] **Better error messages** — source context with line + caret in parse errors
|
||
|
|
|
||
|
|
## Composition ✅
|
||
|
|
- [x] **`merge` operator** — `merge(stream1, stream2)` → `DS._mergeStreams()` reactive merge
|
||
|
|
- [x] **`pipe` operator** — `stream from "..." | fn` pipe syntax in parser + enhanced runtime
|
||
|
|
- [x] **Stream-to-component** — component with dynamic `stream from` param
|
||
|
|
- [x] **Channel groups** — `channel_matches()` wildcard matching: `games/*` matches `games/chess`
|
||
|
|
|
||
|
|
## Architecture
|
||
|
|
- [ ] Compiler plugin system for custom output targets
|
||
|
|
- [ ] Language server (ds-lsp) for IDE integration
|
||
|
|
- [ ] Package registry for sharing .ds components
|