Repository navigation
v0.7.6
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
- First-run initialization:
devshell initstarts 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 usesopenai-sessionContext binding and keeps the Workspace feature switch disabled by default. - Access Extension:
devshell accessprovides 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. - Compatibility lifecycle:
devshell migrateprovides an explicit persistent-state migration entry point anddevshell update [version]reuses the release installer transaction with candidate preflight. Worker Protocol now negotiates semantic protocol versions; Extension API/schema andhostDependencieshave 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-deferrable0.7.10deadline. - 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/frpcdownloads 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 negotiated1.0.0protocol 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
.mjsfile rather thannode -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
- Existing global version 1 and instance version 2/3 configuration remains migration input.
devshell migratewrites current global version 2 / instance version 4 documents explicitly. - Fresh instance defaults are now
contextMode = "openai-session"and[workspace].enabled = false. Migrated version 2/3 instances keep the old implicitexplicit/ Workspace-enabled behavior unless the user changes it later. - Use the normal release installer or
devshell updateso the application, Worker assets and compatibility preflight stay in the same transaction. - 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