61 Commits
Author SHA1 Message Date
renovate Bot 741e5a49ba chore(deps): update fireflyiii/core:latest docker digest to 4409f9f (main) (#6)
Co-authored-by: renovate <renovate@hhhhh.dev>
2026-10-25 04:11:39 +00:00
renovate Bot 94fe456a9d chore(deps): pin fireflyiii/core docker tag (main) (#2)
Co-authored-by: renovate <renovate@hhhhh.dev>
2026-10-19 04:09:50 +00:00
hh 65d83ddec7 fix(period): [ and ] after month or year to date step by whole months or years
Month to date went back to 13-30 Sept because a partial range was moved
by its length; a range that starts a month, quarter, half or year now
steps by that unit.
2026-10-18 17:26:58 +00:00
hh 54a51752ac fix(subscriptions): card and never-paid wait for the payments instead of guessing while they load 2026-10-18 17:19:43 +00:00
hh 9c15b81409 fix(subscriptions): a payment made around a past due date counts as paid, runway refetches on focus
A bill paid a day before its due date showed as overdue in the runway
because past due dates were never matched against payments; now any
payment within a third of the cycle around the date settles it. The
runway's bills and payments refetch when the tab gets focus, so entries
the bot made meanwhile show up.
2026-10-18 17:02:12 +00:00
hh 4a03ab8e1a feat(period): p and a letter picks a period from any page
p t current period, p m month to date, p 7 and p 3 the last seven and
thirty days, p y year to date, p l last year, p a everything, p c
custom dates, p p opens the period menu, which now shows each key. The
same presets are in the palette. Currencies make primary moves to P and
the subscriptions card/currency toggle to v to free p.
2026-10-17 16:13:29 +00:00
hh 617a4700e2 feat: every page follows the one-currency mode
Totals, info boxes, section headers, group subtotals, shares and the
per-currency charts on the dashboard, transactions, search, accounts,
merchants, statement, budgets, categories, tags, groups, piggy banks,
reports and the category, tag, budget and merchant pages sum into one
converted amount when the mode is on; charts split by currency merge
into one lane. Inputs, reconciliation and the Foreign column stay exact.

Money moved to or from a debt, loan or mortgage no longer counts as
income or spending in the transaction list boxes; it shows as From
debts and To debts. The running balance of an incoming foreign-currency
transfer shows in the account's currency.
2026-10-16 18:49:16 +00:00
hh 94466d9be9 fix: currency selector hidden on phones, space around + between currencies 2026-10-16 18:22:01 +00:00
hh c610aa58fa feat(subscriptions): paying card set for several at once and kept in Firefly, quieter table
Each runway line says whether its card came from the last payment or
was set by hand; x selects bills and a sets the card for all of them,
stored in the Firefly preference ffui_bill_cards so every device sees
it. Price change moves to the subscription page, per year turns grey,
group sums follow the one-currency mode, key chips fit their buttons and
the panels no longer show a focus ring. Linking found payments is y.
2026-10-16 18:22:01 +00:00
hh 54895b9305 feat(accounts): debts in general words, actions named by what they record
Cards are titled by the account name with the position on its own line:
owes you, you owe, settled, and paid back more than borrowed when a debt
crossed zero against its direction, so one account per person covers
both directions. Actions read Record repayment, Lend more, Pay back,
Borrow more and Offset against another debt, which says what it moves.
No more friends in the copy; the dashboard box is Debts.
2026-10-16 18:22:01 +00:00
hh 4936258f32 fix: changing the page, the period or a filter keeps the scroll position 2026-10-16 18:16:06 +00:00
hh f771538f3e feat(editor): s jumps to the subscription field 2026-10-16 18:16:06 +00:00
hh 5a22db43f6 feat(keys): H and L go back and forward from any page, currency selector in the header
Linking a suggested subscription on the transaction page moves from L
to y so L stays forward everywhere.
2026-10-16 18:16:06 +00:00
hh 2231c08eee feat: show every amount in one currency, chosen in the header, $ toggles it
A selector in the header and the palette's Currency group pick the
currency, the primary one by default; the choice persists between pages
and $ switches it on and off. Rates come from Firefly's exchange rates,
then from the owner's own transactions with a foreign amount, walking
through other currencies when there is no direct pair. Amount converts
with a ≈ and keeps the original in its title; Money sums several
currencies into one converted amount.
2026-10-16 18:15:53 +00:00
hh 3c1d8a4867 fix(keys): the first row scrolls to the page top whenever it fits the first screen 2026-10-16 15:54:41 +00:00
hh 722fdc2a20 feat: one page for a category, tag, budget or merchant
The page answers how much and whether that is normal: this month per
currency with count, median and pace against a typical month, thirteen
months as lanes per currency, and what is inside (merchants, cards,
budgets, tags, subtags) on 1 to 4 with Enter narrowing the transactions
below. Budgets keep spent, left and overspent with the limit line;
expense and revenue accounts use the same page with visits and cadence.
The twelve period cards and per-day charts are gone.
2026-10-16 15:51:00 +00:00
hh 349a6a0b32 feat(transactions): the transaction page as a receipt with context
The amount is the headline, notes come first at full width, then the
last twelve visits to the same place as a dot timeline next to the
paying account's days around it with the running balance. Fields edit in
place: j and k move, Enter opens and saves, Esc cancels, s c, s b, s t
and s s jump to classification. A matching subscription shows as a
suggestion, L links it.
2026-10-16 15:51:00 +00:00
hh 58b356ea8b fix(editor): clearing the foreign amount clears it in Firefly
Firefly keeps a foreign amount sent as null on update and only drops it
for "0".
2026-10-16 15:51:00 +00:00
hh f3a597d39c feat(accounts): the account page as a statement, all accounts instead of the audit report
Asset and liability pages open with opening plus income and money moved
in, minus spending and money moved out, equals closing, then thirteen
months of in and out next to the daily balance, and the statement with
its balance column, day subtotals on ; and the last reconciled date.
The audit report becomes one table of all accounts for the period.
2026-10-16 15:36:41 +00:00
hh b10a6bd21a feat(dashboard): where it went and where it came from instead of five column charts 2026-10-16 15:35:42 +00:00
hh fffb770cac feat(accounts): merchants and payers as a league table
Expense and revenue accounts list this month per currency, share,
visits, average, twelve months, typical and the change against it, last
visit and category; quiet ones fold into one line behind i. 1 to 5 sort,
; groups by category with subtotals, x and s c set the category on all
of a merchant's transactions in the period.
2026-10-16 15:35:38 +00:00
hh 26903b0066 feat(reports): a year board per currency instead of the generator
/reports opens the year: per currency spent so far, a typical month and
this month against typical by today, one lane of category columns per
currency with a dotted typical line and income as dots, what grew next
to the month under the cursor, an honest by-currency table and net worth
lanes weighted by size. Arrows move the month, Enter opens its
transactions, [ ] change the year, m shows the old tables, ?view=month
pins a month with the money flow. Old report URLs still work.

Shared pieces for other pages: Lanes, ledgerQuery for twelve months,
typical-month helpers.
2026-10-16 15:35:37 +00:00
hh 8c4e72666b feat(dashboard): morning page, compact accounts, what the bot entered, next 7 days
The right column drops the box per account for one table per currency
with sparklines and the last five transactions on l, a list of what was
entered since the last look (x marks reviewed), bills and piggy bank
dates in the next seven days, and debts with friends net per currency.
The left column opens with spending so far against a typical month, and
$ shows totals in UAH.
2026-10-16 15:14:03 +00:00
hh cea51281cd feat(budgets): top line per currency, sorting places into budgets, projections
Budgets show budgeted, left, spent and spent without a budget per
currency, safe per day and where the month ends. t sorts expenses
without a budget by place, 1 to 9 move a whole place into a budget, u
undoes, and the editor and quick entry remember the place. A suggests
empty amounts from three months. Categories get the same sorting.
2026-10-16 15:13:35 +00:00
hh 68f64893f7 feat(subscriptions): cash runway per card, price changes, stale bills, unlinked payments
The page opens with how much each paying card needs by a date and where
it falls short, a 30-day calendar per card and the annual renewals ahead.
The table shows price changes, the paying card, stale subscriptions to
deactivate in place and payments that look like a subscription, L links
them.
2026-10-16 15:13:35 +00:00
hh 153a8cb191 feat(transactions): the period as a local ledger with Excel-style filters
The list loads the whole period (or twelve months with Y) and filters it
in the browser: a text line over descriptions, notes, accounts and
amounts, dropdowns with counts per type, category, budget, account,
currency, tag and subscription, group-by with subtotals per currency,
pinned filters on 1 to 9. Possible duplicates show with a delete for the
newer one, one account adds the balance column, s s sets a subscription
and s . repeats the last mass action.
2026-10-16 15:13:35 +00:00
hh 01c53d982d feat: tag clean-up converters, saved searches, quick entry subscriptions and foreign amounts
Tag clean-up lists tags named like a category, account or subscription,
tags used once and unused ones; s c and s s move a tag's transactions
to a category or subscription, Enter again deletes the tag. P pins a
search, pins and built-ins show in the palette. Quick entry takes
%subscription and =520 UAH. The transaction page compares the amount
with the usual one at the same place.
2026-10-16 15:10:47 +00:00
hh 6f39343e07 feat(accounts): friends ledger for debts, settle up and offset, asset accounts by currency
Liabilities show one card per friend with who owes whom, last movement,
average days to pay back and twelve months of lending. s settles up,
+ lends more, o offsets two debts through the prefilled editor. Asset
accounts group by currency with totals, inactive ones behind i.
2026-10-16 15:05:56 +00:00
hh 60b099e917 style: Inter with tabular figures, Firefly inks, higher contrast 2026-10-16 14:51:02 +00:00
hh 4e774f5104 feat(transactions): notes folded under rows, i shows them all 2026-10-16 14:51:02 +00:00
hh 0ace2919aa feat(palette): press any button, link or field on the page by name 2026-10-16 14:51:02 +00:00
hh a1e7489ad4 feat(keys): vim keys in any layout, z motions, no Option chords
Keys on a non-Latin layout map to their physical US position, so j, k,
gg and / work on the Russian layout. Lists get z z, z t, z b, and the
first row scrolls the page to the top. The editor drops Alt chords for
Esc then a letter, reorder in groups, piggy banks and subscriptions
moves to J and K.
2026-10-16 14:51:02 +00:00
hh 63a1971900 style(pwa): favicon title 2026-10-16 04:43:51 +00:00
hh beddb6b78f feat(pwa): quick entry deep link and home screen shortcut 2026-10-16 04:42:11 +00:00
hh 07bcc7c8fc feat(shell): quick entry in the create menu for touch screens 2026-10-16 04:40:46 +00:00
hh d348697f26 fix(keys): escape closes palette and cheatsheet, page keys stay quiet behind a modal 2026-10-16 04:38:27 +00:00
hh dea5d8c675 fix(transactions): single-line rows with a foreign column, whole-card period strip under the table 2026-10-16 04:29:46 +00:00
hh e279d3948a fix(transactions,editor,reports): v1 period column, one amount edge, unclipped report numbers, solid save, mobile headers 2026-10-16 04:26:07 +00:00
hh fa322d22e9 style(theme): focus ring in firefly blue 2026-10-16 04:26:07 +00:00
hh f3a603648e fix(budgets,tags,piggy-banks,dashboard): live buttons that answer in place, lucide icons, mobile wrapping 2026-10-16 04:26:07 +00:00
hh aba2509399 style(theme): light mode grey ground with white raised boxes, like v1 2026-10-16 04:26:07 +00:00
renovate Bot 650ff280fb chore(deps): pin oven/bun docker tag to 629e174 (main) (#3)
Co-authored-by: renovate <renovate@hhhhh.dev>
2026-10-16 04:03:22 +00:00
renovate Bot 8b7fac95c6 chore(deps): pin caddy docker tag to d8542f4 (main) (#1)
Co-authored-by: renovate <renovate@hhhhh.dev>
2026-10-16 04:03:19 +00:00
hh eebc9d2b41 feat(dashboard,accounts): reconcile, debts box, per-currency charts, validated series palette 2026-10-16 03:58:49 +00:00
hh 189a455308 fix(shell): return to the saved page before the period takes the url 2026-10-16 03:53:34 +00:00
hh 9e89829bae feat(dashboard,accounts,charts): v1 dashboard redrawn, account lists and pages, svg chart kit 2026-10-16 03:50:02 +00:00
hh 62cd17ecde feat(reports): live firefly reports with drill-down, money flow and spending calendar 2026-10-16 03:45:43 +00:00
hh 60caee10dc style(shell): format, force-ignore generated schema in biome 2026-10-16 03:42:52 +00:00
hh f8a5fd6c6d feat(currencies,preferences,export,misc): currencies, rates, attachments, link types, preferences, export, administrations, recurring and webhooks 2026-10-16 03:42:24 +00:00
hh 89bbf56062 feat(budgets,categories,tags): in-place limits with pace, category shares, tag tree and clean-up 2026-10-16 03:38:31 +00:00