Commit Graph

10 Commits

Author SHA1 Message Date
Steve Biedermann 97585a6f10 feat: add graphical world client
Add an egui actor browser, inspector, and debugger controls over the shared WebSocket image.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-04 04:49:07 +01:00
Steve Biedermann 750b709d35 feat!: add CLI subcommands and an explicit REPL entry point
Expose image operations through Clap subcommands, rename actors to ps, remove REPL cancellation, and rename the mise cli task to repl. Preserve session bindings in the REPL and proper close handshakes for one-shot commands.

BREAKING CHANGE: runa-cli now requires a subcommand; use runa-cli repl or mise run repl for interactive use. The actors REPL command is now ps, and cancel is no longer available in the REPL.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 17:13:15 +01:00
Steve Biedermann b63666bcc2 feat!: rename server and CLI and adopt Clap arguments
Rename the server crate and executable to runa and the REPL to runa-cli. Parse executable arguments with Clap derive/env, default the server to loopback port 3737, and support RUNA_LISTEN and RUNA_CONNECT with explicit flag precedence.

Remove the stdio transport and child-process client. Make mise start launch the server and mise cli launch the REPL, updating extension integration runners and documentation.

BREAKING CHANGE: runa now starts the WebSocket image server rather than the REPL; use runa-cli for the REPL. The runa-server package, stdio transport, LocalClient, ProtocolClient, and serve/serve-network mise tasks are removed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 15:49:35 +01:00
Steve Biedermann 72a37b178c feat!: use runa-debug WebSockets with live image notifications
Replace plain TCP JSON-lines connections with bounded loopback WebSockets using the required runa-debug subprotocol. Keep single-threaded image dispatch and stdio framing unchanged.

Broadcast coalesced, non-destructive image_changed invalidations after successful mutations. Update the REPL client and automatically refresh VS Code actor trees and open inspectors, preserving request correlation and connection-session isolation.

Validate negotiation, message limits and fragmentation, multi-client notifications, real REPL interoperability, and automatic mailbox/lifecycle/failure inspection in a VS Code extension host.

BREAKING CHANGE: the network endpoint now accepts only runa-debug WebSockets at the root path, not plain TCP JSON Lines. Rust network integrations must use WebSocketClient and serve_websocket. Request/response DTOs remain protocol v3; stdio is unchanged.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 15:36:21 +01:00
Steve Biedermann 8ce6ca9a2a feat: add a localhost VS Code actor inspector
Add explicit connection management, an actor explorer, and session-isolated read-only snapshots over protocol v3. Preserve 64-bit values and validate bounded framing, correlation, and snapshot contracts without draining events or advancing the image.

Wire TypeScript formatting and checks into mise, add real Rust-server interoperability tests, and verify inspection and reconnect behavior in a VS Code extension host.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 14:52:28 +01:00
Steve Biedermann 7a368c3944 chore: rename the REPL mise task to start
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 14:41:46 +01:00
Steve Biedermann d96d603286 feat: add localhost TCP protocol listener
Expose the existing versioned JSON-lines dispatcher over TCP, with an enforced IPv4/IPv6 loopback-only bind, bounded nonblocking client handling, request and response size limits, and a shared single-threaded image. Add a serve-network mise task, subprocess coverage, and document the unauthenticated trusted-local-development boundary.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-02 14:50:30 +01:00
Steve Biedermann 3146423f78 feat: add local JSON-lines server transport
Expose the runa-server protocol dispatcher over newline-delimited JSON on stdin/stdout for a trusted parent process. Bound request lines to 1 MiB, return one correlated response for each valid request, and fail explicitly on malformed or oversized input. Add the mise serve task and document that this is not a network listener or an authenticated service.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-02 14:18:45 +01:00
Steve Biedermann c857853cf5 feat: expose behavior versions in CLI
Add a mise launcher for the Runa CLI and expose named behavior publish, history, rollback, install, and spawn operations. Update usage documentation and changelog.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-02 10:24:43 +01:00
Steve Biedermann 8b38cf7b89 chore: configure mise pre-commit checks
Add formatting, lint, and test tasks with Tombi, rustfmt, and Clippy configuration. Require agents to pass the pre-commit task before committing.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-01 20:28:32 +01:00