Expose typed compiler errors and warnings with UTF-16 source ranges through read-only source checking and compilation failure details. Preserve terminal diagnostics for ordinary compilation without mutating image state or caching validation artifacts.
Show debounced diagnostics for unsaved image sources and actor-local behaviors in VS Code Problems. Discard obsolete document and connection results, with regression coverage for Unicode ranges, warnings, side-effect isolation and held in-flight response races.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expose actor metadata, live configuration, natural state/mailbox edits and retained logs as virtual files. Add guarded image source creation, rename/move and deletion with actor path tracking.
Compile actor-local temporary behavior edits at safe boundaries, preserve them across restart, clear them on reload, and confirm copying them to shared source. Cover protocol, runtime and actual VS Code host workflows.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove actors after successful graceful shutdown or immediately on kill, including state, mailbox, logs, and source-path metadata. Keep failed actors available for inspection and repair. Preserve restart as an independent identity-retaining operation and mark removed VS Code snapshots read-only.
Default the self-incrementing counter's missing state to zero on its first message and isolate finite control-test fixtures from the demo.
BREAKING CHANGE: stop and kill permanently remove actors instead of retaining stopped instances. Removed references cannot be inspected, sent to, or restarted. Use restart directly to retain actor identity and state.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allow omitted state returns in handlers and shutdown hooks. Preserve committed state rather than invocation-local mutations, while acknowledging successful messages and committing valid sends.
BREAKING CHANGE: unit returns no longer replace actor state with null. Use host state editing to explicitly set null state.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add scheduler toolbar and copy-reference actions, guarded inspection JSON saves with protected-field warnings, and read-only ctx.this for self-messaging. Preserve exact actor values and unsaved edits across refreshes, and test the save lifecycle in the VS Code host.
Isolate the CLI forwarding test from the editable counter example.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add guarded state and mailbox editing, immediate severity-filtered actor logs, and per-client history/follow subscriptions. Expose repair and log-level controls in the CLI, REPL, and VS Code.
BREAKING CHANGE: protocol v5 requires actor log thresholds in snapshots and introduces editing and log subscription operations. Rebuild the server, CLI, and extension together.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
Separate editable image sources from generated commit revisions and loaded actor implementations. Add the source filesystem and context actions in VS Code, path-based REPL commands, sender-aware actor contexts, and privileged lifecycle controls.
BREAKING CHANGE: protocol v4 replaces published behavior commands with image source paths and commit operations. Actor handlers now use handle(ctx, state, sender, message) and return only state; outgoing messages use ctx.send or ctx.send_from.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
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>
Introduce owned portable values with distinct actor references, bounded Rune conversion, JSON REPL literals, and nested reference completion. Preserve isolation and atomic transitions across state, messages, effects, migration, inspection, and TCP clients.
BREAKING CHANGE: protocol v3 replaces integer state and kind/value/target_ref messages with tagged values. Rune handlers now take (state, message) and return (new_state, [(actor_reference, message)]). The REPL send command accepts one JSON message.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a reusable loopback TCP client, server-owned counter bootstrap, and shared-image reconnect coverage. Preserve actor state and behavior revisions across client disconnects without retrying uncertain requests.
BREAKING CHANGE: the REPL no longer starts an embedded image. Start runa-server with --listen before connecting; use --connect to select a loopback endpoint.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Require explicit behavior selection on spawn, expose randomized actor references, and add named REPL bindings, completion, history navigation, and protocol v2 routing.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace the CLI's direct ImageApi dependency with protocol commands dispatched through runa-server. Render typed protocol replies for behavior, actor, event, lifecycle, and scheduler operations, preserving the interactive workflow while exercising the same contract used by the local JSON-lines transport.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
Add a transport-neutral runa-server dispatcher that validates protocol requests, routes supported operations through runa-image-api, and converts actor snapshots, behavior revisions, events, and failures into wire DTOs. Document that event retrieval drains the in-memory queue and that network transport and authentication remain future work.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the runa-protocol crate with version-1 request, response, and event DTOs, serde serialization, and basic envelope and input validation. Document the wire contract and clarify that transport, dispatch, and authentication remain future work.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Introduce the runa-image-api service boundary for behavior source retrieval, publishing, history, rollback, actor lifecycle, messaging, scheduling, snapshots, and events. Route the local CLI through the API and document that it is trusted and process-local, with no network authentication.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expose the latest completed Rune step count, instruction pointer, and call-frame depth on active actor snapshots. Preserve telemetry while paused and clear it when execution ends or is cancelled. Document that this is not source-level debugging.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Expose cancellation for active and paused handler invocations. Cancellation drops the invocation, preserves committed state, moves reserved input to the mailbox front for retry, and emits an event. Document that native side effects are not rolled back; test cancelling pending async work and retrying an input under a newly installed behavior.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a safe-point runtime API for explicit state migration during implementation installation. Migration failures preserve both committed actor state and the current implementation; successful changes emit a migration event. Document the current i64-only contract and leave schema-aware or Rune-authored migrations as future work.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add pause/resume lifecycle operations that retain active Rune invocations and restore their prior runnable or awaiting state. Expose both operations in the CLI and document the between-tick, non-preemptive guarantee.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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>
Add optimistic behavior publishing, immutable revision history and rollback, plus runtime implementation installation at idle handler boundaries.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add stable versioned source and implementation IDs, exact original-source retention, compiler fingerprints, and an in-memory compiled artifact cache. Use implementation content IDs in runtime actor references.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a REPL for spawning actors, sending messages, ticking, inspection, events, stop, and restart. Expose ordered actor snapshots and document the local control surface.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Cover failed-message retries from committed state and stop/restart FIFO preservation. Document in-memory all-or-nothing transitions and their process-local limits.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Implement typed, budgeted Rune invocation slices and a minimal in-memory actor runtime with bounded mailboxes, state transitions, effects, and lifecycle operations. Add feasibility and runtime documentation with tests for async resumption, cancellation, and scheduler fairness.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>