Added 4 tests: guest sends to two addresses in one handle, engine clone builds
independent actors, 500 messages in one tick, guest early return from handle.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: internal function with 8 params, WASM-to-native-to-inbox relay,
any message size round-trip property, sign extend 16, echo after 100 idle ticks.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 4 tests: guest counts messages via global, echo with DropOldest mailbox,
guest echoes only odd-length messages, build error Display formatting.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: trap on specific byte, three runtimes share engine, spawn with no
messages, multiply/divide operations, 1000 actors from same engine stress test.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: multiple mutable globals rotation, large data segment module,
echo+double interleaved, i64 store instruction, runtime dropped with active actors.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: logical right shift, 100 messages across 100 ticks, three-deep
nested if/else, increasing payload sends in one handle, engine dropped after
build. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: alloc trap then normal message, unused table tolerated, alternating
large/small messages, silent absorbs 200 messages, two actors from cloned bytes.
No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 4 tests: zero-length payload from guest, overlapping dest/payload regions,
alloc exhaustion drops gracefully, stop all actors in runtime. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: self-send loop bounded by budget, empty module missing exports,
static alloc same pointer echoes, two engines two runtimes cross-combo, 32KB
payload round-trip. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: unreachable instruction trap recovery, bump allocator advancing
pointers, block/loop/br_if control flow, stop one of two actors, property test
spawning 1..20 actors from same engine. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: three destinations from three echo actors, one-message-per-tick
for 10 ticks, 10-page initial memory, fill+copy together, stop with pending
messages. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 5 tests: local.tee instruction, 16KB payload round-trip, two independent
runtimes with WASM actors, i64-to-i32 wrap instruction, random WAT variations
property test. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
Added 6 tests: guest reverses payload via WAT loop, extra exports tolerated,
comprehensive guest fuzz property test, respawned actor gets different address,
echo+double to separate inboxes, builder accepts slice reference.
No new bugs found. All 250 tests pass.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_with_immutable_global: i32 global constant used in response
- multiple_echo_round_trips: 5 sequential send-receive-send cycles
- builder_is_consumed_on_build: verify builder ownership semantics
- empty_tick_between_sends_preserves_order: A-B-C with empty ticks between
All 244 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- interleaved_spawn_and_message_delivery: spawn-send-spawn-send-tick delivers both
- guest_uses_i32_store16: 16-bit LE store/read
- guest_computes_min_max: select instruction for min/max of two bytes
- drop_runtime_with_live_actors: drop runtime with 10 live WASM actors, no panic
All 240 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- send_raw_bytes_to_inbox: direct ByteMessage to inbox address
- multiple_data_segments_different_offsets: 3 data segments concatenated
- echo_across_100_separate_ticks: 100 messages across 100 individual ticks
- guest_with_nop_instructions: nop instructions don't affect behavior
All 236 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- grow_memory_and_use_new_page_for_send: memory.grow then send from new page
- twenty_actors_twenty_messages_each: 400 total messages across 20 actors
- module_with_only_send_import_needed: minimal sending module works
- guest_data_segment_used_as_template: data segment content sent as payload
All 232 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- repeated_build_same_bytes_independent: 3 actors from same bytes, stop one, others work
- guest_reads_stale_memory_region: reading uninitialized memory is safe
- prop_any_guest_module_processes_safely: echo/double/silent × random msg count
- three_level_nested_function_calls: inc→double_inc→transform chain (x+2)*3
All 228 tests pass (15 property tests). No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_uses_shift_operations: i32.shl and i32.shr_u bit shifts
- guest_uses_bitwise_and_or: i32.and (0xFF & 0x0F) and i32.or (0xF0 | 0x0F)
- echo_and_double_coexist_same_worker: different guest types on same runtime
- guest_reads_i16_from_payload: i32.load16_u reads little-endian 16-bit value
All 224 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_xor_transform_key: loop-based XOR cipher with 0xAA key
- actor_address_reconstructible_from_bytes: ActorAddress round-trips through raw bytes
- double_guest_watch_fires_once_on_stop: double works + watch notifies exactly once
- byte_message_various_constructors: ByteMessage from string, empty, 1024 zeros
All 220 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_uses_i32_store_load: verifies little-endian i32 store/load
- guest_uses_eqz: i32.eqz instruction for empty/non-empty detection
- silent_guest_processes_1000_messages: silent actor handles 1000 messages, stays alive
- send_before_first_tick_delivers: send immediately after spawn delivers on first tick
All 212 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- alloc_at_page_boundary_works: alloc + msg = exactly 65536, in bounds
- alloc_one_past_page_boundary_drops: alloc + msg = 65537, OOB drops gracefully
- multiple_runtimes_with_wasm_actors: two separate runtimes with WASM actors
- guest_mirrors_full_message: sends full message (addr+payload) as payload
All 204 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- large_4kb_message_round_trips: 4096-byte payload echoes with pattern verification
- guest_reports_payload_length: guest computes and sends back payload length as LE i32
- alloc_returns_odd_alignment: alloc returns 1 (unaligned), host writes correctly
- shared_engine_clone_and_debug: cloned engine Debug output matches
- idle_ticks_dont_affect_wasm_actor: 500 empty ticks, then message still works
All 193 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_start_function_modifies_alloc_region: host overwrites pre-filled 0xFF memory
- engine_clone_is_same_engine: cloned engine produces working actors
- handle_uses_i64_operations: i64 arithmetic with i32.wrap_i64
- two_hundred_actors_from_same_engine: 200 actors all process one message
- Updated history.md with Cycles 27-39
All 170 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- native_handler_spawns_wasm_actor_inline: native handler spawns WASM actor + sends
- handle_uses_many_locals: guest uses 4 local variables for arithmetic
- wasm_actor_survives_1000_ticks: 1000+ empty ticks + 10 messages, no resource leak
- send_to_dead_wasm_actor_silently_dropped: send to stopped actor doesn't panic
All 162 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- mutual_watch_wasm_actors: watcher notified when watched WASM actor stops
- select_instruction_in_handle: wasm select (ternary) based on payload presence
- wasm_to_wasm_to_native_relay: 3-layer echo1→echo2→inbox relay
- prop_any_dest_address_bytes_never_panic: arbitrary 32-byte dest address never panics
All 158 tests pass (11 property tests). No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- same_tick_message_ordering_preserved: 20 numbered messages arrive in FIFO order
- send_payload_ptr_plus_len_overflow_traps: i32::MAX payload_ptr + 1 traps safely
- handle_sends_100_messages_in_one_call: 100 sends in single handle via loop
- br_table_dispatch_in_handle: switch-like dispatch on first payload byte
- Fixed prop_truncated_wasm_never_panics (renamed): test only asserts no-panic, not always-error
All 154 tests pass (10 property tests). No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- handle_with_loop_computes_sum: iterative byte sum via wasm loop/br, u8 overflow wrapping
- send_with_dest_ptr_zero_reads_from_memory_start: dest_ptr=0 is a valid location
- stop_actor_with_pending_messages_no_crash: stop before tick with 10 queued messages
- prop_truncated_wat_always_produces_error: any truncated WASM bytes always fail to build
All 150 tests pass (10 property tests). No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- wasmtime_error_converts_to_wasm_actor_error: From conversion produces Wasmtime variant
- three_wasm_actors_on_two_threads: 3 WASM echo actors on 2-thread runtime all deliver
- handle_with_if_else_branching: guest uses if/else to send different responses by length
All 146 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- guest_overwrites_payload_after_send_outbox_has_copy: outbox snapshots memory at send time
- alloc_grows_memory_returns_pointer_in_new_page: memory.grow per alloc, 5 messages through
- trap_after_successful_send_clears_outbox: trap discards all outbox entries including valid ones
- send_payload_at_memory_offset_zero: offset 0 is a valid payload location
All 143 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- prop_random_payload_sizes_never_panic: random 0-8KB payloads never crash host
- multi_page_data_segments_persist: data segments initialized across 3 memory pages
- conditional_send_fan_out_based_on_payload: command byte controls 0/1/2x sends
- guest_with_advancing_allocator_handles_multiple_messages: proper bump alloc, 10 msgs in one tick
All 139 tests pass (9 property tests). No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- send_import_zero_length_payload_delivers_empty: payload_len=0 delivers empty msg
- actors_from_separate_engines_coexist: two engines on same runtime work independently
- rapid_spawn_send_stop_50_rounds: 50 sequential spawn-send-stop cycles all deliver
- start_function_that_succeeds_allows_normal_operation: start initializes global, handle uses it
All 135 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- reference_types_module_rejected: externref table rejected by sandboxed engine
- trapping_actor_does_not_affect_sibling: trap in actor 1 doesn't corrupt actor 2
- alloc_returns_negative_for_nonzero_drops_message: negative ptr gracefully drops
- global_counter_accumulates_across_messages: mutable global state persists across 5 calls
All 131 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
- mixed_outbox_partial_delivery: guest sends to valid + garbage addresses in same handle,
verifies only valid sends deliver and actor survives
- drop_oldest_mailbox_with_wasm_actor: DropOldest policy keeps newest 3 of 5 messages
- echo_to_full_inbox_silently_drops: bounded inbox capacity silently drops excess echoes
All 119 tests pass. No new bugs found.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski