Repository navigation
Companion Hub Desktop v0.3.0
Companion Hub Desktop v0.3.0
Downloads
| Platform | Installer | Notes |
|---|---|---|
| Windows (x64) | .msi or -setup.exe |
Recommended for most Windows users |
| Windows (ARM64) | .msi or -setup.exe |
Windows on ARM (Snapdragon and other ARM64 PCs) |
| macOS (Apple Silicon) | .dmg |
M1/M2/M3/M4 Macs |
| macOS (Intel) | .dmg |
Older Intel-based Macs |
| Linux (x64) | .deb or .rpm |
Ubuntu/Debian or Fedora/RHEL |
| Linux (ARM64) | .deb or .rpm |
Raspberry Pi, ARM servers |
Requirements
- Docker must be installed and running
- Windows: Windows 10+ with WebView2 (ships with Windows 11)
- macOS: macOS 11.0+
- Linux: WebKitGTK 4.1
What's Changed
- fix(state): keep settings.json, seed and .env.resolved owner-only by @mrhegemon in #1677
- fix(hub-pool): judge a 200's output, record why candidates were passed over, one close listener per request by @mrhegemon in #1681
- fix(hub-pool): a large prompt goes to a node measured to answer, not one nothing has timed by @mrhegemon in #1678
- Improved support for multiple inference backends by @barankyle in #1679
- fix(hub-pool): the much-faster rule stops compounding its margin, trusting cache hits, and queueing on a full engine by @mrhegemon in #1682
- fix(hub-pool): an agent session's appends keep the node serving it measured by @mrhegemon in #1683
- fix(inference): a load no longer evicts a busy or app-loaded model to make room, and sizes what it evicts in the budget's units by @mrhegemon in #1684
- fix(inference): offer only the Lemonade models the connected server can serve, and hand out its embedder by the name it lists by @mrhegemon in #1685
- Let a public clone build the Hub without CI Common by @bennettchamberlain in #1687
- fix(inference): size load windows against the fit-check budget, from what the engine measured by @mrhegemon in #1686
- Let Settings save when the Local domain is the Hub's default, localhost by @hanzlamateen in #1700
- Say an app's data stays when you uninstall it with Delete all data off by @hanzlamateen in #1701
- Stop cihub doctor from testing inference engines that are not set up by @hanzlamateen in #1702
- Make cihub doctor say which Hub it checks when run inside a checkout by @hanzlamateen in #1703
- Find the real Hub data folder when cihub runs in a snap app's terminal by @hanzlamateen in #1704
- Let cihub up find free ports on Linux where lsof is the BusyBox version by @hanzlamateen in #1705
- Keep the desktop app's update token where the Hub can read it by @hanzlamateen in #1706
- Build the release web page with its version, environment and Portal URL by @hanzlamateen in #1707
- Show the desktop app download in a browser by asking the Hub for the release by @hanzlamateen in #1708
- fix(inference): give the gemma4 catalog rows footprints measured on the fleet, and qwen3-8-27b-lemonade its registry size by @mrhegemon in #1688
- fix(inference): keep pins across a restart and under Lemonade's user. names, and never save a provisional Lemonade window by @mrhegemon in #1689
- Pool: fail over when the Hub refuses a local load, bound the local listing, copy buttons on the Lemonade card by @mrhegemon in #1709
- More improvements around multiple inference backends by @barankyle in #1710
- chore(deps): update dependencies within semver ranges by @mrhegemon in #1711
- chore(deps): upgrade NestJS to 12 and backend Sentry SDK to 11 by @mrhegemon in #1714
- build(deps): bump axios from 1.18.0 to 1.20.0 by @dependabot[bot] in #1713
- build(deps): bump dompurify from 3.4.13 to 3.4.16 by @dependabot[bot] in #1712
- chore(deps): upgrade vitest to 5 and jest-dom to 7 by @mrhegemon in #1715
- chore(deps): upgrade frontend Sentry SDK to 11 by @mrhegemon in #1716
- build(deps-dev): bump vite from 7.3.5 to 8.3.1 by @dependabot[bot] in #1718
- feat(auth): sign a stable user id beside X-CI-Hub-User by @mrhegemon in #1730
- build(deps): bump zod-validation-error from 4.0.2 to 5.0.0 by @dependabot[bot] in #1722
- build(deps-dev): bump dotenv-cli from 10.0.0 to 11.0.0 by @dependabot[bot] in #1721
- build(deps): bump i18next from 25.10.10 to 26.4.2 by @dependabot[bot] in #1720
- chore(deps): bump argon2, memfs and zustand by @mrhegemon in #1731
- build(deps-dev): bump typescript from 5.9.3 to 7.0.2 by @dependabot[bot] in #1719
- chore(deps): react-i18next 17, i18next-http-backend 4, fix i18next 26 test setup by @mrhegemon in #1732
- fix(frontend): keep page-scrollers test working under TypeScript 7 by @mrhegemon in #1733
- test(inference): move PIN-2's restart case onto a model the catalog still refuses on beta-red by @mrhegemon in #1735
- build(deps): bump the minor-patch group across 1 directory with 7 updates by @dependabot[bot] in #1734
- fix(auth): show the Hub icon on the sign-in handoff tab by @hanzlamateen in #1736
- build: run the backend on TypeScript 7 and clear dev's other CI failures by @hanzlamateen in #1744
- Ask for a restart when the desktop app is updated while it is open by @hanzlamateen in #1749
- build(deps): bump dotenv from 17.4.2 to 18.0.4 by @dependabot[bot] in #1778
- build: make Vite 8 real by moving the vite override to 8.3.1 by @mrhegemon in #1783
- Keep the Auto-update stack switch full size on phones, and drop the space before "?" in app dialog titles by @hanzlamateen in #1738
- Keep passwords, secrets and keys out of the Hub's logs by @hanzlamateen in #1740
- Compare a source checkout with its Hub by commit, so cihub doctor stops failing it by @hanzlamateen in #1741
- Show the saved time zone in the Settings Timezone box by @hanzlamateen in #1742
- Keep desktop and CLI tests away from the installed app, and make SKIP_DESKTOP_BUILD always skip by @hanzlamateen in #1743
- Fix the Linux port checks: cihub uses free 80/443, the desktop app says why it keeps 8880 by @hanzlamateen in #1746
- Stop the permission repair leaving Hub folders writable by every account by @hanzlamateen in #1747
- chore(deps): framer-motion 13, immer 11, lucide-react 1, react-tooltip 6, lottie-react 3, let-it-go 2 by @mrhegemon in #1784
- chore(deps): react-router 8, @react-router/dev 8, @react-router/node 8 by @mrhegemon in #1792
- fix(frontend): follow react-router 8's bin.cjs rename in the build scripts by @mrhegemon in #1794
- chore(deps): jose 6, dockerode 5, unplugin-swc 2, vite-tsconfig-paths 6 by @mrhegemon in #1791
- build(deps): bump the minor-patch group across 1 directory with 2 updates by @dependabot[bot] in #1786
- build(deps-dev): bump jsdom from 27.4.0 to 30.1.1 by @dependabot[bot] in #1777
- build(deps): bump openai from 4.104.0 to 7.23.0 in /agent by @dependabot[bot] in #1751
- build(deps): bump imjasonh/setup-crane from 0.4 to 0.7 by @dependabot[bot] in #1752
- build(deps): bump azure/login from 2 to 3 by @dependabot[bot] in #1755
- build(deps): bump sentry from 0.36.0 to 0.49.3 in /packages/desktop/src-tauri by @dependabot[bot] in #1772
- build(deps): bump actions/cache from 4 to 6 by @dependabot[bot] in #1768
- build(deps): bump the minor-patch group in /packages/desktop/src-tauri with 17 updates by @dependabot[bot] in #1769
- build(deps): bump actions/dependency-review-action from 4 to 5 by @dependabot[bot] in #1754
- build(deps): bump jni from 0.21.1 to 0.22.4 in /packages/mobile/src-tauri by @dependabot[bot] in #1761
- build(deps): bump github/codeql-action from 3 to 4 by @dependabot[bot] in #1767
- ci: run the tests after a lint, knip, or tsc failure by @mrhegemon in #1796
- build(deps): bump @otplib/core from 12.0.1 to 13.5.0 by @dependabot[bot] in #1776
- build(deps): bump the minor-patch group in /packages/mobile/src-tauri with 8 updates by @dependabot[bot] in #1758
- build(deps): bump mdns-sd from 0.11.5 to 0.20.0 in /packages/desktop/src-tauri by @dependabot[bot] in #1773
- build(deps-dev): bump @types/node from 20.19.39 to 26.6.3 in /agent by @dependabot[bot] in #1750
- build(deps): bump reqwest from 0.12.28 to 0.13.2 in /packages/desktop/src-tauri by @dependabot[bot] in #1770
- build(deps-dev): bump @changesets/cli from 2.31.1 to 3.0.3 by @dependabot[bot] in #1775
- build(deps-dev): bump typescript from 5.9.3 to 7.0.2 in /agent by @dependabot[bot] in #1753
- Fix dev's red checks: keep @otplib/core on 12, and fix two log-download tests under jsdom 30 by @hanzlamateen in #1801
- build(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in #1808
- Build the desktop app again after the sentry 0.49 update by @hanzlamateen in #1815
- build(deps-dev): bump lint-staged from 16.4.0 to 17.6.0 by @dependabot[bot] in #1814
- build(deps-dev): bump turbo from 2.9.14 to 2.11.5 in the minor-patch group by @dependabot[bot] in #1811
- build(deps): bump actions/setup-node from 4 to 7 by @dependabot[bot] in #1807
- build(deps): bump azure/artifact-signing-action from 1 to 2 by @dependabot[bot] in #1806
- build(deps): bump actions/github-script from 7 to 9 by @dependabot[bot] in #1809
- build(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #1810
- build(deps): bump reqwest from 0.13.2 to 0.13.5 in /packages/desktop/src-tauri in the minor-patch group by @dependabot[bot] in #1803
- build(deps): bump rand from 0.8.6 to 0.10.2 in /packages/desktop/src-tauri by @dependabot[bot] in #1804
- build(deps-dev): bump @types/node from 24.19.0 to 26.6.3 by @dependabot[bot] in #1812
- Harden restore, update, auth and logging; add app backups page and bulk app actions by @mrhegemon in #1819
- build(deps): bump dirs from 5.0.1 to 7.0.0 in /packages/desktop/src-tauri by @dependabot[bot] in #1805
- Publish Private VPN apps on desktop installs, and give Tailscale Serve its own off switch by @hanzlamateen in #1797
- Sign in once on the phone and carry that account onto the Hub by @bennettchamberlain in #1816
- Build the desktop app again after the rand 0.10 update by @hanzlamateen in #1817
- Keep Docker's proxy settings for the containers the Hub starts by @hanzlamateen in #1802
- Install desktop app updates in one click from the desktop window by @hanzlamateen in #1795
- Show when Tailscale refuses the Hub's changes, with the command that fixes it by @hanzlamateen in #1798
- build(deps): bump sha2 from 0.10.9 to 0.11.0 in /packages/desktop/src-tauri by @dependabot[bot] in #1771
- build(deps-dev): bump openai from 6.49.0 to 7.23.0 by @dependabot[bot] in #1813
- Animate the phone menu open without dimming the top bar by @bennettchamberlain in #1818
- Fix the app update integration tests: mock the pre-update snapshot, keep the rollback result by @hanzlamateen in #1821
- Keep the Hub's internet traffic on its usual network, and say when Docker is too old by @hanzlamateen in #1800
- Linux update steps install over the current app instead of removing it by @hanzlamateen in #1781
- Say why the Hub couldn't reach the Portal, and stop giving up on slow connections after a quarter second by @hanzlamateen in #1793
- Build the desktop app again after the sha2 0.11 update by @hanzlamateen in #1820
- fix(docker): install express in the production runner by @mrhegemon in #1823
- fix(backend): bundle what NestJS 12 loads through its own createRequire, and fail the build on unbundled runtime lookups by @mrhegemon in #1824
- Show a store listing without opening the private install record by @mrhegemon in #1825
- ci: boot the production image in CI, and drop the Dockerfile's redundant bundle step by @mrhegemon in #1826
- Ellipsize store card descriptions by @bennettchamberlain in #1827
- fix(hub-pool): stop a just-used peer reading as busy, and order the failover walk by the prediction by @mrhegemon in #1830
- fix(inference): keep the request path's eviction rule from being defeated, and read the card fresh after an unload by @mrhegemon in #1829
- fix(inference): scale footprint sightings by window, budget every AMD card, say when slots are unstated by @mrhegemon in #1828
- Show " is starting…" instead of Bad Gateway while an app starts by @hanzlamateen in #1799
- Keep the Hub running during desktop updates, and leave desktop installs to a person by @hanzlamateen in #1789
- Ship the Hub's address in Traefik's dynamic.yml instead of a placeholder by @hanzlamateen in #1835
- Stop telling cihub operators to remove the companion-hub package by @hanzlamateen in #1836
- Test the Docker socket path without process-wide state by @hanzlamateen in #1837
- Remove the integration test containers after a failed or stopped run by @hanzlamateen in #1841
New Contributors
- @dependabot[bot] made their first contribution in #1713
Full Changelog: v0.2.77...v0.3.0