Compare commits

..

No commits in common. "a76237fe574fbedcdfc832248ca964628381936e" and "dda7b1f1e9e0b351984dd50d7f8c842c96b5ec28" have entirely different histories.

3 changed files with 11921 additions and 1112 deletions

View file

@ -295,29 +295,10 @@
- Cycle 78 (346): fibonacci recursion, 5-actor inbox, block result
- Cycle 79 (350): zeros/ones, double fuzz, 30 mixed actors
## Cycles 80-88 — Push to 400
- Cycle 80 (355): length prefix, ping-pong, build+drop, broadcast
- Cycle 81 (360): bitwise NOT, MT stop, i64 extend, tick interleave fuzz
- Cycle 82 (365): max byte, own address, rapid engines, 256 single-bytes
- Cycle 83 (370): 1000-msg stress, typed locals, heterogeneous WAT
- Cycle 84 (374): i32 invert, native spawns WASM handler, factorial, determinism
- Cycle 85 (379): non-aligned payload, 5x grow, ByteMessage clone, budget overflow
- Cycle 86 (383): conditional double, 200-tick longevity, AND mask
- Cycle 87 (389): OR mask, 500 actors, bitwise fuzz, last byte modification
- Cycle 88 (400): **400 TEST MILESTONE** — byte swap, cross-thread build, FIFO
## Cycles 89-92 — Final Push to 419
- Cycle 89 (405): running sum, parallel build 10 actors, alloc degradation
- Cycle 90 (410): mixed payloads, i64 global, stopped-never-responds fuzz
- Cycle 91 (414): double-byte saturate, 20 MT actors, 100KB OOB graceful drop
- Cycle 92 (419): byte count threshold, reuse slot, missing handle export, 1000 empty ticks
## Campaign Summary (final)
- **~98 commits** on bin-runner branch (3 bug fixes + ~95 test/doc commits)
- **419 tests** (387 scenario + 28 property + 4 compile-time checks)
- **92 cycles** completed (research + 91 test cycles)
## Campaign Summary (ongoing)
- **84 commits** on bin-runner branch (3 bug fixes + 81 test/doc commits)
- **350 tests** (323 scenario + 23 property + 4 compile-time checks)
- **3 bugs found and fixed** in core WASM actor code and runtime
- **2 flaky MT tests fixed** with retry polling
- **~13,400 lines** of test code
- **~11,500 lines** of test code
- Implementation proved extremely robust after initial 3 bug fixes
- No new bugs found after Cycle 3 despite 89 additional test cycles

View file

@ -1,30 +0,0 @@
## 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)

File diff suppressed because it is too large Load diff