Skip to content

v0.7.6

Choose a tag to compare

@github-actions github-actions released this 26 Sep 14:29
· 645 commits to main since this release

portable-devshell v0.7.6

0.7.6 focuses on first-run usability and compatibility lifecycle work while continuing the 0.7.x Core / Extension boundary cleanup. It adds devshell init, explicit update/migration entry points, the Access Extension, OAuth2 approval management, semantic Worker Protocol negotiation, schema-backed Extension configuration, and a release-gated compatibility expiry mechanism.

Highlights

  1. First-run initialization: devshell init starts Control, enables MCP for a fresh installation, creates or reuses a local instance, configures OAuth2 approval, starts the instance when enabled, and can hand off directly to Access setup. A newly created local instance uses openai-session Context binding and keeps the Workspace feature switch disabled by default.
  2. Access Extension: devshell access provides CLI-first management for Cloudflare Tunnel, SSH reverse access, endpoint status and lifecycle. The bundled Web application is an observation surface in 0.7.6; generic Extension management UI injection is intentionally deferred until the public UI contract is defined.
  3. Compatibility lifecycle: devshell migrate provides an explicit persistent-state migration entry point and devshell update [version] reuses the release installer transaction with candidate preflight. Worker Protocol now negotiates semantic protocol versions; Extension API/schema and hostDependencies have independent compatibility versions. Historical compatibility paths are annotated with @compat / @removeAt, checked by CI and the release gate, and all compatibility debt identified in this release has a non-deferrable 0.7.10 deadline.
  4. OAuth2 approval management: token and TUI approval modes are available through CLI/TUI/Web connection management, including approval-token rotation without changing instance MCP authentication.

Reliability and validation

  • Legacy instance version 2/3 migration preserves the historical implicit contextMode = "explicit" and Workspace-enabled behavior instead of inheriting new fresh defaults.
  • Control persistent migration implementations are centralized under packages/control/src/migration/, so old schema support can be audited and retired by its support window instead of remaining mixed into ordinary Store/State paths.
  • Access managed cloudflared / frpc downloads use release-pinned assets, SHA-256 verification and versioned caches where managed downloads are supported.
  • Access retry backoff is isolated per endpoint, so a fast-recovering endpoint no longer forces unrelated endpoints to retry before their own deadline.
  • Worker clients reject malformed or out-of-range negotiated protocol versions while retaining the legacy Worker 7 compatibility adapter. A v0.7.5 numeric-only client continues to receive numeric protocol version 7; semantic-range clients receive the negotiated 1.0.0 protocol version.
  • Compatibility expiry is now part of development CI, final acceptance and release validation. The current compatibility debt cannot move its deadline beyond 0.7.10; by that release each path must either be removed or promoted into an intentional stable contract.
  • Already-expired v0.7 file/tmux hidden aliases were removed together with their obsolete behavior tests instead of extending their lifetime.
  • Config path mutation traverses only own properties, keeping Extension-owned configuration updates fenced from inherited object state even if a future caller bypasses normal path parsing.
  • Release installation imports the dedicated Control migration/preflight leaf instead of the full Control barrel. Windows executes that preflight from a temporary .mjs file rather than node -e, passes the candidate module/home through the correct Node script argument positions, and therefore avoids both PowerShell 5.1 native-argument quoting corruption and accidental self-import of the temporary preflight script.
  • Control/Frame protocol semantic-version migration remains later 0.7.x freeze work; the compatibility document now distinguishes current 0.7.6 contracts from the target lifecycle.

Upgrade notes

  1. Existing global version 1 and instance version 2/3 configuration remains migration input. devshell migrate writes current global version 2 / instance version 4 documents explicitly.
  2. Fresh instance defaults are now contextMode = "openai-session" and [workspace].enabled = false. Migrated version 2/3 instances keep the old implicit explicit / Workspace-enabled behavior unless the user changes it later.
  3. Use the normal release installer or devshell update so the application, Worker assets and compatibility preflight stay in the same transaction.
  4. Access management is intentionally CLI-first in this release. Do not depend on the current Access Web backend as a frozen public Extension management API.

See docs/getting-started/quickstart.md, docs/operations/configuration.md, docs/operations/chatgpt-tunnels.md, and docs/development/compatibility.md for the current contracts.

Full Changelog: v0.7.5...v0.7.6