Skip to content

Harden Mesh public beta and prepare exact-source gates - #35

Draft
dhawal-ss wants to merge 18 commits into
mainfrom
agent/public-beta-hardening
Draft

Harden Mesh public beta and prepare exact-source gates#35
dhawal-ss wants to merge 18 commits into
mainfrom
agent/public-beta-hardening

Conversation

@dhawal-ss

@dhawal-ss dhawal-ss commented Aug 7, 2026

Copy link
Copy Markdown
Owner

What changed

  • commits the previously unbound Phase 3 through Phase 6 implementation as reviewable visual-system, consumer-copy, resilience, performance, and accessibility tranches
  • returns expired saved Matrix accounts to ordinary sign-in while preserving fatal handling for unrelated startup failures
  • replaces active-room typing polling with exact native change events and stops the notification clock when quiet hours are off
  • adds opt-in, device-local, bounded runtime error reports with no automatic upload or message, account, room, credential, URL, stack, or path data
  • adds an always-visible beta feedback action plus a Beta settings page for version, known issues, manual updates, feedback, and privacy
  • binds container SBOM and scan evidence to exact image digests and normalizes bounded Cosign discovery without treating discovery as release trust
  • commits the durable visual and copy audit evidence while keeping regenerated release artifacts out of source control
  • rebinds the blocked readiness ledger to the reviewed source snapshot and replaces stale dirty-tree reasons with the actual protected-main and container-security blockers

Why

The Phase 1 through Phase 6 work existed only in a dirty tree, so nine R0 release gates could not bind protected evidence to an exact source. The same tranche also contained three concrete runtime defects: expired tokens were classified too narrowly, typing status polled every two seconds, and early failures could disappear before the toast surface mounted. These commits bind the reviewed branch source and fix those causes without silently selecting an account provider, weakening message or media protection, or overstating voice readiness.

User and developer impact

Mesh presents calmer consumer language, familiar messaging controls, a discoverable beta support path, safer saved-account recovery, less idle work, and stronger Windows accessibility behavior. Account hosting stays independent from community hosting, public and custom providers remain explicit choices, automatic updates remain disabled, and Matrix voice remains fail closed.

Verification

  • lint and copy style passed; no renderer em dashes
  • design-token and central-icon contracts passed
  • current Phase 4 vocabulary evidence passed for 2,380 extracted candidates
  • Vitest: 140 files, 974 tests
  • Playwright: 85/85
  • Matrix Rust: 318 library tests plus generated-contract and deterministic helper coverage
  • legacy Rust: 260 library tests plus generated-contract, crypto, and TURN helper coverage
  • security invariants: Matrix 34/34 and legacy 23/23
  • Matrix production build and Matrix-voice build passed
  • bundle budgets passed: 287.74 KiB entry, 507.10 KiB eager JavaScript, 1,349.42 KiB all JavaScript, 99.74 KiB CSS, and 1,657.42 KiB all production assets
  • production-preview performance: 94 ms median and 394 ms worst interactive time across three local samples; browser evidence only
  • container supply chain: 58/58 tests, six exact R2/R3 images, two buildable local prototypes, one documented upstream blocker
  • protected-evidence validators: 59/59
  • release SBOMs, third-party notices, installer payload/coexistence, public site, owner decisions, beta contract, operations contract, voice dependency boundary, AI boundary, and production dependency audit passed
  • readiness ledger validates against source ec83c942483f8d1645689bdf076a77dce27752ff and tree 44c9c7177535961b31277ad108b904549262f90d

Protected review evidence

  • CI run 31314550379 passed frontend/browser, legacy Rust, Ubuntu Matrix Rust, Windows Matrix Rust, and its protected CI evidence-manifest job on branch head aeabf76419bcdf4257c84b951bce65edb45289fc
  • R3 run 31314550371 passed the MatrixRTC/operator contract and LiveKit scan; the lk-jwt-service scan failed on current fixable High findings
  • Security run 31314550368 passed CodeQL, dependency/license review, SBOM, feature matrix, dependency/secret audit, nginx, and PostgreSQL; Caddy and Synapse scans failed on current fixable High/Critical findings, so the protected security evidence manifest correctly failed closed
  • the CI PR artifacts are keyed to GitHub's synthetic merge SHA 3572bb6e0952c68b96d94066cc7d70ec0adca81a; the release verifier intentionally accepts only successful protected push runs on main, so PR evidence cannot be ingested as release evidence for the ledger source snapshot

Release boundary

This remains a draft. The committed readiness ledger is current and structurally valid, and is intentionally bound to reviewed source snapshot ec83c942483f8d1645689bdf076a77dce27752ff beneath the ledger-only head. All 25 release gates remain blocked: a branch PR run cannot satisfy the protected-main evidence contract, and the current Security run emitted no passing manifest. Track A has not met its nine-gate exit criterion, Track B has not started, the physical private-calling campaign remains 0/23, and no signing, tag, deployment, publication, provider configuration, or release is authorized by this PR.

Follow-up container remediation evidence

A fresh local-only campaign on 2026-08-09 used policy-pinned Syft 1.50.0, Grype 0.116.1, and database build 2026-08-09T06:23:06Z. The reproducible Caddy 2.11.4-patched.2 and lk-jwt-service 0.5.0-patched.2 prototypes passed smoke, containment, payload, SBOM, provenance, repeated-image-ID, and zero-fixable-finding checks. They remain unsigned local evidence and cannot replace an owner-approved registry, protected multi-architecture build, signing, or regression contract.

Official-image comparison remains blocked: Caddy 2.11.4-alpine is still the latest release and has 8 fixable High matches; official lk-jwt-service 0.5.0 improves from 6 to 3 High matches but still fails on Go stdlib, x/net, and x/text; Synapse v1.158.0 and develop each retain 62 fixable findings, including 32 High/Critical. No production image pin was changed and no policy exception was added.

Upstream remediation watchpoints

  • Caddy milestone v2.11.5 contains the merged dependency updates in #7872 and #7876, but still has five open items and no due date. Re-scan only after an official image is published with a new exact digest.
  • lk-jwt-service #207 updates Go to 1.26.5, x/net to 0.57.0, and x/text to 0.40.0, which covers the remaining official-image findings. The upstream PR is currently blocked with failing integration checks and has no published release image.
  • Synapse develop remains equivalent to the refreshed blocked scan. Wait for a supported official release/develop image whose Python, curl, Pillow, cryptography, pyasn1, and Twisted stack clears the policy; do not construct an unsupported local Synapse image.

@dhawal-ss dhawal-ss changed the title Harden Matrix public beta experience and release gates Harden Mesh public beta and bind exact-source gates Aug 9, 2026
@dhawal-ss dhawal-ss changed the title Harden Mesh public beta and bind exact-source gates Harden Mesh public beta and prepare exact-source gates Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant