Claude
edea0aac2a
refactor: extract 3,432 lines of embedded HTML to include_str!()
...
Move HTML content from Rust raw string literals into proper .html
files, replacing each _html.rs with a 1-line include_str!() call.
- runtime-dashboard: dashboard.html (511), actors.html (739),
distribution.html (746)
- simulation-dashboard: dashboard.html (1,436)
Enables proper HTML syntax highlighting and linting in editors.
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 14:48:35 +00:00
Claude
00e1fce80d
refactor: deduplicate message routing pattern in tick_once
...
Extract route_to_pool_or_remote() helper that unifies the routing
logic (local pool → address_map → inbox_registry) used in phases
2.5 (worker extension delivery) and 7 (death notifications).
Completes P0 core debloating: 2636→2319 (−317, −12.0%).
worker.rs: 845→598 (−247, −29.2%).
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:45:44 +07:00
Claude
09d5c75c39
feat: move TimerWheel from core to std via WorkerExtension
...
Add WorkerExtension trait (on_tick, handle_request, gc_dead) as a
per-worker counterpart to the shared RuntimeExtension. This enables
per-worker state like timer wheels to live outside core.
- TimerWheel, TimerRequest, CloneMsg → crates/std/src/timer_wheel.rs
- CtxTimers extension trait replaces Ctx::send_after_ticks/send_interval_ticks
- schedule_timer → generic post_worker_request on ContextInner
- Worker.timers → Worker.worker_ext (Option<Box<dyn WorkerExtension>>)
- StdExtension factory creates TimerWheel per worker
Core: 2440→2320 (−120). worker.rs: 696→599 (−97).
Cumulative: 2636→2320 (−316, −12.0%). worker.rs: 845→599 (−29.1%).
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:45:44 +07:00
Claude
93b1b1fa1e
feat: move WatchRegistry from core to std extension
...
Merge Watch death-notification system into swactor-std, reducing core
surface. WatchRegistry now lives alongside MonitorRegistry in StdExtension,
with CtxWatching and RuntimeWatching extension traits for the public API.
Phase 5b removed from tick_once; notifications delivered via on_actor_death
in phase 7. Core shrinks from 2,636 to 2,440 lines (-196, -7.4%).
Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:45:44 +07:00
1169f0322d
feat: dashboard updates ( #38 )
...
Adds some more polish to the dashboard. Further modification will have to wait until swactor is used for more complex projects.
2026-02-13 14:42:10 +00:00
29b4f53d69
feat: extended features and testing for the WASM runtime actor prototype ( #36 )
2026-02-13 14:11:39 +00:00
b4312676a6
feat: skeleton for in browser swactor engine ( #35 )
...
Skeleton up for a web browser swactor engine that is capable of connecting with a cluster.
2026-02-13 13:27:34 +00:00
cd1816e398
feat: distribution simulation tests ( #34 )
...
Test cluster behavior in simulation.
2026-02-13 13:18:38 +00:00
a7124cb3d4
distribution realization ( #33 )
...
Write tests for docker integration, as docker is how we will initially handle distribution on heterogeneous hardware.
2026-02-13 07:55:12 +00:00
78cbd80803
skeleton of wasm runner actors ( #32 )
2026-02-13 07:42:44 +00:00
f4f26c9f41
major feature update
...
Improve the runtime, increase test coverage, add new actor types for monitoring and supervision to an `std` crate.
2026-02-13 07:11:24 +00:00
d817ad952f
feat: distributed runtime ( #30 )
...
Major feature addition. For full details read `./docs/development_history/DISTRIBUTION.md`
2026-02-12 09:13:50 +00:00
076f1194bf
feat: tui, agent interface, stats hook ( #29 )
...
Runtime dashboard now features a TUI option and an interface for LLM tool use. Removed some bloat from stats collecting and replaced with a hook function to dump runtime stats into.
2026-02-11 15:23:26 +00:00
2da9198ee9
fix: stats datatypes and refactor channel signature ( #28 )
2026-02-10 07:35:58 +00:00
ef08d3e7a5
feat: transport protocol ( #27 )
...
Address actors via ID, send messages over transport (TCP, QUIC, etc)
2026-02-09 19:05:37 +00:00
bc70d5fd89
feat: data parallel mnist example ( #26 )
2026-02-09 14:42:25 +00:00
845132ff18
feat: mt benchmark ( #25 )
2026-02-09 14:02:40 +00:00
d61ea50414
fix: gossip dashboard ( #24 )
...
Better, but still imperfect, performance in replay for large simulation sizes.
2026-02-09 09:07:38 +00:00
1a64f421bf
feat: runtime dashboard and docs ( #23 )
...
Live and replay demo for a runtime dashboard. Added docs with svg files.
2026-02-09 09:04:57 +00:00
09504d0b67
cfuzz ( #22 )
2026-02-09 07:24:16 +00:00
9beca6c5dc
feat: gossip simulation ( #21 )
...
Simulate a simple push-pull epidemic broadcast.
2026-02-08 16:18:39 +00:00
b828ff0fae
feat: fuzz-harness ( #20 )
2026-02-07 18:30:22 +00:00
75aefa0c49
refactor: repack external bindings into their own crates ( #19 )
2026-02-07 17:39:02 +00:00
282fcc3d01
refactor: better tests ( #18 )
...
Still unsatisfied, but these are better than before.
2026-02-07 17:29:01 +00:00
Zachery Aaron Shores-Chmielewski
204b4aa289
refactor: clean modules, remove dead files
2026-02-08 00:20:03 +07:00
08a655d88a
refactor: graph-optimization ( #17 )
...
Use spectral analysis tool to find spurious edges in the code DAG, refactoring to prune.
2026-02-07 16:51:40 +00:00
Zachery Aaron Shores-Chmielewski
6897d71e4b
feat: refactor based on spectral spectral_analysis
...
Asking the agent to refactor to reduce spectral complexity, it worked. Trivial change, but this did reduce code complexity.
2026-02-07 17:36:45 +07:00
Zachery Aaron Shores-Chmielewski
89be164c19
feat: spectral analysis report
...
Generates a report on the connectivity properties of the code interdependency DAG.
2026-02-07 17:36:07 +07:00
de0f3960f4
feat: docs and README ( #13 )
...
Update the docs and readme with all the changes we've made
2026-02-06 17:12:04 +00:00
042ccd0db0
feat: basic wasm ( #12 )
...
Unfeatured wasm module. Mostly to test that wasm builds
2026-02-06 16:47:43 +00:00
1234838361
feat: code DAG visualizer ( #11 )
...
Visualize the inter-module code dependency DAG
2026-02-06 14:54:56 +00:00
Zachery Aaron Shores-Chmielewski
d3fdf9e550
feat: worker thread api ( #6 )
...
Make the worker thread api clearly seperated and ready for test harness
2026-02-06 21:45:19 +07:00
29bb51004f
feat: jupyter example ( #10 )
2026-02-06 14:04:48 +00:00
796bd1f2c5
feat: runtime information display ( #9 )
...
Show basic information from the runtime, such as number of actors, worker threads, etc.
2026-02-06 13:35:46 +00:00
85c7c557ee
feat: python bindings ( #7 )
...
Python bindings allowing us to interact with the library in a python REPL
2026-02-06 12:47:51 +00:00
5a9af73de6
refactor: major library changes ( #5 )
...
Refactoring to logically separate component modules in order to make it easier to develop tests, metrics, tracing, etc.
2026-02-06 11:25:37 +00:00
Zachery Aaron Shores-Chmielewski
c56a05433f
feat: Stress tests, benchmarking, and non-failing queues and inboxes #3
...
Adds some basic benchmarking, stress tests. They still need to be properly examined to ensure they are testing the correct properties, but fit for "good enough". Implements the HybridChannel type, which features a channel buffer that can withstand overflows. It does so by providing a dequeue behind a mutex. Without overflow, will push messages into the lock free ArrayQueue implemented by crossbeam_queue; when that buffer fills, will use the locking portion provided by the Mutex<VecDequeue>.
In the future we can even further optimize this, perhaps with some linked list implementations of lock-free channels, but, like the benchmarks, this fits the "good enough" bar for now.
2026-01-26 14:14:00 +07:00
b422605f6b
feat: Multithreaded runtime ( #2 )
...
Implements a tunable configuration for a single or multi-threaded runtime.
Co-authored-by: Zachery Aaron Shores-Chmielewski <zachanon@gmail.com>
Reviewed-on: http://zachery.lol/code/code/zacheryasc/swactor/pulls/2
2026-01-25 13:38:34 +00:00
55077dbf57
feat: rewrite ( #1 )
...
Did not like the requirement of a tokio runtime and async/await. Rewrote
to use lock free queues (`crossbeam_queue::ArrayQueue`) as the basic
primitive to enable a runtime consisting of many pseudo-processes that
can pass messages to each other.
Co-authored-by: Zachery Aaron Shores-Chmielewski <zachanon@gmail.com>
Reviewed-on: http://zachery.lol/code/code/zacheryasc/swactor/pulls/1
2026-01-23 05:00:57 +00:00
Zachery Aaron Shores-Chmielewski
b8b5b839df
feat: types for request/response handling
2025-11-25 20:51:13 -05:00
Zachery Aaron Shores-Chmielewski
120ba0ec71
init
...
Skeletal actor framework. Somewhat unweildy, needs a message box, a better runtime, and different channels. However, hello world example works
2025-11-24 19:39:17 -05:00