Skip to content

feat(release): release-grade packaging — generated icon, signing tiers, release assets, app CI lane (Event 179)#163

Merged
junjslee merged 1 commit into
masterfrom
feat/event179-release-grade
Jul 21, 2026
Merged

feat(release): release-grade packaging — generated icon, signing tiers, release assets, app CI lane (Event 179)#163
junjslee merged 1 commit into
masterfrom
feat/event179-release-grade

Conversation

@junjslee

Copy link
Copy Markdown
Owner

What

The program's release-grade lane, credential-ready and inert without the operator's Apple enrollment:

  • Iconapp/icon/make_icns.swift draws the Gate mark (CoreGraphics; committed icns is reproducible from source). Eyeballed at 512px/16px.
  • Signing tiers — env-gated unsigned → signed → notarized in build_app_pkg.sh; signs the STAGED copy (strip-then-sign ordering); hardened-runtime-vs-wry named as the first post-enrollment check.
  • AppleDouble reality — ditto strips the removable class; com.apple.provenance is SIP-protected + re-stamped on write, so local pkgs always carry its 11-byte entries — documented as unavoidable, not promised away (the E176 nit's honest closure).
  • release-assets.yml — builds wheel+pkg on macos-latest, runs the same privacy gate as clean-install, attaches to the release. workflow_dispatch works today; release: published activates once release-please gets the operator PAT (E163 class, documented in-file).
  • app-build CI job — the Rust shell's first build gate.

Verification

Suite 1844+91 unchanged (no Python changes) · docs lint clean · pkg rebuilt with icon in Resources · icon renders verified visually.

Operator gates (unchanged, named)

Apple Developer enrollment (/yr) · release-please PAT · distribution channel (PyPI vs GH releases).

…eady signing tiers, release-assets workflow, app CI lane (Event 179)

- Icon as a reproducible artifact: app/icon/make_icns.swift draws the Gate
  mark (brackets + operator dot, the console's palette) with CoreGraphics
  and emits the full iconset + icns — no design blob without a source;
  verified by eye at 512px and 16px. Wired via CFBundleIconFile.
- Signing tiers, inert without certs: EPISTEME_SIGN_APP_ID /
  _INSTALLER_ID / EPISTEME_NOTARY_PROFILE upgrade unsigned → signed →
  notarized in scripts/build_app_pkg.sh; signing targets the STAGED copy
  (attribute-stripping must precede signing, never follow it). The
  hardened-runtime-vs-wry check is named as the first post-enrollment task.
- AppleDouble hygiene, measured honestly: ditto strips the removable class;
  com.apple.provenance is SIP-protected and re-stamped on every local
  write — local pkgs ALWAYS carry its 11-byte entries, documented as
  unavoidable rather than promised away. Release artifacts are CI-built.
- release-assets.yml: workflow_dispatch today (the E163 bot-token class
  blocks release:published until the operator's PAT exists — documented in
  the file); builds wheel + pkg on macos-latest, runs the SAME privacy gate
  as clean-install, attaches with contents:write.
- ci.yml app-build job: the shell finally has a build gate (cargo cache).
No Python changes; suite 1844+91; docs lint clean.
@vercel

vercel Bot commented Jul 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
episteme Ready Ready Preview, Comment Jul 21, 2026 4:20pm

@junjslee
junjslee merged commit e5a6217 into master Jul 21, 2026
7 checks passed
@junjslee
junjslee deleted the feat/event179-release-grade branch July 21, 2026 16:21
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