Skip to content

NH Reader v0.7.5

Latest

Choose a tag to compare

@PhantomNimbi PhantomNimbi released this 07 Oct 07:48
· 24 commits to main since this release

NH Reader v0.7.5

Release date: 2026-10-07

✨ Highlights

NH Reader v0.7.5 is a tooling and installer-polish release. The Windows installer now drops the cramped header banner — NSIS lays header art out as a small left-aligned graphic that never fit the wide header.bmp — so the Welcome and Finish pages present the sidebar branding art cleanly. The installer also runs on the stock NSIS/MUI palette, which is the real fix for the dark-on-dark finish-page text that shipped broken in v0.7.4: the v0.7.4 color hooks were never invoked by MUI2 at all.

For maintainers, signing is now one command: npm run sign detects the host OS, discovers that platform's built artifacts, signs with native tooling, and verifies the result — with automatic Apple notarization and stapling when credentials are set. The npm scripts were also consolidated under the tauri:* and check:* families, and every live document, rule, and template follows the new names. As always, this is a source-only release; build and sign locally with your own credentials.

🚀 Key Improvements & Features

  • One sign command for every platform — npm run sign replaces the five sign:* scripts. It discovers artifacts (nh-reader.exe/bundles on Windows, .app bundles on macOS, packages on Linux, any .apk), signs with signtool, codesign, gpg, apksigner, or xcodebuild, and verifies every signature it produced. Credentials pass as options or environment variables; signing stays opt-in and never runs during a build.

  • Cleaner installer pages — The headerImage setting and header.bmp are gone; the NSIS generator script now produces only the sidebar graphic. Welcome and Finish pages show the sidebar branding on the stock light palette.

  • Release announcements posted by CI — .github/workflows/discussions.yml (renamed from seed-discussions.yml) now seeds every release announcement file under .github/discussions/announcements/ with duplicate protection, and the missing v0.7.3/v0.7.4 announcements were backfilled with it.

✅ Changed

  • Bumped project version to 0.7.5 across package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json, src-tauri/Cargo.lock, and documentation.

  • Script renames — dev:app → tauri:dev, build:app → tauri:build:release, build:app:debug → tauri:build:debug, mobile:android:* → tauri:android:*, mobile:ios:* → tauri:ios:*, i18n:check → check:i18n; scripts/sign.ps1 retired in favor of the cross-platform scripts/sign.mjs. All documentation, rules, and templates use the new names.

🐛 Fixed

  • Dark-on-dark finish-page text (root cause) — The custom installer palette is removed entirely, so finish/welcome page titles, body text, and checkbox labels render in readable system colors instead of black-on-dark; the failed v0.7.4 per-page hooks are gone.

🛠️ Manual Build & Signing

There are no prebuilt release assets. Build on each target platform and sign locally with your own certificate or key before distributing. Signing is a separate, opt-in step — nothing is signed during the build.

Windows

npm run tauri:build:release
npm run sign

Place your PFX at certificates/nh-reader-codesign.pfx; the script can generate a local self-signed certificate if none exists, but self-signed certificates are not trusted publisher identities.

macOS

npm run tauri:build:release
npm run sign

The identity comes from --identity or APPLE_SIGNING_IDENTITY (auto-selected when the keychain holds exactly one codesigning identity). Notarization and stapling run automatically when APPLE_ID, APPLE_APP_SPECIFIC_PASSWORD and APPLE_TEAM_ID are set.

Linux

npm run tauri:build:release
npm run sign
gpg --verify path/to/package.asc path/to/package

Android

npm run tauri:android:init
npm run tauri:android:build
npm run sign -- path/to/app.apk

The default keystore is src-tauri/gen/android/release.keystore (alias nh-reader); pass --ks and --ks-alias for a custom one.

iOS

From macOS with Xcode and a valid Apple signing identity/provisioning profile:

npm run tauri:ios:init
npm run sign -- --ios CODE_SIGN_STYLE=Manual DEVELOPMENT_TEAM=<team-id> CODE_SIGN_IDENTITY="Apple Distribution" PROVISIONING_PROFILE_SPECIFIER=<profile-name>

Signing credentials and provisioning profiles are user-managed and must not be committed. The project does not publish release assets.

Verification

  • cargo check + cargo test (src-tauri) — passed (7/7 tests, 0 failed)
  • npm run check (svelte-check) — 0 errors, 0 warnings
  • npm run check:i18n — 279/279 keys validated across all 17 community packs
  • npm run check:agents — 13 rules, 6 skills, 12 templates, 4 primaries; all gates passed
  • npm run tauri:build:release — vite clean; NSIS + MSI 0.7.5 bundles built (verification build for the changed packaging configuration)

📄 Changes & Commits

  • 297fb23 chore(release): prepare v0.7.5 with unified sign command, script renames, and installer polish
  • Release source: annotated tag v0.7.5 (source only; no application assets)

Full commit history: git log --oneline v0.7.4..v0.7.5