feat: harden post-alpha release and prepare beta channel - #121
Merged
Merged
Conversation
`release-info.json` recorded a permanent `pre-alpha` qualification string, so the published `v0.1.0-alpha.1` archive underclaimed its own independently verified evidence and every future alpha would repeat that. `release.yml` already validates the exact tag shape; it now maps that shape to a closed `OMP_RELEASE_CHANNEL` token and exports it for the build. The builder owns the claims themselves, accepts only `pre-alpha` or `alpha`, defaults to `pre-alpha` when the variable is unset so local and untagged builds stay conservative, and fails the build on anything else — including inherited property names such as `toString`. A byte-exact rebuild of an alpha tag sets `OMP_RELEASE_CHANNEL=alpha` alongside `GITHUB_SHA` and `SOURCE_DATE_EPOCH`. No beta or stable channel exists, and the SBOM is not a function of the channel.
`install` rolled back healthy Windows services. Every private path the daemon touches is verified by spawning `powershell.exe`, and a cold `serve` reaches ten of those spawns before it binds the listener. At the 1854 ms mean cold spawn measured on a 2-vCPU Server 2025 host that is ~18.5 s of ACL verification, so the fixed 15 s readiness deadline expired while the daemon was still starting normally — matching the ~18 s daemon lifetime recorded in `docs/WINDOWS_QUALIFICATION.md`. Replace the unconditional deadline with `readinessBudgetMs`: 15 s on Linux and macOS, 60 s on Windows (~3.2x the measured cold start). The probe is unchanged, so this is a longer wait rather than a retry — a service that never binds still fails closed at a finite deadline and still rolls back. `readinessBudgetMs` takes the platform and `pollUntilReady` takes its clock, so the regressions assert both bounds and the exact expiry instant without reassigning `process.platform` or waiting a real minute. Refs #90
Restructure the README around the canonical docs/media package: compact Gate lockup, literal promise, support sentence, demo GIF, five badges, trust strip, and a compact qualified-alpha disclosure above the fold; product boundary, three-step flow, and canonical captures immediately after. Fold the upstream pin into a pre-install 'Compatibility and alpha status' section preserving the TUN, Funnel, Android-radio (#65), Preview-fallback, Windows (#90), untrusted-local-account, and self-hosted-relay limits, and replace the omp-deck-only comparison with a source-verified five-project matrix (omp-deck 0.6.1, oh-my-portal, claudecodeui with unmerged PR #1143, pi-agent-dashboard fork-only), reviewed 2026-08-21. Add docs/media/LAUNCH_COPY.md: GitHub release, X, and Show HN drafts for v0.1.0-alpha.1, explicitly marked draft/not published, with a pre-publish reverification checklist. Root SECURITY.md already states the qualified-alpha status at HEAD; no reconciliation needed.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #121 +/- ##
==========================================
+ Coverage 69.87% 70.05% +0.17%
==========================================
Files 30 30
Lines 6567 6605 +38
==========================================
+ Hits 4589 4627 +38
Misses 1978 1978
🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Decision
Review-only post-alpha and beta-readiness work package. Do not publish a beta from this PR alone.
The published
v0.1.0-alpha.1boundary remains unchanged. The exact tested OMP v17.4.1 patch route is the accepted beta prerequisite: upstreaming discussion #6460 and paired OMP packaging are not beta blockers, while stock OMP remains insufficient.Changes
v17.4.1/9350b799…, with matching pi-wire, provenance, licenses, doctor pinning, and hosted apply lanes;git amtree assertion → upstreambun setup/binary build → separateomp-gateway-patchedactivation/config verification → symlink rollback;v<version>-beta[.<n>]maps only toOMP_RELEASE_CHANNEL=beta; stable/RC/property-name inputs are rejected; onlyrelease-info.jsonchanges across channels and the SBOM stays byte-identical;Security / support impact
Verification
bun run check: 389 passed, 0 failed; 2,009 assertions; all workspace typechecks, production build, handoff validation, capability and identifier leak scans green.release-info.json, channel-independent SBOM.bun run media:check: passed.bun audit: no vulnerabilities.git amreproduced treea5cfc80f…; 122 focused macOS tests andci:check:fullpassed.omp/17.4.1, installed through the separate symlink, and persistedcollab.autoStart=controlplusregistryEndpoint=auto.200 no-storeView/Control, stale409, 374 ms forced-exit revocation, anddoctor17/17.live, exit 0, no restart.Actual remaining beta gates after merge
mainand verify checksums, GitHub attestations, Cosign bundles, and exact archive bytes.Not beta blockers: upstream discussion #6460, paired OMP packaging, Windows support or its Windows-only read-only fixture hang, Android/Chrome issue #65, Portal Tunnel #74, draft Windows ACL optimization PR #91, self-hosted relay, and aggregate coverage percentage.