Files
craft-libs/docs/windows-installation-adoption.md
T
Jeremy e85bd30bb2 Document the proposed Windows installation and persistent-model policy
* docs: add the Windows installation policy; models are persistent asse…

…ts, not caches

A companion policy to settings-storage.md: dual-scope per-user-default MSIs,
the ArtCraft suite folder, what an update must preserve (folder, context, no
duplicates), standalone installability, and the platform-native boundary on
macOS, Linux and FreeBSD. Splits models out of the disposable-caches row:
downloaded models are persistent user assets that cache cleanup and app
uninstallers must never delete.

* docs: describe suite Windows installation policy

* docs: record the wizard scope and folder rules and the real-install c…

…hecks

The scope page leaves ALLUSERS unset for Only for me, and the wizard sets the new-install folder itself after the choice, because Windows Installer resolves Program Files once for the context it started in. Notes the 32-bit Program Files (x86) folder and updates the adoption table to say real per-user and all-users msiexec runs were done. Clean-machine and second-account checks are still pending.

* docs: new installs default to per-machine; only the old default folde…

…r moves

* docs: say plainly that released packages still default to per-user

The policy says new installs are per-machine, but every released package is
dual-scope with a per-user authored default, and the inventory still listed
"Per-user default". The policy now separates the two: what the policy is, what
the packages do today, who picks per-machine (the launcher, or "Everyone" in the
wizard), and the follow-up that closes the gap.

Also: Update all's one-prompt route was reverted after the antivirus incident,
so the policy no longer says it asks once; the Linux model folder names its
ArtCraft/models subfolder; repair is listed where the 26/10 payload runs
covered it; the inventory no longer says nothing was released.

* docs: the launcher and a direct MSI run match only for the same scope…

… and folder

CodeRabbit pointed out that 'produce the same result' contradicted the
documented new-install difference: the launcher sets ALLUSERS=1, while a
direct run keeps the package's per-user default.

* docs: make the legacy-folder migration exception explicit

State that exact former-default paths can migrate even when manually
chosen, subject to maintainer acceptance of the proposed policy. Preserve
other chosen folders and document the effect on custom shortcuts.

---------

Co-authored-by: Jeremy <jeremy8776@googlemail.com>
2026-11-12 10:43:51 -05:00

5.9 KiB

Windows installation policy adoption

This is the inventory for the policy across the live app repositories and the launcher, not merely the repositories on one developer's machine. The app packages below were merged on 27/10/2026 and released on 28/10/2026 as dual-scope MSIs whose authored default is per-user. The policy since 29/10/2026 is per-machine for new installs: today the launcher applies it (ALLUSERS=1), and per-machine-only packages are follow-up work, one PR per app (see installation-policy.md).

Repository Prepared Windows scope Verification boundary
effectcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
pdfcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
lightcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
photocraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
figcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
vectorcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
wordcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
gridcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
deckcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
filmcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
craft-launcher Per-user launcher; context-safe app updates x64, x86 and arm64 metadata checks pass; real installation gates pending
artcraft Not applicable No Windows MSI definition on the inventoried default branch
soundcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
cadcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
designcraft Released dual-scope, per-user authored default; the launcher installs per-machine x64, x86 and arm64 metadata checks pass; real msiexec runs pass in both scopes (fresh install, upgrade, repair, uninstall; wizard and silent); clean-machine and second-account gates pending
artcraftx Not applicable No Windows MSI definition on the inventoried default branch
AniCraft Not applicable No Windows MSI definition on the inventoried default branch

Before publication and release

  • Maintainer acceptance of the shared path/scope/model-ownership policy is still required.
  • Keep app changes independent. Reconcile open installer UI and file-association PRs rather than assuming their work is absent or overwriting it.
  • Test real release payloads and previous release MSIs in an authorised clean Windows test environment. Verify both standalone and launcher routes, old/custom folders, both scopes, second-account visibility, optional shortcuts and menus, active apps, cancellation, rollback, repair, uninstall and launcher self-update. Validate actual MSI assignment context, not only the registry hive containing a display/uninstall entry.
  • Metadata-only fixtures never substitute for those tests. x86/arm64 package validation on an x64 host does not prove application execution on those architectures.
  • No macOS/Linux layout change, settings migration, user-model relocation or new cleanup is included. These platforms retain their native conventions.
  • ArtCraft and ArtCraftX have no Windows MSI definition in the inventoried source; AniCraft has no default branch/source to package. Do not invent installers for those repositories as part of this rollout.