* Add FigCraft to the launcher
FigCraft (storytold/figcraft): interface design and prototyping, the
thirteenth Craft App and the sixth in the New group.
- Catalog row (brand colour #02da96 from FigCraft's icon README), details
page (no pictures yet), Linux desktop categories, icon tables, tagline
in every catalog, xtask local mirror list.
- Icon copied unmodified from FigCraft's repo; ATTRIBUTION.md row.
- The Windows installer art fits five rows of icons.
- Test that a companion figcraft-server tarball is never picked as the app.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Release 0.4.1
Co-Authored-By: Claude Opus 5.5 <[email protected]>
---------
Co-authored-by: Claude Opus 5.5 <[email protected]>
Since the release workflow moved to craft-common-actions (#129), the caller
passed only the Apple and WINDOWS_CERTIFICATE secrets, not the AZURE_* ones that
Trusted Signing uses, so the 0.3.1 MSIs and portable exes came out unsigned.
Co-authored-by: Claude Opus 5.5 <[email protected]>
craft-common-actions calls `package.sh --formats deb,rpm,tar`, but package.sh
split formats on spaces only, so the riscv64 job built the binary, matched no
format, wrote nothing to dist/release and failed the 0.3.0 release at upload.
package.sh now accepts commas or spaces and rejects unknown format names.
Co-authored-by: Claude Opus 5.5 <[email protected]>
Bumps the workspace version to 0.3.0 for the new features since 0.2.1, and
applies cargo fmt to the two files from #149 that failed CI's format check.
Co-authored-by: Claude Opus 5.5 <[email protected]>
* macOS: open disk images reliably, and say why when they won't open
Installing or updating an app on macOS could fail with only "couldn't open
the disk image". hdiutil's own reason was thrown away, and every install of
an app mounted its image at the same folder, which an attach that was
interrupted or timed out could still be holding.
- Each install mounts its image at a new, empty folder.
- The attach skips hdiutil's checksum pass (-noverify): the download's
SHA-256 is already checked against the release, and on a large image that
pass alone could run past the time limit, now 5 minutes.
- When the image still won't open, or the app won't copy, the message says
why in hdiutil's or ditto's words ("couldn't open the disk image:
Resource temporarily unavailable").
- hdiutil, ditto and codesign are run by full path: a launcher started from
Finder or at login gets a minimal PATH.
process::run is capture's sibling that returns the helper's error message;
capture is now built on it. The launcher's own macOS self-update installs
through the same code, so it gets all of this too.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Release 0.2.1
Co-Authored-By: Claude Opus 5.5 <[email protected]>
---------
Co-authored-by: Claude Opus 5.5 <[email protected]>
A minor release, not 0.1.4 (the previous commit's number, never built or
tagged): it adds features. Since 0.1.3, from community contributions: an
interface in Russian and Simplified Chinese (Chinese drawn with the
system's own font); several apps can install at once with one password
prompt on Linux; a verified download is kept for a retry when its install
step fails; the window closes to the tray on Wayland; HTTPS certificates
are verified by the OS; Direct3D 12 by default on Windows (fixes a startup
crash on hybrid AMD laptops); app names centred on their icons.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Since 0.1.3, from community contributions: an interface in Russian and
Simplified Chinese (Chinese drawn with the system's own font); several
apps can install at once with one password prompt on Linux; a verified
download is kept for a retry when its install step fails; the window
closes to the tray on Wayland; HTTPS certificates are verified by the OS;
Direct3D 12 by default on Windows (fixes a startup crash on hybrid AMD
laptops); app names centred on their icons.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Since 0.1.2: release information comes from ArtCraft's API, with GitHub
as the fallback; calls to the API are rate-limited and back off hard on
HTTP 429; the footer names the services in use; ArtCraft announcements
and alerts are shown.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
The setup wizard gains a folder page between Welcome and Ready: pick where
ArtCraft Launcher goes (default %LOCALAPPDATA%\Programs\ArtCraft Launcher;
still per user, so it notes to pick a folder you can write to), and a
"Create a desktop shortcut" box. The page is the stock WixUI_InstallDir one
plus the box, with the same path checks and Change... browser.
Both choices are recorded under HKCU and reused by the next version, so an
update (self-update runs the MSI with /passive) installs into the same folder
and keeps the shortcut choice. The box starts ticked on a first install; an
update from 0.1.0 or 0.1.1, which never asked, adds no desktop icon. A value
given on the command line (INSTALLDESKTOPSHORTCUT=0/1) wins. The desktop
shortcut is a normal MSI component, removed on uninstall.
self_update.rs now recognises an MSI install by the folder the MSI records
(InstallDir), not only the default one, so a launcher installed elsewhere
still updates itself.
The Windows ARM64 workflow now installs twice on real hardware: with the
defaults (default folder, Start Menu and desktop shortcuts) and into a chosen
folder without the desktop shortcut, checking each uninstall removes it all.
Version 0.1.2.
Co-authored-by: Claude Opus 5.5 <[email protected]>
Self-update fixes since 0.1.0 (f4f1d77): the restart helper no longer
passes a pretend version on, a just-installed release isn't offered
again, and macOS DMG installs pass strict signature checks.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
A native Rust/egui launcher for the 12 Craft Apps (7 classic + 5 new).
- Grid (icon cards) or sortable table view, filters and search
- Status per app: available, installed and up to date, or update
available with version and release date
- Installs where each OS keeps apps, from the official release packages:
/Applications (DMG), Program Files (MSI), deb/rpm via the system
package manager (Flatpak/AppImage fallback), /usr/local on FreeBSD
- Detects apps installed by hand; updates keep the installed format
- Every download verified against its published SHA-256; running apps
are never replaced
- Tray/menu-bar mode, start at login, one notification per new version
- GitHub API with ETag cache, falling back to release pages when
rate-limited; release source is pluggable for a future catalog API
- Web build lists latest releases with per-platform downloads
- Packaging and release workflows for macOS, Windows (x64/x86/arm64),
Linux (x86_64/aarch64), FreeBSD and web
Co-Authored-By: Claude Opus 5.5 <[email protected]>