Skip to content

iris-gui: add bundled feature + "Use embedded PROM" control; add notarized entitlements#34

Open
danifunker wants to merge 2 commits into
techomancer:mainfrom
danifunker:upstream-pr-toml-ui
Open

iris-gui: add bundled feature + "Use embedded PROM" control; add notarized entitlements#34
danifunker wants to merge 2 commits into
techomancer:mainfrom
danifunker:upstream-pr-toml-ui

Conversation

@danifunker

Copy link
Copy Markdown
Contributor

Two small, self-contained additions, both no-ops for a normal source build.

bundled cargo feature (iris-gui)

A new bundled feature for pre-compiled / distributed binaries. It hides the
iris.toml import/export menu items, since in a distributed build the GUI's
gui.json machine store is the system of record — iris.toml is only useful
alongside the standalone iris CLI (i.e. a source checkout). appstore now
implies bundled. For source builds the feature is off and the iris.toml
workflow is unchanged.

"Use embedded PROM" button (iris-gui General tab)

Leaving the PROM path empty already boots the built-in PROM, but that wasn't
discoverable — you had to clear the field by hand. This adds an explicit
"Use embedded PROM" button (disabled when already empty) with a confirmation
prompt. To support the confirm modal, config tabs now return a ConfigAction
to the app instead of nothing; all existing tabs return ConfigAction::None.

Notarized-distribution entitlements (installer)

Adds installer/iris-gui-notarized.entitlements for Developer ID / notarized
DMG + CLI builds: hardened runtime plus allow-unsigned-executable-memory, so
the Cranelift JIT keeps working under the hardened runtime. This is distinct
from the App Store entitlements (sandboxed, JIT-less). Validated with
plutil -lint.

No behavior change for existing source builds or cargo run.

Add a `bundled` cargo feature for pre-compiled/distributed builds: it hides
the iris.toml import/export menu items (the GUI's gui.json machine store is
the system of record; iris.toml only makes sense alongside the standalone
`iris` CLI, i.e. a source checkout). `appstore` now implies `bundled`. A
no-op for source builds, where the iris.toml workflow stays available.

Also add an explicit "Use embedded PROM" button to the General config tab,
so reverting from a custom (possibly missing) PROM is discoverable instead
of requiring the path to be cleared by hand. This needed config tabs to
report a `ConfigAction` back to the app for the confirmation modal.
Entitlements for the Developer ID / notarized DMG + CLI builds (hardened
runtime + allow-unsigned-executable-memory, so the Cranelift JIT works under
the hardened runtime). Distinct from the App Store entitlements, which are
sandboxed and JIT-less.
@danifunker danifunker marked this pull request as ready for review June 12, 2026 16:03
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