Release flow: signed DMG, GitHub Releases and Updates - #1
Merged
Merged
Conversation
Paper Updates page U1-U6 (proposed): Settings -> About with the update row and what each check sends, Restart to update in the app menu, About and the K menu, quiet Upgraded to x.y.z on hosts. Daemon copy moves from update to upgrade per CONTEXT.md; the per-upgrade toast is dropped.
… and update (ENG-256) The 2026-10-01 'Daemon upgraded' toast is superseded by the machine-bar caption, tooltip and Hosts row; the updater task removes it from code.
Next.js 16 (App Router, Turbopack) for Vercel with root directory apps/site, built from the Paper "Marketing site" page: S1 desktop dark, S2 light (system appearance) and S3 mobile, on @polaris/ui's tokens plus the site palette. Product shots, scenes, pixel icons and washes are imported from design/assets, never copied. The repo is public, so the "Source opens soon" notify form becomes a real source link: "View source" buttons and a repository card with the clone line. "Download for macOS" goes to /download/mac (ENG-259). On phones the primary action drafts the download link to the visitor's own address. The site joins typecheck, test, lint and turbo build. Next pulls in caniuse-lite (CC-BY-4.0) and sharp's prebuilt libvips (LGPL-3.0), recorded as licence exceptions with reasons; THIRD_PARTY_NOTICES.md regenerated. AGENTS.md gains the apps/site row; DESIGN.md's Marketing site section drops the notify form and records the mobile email draft and breakpoints.
…643b/dmg-design-design-the-dmg-installer-in-paper-eng-25
Pass filtered explicit environments to every runtime child launch, validate inherited descriptors before adoption, and replace legacy Codex servers only when idle. Typecheck, tests, lint and spec checks pass. Leased cold-start quick runs (3 before/after) stay within tolerance of the before control. Both fail the older machine baseline under 9.3/5.7 busy cores; startup 214.7/214.6 ms and footprint 88.28/87.41 MiB. No baseline rewrite; performance evidence is load-qualified.
# Conflicts: # apps/site/package.json # bun.lock
Finder draws icon labels black over a DMG background in both appearances, so the night art left them unreadable. Record the dawn recipe for gen_dmg.py, the neutral ink arrow and the measured label contrast; Paper I3/I4 replace I1/I2.
Strip POLARIS_HANDOFF after environment overrides in benchmark and Desktop smoke fixtures. Reject zero-process Daemon report windows so failed measurements cannot appear as improved counters. Leased quick idle measured one process before and after. Comparisons are load-qualified at 6.9/10.1 background cores: baseline footprint drift appeared in both runs and after RSS varied. Baselines remain unchanged.
# Conflicts: # scripts/license-exceptions.json
Use Electron autoUpdater with the private site-feed contract, persisted opt-out, About and K menu controls, and staged updates on quit. Replace upgrade success toasts with expiring machine captions and Hosts rows. Idle runs retain the committed baseline. Physical footprint was already above it before the change and stays stable afterward; busy-Host RSS/CPU comparisons are inconclusive. The six-hour timer runs only in the Desktop App and is removed when checks are off or an update is ready. Record metrics and signed-install verification limits in the updater README.
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.
Release flow for a distributable Polaris (ENG-252).
package --releasebuilds release-versioned Daemons, signs them and Betterleaks with the Developer ID and hardened runtime, notarises the app, and emits the Update zip.design/scripts/gen_dmg.py, built headless with dmgbuild, signed and notarised when credentials exist.v*tags build a draft GitHub Release;-rc.Nmay be unsigned prereleases; stable tags fail closed without signing secrets.apps/site(Next.js on Vercel) with the update feed (/api/update/darwin-arm64/:version),/download/mac, Axiom events without IPs, and the mobile download email (BotID → SES Insights validation → SES).Typecheck, tests, lint and licences pass on the merged branch. Environment setup: ENG-267. First signed release: ENG-262.