Commit graph

96 commits

Author SHA1 Message Date
Claude
86b95efd61 test(wasm-actor): cycle 91 — double-byte saturate, 20 MT actors, 100KB OOB (414 tests)
Added 4 tests: double each byte with saturation, 20 echo actors on 2-thread
runtime, 5-page memory spread alloc, 100KB payload dropped for 1-page guest
(verifies graceful OOB handling). No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
2041964200 test(wasm-actor): cycle 90 — mixed payloads, i64 global, stopped-never-responds fuzz (410 tests)
Added 5 tests: mixed payload types, i64 global, all three guest types, stopped
actor never responds property test, exact 33-byte echo. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
667622dfc8 test(wasm-actor): cycle 89 — running sum, parallel build, alloc degradation (405 tests)
Added 5 tests: running sum across messages, parallel build 10 actors, multiple
memory.fill, 10KB echo, alloc works then returns negative. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
4f134ccc8b test(wasm-actor): cycle 88 — 400 TEST MILESTONE
Added 11 tests: byte swap, runtime configs, trap-3-then-succeed, 10 actors
3 types, various payload sizes, builder consumes self, WAT builder property fuzz,
burst send/tick, 3-level call chain, cross-thread build, FIFO ordering.
No new bugs found.

**400 tests pass milestone** — 3 bugs found and fixed total, 26 property tests,
88 cycles of rigorous testing. Implementation extremely robust.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
1a6ee63d03 test(wasm-actor): cycle 87 — OR mask, 500 actors, bitwise fuzz, last byte mod (389 tests)
Added 6 tests: OR set high nibble, 31-byte message too short, loop to 1000,
500 actors one message each, bitwise identical property test, modify last byte.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
265a0ba7a7 test(wasm-actor): cycle 86 — conditional double, 200 tick longevity, AND mask (383 tests)
Added 4 tests: conditional double or echo, 200 messages across 200 ticks,
three inboxes from same runtime, AND mask low nibble. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
dda7b1f1e9 test(wasm-actor): cycle 85 — non-aligned payload, 5x grow, budget overflow (379 tests)
Added 5 tests: 7-byte non-aligned payload, tick empty runtime then spawn, grow
memory 5 times, ByteMessage clone independence, budget leaves remaining for next tick.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
099005aa67 test(wasm-actor): cycle 84 — i32 invert, native spawns WASM, factorial, determinism (374 tests)
Added 4 tests: i32 bit pattern inversion, native handler spawns WASM and sends,
factorial loop, echo determinism across 10 independent runs.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
21c6f58907 test(wasm-actor): cycle 83 — 1000-msg stress, typed locals, heterogeneous WAT (370 tests)
Added 5 tests: 1000 message echo stress, many typed locals, alternate empty/nonempty,
error variants distinct display, heterogeneous WAT actors on same runtime.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
8c2e9eca5d test(wasm-actor): cycle 82 — max byte, own address, rapid engines, 256 bytes (365 tests)
Added 5 tests: compute max byte, echo own address, rapid engine creation, select
conditional value, all 256 single-byte payloads integrity check.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
ff599a526c test(wasm-actor): cycle 81 — bitwise NOT, MT stop, i64 extend, tick interleave fuzz (360 tests)
Added 5 tests: bitwise NOT each byte, stop on MT runtime, i64 extend operations,
5 sequential runtimes, random tick/message interleaving property test.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
834373afd0 test(wasm-actor): cycle 80 — length prefix, ping-pong, build+drop, broadcast (355 tests)
Added 5 tests: length-prefixed response, two-actor ping-pong bounded, build 100
actors then drop, memory.size/grow sequence, broadcast to 10 actors.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
a6d2b2a264 test(wasm-actor): cycle 79 — zeros/ones, double fuzz, 30 mixed actors (350 tests)
Added 4 tests: echo zeros then ones, extra exports with init/cleanup,
property test double always sends 2 copies, 30 mixed actors simultaneous.
No new bugs found. **350 tests pass.**

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
e96891ae89 test(wasm-actor): cycle 78 — fibonacci recursion, 5-actor inbox, block result (346 tests)
Added 5 tests: fibonacci via recursion, single inbox from five actors, minimal
lifecycle no messages, reuse message bytes, block with result value.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
00051f85d8 test(wasm-actor): cycle 77 — reverse+echo, shared budget, f64, replacement cycle (341 tests)
Added 4 tests: guest reverses payload then echoes, actors share budget setting,
f64 arithmetic, 5-round actor replacement cycle. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
4e743479ee test(wasm-actor): cycle 76 — dual-address send, 500 messages, early return (337 tests)
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
2026-02-13 21:08:00 +07:00
Claude
f0751163c8 test(wasm-actor): cycle 75 — 8-param function, native relay, any-size fuzz (333 tests)
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
2026-02-13 21:08:00 +07:00
Claude
b627573849 test(wasm-actor): cycle 74 — message counter, DropOldest, odd-length filter (328 tests)
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
2026-02-13 21:08:00 +07:00
Claude
d1de863760 test(wasm-actor): cycle 73 — conditional trap, 3 runtimes, 1000 actors (324 tests)
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
2026-02-13 21:08:00 +07:00
Claude
7f7e25f3d9 test(wasm-actor): cycle 72 — checksum, 4-thread MT stress, comparisons (319 tests)
Added 5 tests: byte checksum computation, 4-thread runtime stress test, three
data segments, 50KB message echo, comparison operations (gt_s, lt_s, le_u, ge_s).
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
90c048d053 test(wasm-actor): cycle 71 — f32 ops, nested blocks, mixed guest response fuzz (314 tests)
Added 5 tests: same payload to echo+double verified, f32 store/load, 50 silent
actors clean shutdown, 5-deep nested blocks, property test mixed guest response
counts. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
2fa72be283 test(wasm-actor): cycle 70 — dynamic send count, 3-actor pipeline, XOR transform (309 tests)
Added 4 tests: dynamic send count from payload byte, three-actor echo pipeline,
rapid build of 3 guest types (60 cycles), XOR-with-key payload transform.
No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
7098c0e30d test(wasm-actor): cycle 69 — multiple globals, large data segment, i64 store (305 tests)
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
2026-02-13 21:08:00 +07:00
Claude
32f8149a62 test(wasm-actor): cycle 68 — 300 TEST MILESTONE
Added 5 tests: write offset zero, 10 echo actors all respond, alternating
silent/sending behavior, budget=1 one-per-tick, echo with address-only message.
No new bugs found.

**300 tests pass milestone** — 3 bugs found and fixed total, 20 property tests,
68 cycles of testing. Implementation proved extremely robust.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
0e1ab9284b test(wasm-actor): cycle 67 — memory grow, native verifier, zero-page, stop fuzz (295 tests)
Added 6 tests: grow memory and use new page, native verifier receives WASM echo,
sequential echo/double/silent lifecycle, zero-page memory, double receives two
messages produces four, stop-with-pending property test. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
d76d6e0819 test(wasm-actor): cycle 66 — 100 tick longevity, nested if/else, engine drop (289 tests)
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
2026-02-13 21:08:00 +07:00
Claude
67a2412b07 test(wasm-actor): cycle 65 — alloc trap recovery, unused table, alternating sizes (284 tests)
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
2026-02-13 21:08:00 +07:00
Claude
e1430750a8 test(wasm-actor): cycle 64 — outbox clear on OOB send, sign extend, 60KB echo (279 tests)
Added 5 tests: send then OOB send clears outbox, i32.extend8_s instruction,
double processes then stops cleanly, near-page payload echo (60KB), property
test echo preserves arbitrary content. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
8d020bbf1e test(wasm-actor): cycle 63 — zero-len send, overlapping regions, alloc exhaustion (274 tests)
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
2026-02-13 21:08:00 +07:00
Claude
c304ad5960 test(wasm-actor): cycle 62 — self-send budget, empty module, static alloc, 32KB echo (270 tests)
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
2026-02-13 21:08:00 +07:00
Claude
61316347e4 test(wasm-actor): cycle 61 — unreachable, bump alloc, control flow, N-spawn fuzz (265 tests)
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
2026-02-13 21:08:00 +07:00
Claude
77529b75eb test(wasm-actor): cycle 60 — three destinations, tick-per-msg, 10-page memory (260 tests)
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
2026-02-13 21:08:00 +07:00
Claude
b13a846b1f test(wasm-actor): cycle 59 — local.tee, 16KB payload, dual runtime, i64 wrap (255 tests)
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
2026-02-13 21:08:00 +07:00
Claude
384a6a56cb test(wasm-actor): cycle 58 — reverse payload, extra exports, comprehensive fuzz (250 tests)
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
2026-02-13 21:08:00 +07:00
Claude
a340cd0b29 test: Cycle 57 — immutable global, multi round-trip, builder consume, empty tick order
- 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
2026-02-13 21:08:00 +07:00
Claude
8f3710c5f4 test: Cycle 56 — interleaved spawn, store16, min/max, runtime drop
- 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
2026-02-13 21:08:00 +07:00
Claude
80afb30fb4 test: Cycle 55 — raw inbox send, multi data segments, 100 ticks, nop instructions
- 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
2026-02-13 21:08:00 +07:00
Claude
95f1163251 test: Cycle 54 — grow+send, 20×20 stress, minimal module, data segment template
- 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
2026-02-13 21:08:00 +07:00
Claude
246f957721 test: Cycle 53 — repeated build independence, stale memory, guest module fuzz, 3-deep calls
- 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
2026-02-13 21:08:00 +07:00
Claude
af5e0644bc test: Cycle 52 — shift ops, bitwise AND/OR, echo+double coexist, i16 load
- 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
2026-02-13 21:08:00 +07:00
Claude
372c0bbf9e test: Cycle 51 — XOR transform, address reconstruction, double+watch, constructors
- 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
2026-02-13 21:08:00 +07:00
Claude
98061c9464 test: Cycle 50 — modulo, 8KB echo, duplicate sends, full lifecycle fuzz
- guest_uses_modulo: i32.rem_u instruction for mod 10 computation
- echo_8kb_payload: 8192-byte payload round-trips with pattern check
- duplicate_sends_all_deliver: 5 identical messages all deliver
- prop_full_lifecycle_never_panics: combined fuzz (1-5 actors, 0-10 msgs, any byte)

All 216 tests pass (14 property tests). No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
6bbfa10dbb test: Cycle 49 — i32 store/load, eqz, silent 1000-msg, pre-tick delivery
- 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
2026-02-13 21:08:00 +07:00
Claude
d4961978ec test: Cycle 48 — self-send, bit rotation, bit counting, selective stop
- guest_sends_to_self_via_framed_address: self-send bounces through, reaches inbox
- guest_uses_bit_rotation: i32.rotl instruction
- guest_uses_bit_counting: i32.clz, i32.ctz, i32.popcnt instructions
- stop_every_other_actor_remaining_work: stop 5 of 10, other 5 still respond

All 208 tests pass. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
6aeb289df0 test: Cycle 47 — page boundary exact/OOB, multiple runtimes, full message mirror
- 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
2026-02-13 21:08:00 +07:00
Claude
5e925a9fc1 test: Cycle 46 — 200 TEST MILESTONE: mixed actors, sums, determinism, lifecycle
- wasm_and_native_alternate_in_same_tick: 5 WASM + 5 native msgs in same tick
- guest_sums_two_payload_bytes: sum computation with value duplication
- single_byte_payload_echo: minimum meaningful payload round-trip
- module_with_no_functions_fails: module with only memory export rejected
- response_varies_by_message_size: 4 different sizes produce correct length reports
- prop_echo_is_deterministic: same input to two fresh actors → same output
- comprehensive_lifecycle_all_guest_types_200th: echo+double+silent lifecycle

**200 tests pass** — 3 bugs found/fixed, 13 property tests, ~7,150 lines.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
2d24737026 test: Cycle 45 — 4KB round-trip, payload length report, odd alignment, idle ticks
- 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
2026-02-13 21:08:00 +07:00
Claude
82ca6869aa test: Cycle 44 — all 256 bytes, memory.fill, watched actor, double 0xFF
- all_256_byte_values_round_trip: every byte value 0x00-0xFF echoes correctly
- guest_uses_memory_fill_for_response: memory.fill writes 10 constant bytes
- wasm_actor_works_normally_while_being_watched: watched actor processes 5 msgs then stops
- double_guest_with_max_byte_value: double guest handles 0xFF payload correctly

All 188 tests pass. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:08:00 +07:00
Claude
a6fea775ac test: Cycle 43 — funcref table dispatch, concurrent build, memory.copy, error traits
- module_with_funcref_table_works: call_indirect through funcref table dispatches correctly
- concurrent_build_from_shared_engine: 4 threads build actors from same engine
- guest_uses_memory_copy_for_response: bulk memory.copy for message relay
- wasm_actor_error_is_send_and_sync: compile-time trait check

All 184 tests pass. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:07:59 +07:00
Claude
c8bf78231b test: Cycle 42 — internal calls, raw WAT, build-discard, float ops, empty bytes
- module_with_internal_function_calls: helper functions (double, add_ten) composed in handle
- build_from_raw_wat_bytes: WAT-compiled silent actor works
- build_and_discard_100_actors: WasmActor drops cleanly 100 times
- handle_uses_floating_point: f64 arithmetic with i32.trunc_f64_s
- empty_wasm_bytes_error: empty Vec<u8> produces build error

All 180 tests pass. No new bugs found.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:07:59 +07:00