swactor/big-feature-phase/notes/state.md

47 lines
2.3 KiB
Markdown
Raw Normal View History

## Current Task
Cycle 0 — Research
Step: Complete
Attempt: 1 of 3
## Key Files (read these first on resume)
- `big-feature-phase/TASK.md` — workflow rules
- `big-feature-phase/notes/constraints.md` — guardrails for in-browser runtime
- `big-feature-phase/notes/research_synthesis.md` — P0-P4 priority ranking
- `big-feature-phase/notes/feature-stages/01-platform-abstraction.md` — Stage 1 spec
- `src/runtime.rs` — thread spawn (line 351), park handles (line 110), Instant (line 205)
- `src/worker.rs` — backoff loop (lines 495-523), Instant timing (9 calls)
- `src/delivery.rs` — TickContext.worker_threads (line 246)
- `src/channel.rs` — crossbeam HybridChannel (validate wasm compilation)
- `crates/wasm/src/lib.rs` — existing PoC browser runtime
## Last Action & Result
Completed Cycle 0 research phase:
- Investigated similar projects (Lunatic, wasmCloud, Actix wasm attempts)
- Analyzed all platform-specific code in core swactor (4 blockers found)
- User confirmed: Rust-only actors, performance-first, Web Workers, all features, full peer
- Key decision: SharedArrayBuffer + wasm-threads (not postMessage isolation)
- Wrote constraints.md, research_synthesis.md, 6 feature-stage docs
## Next Action
Begin Stage 1 (Platform Abstraction Layer) — `notes/feature-stages/01-platform-abstraction.md`:
1. Add `web-time` dependency to core Cargo.toml
2. Replace `std::time::Instant` with `web_time::Instant` in runtime.rs and worker.rs
3. Implement `ParkHandle` abstraction with cfg gates
4. Gate `Runtime::run()` thread spawning for non-wasm
5. Validate crossbeam-queue compiles for wasm32 with atomics
6. Add `wasm` feature flag
## Completed This Session
- [x] Read TASK.md, state.md, history.md (context restart checklist)
- [x] Investigated similar codebases (Lunatic, wasmCloud, Actix-wasm)
- [x] Analyzed platform dependencies in core swactor
- [x] Asked and resolved design questions with user
- [x] Wrote `notes/constraints.md`
- [x] Wrote `notes/research_synthesis.md`
- [x] Created `notes/feature-stages/` with 6 stage docs
## Open Questions / Blockers
- Need to verify crossbeam-queue compiles for wasm32 with atomics (Stage 1 task)
- Need to find/verify correct `core::arch::wasm32` APIs for memory_atomic_wait/notify
- Nightly Rust toolchain + wasm32 target needs to be set up in CI