Skip to content

fix: pin Windows install modes and correct the Windows 11 instructions - #32

Merged
evangress merged 3 commits into
mainfrom
fix/windows-install-docs
Jul 27, 2026
Merged

fix: pin Windows install modes and correct the Windows 11 instructions#32
evangress merged 3 commits into
mainfrom
fix/windows-install-docs

Conversation

@evangress

Copy link
Copy Markdown
Collaborator

Why

Reviewing the Windows 11 install instructions for accuracy turned up one real defect and three omissions.

CLAUDE.md §9 documented a setting that does not exist. It asserts bundle.windows.webviewInstallMode = "downloadBootstrapper" is configured. tauri.conf.json had no bundle.windows key at all. Behavior was still correct, because downloadBootstrapper and installMode: "currentUser" are Tauri's defaults — but that means every Windows claim in the README was true by inheritance, not by configuration.

That is a claim with no failure signal. A Tauri minor bump that flipped installMode to both would turn "installs per-user, so there is no administrator prompt" into a false statement, with nothing in the repo going red. Four lines of config converts an assumption into a contract and makes §9 true as written.

What changed

tauri.conf.json — added an explicit bundle.windows block setting webviewInstallMode and nsis.installMode. Both match Tauri's current defaults; that is the point.

README.md — install section. Rewritten as numbered steps, adding four Windows 11 realities it did not cover:

  • Mark of the web — downloaded .exes may need Properties → Unblock.
  • Smart App Control (24H2+) can block an unsigned installer outright with no "Run anyway", unlike SmartScreen. Currently the README describes only the SmartScreen path, so a user hitting the other one has no idea what happened. Also notes that disabling it is irreversible without reinstalling Windows.
  • Default-handler registration — setup registers .md/.markdown/.html/.htm, but Windows 11 dropped the one-click "always use this app" prompt, so registering is not the same as becoming the default.
  • Per-user scope — other accounts on the PC will not see Toril.

README.md — build section. It opened with pnpm install while never mentioning Rust, Node, or pnpm, and named MSVC without the Desktop development with C++ workload that the Rust link step actually requires (the default Build Tools download omits it).

Verified

All six download links and filenames were checked against the live v1.0.0-beta.1 release — they match exactly and return HTTP 200. The per-user install, %LOCALAPPDATA%\Toril path, Desktop shortcut, Apps & features entry, uninstaller location, and SmartScreen wording were all already accurate and are unchanged.

pnpm typecheck / pnpm test (210) / pnpm build green; cargo fmt --all --check clean; tauri.conf.json parses.

Not verified here

Bundling sits outside every headless gate, so the config change needs on-device confirmation: build an installer, confirm no UAC prompt and installation into %LOCALAPPDATA%\Toril. The Smart App Control text needs a real 24H2 machine with it enabled.

Also included: the design spec and implementation plan for the follow-up secret-store work.

🤖 Generated with Claude Code

evangress and others added 3 commits July 27, 2026 22:00
Part A corrects the Windows 11 install and build instructions and pins the
installer behavior they promise in tauri.conf.json, rather than inheriting it
from Tauri defaults that a minor bump could change.

Part B designs the first secret storage in Toril, ahead of the AI layer
(ROADMAP Movement IV) that will consume it. Records why system environment
variables and SOPS were both rejected in favor of the OS keychain, and locks
the central invariant: no getter command, so an API key never crosses into
the webview.

Both new dependencies checked against crates.io per CLAUDE.md §2 —
keyring 4.1.5 and zeroize 1.9.0, neither deprecated nor yanked.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…t store

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…tructions

tauri.conf.json had no `bundle.windows` key at all, yet CLAUDE.md §9 asserted
`webviewInstallMode` was configured. Behavior was correct only by inheritance
from Tauri's defaults, so the README's "installs per-user, no administrator
prompt" promise had nothing pinning it — a minor bump flipping installMode to
`both` would make the docs false with no gate going red. Set both keys
explicitly and record why in §9.

README: the Windows section omitted three Win11 realities — mark-of-the-web
unblocking, Smart App Control (24H2+) blocking outright with no "Run anyway"
unlike SmartScreen, and that registering file associations is not the same as
becoming the default handler now that Win11 dropped the one-click prompt.
"Building from source" opened with `pnpm install` while never mentioning Rust,
Node, or pnpm, and named MSVC without the "Desktop development with C++"
workload that the link step actually requires.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@evangress
evangress merged commit e8daf11 into main Jul 27, 2026
9 checks passed
@evangress
evangress deleted the fix/windows-install-docs branch July 27, 2026 22:45
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