Commit graph

25 commits

Author SHA1 Message Date
Claude
982d82776d feat(dashboard): per-message-type breakdown with bounded tracking (Stage 8)
Track per-actor message type histogram in ActorSlot (bounded to 32
distinct types). Extend ActorSnapshot and ActorInfo to carry sorted
type counts through the stats pipeline.

Web actor detail page shows horizontal bar chart with per-type colors,
counts, and percentages. TUI actor detail view renders text-based bar
table with 6-color rotation. Data flows through existing SSE stats
events with no additional endpoints needed.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
c7a0bd2523 feat(dashboard): per-actor logging with tracing integration (Stage 7)
Add actor-level tracing span in worker tick_all to propagate actor_addr
to user log events. DashboardLayer now extracts actor_addr from both
span extensions and event fields. EventStore gains read_for_actor() for
filtered log queries.

Web actor detail page gets a live-updating log panel with per-level
filter buttons (ERR/WARN/INFO/DBG/TRC) and auto-scroll. TUI actor
detail view adds scrollable log panel with j/k navigation and 1-5 keys
for level toggling. REST endpoint at /api/logs?actor=<hex>&limit=N&level=L.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
991b212191 feat: message flow topology visualization (Stage 6)
Add worker-level message flow topology with force-directed graph
visualization on a dedicated /topology web page.

- topology.rs: worker_topology() derives graph from cross_sends/local_sends
  stats (TopologyNode, TopologyEdge, TopologySnapshot)
- /topology page with interactive force-directed graph layout:
  - Nodes sized by actor count, colored by worker
  - Edges show local sends (green self-loops) and cross-worker sends (blue)
  - Edge thickness proportional to message volume
  - Physics simulation with repulsion, attraction, and gravity
- SSE "topology" event emitted every ~1s (every 5th stats tick)
- /api/topology REST endpoint for on-demand snapshot

Infrastructure ready for future per-actor topology with core instrumentation.

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
70555c2daf feat: warning/anomaly detection system (Stage 5)
Add automated detection of 6 runtime anomaly types with severity levels:

- PoisonedActor (critical): actor panicked
- StalledActor (high): no message processing while mailbox > 0
- GrowingMailbox (medium): consecutive increases in mailbox depth
- MailboxOverflow (medium): messages dropped (backpressure triggered)
- WorkerImbalance (low): one worker has >2x average actor count
- EmptyWorker (low): worker has 0 actors while others have many

Configurable thresholds with sensible defaults. 7 scenario tests covering
all warning types, threshold behavior, and streak reset logic.

Web: warning banner at top of overview page with severity-colored alerts
TUI: warning count in summary bar (yellow when active)
SSE: new "warnings" event sent with each stats tick

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
6cfafa04b7 feat: per-worker utilization visualization with phase bars (Stage 4)
Replace the basic canvas bar chart on the web overview with rich worker
cards showing:
- Stacked phase-timing bars (processing/delivery/spawns/overhead)
- Load percentage derived from tick timing active ratio
- Inline sparklines from history (message rate trends)
- Actor count, messages processed, mailbox depth stats
- Color legend for phase identification

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
41930ef8f4 feat: search and filter for actor tables (Stage 3)
TUI:
- Press / to enter search mode (vim-style), type to filter actors in
  real-time by address, message type, or worker ID
- Enter locks the filter, Esc clears it
- Navigation bounds respect filtered results

Web (actors page):
- Worker dropdown filter (dynamically populated from live data)
- Status filter (All / Healthy / Poisoned)
- Mailbox depth threshold filter (min depth)
- Text search now also matches message type names

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
5e3a779cba feat: actor detail drill-down view (Stage 2)
Add dedicated actor detail page accessible from both web and TUI surfaces.

Web:
- /actor/<hex> page with live-updating stats, sparkline charts for message
  rate and mailbox depth, status badge, worker assignment
- Actor addresses in overview and actors pages now link to detail page
- Actors page detail panel links to dedicated detail page

TUI:
- ViewMode::ActorDetail with per-actor sparklines (rate + mailbox)
- Enter on actor row opens detail, Esc returns to previous view
- Per-actor ring buffer history (60 samples) tracked in App state

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07:00
Claude
144b4ca5ef feat: time-series history infrastructure with sparklines (Stage 1)
Add in-process ring buffer history for per-worker and per-actor stats,
with sparkline rendering on both web (SVG) and TUI (ratatui) surfaces.

- history.rs: DashboardHistory with bounded VecDeque ring buffers, LRU
  actor eviction, thread-safe RwLock, 4 unit tests
- SSE producer records stats every tick, sends initial history snapshot
- /api/history REST endpoint for on-demand history JSON
- Web: inline SVG sparklines in worker detail headers (rates + mailbox)
- TUI: per-worker Sparkline widgets in overview layout

Authored by Claude, lovingly guided by Zachery Aaron Shores-Chmielewski
2026-02-13 21:20:23 +07: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
75aefa0c49 refactor: repack external bindings into their own crates (#19) 2026-02-07 17:39:02 +00:00