You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(release): simplify desktop distribution channels (#10163)
## Summary
Simplifies Omi release distribution while closing the executable
draft-PR blockers. The branch is rebased onto current `origin/main` and
now includes the independently reviewed memory chronology fix that was
blocking the broad backend CI lane.
Beta and Stable remain two desktop distribution pointers over one
immutable qualified manifest. The generalized release-record/ring
system, Beta backend fleet/routing, nomination, emergency promotion,
holds/receipts, and qualification-claim state are not restored.
## Trust, deployment, and routing changes
- Qualification records exact Stable/Beta URLs, hashes, and Sparkle
signatures for all four files; Beta and Stable promotion bind a
successful trusted candidate-tag qualification run at the exact
release-source SHA, never rebuild, and reject mutable release drift
before pointer movement.
- Evidence labels are explicit: T2/fault coverage is source-built
named-bundle evidence at the frozen tag, while exact signed ZIP/DMG
smoke is signing/notarization/package/storage proof. Required
operational evidence remains signed `.89` upgrade, `.70` side-by-side,
core journeys, soak, and same-manifest Stable promotion.
- Stable controls are pinned to `main`, use actual access-token
expansion, retain exact lost-response pointer idempotency, accept
retained qualified repoints, and verify exactly one `identity=stable`
XML item with immutable version/build/enclosure/signature facts.
- `environment=prod, deploy_targets=all` rejects before checkout, cloud
authentication, image publication, or mutation because transactional
GKE/config rollback parity does not exist.
- `environment=prod, deploy_targets=cloud-run-only` is intentionally
narrow: exact no-traffic tag, VPC Cloud Run Job known-audio gate with
Cloud Run IAM plus Firebase auth, traffic snapshot/restore, and
unconditional cleanup of the tag, Job, temporary invoker grant, and
temporary service account. It performs no GKE mutation.
- Source-admitted direct GKE workflows (`gcp_backend_listen_helm.yml`,
pusher, llm-gateway, agent-proxy) remain their respective production
paths and report checked-out HEAD identity with fresh-`origin/main`
ancestry diagnostics.
- Production-family Codemagic workflows pin `https://api.omi.me/`; the
startup function called by `main.dart` validates the production API and
agent WSS authority. It rejects old Beta/dev/staging/arbitrary overrides
while development remains configurable.
- Node-20 artifact-action majors are replaced with repository-approved
Node-24 majors. Resolver cache fixtures cover validated primary and LKG
records under the expanded immutable Beta manifest contract.
- Required-memory processing no longer owns or extends short-term TTL.
The authoritative apply owner preserves persisted capture/corroboration
expiry and keeps `updated_at` monotonic under clock skew; receipt
chronology cannot predate capture or grant freshness.
## Product invariants affected
- INV-AUTH-1
- INV-INT-1
- INV-MEM-1
Failure-Class: FC-nonrecoverable-promotion
## Verification
- Combined rebased exact head: deterministic local PR preflight passed
all 49 selected checks.
- Combined backend selection: memory lifecycle 28 passed, authoritative
memory apply store 7 passed, and `test_sync_v2.py` 163 passed.
- Focused desktop release/update/probe/vector suite: 62 passed.
- Memory lifecycle exact file also passed three consecutive times before
folding; adjacent apply/lifecycle/model suites: 100 passed.
- Deployment concurrency, direct-writer and mobile-routing mutation
contracts: passed.
- `actionlint` for changed release/deploy workflows and `git diff
--check`: passed.
- Flutter environment tests: 7 passed; targeted analysis had only the
existing non-blocking `library_private_types_in_public_api` information
message.
- Swift debug build and `APIClientRoutingTests`: 60 passed.
## Qualification boundary
Source-built named-bundle T2/fault evidence and exact signed-artifact
evidence are separate layers. Signed production binaries do not expose a
local automation/fault interface. Before Stable promotion, the exact
signed Beta artifact still requires `.89` upgrade, `.70` side-by-side
operation, real core journeys, recovery checks, and soak. Stable
advances the same immutable qualified manifest without rebuilding.
## Non-executed live operations
No cloud resources, releases, pointers, production app bundles, secrets,
deployments, or workflows were changed or dispatched.
reason: "#10163 locks the supported production Cloud Run-only boundary and canonical tagged-candidate IAM audience without introducing another deployment control plane"
0 commit comments