Skip to content

Companion Hub Desktop v0.3.0

Choose a tag to compare

@github-actions github-actions released this 02 Oct 13:59
5b2fda9

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

Full Changelog: v0.2.77...v0.3.0