Releases: itchio/itch
v26.7.0-canary
This release upgrades from Electron 25 to Electron 33. macOS 10.15 (Catalina) is no longer supported macOS 11 (Big Sur) or later is now required.
This is release is made available as an intermediate for upcoming Electron to allow for us to bisect for any issues.
Electron
- Upgrade from Electron 25 to Electron 33 (#3382)
- esbuild target updated to Node 20 and Chrome 130 to match Electron 33
- Updated
openAsHiddenlogin item setting to only apply on Windows (removed from macOS in newer Electron)
Other
- Changed app ID from
com.squirrel.itch.itchtoio.itch.itch(itch setup has been updated to create shortcut for new app id) - Disabled remote locale fetching (locales.itch.zone no longer exists)
v26.6.0
This is the first stable release since v26.1.9 and includes all changes from v26.2.1-canary, v26.3.0-canary, v26.4.0-canary, and v26.5.0-canary releases.
Highlights
Native Apple Silicon support The app now runs natively on arm64 macOS (Apple Silicon). The auto-updater will automatically pull the correct version for your system. All supplemental binaries (butler, itch-setup) will also be replaced with their arm64 equivalents. The app should start faster, run faster, and have less impact on your battery since it no longer needs to run through Rosetta emulation.
New OAuth login The default login method is now an OAuth flow that opens your browser to complete authentication. This replaces the in-app username & password login as the default. Password login remains available as a fallback. We're making this change because password-based API login endpoints are frequent targets for credential stuffing attacks, and our previous captcha solution didn't work reliably in Electron.
Build System & Infrastructure
- Fully migrated CI/CD from GitLab CI to GitHub Actions, all builds are now built, signed, notarized, and deployed through GitHub Actions
- macOS builds are signed and notarized. Windows builds are code-signed via Azure Code Signing
- Migrated from Webpack to esbuild for faster builds and smaller bundles
- 32-bit binaries are fully retired
Electron & React
- Upgraded to Electron 25 (from Electron 22) (Note: We are prioritizing Electron updates going forward but we are doing checkpoint releases before the huge app refactor that will have to take place)
- Updated
@itchio/butlerdfixes theCannot read properties of undefined (reading 'pid')bug - Initial pass at modernizing frontend React components
Accessibility
- Clickable elements now use semantic HTML (
<button>,<a>) for keyboard navigation and screen reader support - Modal dialogs use the native
<dialog>element with proper focus trapping (#3292) - Icons have
role="img"andaria-labelattributes for screen readers - Remembered profiles use flexbox layout for correct tab order
UI Improvements
- Broth component in preferences is now expandable, showing executable path, version, directory, and source channel
- Playtime duration tooltips now show precise hours/minutes/seconds on hover
Bug Fixes
- Fix errors related to
/register,/random, and other system pages (#3009) - Fix context menus when clicking games (#2890)
- Fix clipboard operations in the URL bar and login form
- Fix error on SendFeedback page (#2951)
- Fix duplicated slash in path to user profile
- Fix protocol check for URL handling (#3236)
- Allow refreshing the app's UI again instead of opening in system browser
- Fix missing uninstall dialog title
- Set user agent fallback to avoid Cloudflare issues (#3369)
Other
- Updated localization strings (Farsi, Chinese Simplified, Indonesian, Italian, and others)
Thank you to @botamochi0x12 and @jls47 for their contributions!
Full Changelog: v26.1.9...v26.6.0
v26.5.0-canary
This is the first version of the app to officially support arm64 on macOS (aka Apple silicon)! The auto-updater will automatically pull the arm64 version for those on Apple silicon. No separate reinstallation necessary. All supplemental binaries (butler, itch-setup) will also automatically be replaced with their arm64 equivalent. New version of butler and itch-setup have also been deployed to coincide with this release. The app should now start faster, be faster, and have less impact on your battery since it no longer needs to run through emulation on modern macOS computers.
This version of the app also includes our new OAuth login flow. We plan to retire username & password login in the app in favor of an OAuth login that requires a browser to complete the login. Unfortunately API endpoints that allow someone to authenticate via a username & password are prime targets for credential stuffing attacks. Our previous solution to this was to add a captcha in the app, but it broke more often than not, as electron is not a regular browser.
The OAuth login is now the default screen. Username & password will remain available as a secondary option until we verify that people don't have any issues logging in.
Notes on arm64
Because the app is booted by itch-setup, we decided to remove the universal build of the electron app we published with the last canary version. itch-setup will pick the version of the app that is correct for your system, so it's not necessary to download an app that is 2x the size that runs on both intel and arm64. (We do provide universal builds on the kitch installation program though)
This update also completes our major refactor and migration of our CI system to GitHub Actions. All executables are now built, signed, notarized, and deployed through a GitHub actions workflow. We look forward to adding support for arm64 Windows and Linux in future updates now that we have completed the foundation.
With the new CI we are fully retiring all 32 bit binaries that we used to publish. Many of these were already not being updated anymore, but we'll be removing the download links entirely from broth.
Build System & CI
- macOS signing and notarization done on GitHub Actions via separate job (new
release/sign-macos.js) - Windows code signing via Azure Code Signing in CI
- Separate macOS x64 and arm64 builds (removed
@electron/universal, builds are no longer merged into a universal binary) - Tagged builds are published to itchio via butler through GitHub Actions
- Restored integration test workflow on GitHub Actions
- Removed GitLab CI references, fully migrated to GitHub Actions
- Use tarballs for artifact transfer to preserve symlinks and permissions
- Upgraded
@electron/packagerv18 to v19,@electron/notarizev2 to v3 - No longer installs external npm dependencies during packaging (dependencies are bundled by esbuild)
Login
- New OAuth login flow with PKCE as the default login method
- Password login still available as a fallback ("Log in with password" link)
- OAuth callback handled via
itch://oauth-callbackprotocol - Manual code paste fallback for when the browser redirect doesn't work
- New butlerd message:
Profile.LoginWithOAuthCode
React & Dependencies
- Upgrade React 16 to React 17
- Upgrade styled-components to 5.3.11
- Added typed Redux hooks (
useAppDispatch,useAppSelector) - Many class components converted to functional components with
React.memo - Replaced
react-container-dimensionswith built-inContainerDimensionscomponent usingResizeObserver - Removed
rimrafdependency (use nativefs.rm) - Removed
RandomSvgcomponent (unused) - Removed
recursive-copydev dependency
UI Improvements
- Broth component in preferences now expandable, showing executable path, version, directory, stage, source channel
- Playtime duration tooltips now show precise hours/minutes/seconds on hover
- Remembered profiles layout improvements
Accessibility
- We did a pass over all clickable button like elements to ensure that they use semantic HTML elements like to ensure that they can be navigated to and activated with a keyboard
- Icons now have
role="img"andaria-labelfor screen readers - Search results use standard
scrollIntoView()for keyboard navigation instead of deprecatedscrollIntoViewIfNeeded() - Remembered profiles use flexbox layout instead of absolute positioning, improving tabbing order
Platform
- macOS: proper arm64 architecture detection for broth packages (no longer hardcoded to amd64)
- macOS: binary architecture validation โ re-downloads amd64 binaries on arm64 Macs
- Broth package state now tracks download channel
Other
- Updated localization strings (Farsi, Chinese Simplified, Indonesian, Italian, and others)
v26.4.0-canary
NOTE: We are in the process of working out migration to our build system, builds on the GitHub release are not signed and notarized, and therefore are not uploaded to https://itchio.itch.io/kitch
Build System
- Add arm64 and universal builds to GitHub Actions
- Add @electron/universal for macOS universal binary support
- Clean build artifact names published to the GitHub release
v26.3.0-canary
Note: Due to modern Windows signing requirements we'll likely be migrating
the entire build system to GitHub actions. Right now we're doing builds in
parallel to work out the details. Currently no builds uploaded to GitHub
releases are signed or notarized but you're welcome to run them.
Build System
- Migrate from Webpack to esbuild
- Remove happypack dependency
- Migrate release scripts to ES modules
- Upgrade electron-packager to @electron/packager (v17 to v18)
- Set up GitHub Actions for building and deploying
- Update TypeScript to latest version
- Add production minification and metafile generation for bundle analysis
Electron
- Upgrade to Electron 25
- Update protocol registration method
Dependencies
- Migrate to @itchio/butlerd - Fixes the
Cannot read properties of undefined (reading 'pid')bug - Remove
urlmodule dependency in renderer (use browser builtins) - Remove
utilpackage dependency in renderer - General dependency cleanup
Accessibility
- Modal dialogs now use semantic
<dialog>element with focus trapping (#3292) - Buttons and links migrated to semantic HTML elements
- Remove "draggable" attribute from modal dialogs
Bug Fixes
- Allow refreshing the app's UI again, instead of opening it in your system browser
- Fix missing uninstall dialog title
- Fix button behavior and login form submit handling
- Include architecture in user agent string
Other
- Update screenshots
v26.2.1-canary
- Fix errors related to
/register,/randomand other system pages (#3009) - Fix context menus when clicking games (#2890)
- Fix clipboard operations in the url bar and login form
- Upgrade various dependencies to pick up security fixes
Thank you to @botamochi0x12 and @jls47 for their contributions!
v26.1.9
Please Note: This will be the last version of the app compatible with Windows 7 and 8.
This release upgrades a number of dependencies, especially Electron (to version 22), to resolve some lingering security issues. It also includes some performance and efficiency improvements.
The logic for game updates has changed. The app will check for updates any time you view a game page or run a game. You can check your full library for game updates at any time in the Preferences menu via the "Check for game updates" action.
Full Changelog: v25.6.2...v26.1.9
v26.1.5-canary
- Update translations. Several new languages!
- Check for game updates automatically when viewing an installed game's page
- Add option for manually triggering a full-library game update check
- Fix issue where some links on game pages weren't clickable
Full Changelog: v26.1.3-canary...v26.1.5-canary
v26.1.3-canary
This is a security update release
- Update CDN urls
- Update Electron to pick up bug fixes
- No new features
Full Changelog: v26.1.2-canary...v26.1.3-canary
v26.1.2-canary
This is a security update release
- Open non-itch.io URLs in an external browser, rather than in the app's web view
- No new features
Full Changelog: v26.0.2-canary...v26.1.2-canary