Gitify v7.0.0
Tip
Our latest major release introduces support for Git Forges, including Gitea, Codeberg, Forgejo and Bitbucket Cloud. 🎉
What's Changed
🚀 Features
- feat:
@graphql-codegenmigration and custom scalar mapping by @setchy in #2829 - feat(storage): persist re-encrypted token on keychain key rotation by @afonsojramos in #2847
- feat: multi-forge support — adapter pattern + Gitea by @afonsojramos in #2842
- feat(settings): make close-to-tray the default and remove the option by @afonsojramos in #2852
- feat(login): redesign for multi-forge with segmented forge selector by @afonsojramos in #2855
- feat(filters): account filtering by @setchy in #2858
- feat(login): broaden gitea tagline to name forgejo and codeberg by @afonsojramos in #2859
- feat(settings): add "Keep window open when it loses focus" option by @BlueManCZ in #2875
- feat(filter): review request type (user or team) by @setchy in #3023
- feat(filters): distinguish author and commenter in search filters by @afonsojramos in #2959
- feat(forge): add bitbucket cloud support by @setchy in #3059
- feat(events): monitor power state by @setchy in #3060
🐛 Bug Fixes
- fix(accounts): hide view-scopes affordance for forges without OAuth scopes by @afonsojramos in #2854
- fix(ci): skip @primer/primitives postinstall script by @afonsojramos in #2868
- fix(tray): populate Linux right-click menu via setContextMenu by @BlueManCZ in #2856
- fix: increase polling interval for GitHub device code flow by @ChaosZ-1702 in #2899
- fix: tailwind bg utility by @setchy in #2989
🧼 Code Refactoring
- fix(filters): pin filter sort to a stable locale by @BlueManCZ in #2844
- refactor(events): add typed IPC contracts for compile-time safety by @afonsojramos in #2843
- refactor: tidy up the forge adapter interface by @afonsojramos in #2874
- refactor(links): rename openGitHub* host helpers to openHost* by @afonsojramos in #2885
- refactor(forges): expose getAuthMethodIcon on the adapter by @afonsojramos in #2883
- refactor(forges): bundle related ForgeAdapter members into capability objects by @afonsojramos in #2887
- refactor(notifications): generate notification URL via the adapter by @afonsojramos in #2886
- refactor(main): adopt
electron-menubarv10 for window/tray/system handling by @afonsojramos in #2880 - refactor(login): organize login routes and components by forge by @afonsojramos in #3030
- refactor: tanstack-query for api state, zustand for accounts and settings state by @setchy in #2637
- refactor(storage): remove legacy storage key after migration by @afonsojramos in #3037
- refactor(forges): read settings store inside the forge layer by @afonsojramos in #3035
- refactor(auth): remove legacy plaintext token migration by @afonsojramos in #3031
- refactor(accounts): move account crud into the accounts store by @afonsojramos in #3036
- refactor: device code flow ux by @setchy in #3063
📚 Documentation
🧪 Testing
- test(mocks): pin electron mock shapes via satisfies Pick by @afonsojramos in #2846
- test: improve test suite by @setchy in #3022
📦 Dependency Updates
- chore(deps): update sonarsource/sonarqube-scan-action action to v7.2 by @renovate[bot] in #2821
- chore(deps): pin sonarsource/sonarqube-scan-action action to v7.2 by @renovate[bot] in #2822
- chore(deps): update sonarsource/sonarqube-scan-action action to v8 by @renovate[bot] in #2825
- chore(deps): update @swc-contrib/plugin-graphql-codegen-client-preset to v0.21.0 by @renovate[bot] in #2824
- chore(deps): update pnpm/action-setup action to v6.0.4 by @renovate[bot] in #2827
- chore(deps): update @primer/react to v38.21.0 by @renovate[bot] in #2828
- chore(deps): update @primer/react to v38.21.1 by @renovate[bot] in #2831
- chore(deps): update pnpm/action-setup action to v6.0.5 by @renovate[bot] in #2832
- chore(deps): update @biomejs/biome to v2.4.14 by @renovate[bot] in #2830
- chore(deps): update vite-plugin-electron-renderer to v0.14.7 by @renovate[bot] in #2833
- chore(deps): update electron to v41.5.0 by @renovate[bot] in #2834
- chore(deps): update fuxingloh/multi-labeler action to v5 by @renovate[bot] in #2837
- chore(deps): lock file maintenance by @renovate[bot] in #2838
- chore(deps): update electron to v42 and migrate to async safeStorage by @afonsojramos in #2839
- chore(deps): update pnpm to v11 by @renovate[bot] in #2849
- chore(deps): update pnpm to v11.0.6 by @renovate[bot] in #2861
- chore(deps): update pnpm/action-setup action to v6.0.6 by @renovate[bot] in #2862
- chore(deps): update final-form to v5.0.1 - autoclosed by @renovate[bot] in #2860
- chore(deps): update zustand to v5.0.13 by @renovate[bot] in #2863
- chore(deps): update react-router-dom to v7.15.0 by @renovate[bot] in #2864
- chore(deps): lock file maintenance by @renovate[bot] in #2865
- chore(deps): update @graphql-codegen/typescript-operations to v6.0.1 by @renovate[bot] in #2870
- chore(deps): update react monorepo to v19.2.6 by @renovate[bot] in #2871
- chore(deps): update graphql to v16.14.0 by @renovate[bot] in #2872
- chore: migrate to vite-plus unified toolchain by @afonsojramos in #2869
- chore(deps): update pnpm to v11.0.8 by @renovate[bot] in #2877
- chore(deps): update vite to v8.0.11 by @renovate[bot] in #2878
- chore(deps): update @primer/react to v38.22.0 by @renovate[bot] in #2879
- chore(deps): update @types/node to v24.12.3 by @renovate[bot] in #2876
- chore(deps): update tailwind-merge to v3.6.0 by @renovate[bot] in #2894
- chore(deps): update vite to v8.0.12 by @renovate[bot] in #2892
- chore(deps): update electron to v42.0.1 by @renovate[bot] in #2889
- chore(deps): update pnpm to v11.0.9 by @renovate[bot] in #2890
- chore(deps): update pnpm/action-setup action to v6.0.8 by @renovate[bot] in #2891
- chore(deps): update @graphql-codegen/typescript-operations to v6.0.2 by @renovate[bot] in #2888
- chore(deps): update tailwindcss monorepo to v4.3.0 by @renovate[bot] in #2895
- chore(deps): update semver to v7.8.0 by @renovate[bot] in #2893
- chore(deps): lock file maintenance by @renovate[bot] in #2896
- chore(deps): update zizmorcore/zizmor-action action to v0.5.6 by @renovate[bot] in #2908
- chore(deps): update sonarsource/sonarqube-scan-action action to v8.1.0 by @renovate[bot] in #2912
- chore(deps): update electron-log to v5.4.4 by @renovate[bot] in #2903
- chore(deps): update vitest monorepo to v4.1.6 by @renovate[bot] in #2907
- chore(deps): update electron to v42.1.0 by @renovate[bot] in #2910
- chore(deps): update @primer/react to v38.23.0 by @renovate[bot] in #2909
- chore(deps): update @octokit/request to v10.0.9 by @renovate[bot] in #2900
- chore(deps): update react-router-dom to v7.15.1 by @renovate[bot] in #2904
- chore(deps): update @types/node to v24.12.4 by @renovate[bot] in #2901
- chore(deps): update pnpm to v11.1.2 by @renovate[bot] in #2911
- chore(deps): update vite to v8.0.13 by @renovate[bot] in #2905
- chore(deps): update @vitejs/plugin-react to v6.0.2 by @renovate[bot] in #2902
- chore(deps): update vite-plus to v0.1.21 by @renovate[bot] in #2906
- chore(deps): lock file maintenance by @renovate[bot] in #2913
- chore(deps): update pnpm to v11.1.3 by @renovate[bot] in #2916
- chore(deps): update @types/react to v19.2.15 by @renovate[bot] in #2915
- chore(deps): update node.js to v24.16.0 by @renovate[bot] in #2921
- chore(deps): update electron to v42.2.0 by @renovate[bot] in #2920
- chore(deps): update date-fns to v4.2.1 by @renovate[bot] in #2919
- chore(deps): update @primer/css to v22.2.0 by @renovate[bot] in #2917
- chore(deps): update @primer/octicons-react to v19.26.0 by @renovate[bot] in #2918
- chore(deps): update pnpm to v11.2.2 by @renovate[bot] in #2929
- chore(deps): update semver to v7.8.1 by @renovate[bot] in #2922
- chore(deps): update vite-plus to v0.1.22 by @renovate[bot] in #2924
- chore(deps): update vitest monorepo to v4.1.7 by @renovate[bot] in #2925
- chore(deps): update @swc-contrib/plugin-graphql-codegen-client-preset to v0.22.0 by @renovate[bot] in #2928
- chore(deps): update vite to v8.0.14 by @renovate[bot] in #2923
- chore(deps): lock file maintenance by @renovate[bot] in #2930
- chore(deps): update date-fns to v4.3.0 by @renovate[bot] in #2933
- chore(deps): update pnpm to v11.3.0 by @renovate[bot] in #2934
- chore(deps): update @octokit/request to v10.0.10 by @renovate[bot] in #2932
- chore(deps): update vite-plugin-checker to v0.14.1 by @renovate[bot] in #2938
- chore(deps): update electron to v42.3.0 by @renovate[bot] in #2935
- chore(deps): update @primer/octicons-react to v19.27.0 by @renovate[bot] in #2926
- chore(deps): update graphqlcodegenerator monorepo by @renovate[bot] in #2936
- chore(deps): update react-router-dom to v7.16.0 by @renovate[bot] in #2941
- chore(deps): update pnpm to v11.4.0 by @renovate[bot] in #2937
- chore(deps): update concurrently to v10 by @renovate[bot] in #2942
- chore(deps): update pnpm to v11.5.0 by @renovate[bot] in #2948
- chore(deps): lock file maintenance by @renovate[bot] in #2939
- chore(deps): update swc monorepo to v0.24.0 by @renovate[bot] in #2949
- chore(deps): update date-fns to v4.4.0 by @renovate[bot] in #2947
- chore(deps): update actions/checkout action to v6.0.3 by @renovate[bot] in #2943
- chore(deps): update vite-plus to v0.1.23 by @renovate[bot] in #2945
- chore(deps): update graphqlcodegenerator monorepo to v7.1.1 by @renovate[bot] in #2944
- chore(deps): update zustand to v5.0.14 by @renovate[bot] in #2940
- chore(deps): update @primer/octicons-react to v19.28.0 by @renovate[bot] in #2946
- chore(deps): update @primer/react to v38.26.0 by @renovate[bot] in #2927
- chore(deps): override vulnerable react-devtools transitive deps by @afonsojramos in #2950
- chore(deps): update vite-plugin-electron-renderer to v1 by @renovate[bot] in #2957
- chore(deps): pin dependencies by @renovate[bot] in #2951
- chore(deps): lock file maintenance by @renovate[bot] in #2958
- chore: migrate vite-plugin-electron to v1 by @afonsojramos in #2961
- chore(deps): update concurrently to v10.0.3 by @renovate[bot] in #2963
- chore(deps): update @primer/octicons-react to v19.28.1 by @renovate[bot] in #2962
- chore(deps): update electron-updater to v6.8.8 by @renovate[bot] in #2965
- chore(deps): update electron to v42.3.3 by @renovate[bot] in #2964
- chore(deps): update sonarsource/sonarqube-scan-action action to v8.2.0 by @renovate[bot] in #2983
- chore(deps): update electron-updater to v6.8.9 by @renovate[bot] in #2967
- chore(deps): update react-router monorepo to v7.17.0 by @renovate[bot] in #2982
- chore(deps): update happy-dom monorepo to v20.10.2 by @renovate[bot] in #2981
- chore(deps): update @primer/react to v38.27.0 by @renovate[bot] in #2977
- chore(deps): update semver to v7.8.2 by @renovate[bot] in #2972
- chore(deps): update pnpm to v11.5.2 by @renovate[bot] in #2970
- chore(deps): update graphql to v16.14.1 by @renovate[bot] in #2968
- chore(deps): update vite to v8.0.16 by @renovate[bot] in #2973
- chore(deps): update vite-plugin-electron to v1.0.4 by @renovate[bot] in #2974
- chore(deps): update react monorepo by @renovate[bot] in #2971
- chore(deps): update graphqlcodegenerator monorepo to v7.1.2 by @renovate[bot] in #2969
- chore(deps): update electron-builder to v26.15.2 by @renovate[bot] in #2980
- chore(deps): update vite-plus to v0.1.24 by @renovate[bot] in #2975
- chore(deps): update @types/node to v24.13.1 by @renovate[bot] in #2978
- chore(deps): update yauzl to v3.4.0 by @renovate[bot] in #2984
- chore(deps): update vitest monorepo to v4.1.8 by @renovate[bot] in #2976
- chore(deps): update electron to v42.4.0 by @renovate[bot] in #2979
- chore(deps): update semver to v7.8.3 by @renovate[bot] in #2986
- chore(deps): lock file maintenance by @renovate[bot] in #2985
- chore(deps): update workspace config by @setchy in #2988
- chore(deps): update @types/node to v24.13.2 by @renovate[bot] in #2990
- chore(deps): update pnpm to v11.5.3 by @renovate[bot] in #2993
- chore(deps): update graphql to v16.14.2 by @renovate[bot] in #2992
- chore(deps): update semver to v7.8.4 by @renovate[bot] in #2994
- chore(deps): update electron-builder to v26.15.3 by @renovate[bot] in #2991
- chore(deps): update pnpm to v11.6.0 by @renovate[bot] in #2995
- chore(deps): lock file maintenance by @renovate[bot] in #2996
- chore(deps): update vite-plus to v0.2.0 by @afonsojramos in #2997
- chore(deps): update graphqlcodegenerator monorepo by @renovate[bot] in #2999
- chore(deps): update electron to v42.4.1 by @renovate[bot] in #2998
- chore(deps): update pnpm/action-setup action to v6.0.9 by @renovate[bot] in #3001
- chore(deps): update semver to v7.8.5 by @renovate[bot] in #3002
- chore(deps): update node.js to v24.18.0 by @renovate[bot] in #3009
- chore(deps): update actions/checkout action to v7 by @renovate[bot] in #3013
- chore(deps): update pnpm to v11.8.0 by @renovate[bot] in #3010
- chore(deps): update zizmorcore/zizmor-action action to v0.5.7 by @renovate[bot] in #3006
- chore(deps): update @primer/css to v22.3.0 by @renovate[bot] in #3007
- chore(deps): update vite-plus to v0.2.1 by @renovate[bot] in #3005
- chore(deps): update happy-dom to v20.10.6 by @renovate[bot] in #3000
- chore(deps): update tailwindcss monorepo to v4.3.1 by @renovate[bot] in #3003
- chore(deps): update react-router-dom to v7.18.0 by @renovate[bot] in #3011
- chore(deps): update vite-plugin-checker to v0.14.4 by @renovate[bot] in #3004
- chore(deps): update graphql to v17 by @renovate[bot] in #3014
- chore(deps): update @swc-contrib/plugin-graphql-codegen-client-preset to v0.26.0 by @renovate[bot] in #3012
- chore(deps): update @primer/react to v38.29.0 by @renovate[bot] in #3008
- chore(deps): update pnpm to v11.9.0 by @renovate[bot] in #3019
- chore(deps): update vite to v8.1.0 by @renovate[bot] in #3020
- chore(deps): update vite-plugin-electron to v1.1.0 by @renovate[bot] in #3021
- chore(deps): update electron to v42.5.0 by @renovate[bot] in #3018
- chore(deps): update @graphql-codegen/typescript-operations to v6.0.5 by @renovate[bot] in #3016
- chore(deps): update @vitejs/plugin-react to v6.0.3 by @renovate[bot] in #3017
- chore(deps): lock file maintenance by @renovate[bot] in #3015
- chore(deps): update @octokit/request to v10.0.11 by @renovate[bot] in #3027
- chore(deps): update @swc-contrib/plugin-graphql-codegen-client-preset to v0.26.1 - autoclosed by @renovate[bot] in #3028
- chore(deps): update @types/node to v24.13.3 by @renovate[bot] in #3032
- chore(deps): update graphql to v17.0.2 by @renovate[bot] in #3033
- chore(deps): update react-router-dom to v7.18.1 by @renovate[bot] in #3038
- chore(deps): update sonarsource/sonarqube-scan-action action to v8.2.1 - autoclosed by @renovate[bot] in #3039
- chore(deps): update actions/setup-node action to v7 by @renovate[bot] in #3050
- chore(deps): update actions/checkout action to v7.0.1 by @renovate[bot] in #3053
- chore(deps): update zizmorcore/zizmor-action action to v0.6.0 by @renovate[bot] in #3049
- chore(deps): update pnpm to v11.13.1 by @renovate[bot] in #3048
- chore(deps): update electron-menubar to v10.1.2 by @renovate[bot] in #3046
- chore(deps): update @tanstack/react-query to v5.101.2 by @renovate[bot] in #3043
- chore(deps): update @primer/octicons-react to v19.29.2 by @renovate[bot] in #3040
- chore(deps): update @swc-contrib/plugin-graphql-codegen-client-preset to v0.27.0 by @renovate[bot] in #3042
- chore(deps): update vite to v8.1.5 by @renovate[bot] in #3055
- chore(deps): update graphqlcodegenerator monorepo by @renovate[bot] in #3047
- chore(deps): update electron to v43 by @renovate[bot] in #3051
- chore(deps): update tailwindcss monorepo to v4.3.3 by @renovate[bot] in #3054
- chore(deps): update @primer/react to v38.32.0 by @renovate[bot] in #3041
- chore(deps): update vite-plus to v0.2.5 by @renovate[bot] in #3056
- chore(deps): update typescript to v7 by @renovate[bot] in #3052
- chore(deps): lock file maintenance by @renovate[bot] in #3061
🧹 Chore
- chore: use pnpm dlx instead of deprecated pnpx in pre-commit hook by @afonsojramos in #2840
- chore(events): remove dead UPDATE_THEME event and onSystemThemeUpdate API by @afonsojramos in #2848
- chore(renovate): hold got on the v11 line by @afonsojramos in #2960
Other Changes
- feat(settings): add "Close to tray" option by @BlueManCZ in #2845
- ci(triage): use pull_request_target so labeler can write on fork PRs by @afonsojramos in #2850
- refactor(forges/github): move GITHUB_API_MERGE_BATCH_SIZE into forges/github by @afonsojramos in #2881
New Contributors
- @BlueManCZ made their first contribution in #2844
- @ChaosZ-1702 made their first contribution in #2899
Full Changelog: v6.20.0...v7.0.0