Release and installation lifecycle
September 3, 2026 ยท View on GitHub
The repository uses one release-set version while each package keeps its own semantic version. A candidate tag such as 0.2.3-rc.1 is built from one clean commit, then qualified before stable publication. Promotion verifies the exact candidate bytes, skips an unchanged package only when its published bytes match, and publishes changed components before the suite through npm OIDC. The final GitHub release is created with the repository-scoped release App.
config/dsh-compatibility.json.executionOwner is the single Execution owner-release record. It binds the stable version and release tag to the exact GitHub artifact coordinate, source revision, SHA-256 digest, qualification coordinate, and public projection. Candidate construction downloads those remote bytes and resolves the remote tag before packing anything; source checkouts, local tarballs, and same-version rebuilds cannot satisfy this gate. The generated compatibility matrix embeds the verified record, and Product qualification checks its install pin against that record. Stable promotion continues to move only the already-qualified frozen DSH candidate bytes.
dsh-wsr-execution and dsh-wsr-studio can each be added, upgraded, rolled back, and removed independently. The suite pins both packages exactly and owns the single composition layer; it has no UI identity. When moving from separately installed components to the suite, remove the component bundle layers and retain one dsh-wsr layer. Repeated suite adds are reconciled to one suite layer. To return to Execution alone, remove the suite and Studio roots, retain/add the exact Execution root, and reconcile the profile to one dsh-wsr-execution layer.
Release qualification exercises those transitions in temporary DSH homes, checks independent and suite composition, boots the real DSH web Host in Chrome, tests Studio downstream outage, and rejects duplicate activations. It also admits two Roles to distinct Copilot SDK and Codex CLI Provider descriptors through the exact published Execution owner without opening either Provider or reading credential material. Provider routing remains an Execution concern: installing the suite does not collapse the mapping to one Provider.