🎉 Release v0.22.49
📦 Docker Images
# Docker Hub
docker pull agigante80/actual-mcp-server:0.22.49
# GitHub Container Registry
docker pull ghcr.io/agigante80/actual-mcp-server:0.22.49📝 Changelog
- chore(release): bump version to 0.22.49 (13364ef)
- fix(adapter): close the outgoing budget without syncing it (#571) (0df4fb7)
- chore(release): bump version to 0.22.48 (e009156)
- fix(adapter): load each budget on its own server and record the login (#571) (94ee89b)
📊 What this release ships
@actual-app/apipinned at26.10.0- All 84 MCP tools registered and validated on this tag
🔒 Security
This release has been scanned for vulnerabilities. Check the Security tab for details.
Full Changelog: v0.22.47...v0.22.49
Notes: multi-server budget selection (#571)
- With a multi-server registry (
BUDGET_n_SERVER_URL/BUDGET_n_PASSWORDdiffering fromACTUAL_*), a session could download its budget from whichever Actual server another session had last logged in to:Budget not found, or the wrong data when a sync id existed on both. Each budget is now loaded over a login to the server that holds it, and the login is recorded state; same-server switches still cost no login. - v0.22.48 (tagged on develop, never released to main) closed the outgoing budget with a syncing shutdown, which broke a stale local copy when a second process had written the same data dir. v0.22.49 closes without syncing; the outgoing budget is synced once, over its own login, before the switch. The remaining stale-copy hazard of two processes on one data dir is tracked as #575.
- Proof: the docker E2E stack runs one Actual server, so the multi-server behaviour is proven by unit rows with mutation checks (
tests/unit/multi_server_budget_selection*.test.js,multi_server_session_open_http.test.js) plus a live two-container rerun over HTTP and stdio. The full dual-transport run passed with zero residue on 13364ef. - Thanks to @jospaquim, whose PR #569 surfaced this.