Commit Graph

15 Commits

Author SHA1 Message Date
Steve Biedermann c2781a9bb8 feat: add native VS Code actor debugging
Attach an inline DAP session to one actor with exact loaded sources, gutter breakpoint verification, call stacks and bounded toolbar controls. Preserve explicit scheduler ticks, guard connection and code-version changes, and leave actors unchanged on detach.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 21:36:30 +01:00
Steve Biedermann 68afb435f3 feat: add bounded source step-over and step-out
Extend mode-aware stepping across runtime, image API, protocol and VS Code while retaining default step-into behavior. Test recursive calls, nested breakpoints, async and lifecycle boundaries, and real editor navigation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 21:14:06 +01:00
Steve Biedermann 19eaeb447c feat: add actor source stepping and breakpoints
Add implementation-bound line breakpoints and bounded step-into for paused active actors. Preserve invocation drafts and transactional sends, expose debugger stop reasons, and wire VS Code actor controls with exact loaded-source navigation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 20:53:43 +01:00
Steve Biedermann b8080fe02e feat: add loaded-source execution stack inspection
Expose bounded active Rune frames and exact installed source through read-only image and protocol inspection. Add immutable VS Code source navigation and lifecycle, await, and integration coverage.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 20:37:05 +01:00
Steve Biedermann 7e25cb8ef6 feat: add structured Rune compilation diagnostics
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>
2026-11-03 20:28:56 +01:00
Steve Biedermann 8a7e34b1f8 feat: pretty-print actor JSON and highlight syslog-style logs
Format actor state and mailbox files with two-space indentation while preserving exact portable values. Use syslog-style log headers and an actor.log filename recognized by VS Code's built-in log language.

Verify exact formatting, severity mapping, newline escaping and log language detection with unit and real extension-host tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 20:20:00 +01:00
Steve Biedermann 318bb5dbd2 feat: add actor file trees and temporary behavior editing
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>
2026-11-03 20:11:39 +01:00
Steve Biedermann c851fefa98 feat: add editable actor inspection and context self references
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>
2026-11-03 18:52:10 +01:00
Steve Biedermann de69059fa3 feat!: add actor repair and filtered log subscriptions
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>
2026-11-03 18:26:21 +01:00
Steve Biedermann 89794b08dd fix: gracefully close extension WebSocket connections
Use a code-1000 close handshake for intentional disconnects, wait for pending closes during deactivation, and bound shutdown to five seconds. Preserve immediate termination for failed connections and guard reconnects against stale sessions.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 17:24:09 +01:00
Steve Biedermann efef8a93b9 feat!: add image source files and system messages
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>
2026-11-03 17:01:24 +01:00
Steve Biedermann 39b7443c79 feat: add VS Code behavior and source browsing
Show published behaviors and revision history, retrieve exact Rune source through the shared protocol, and cache read-only source documents by connection session and revision. Refresh behavior listings on image notifications and cover browsing against the real server and VS Code host.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 15:57:43 +01:00
Steve Biedermann e8c9fcad65 feat: add VS Code actor controls
Add explicit-behavior spawning, structured message input, lifecycle actions, and explicit scheduler ticks. Preserve lossless integers and enforce the complete request size limit. Verify controls and live snapshot updates against the real image and VS Code host.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-03 15:54:07 +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