Commit Graph
11 Commits
Author SHA1 Message Date
Dylan M. Taylor a1ec75c653 Merge remote-tracking branch 'origin/main' into feat/traditional-chinese-taiwan 2026-11-03 08:09:30 -05:00
SHXJ e2589a6c67 i18n: add the Traditional Chinese (Taiwan) interface
Add a zh-TW catalog (368 entries), register the language, map zh-TW/zh-HK/zh-MO/zh-Hant locales to it, and prefer an installed Noto Sans CJK TC before the system's PingFang TC, Microsoft JhengHei or MingLiU faces. Add locale, catalog, font and UI tests plus bilingual documentation.
2026-11-03 11:58:57 +08:00
JeremyandClaude Opus 5.5 8c651be747 fix(windows): read an MSI's install context without starting PowerShell (#1082)
* fix(windows): read an MSI's install context without starting PowerShell

The update path ran a hidden PowerShell that asked the WindowsInstaller COM
object which context a product was installed in. That is the pattern
behavioural antivirus flagged in #1045. The context now comes from
Windows Installer's own registration keys, read the way ProductsEx reads
them: this account's managed and unmanaged products and the machine's,
under the product code's packed name. A key the launcher may not read is
still a lookup that didn't run, so the uninstall-record fallback is
unchanged. Nothing in an update starts PowerShell any more.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(windows): declare winsafe's advapi feature and avoid a panicking split

From review:
- current_user_sid uses HACCESSTOKEN and TokenInfo, which need winsafe's advapi
  feature. It built only because craft-update enables it; now declared here.
- packed_code uses split_at_checked, like the .get() calls after it.
- The incident note lists the replaced lookup under "What changed", not "Still open".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: accept any well-formed account SID, not only S-1-5-

A Microsoft Entra ID account's SID starts S-1-12-1-, so the test failed on
those machines although the lookup works. It now checks the SID's shape.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 22:42:43 -05:00
Brandon ThomasandClaude Opus 5.5 68eeee97b8 docs: record the Windows antivirus incident from Update all (#1079)
* docs: record the Windows antivirus incident from Update all

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs: tighten the incident note's claims and product name

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 02:03:42 -04:00
skylar taylor-barrick 4ab652afd8 Migrate Craft Launcher to egui 0.37 (#873)
* Migrate Launcher to egui 0.37 and preserve current-main behavior

* egui037: record final published pins and local qualification

* fix(ui): gate CJK language drawing until fonts are installed

* Document migrated launcher UI contracts and regression invariants
2026-10-25 10:49:00 -04:00
BFlatandClaude Opus 5.5 019330f99a Restyle to match getartcraft.com, add an installer wizard, blue app icon (#23)
The launcher now looks like the apps page on getartcraft.com: the site's
colour tokens, square corners, 1 px hairlines instead of shadows, app cards
in a shared-hairline grid with numbered tabs and "Photo*Craft*" wordmarks,
mono upper-case labels and buttons, and square badges for status.

Fonts are the site's own, embedded in the binary: Archivo (620, 118 % width)
for headings and app names, Inter for body text and Geist Mono for labels,
all variable fonts from google/fonts (OFL-1.1) set to the site's weights.

The window has a custom title bar on Windows and Linux (drag to move,
double-click to maximize, minimize/maximize/close, resize from the edges)
and a transparent one on macOS with the traffic lights in the header.

The MSI used to flash a progress bar and close. Double-clicked, it now opens
a WixUI wizard (Welcome, Ready, progress, Finish with "Launch ArtCraft
Launcher"), with art drawn by package.ps1 from the ArtCraft mark and the
Craft apps' icons. Self-update still runs it with /passive. CI installs the
WiX UI and Util extensions.

The app icon is now the blue "A" mark, getartcraft.com's favicon.
packaging/icons.sh runs on any OS: `cargo xtask icns` packs the .icns.

Also: two clippy fixes in crates/native that newer clippy rejects, and
refreshed README screenshots.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-10 17:39:01 +07:00
Brandon ThomasandClaude Opus 5.5 ad97df25d1 README: show the table screenshot at the same size as the grid one
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:48:59 -04:00
Brandon ThomasandClaude Opus 5.5 d175e19b54 README grid + table screenshots; no macOS in CI
- README: the grid view (dark theme) is the main screenshot, with a
  smaller table view (light theme) below it
- CI tests on Linux and Windows only: per craftrules, the org's macOS
  runners are kept for release builds, and release.yml builds and checks
  macOS

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:48:21 -04:00
Brandon ThomasandClaude Opus 5.5 24b78f279f README: add a screenshot of the launcher
- docs/screenshots/artcraft-launcher.png: the table view on macOS with
  live release data, shown below the README's navigation links
- Credit the screenshot in ATTRIBUTION.md
- Trim the closing line of the Thanks section

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:40:45 -04:00
Brandon ThomasandClaude Opus 5.5 d4f5a33ea4 Brand header, sortable table, links to ArtCraft and each app
- Header: the ArtCraft wordmark (white on dark, ink on light), "Launcher ·
  Craft App Suite" and the tagline "Open Source Tools for Creatives,
  Makers, and Builders"
- Tray / menu-bar icon is now the ArtCraft "A" mark, rendered unmodified
  from docs/brand; the old self-drawn tray icons are gone
- Repo docs (NOTICE, ATTRIBUTION, README, asset licenses, AGENTS.md)
  call out that the ArtCraft name, logo and mark are not MIT/Apache
- Table: "Inspired by" column; every column sorts both ways, empty cells
  last; the grid's sort menu has the same options
- Adobe / Microsoft / Autodesk / Avid trademark notice under both views;
  inspirations shown with ®
- Links: Discord button in the header; Website · GitHub · Discord in the
  footer, tray menu and Settings; each card links to its app's website
  (classic apps) and GitHub repo, and the … menu has both
- Fix links never opening: enable eframe's "links" feature
- Clear stale partial downloads at startup

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 22:17:41 -04:00
Brandon ThomasandClaude Opus 5.5 ec69f0be2c ArtCraft Launcher: install and update the Craft App Suite
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 <noreply@anthropic.com>
2026-10-09 21:08:24 -04:00