swactor/CLAUDE/notes/state.md

31 lines
1.4 KiB
Markdown
Raw Normal View History

## Current Task
Testing campaign complete. 419 tests, 92 cycles, 3 bugs fixed.
Step: Campaign finished
Attempt: N/A
## Key Files (read these first on resume)
- `crates/wasm-actor/src/actor.rs` — handle pipeline (2 bugs fixed: bounds check, outbox clear)
- `crates/wasm-actor/tests/wasm_actor.rs` — 419 tests, all passing
- `src/worker.rs` — StopSignal death notification (1 bug fixed)
- `crates/wasm-actor/Cargo.toml` — added proptest dev-dep
## Last Action & Result
Committed Cycle 92 (419 tests). Updated history.md with final campaign summary.
## Next Action
Campaign complete. Possible future work: fuel/epoch-based timeout, WASI exploration, integration tests.
## Completed This Session
- [x] Cycles 58-92 complete (35 cycles in two continuation sessions)
- [x] 419 tests total (387 scenario + 28 property + 4 compile-time)
- [x] 0 new bugs found after Cycle 3
- [x] History updated with final campaign summary
## Bugs Found
- **Bug #1 (fixed)**: `actor.rs:44-46` — missing bounds check before `copy_from_slice`. Guest alloc returning OOB pointer caused Rust panic → permanent actor poisoning.
- **Bug #2 (fixed)**: `worker.rs:734` — StopSignal didn't push to `deaths` vec. Watch notifications never fired for `rt.stop_actor()`.
- **Bug #3 (fixed)**: `actor.rs:52-53` — outbox not cleared on handle trap. Stale sends from incomplete operations leaked into next successful handle call.
## Open Questions / Blockers
- (none)