Skip to content

Docs: macOS DMG build recipe, Node 22, Downloads notes, path phrasing #57

Description

@gregjkal

Part of #55. Docs only; every item below is a decided change with no alternative, so this can go straight to a PR.

README

Build from source: add the macOS DMG recipe. The README currently says "the release workflows under .github/workflows/ show the exact packaging commands per platform". Replace that sentence with the recipe, verified 2026-09-17 on Apple Silicon against master (3121cdd):

source ~/.nvm/nvm.sh && nvm use 22        # or any Node 22
npm ci --prefix crates/workshop-server/ui
npm ci --prefix crates/gateway-config-ui/ui
cargo install tauri-cli --version '^2' --locked
cargo build --release --locked -p gateway --target aarch64-apple-darwin
node tools/stage-gateway-sidecar.mjs stage --target aarch64-apple-darwin \
  --source target/aarch64-apple-darwin/release/promptforge-gateway
(cd crates/workshop && cargo tauri build --target aarch64-apple-darwin \
  --bundles app,dmg --config tauri.nightly.conf.json)
# output: target/aarch64-apple-darwin/release/bundle/dmg/PromptForge_0.3.0_aarch64.dmg

Substitute x86_64-apple-darwin for the Intel DMG; cross-building on Apple Silicon works. State these facts next to it:

  • --config tauri.nightly.conf.json is required locally. Without it the build writes the DMG and then exits 1 with A public key has been found, but no private key. Make sure to set TAURI_SIGNING_PRIVATE_KEY, because createUpdaterArtifacts is on for CI.
  • tools/stage-gateway-sidecar.mjs is the supported way to stage the sidecar. (The release workflow's hand cp can move to the script in a follow-up; not part of this issue.)

macOS platform note. Currently xcode-select --install and brew install cmake node, then cargo workshop. brew install node installs Node 24 and the README requires 22. Change to brew install cmake node@22 (or name nvm/fnm) and add cargo install tauri-cli --version '^2' --locked for anyone bundling.

Downloads section. Add: the minimum macOS version (whatever bundle.macOS.minimumSystemVersion gets set to in #53; until then, state the tested version), "Apple Silicon or Intel: check Apple menu > About This Mac", and the Open Anyway step from #53 while the app is unsigned. Also state that a macOS install enables speech-to-text by default and downloads about 640 MB of models on first launch, with a pointer to the gateway.toml entries to remove ([[stt_model]] blocks and the default profile) to opt out. If the STT default changes under its own issue, update this sentence then.

Guide (guide/src/workshop/01-application.md)

  • Line 15 to 17, "launch it the way you launch any installed program on your platform": add the macOS sentence "Open the disk image, drag PromptForge to the Applications folder, then open it from Applications" plus the Open Anyway step from macOS: sign and notarize the Workshop DMG (Gatekeeper reports it as damaged) #53 while the app is unsigned.
  • Line 53 writes the state directory as %USERPROFILE%\.promptforge\ only, while line 68 of the same page and the gateway guide say ~/.promptforge. Use one phrasing that covers both, for example "~/.promptforge (%USERPROFILE%\.promptforge on Windows)", matching guide/src/gateway/04-local-models.md line 34.
  • Add one sentence to the tray description: Launch at Login is unavailable when the gateway runs as the Workshop's sidecar, which is every macOS install from the DMG. (gateway.log records the gateway is not its bundle's principal executable; Launch at Login is unavailable.)

crates/workshop/README.md

  • Configuration section: same %USERPROFILE% phrasing fix as the guide, in the search-order list and the paragraph below it.

Done means

  • README build-from-source section carries the recipe and the two facts above.
  • README macOS platform note names Node 22 explicitly and the Tauri CLI install.
  • README Downloads section carries minimum version, chip check, Open Anyway step, and the STT first-launch download note.
  • Guide page 01 carries the macOS launch sentence, the combined path phrasing, and the Launch at Login sentence.
  • Workshop crate README uses the combined path phrasing.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions