Compare commits
10 commits
dda7b1f1e9
...
a76237fe57
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a76237fe57 | ||
|
|
26340d2a17 | ||
|
|
8dde458494 | ||
|
|
86b95efd61 | ||
|
|
2041964200 | ||
|
|
667622dfc8 | ||
|
|
4407c65ed8 | ||
|
|
4f134ccc8b | ||
|
|
1a6ee63d03 | ||
|
|
265a0ba7a7 |
3 changed files with 1085 additions and 11894 deletions
|
|
@ -295,10 +295,29 @@
|
|||
- Cycle 78 (346): fibonacci recursion, 5-actor inbox, block result
|
||||
- Cycle 79 (350): zeros/ones, double fuzz, 30 mixed actors
|
||||
|
||||
## 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)
|
||||
## 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)
|
||||
- **3 bugs found and fixed** in core WASM actor code and runtime
|
||||
- **2 flaky MT tests fixed** with retry polling
|
||||
- **~11,500 lines** of test code
|
||||
- **~13,400 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
|
||||
|
|
|
|||
30
CLAUDE/notes/state.md
Normal file
30
CLAUDE/notes/state.md
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
## 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
Loading…
Reference in a new issue