github securo-finance/securo v0.17.0

4 hours ago

In this release we added contract tracking for financing and loans: a mortgage, a car or other financing, a student or personal loan can now be tracked for its whole term, with the real contract behind it. Give it the amount, the rate, the term, the first payment and the amortization (Price or SAC), and Securo works out the payment schedule, splits the next payment into interest and principal, and shows when it will be paid off, both on the contract's terms and at the rate you are actually paying it down. You can break a recorded payment into principal and interest against the property it pays for, turn a bank-connected account into one of these, and enter the balance the lender reports so an indexed or renegotiated contract keeps matching it. We also added monthly budget rollover, surplus analysis and a multi-month forecast, a one-click suggestion of budget limits from earlier months, net cash-flow bars in Reports, a dashboard chart that compares a month against earlier ones, and more ways for the built-in MCP server to propose edits. On the fixes side, both sides of a group split now see the same balance, projections count only your share of a split, and open connections survive a database failover.

marketing-1-loan-contract

Features

  • Financing and loans with a contract, a schedule and a payoff. Give a mortgage, a car or other financing, or a student or personal loan its amount, rate, term, first payment and amortization (Price or SAC); Securo computes the schedule on read, shows the next payment split into interest and principal, and tracks the payoff by the contract and at your current pace. The lender's statement can correct the balance at any time, with or without terms. Refs #344 (#1234)
  • Split a recorded mortgage payment into principal and interest, against the property the loan is secured against. By @eilandnl (#1288) ๐ŸŽ‰
  • Loan overrides on a bank-connected account, so a connected loan carries its own contract terms and keeps the right debt sign through sync. By @loebpaul (#1286) ๐ŸŽ‰
  • Monthly budget rollover and multi-month forecasting. Copy a month's budgets forward, see the surplus or overspend, and forecast across the coming months. By @vjymisal0 (#860) ๐ŸŽ‰
  • Suggest budget limits from previous months, in one click from your recent spending. Refs #430 (#1295)
  • Net cash-flow bars in Reports. Closes #1241, by @christiansegercrantz (#1303) ๐ŸŽ‰
  • Compare the dashboard's balance evolution against a chosen month, reading the current month against that month's median and middle-50% range. Closes #1154, by @christiansegercrantz (#1155) ๐ŸŽ‰
  • MCP: propose edits to a transaction's notes and tags, and create category groups. Closes #1278, by @PedroHenriqueFernandes (#1279) ๐ŸŽ‰
  • MCP: propose updates to goals and budgets, and delete a budget. Closes #1312, by @PedroHenriqueFernandes (#1313) ๐ŸŽ‰
  • The built-in MCP server speaks the 2026-07-28 Streamable HTTP transport, dual-era with the older one. Closes #946, by @luqmanbello (#1308) ๐ŸŽ‰

Fixes

  • A linked member saw the workspace's balances, not their own. Closes #1275, by @shaynhornik (#1290) ๐ŸŽ‰
  • Credit settlements posted outside the group's workspace instead of crediting it first. Closes #1143, by @vjymisal0 (#1196) ๐ŸŽ‰
  • Splitting a credit reversed the debt direction, so the split read backwards. Closes #1326, by @rodrigost23 (#1327) ๐ŸŽ‰
  • Group totals were read from the recent list rather than the aggregates, so a long history undercounted. Closes #1107, by @ivantrejo41 (#1287) ๐ŸŽ‰
  • Projections counted the whole amount of a split pending or future row, not just the owner's share. Closes #1343, by @Gustavo-Marques19 (#1344) ๐ŸŽ‰
  • A manual credit-card cycle disappeared from the statement view. Closes #1330, by @jay-glasswala-2110 (#1354) ๐ŸŽ‰
  • A deleted quick-chat conversation was remembered on reload. Closes #1319, by @shaynhornik (#1348) ๐ŸŽ‰
  • The transfer category prompt overflowed on mobile. Closes #1320, by @hrq-chiuchi (#1331) ๐ŸŽ‰
  • The dashboard comparison plot lost its footer. By @christiansegercrantz (#1324) ๐ŸŽ‰
  • The cash flow chart was not aligned to whole months. By @christiansegercrantz (#1328) ๐ŸŽ‰
  • The MCP aggregate counted treat_as_transfer categories. Closes #1342, by @shaynhornik (#1347) ๐ŸŽ‰
  • Ignored rows showed up in the dashboard's pending categorization. Closes #1336, by @shaynhornik (#1346) ๐ŸŽ‰
  • Enable Banking treated colliding entry_reference values as one transaction. Closes #753, #1063, by @chrisonline (#1071) ๐ŸŽ‰
  • An Enable Banking connection stayed active after the bank ended consent; it is marked expired now. Closes #1061, by @charlitosf (#1108) ๐ŸŽ‰
  • REGISTRATION_ENABLED now decides until an administrator saves a value. Closes #1274, by @PedroHenriqueFernandes (#1277) ๐ŸŽ‰
  • nginx blocked attachments over 1 MB. By @viktoravelino (#1237) ๐ŸŽ‰
  • The loan schedule opened on the first installment, hundreds of rows above where a mortgage actually is; it opens on the current one. (#1323)
  • A balance chart dropped the sign from its axis labels. (#1322)
  • Transaction description badges spilled out of their column. Closes #1306 (#1315)
  • An amount's sign was ignored in rule conditions. Closes #981 (#1294)
  • The loan contract card was a flat list; it now matches the app's stat tiles, with a status pill and a payment-progress bar. (#1314, #1365)

Under the hood

Four migrations land with the loan work and the housekeeping: 099 adds the loan contract terms, 101 the mortgage payment allocations, 100 lets the registration setting follow its env var until an administrator saves it, and 102 backfills Enable Banking external ids; all additive ยท the duplicate 099 revision on main was resolved (#1321) ยท the database enables pool_pre_ping so connections survive a PostgreSQL failover, by @tiagoflino (#1311) ยท Compose waits for migrations before starting the workers, by @ADolkun (#1084) ยท the api-contract suite builds its world once per worker and restores it per case, by @ADolkun (#1350) ยท the release bump (#1367)

Thanks @eilandnl, @loebpaul, @vjymisal0, @christiansegercrantz, @PedroHenriqueFernandes, @luqmanbello, @shaynhornik, @rodrigost23, @ivantrejo41, @Gustavo-Marques19, @jay-glasswala-2110, @hrq-chiuchi, @chrisonline, @charlitosf, @viktoravelino, @tiagoflino and @ADolkun for the code and the reviews, and @alheureux88, @viniciuscmartins, @czanette, @hamburgercowgoldfish, @dondelfuego, @METZGERRR, @zunami, @8hnd2g9xs2-sys, @aniqjaved-png, @jfrcom, @willemsFEB and @Casmei for the reports ๐Ÿ’œ

Full Changelog: v0.16.6...v0.17.0

Don't miss a new securo release

NewReleases is sending notifications on new releases.