This release makes the assets chart readable again when one wallet dwarfs the others, unblocks the bulk "add to group" flow when you have no groups or members yet, and ships a Helm chart for Kubernetes deployments. It also fixes SimpleFIN connections that got stuck on a stale access URL, labels every icon-only button in the app, and makes the built-in MCP endpoint work behind a reverse proxy.
Features
- Stacked / lines toggle on the assets chart. The portfolio chart now has a drawing-style toggle next to the existing By Wallet / By Asset grouping. In Lines mode each series is plotted at its own value and the Y axis scales to the largest one, so a small wallet is no longer squashed against the baseline by a much larger one. Stacked stays the default. Closes #341 reported by @ingridmachado (#406) 🙏 Contributed by @RomuloGatto 🎉
- Create groups and members without leaving the bulk assign dialog. The transactions "Add to group" dialog can now create a group and add members inline, so a workspace with no groups (or an empty group) no longer dead-ends the split assignment flow. The group and member forms were extracted into reusable components in the process. Contributed by @DannyFeliz (#404) 🎉
- Helm chart for Kubernetes. Securo now ships an official Helm chart, with optional AI Agents PVCs, per-component
imagePullPolicy, and the external MCP URL wired in as a value. Contributed by @jorishaenseler15 (#385) 🎉 - Config secrets from files. Sensitive settings can now be read from flat files (Docker secrets, Kubernetes projected volumes) via pydantic-settings'
secrets_dir, in addition to environment variables. Multiple directories are supported, last match wins. Contributed by @pjrm (#392) 🎉 misefor dev dependencies. Amise.tomlsets up the local toolchain in one command for contributors. Contributed by @pjrm (#393) 🎉
Fixes
- SimpleFIN connections recover from a stale access URL. An expired SimpleFIN access URL used to fail sync with a generic 500 and no way back, since Reconnect was Pluggy-only. Stale credentials are now surfaced as a reauthorization state on the Accounts page (the sync action turns amber with a warning badge) and a non-destructive token reconnect refreshes the credentials in place, keeping accounts, transactions and categorizations. Closes #332 reported by @FugginBeenus (#396) 🙏 Contributed by @RomuloGatto 🎉
- Every icon-only button now says what it does. 22 icon-only controls across 14 screens (connection settings/sync/disconnect, edit/delete row actions, favorite toggles, theme switches and more) had no tooltip or accessible label. They all have one now, in all 8 locales. Contributed by @rodrimaia (#405) 🎉
- External MCP endpoint works behind a proxy. The External MCP access panel hardcoded
<hostname>:8765/mcp, which breaks when the built-in MCP server sits behind an ingress on a custom host, subpath or standard port. A newAGENTS_EXTERNAL_MCP_URLsetting overrides it, falling back to the previous browser-derived endpoint when blank. Closes #384 reported by @jorishaenseler15 (#399) 🙏 - Date sorting on the transactions page. The column sort cycled through three states, and the "none" state was visually identical to descending, so clicking the date header appeared to stop working. It is now a two-state toggle where every click flips the direction. Closes #383 reported by @JonathanAJ (#398) 🙏
Under the hood
- Backend PR checks run faster in CI. Contributed by @RomuloGatto (#407) 🎉
Big thanks to @RomuloGatto, @DannyFeliz, @rodrimaia, @pjrm and @jorishaenseler15 for the code, and to @ingridmachado, @FugginBeenus and @JonathanAJ for the reports that shaped this release 💜
Full Changelog: v0.13.8...v0.13.9