Repository navigation
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 signreplaces the fivesign:*scripts. It discovers artifacts (nh-reader.exe/bundles on Windows,.appbundles on macOS, packages on Linux, any.apk), signs withsigntool,codesign,gpg,apksigner, orxcodebuild, 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
headerImagesetting andheader.bmpare 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 fromseed-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.5acrosspackage.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.ps1retired in favor of the cross-platformscripts/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 signPlace 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 signThe 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/packageAndroid
npm run tauri:android:init
npm run tauri:android:build
npm run sign -- path/to/app.apkThe 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 warningsnpm run check:i18n— 279/279 keys validated across all 17 community packsnpm run check:agents— 13 rules, 6 skills, 12 templates, 4 primaries; all gates passednpm run tauri:build:release— vite clean; NSIS + MSI 0.7.5 bundles built (verification build for the changed packaging configuration)
📄 Changes & Commits
297fb23chore(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