A polish-and-fix release. No functional changes to the network — same catalog, same pricing, same security envelope. The Mac app gained a batch of native polish, and the brand pipeline became fully vector.
Added
- In-app feedback (Help → Send Feedback…, ⌘K → Send feedback). Replaces the bare
mailto: link with a sheet that auto-attaches app version, chip, memory, connection status, optional 5-minute telemetry, and an optional recent-logs excerpt — every future support email now arrives with a complete repro. - Diagnostics toggle in Settings → Advanced. Gates Apple MetricKit collection. Default-on, live-toggleable without an app restart.
- Security link in the About sheet (→ commoncompute.ai/security).
- VoiceOver labels on the dashboard utilization gauges, sidebar nav rows, menu-bar icon, status footer, and login fields.
Changed
- Menu bar icon now renders the real brand monogram from a true vector source, sized predictably regardless of display scale. The side status dot is gone — status reads as opacity on the glyph itself (earning = full, paused = 45%, offline = 35%).
- Brand mark is fully vector everywhere —
apps/web/public/brand/*.svg and the Mac app's asset catalog now share a single 6 KB SVG traced from the canonical raster. The wordmark is also outlined-to-paths so it renders identically on machines without Inter Tight. - Error copy for payouts, runner failures, rate-limits, and Stripe-shaped errors. No more "stripe: account_invalid" or "HTTP 429" in the UI.
- APIClient now stamps
X-App-Version on every request, so the backend can attribute heartbeat traffic to the build that produced it.
Fixed
- Menu bar icon rendered "massive" on some display configurations because the Mac asset was a 1254×1254 1x PNG. Switched to a vector asset with
preserves-vector-representation: true; size is now consistent at any scale.
Internal
- New
scripts/release.sh — local-Mac orchestrator that wraps build-dmg.sh, publish-appcast.sh, optional gh release create, and an optional Cloudflare deploy. No GitHub Actions required. - New
scripts/changelog-extract.mjs — single extractor that feeds both the local release flow and the GH workflow's release-notes body, sourced from this CHANGELOG. - New
scripts/trace-brand-mark.sh + scripts/outline-wordmark.py — reproducible vectorisation of the brand mark and wordmark from raster + bundled-font sources.