Skip to content

v0.7.4

Choose a tag to compare

@github-actions github-actions released this 17 Sep 18:04
· 762 commits to main since this release

portable-devshell v0.7.4

0.7.4 expands the operator-facing control surfaces and replaces the Worker data plane with the new Transport Frame v1 service architecture. The release also adds machine-readable CLI I/O, improves conversation handling and UI performance, and hardens installation and transport lifecycle edge cases.

Highlights

  1. Web control plane: the Web UI can now create instances, perform instance lifecycle operations, edit Control and instance configuration, manage connections, and inspect artifact activity. Destructive operations use explicit confirmations, instance selections are routeable, and conversation visibility preferences are persisted by Control.
  2. Structured CLI I/O: devshell --output text|json|jsonl ... provides machine-readable output for automation. Commands that consume JSON can read inline JSON, @file, or stdin via -; streaming commands require jsonl or text output.
  3. Transport Frame v1: Worker communication is now byte-oriented and multiplexes typed services over a shared Frame connection. Worker RPC, Reverse RPC, Artifact payload transfer, TCP, and process execution use the common service layer, while Artifact chunk bytes are no longer carried through the RPC data plane.
  4. Reverse carrier proxying: Worker enrollment and Reverse transport can use an explicit --proxy, persisted as [reverse].proxyUrl. Anonymous http://, socks5://, and socks5h:// proxy URLs are supported for enrollment, WSS, and SSE/POST carriers.
  5. UI and read-model efficiency: Web activity refreshes are scoped, unchanged read-model slices retain identity, TUI render churn is reduced, and Messages navigation is globalized. The redundant TUI Logs page has been removed.

Reliability and validation

  • Frame close, late-credit, retired-stream, and bounded-active-stream races are handled explicitly.
  • Transport protocol tests now cover typed/routed services and bounded stress acceptance paths.
  • The local installer correctly recognizes the current Control daemon identity during replacement.
  • Repeated invalid Todo tool use is escalated instead of allowing unbounded retry loops.
  • Conversation hidden-state behavior has dedicated persistence and regression coverage.

Upgrade notes

  1. Use the normal release installer so the application and Worker assets are upgraded as a matching release set.
  2. Existing Reverse connections continue to use their configured carrier unless proxyUrl is set. To route enrollment and Reverse traffic through a proxy, enroll with --proxy <url> or configure [reverse].proxyUrl.
  3. CLI automation can opt into --output json for single-result commands or --output jsonl for streaming/multi-record commands. Existing text output remains the default.

See docs/development/transport-protocol.md for the Transport Frame v1 contract and docs/operations/reverse-connections.md for Reverse carrier and proxy behavior.

Full Changelog: v0.7.3...v0.7.4