Skip to content

Compass v1.3.1

Choose a tag to compare

@github-actions github-actions released this 11 Sep 18:03
· 60 commits to main since this release
d627fa5

Created by @tylahfam97

Check us out at https://privatecompass.app

Hello! Another release just dropped 🧭

Compass 1.3.1 β€” Soundings 🧭

Overview used to repeat the Dashboard. It opened on account admin, then showed you the same
month's income and spending you had just read one page over. It now answers the one question
nothing else in Compass answered: where you stand across everything you own and owe, and which
way that is moving.

New: Soundings

  • Overview opens on your net worth drawn as depth. Zero is a waterline across the page.
    Everything you own rises above it, everything you owe hangs below it, and the line running
    between them is your net worth, month by month, for the last two years.
  • When you are below the waterline, Compass measures the pace you have actually been climbing
    at over the last six months and continues it as a dashed line to the month you cross zero.
    That month is printed as a figure of its own, next to the date it lands on.
  • The pace is measured, never flattered. Three months of statements are needed before Compass
    will name one at all, movement under a dollar a month is called level rather than progress,
    and a net worth that is flat or falling is told plainly that it is not on course to clear
    zero instead of being given an invented date.
  • Above water, the instrument says so, and names the month you last came up.

New: the account roster

  • Every account in view is listed in one table, grouped into bank, investments, credit cards
    and loans, with its latest balance, the date that balance was recorded, and its recent
    shape. Investment accounts appear here alongside the rest for the first time.
  • In Global view the table spans profiles, and each profile gets its own row of cash,
    invested, owed and net, so you can see who is carrying what before switching.
  • Accounts you have hidden are still listed, marked as not counted, rather than disappearing.

Changed

  • The month picker and the monthly income, expenses and net figures have left Overview. They
    belong to the Dashboard, which is where the month lives; Overview is about standing, not
    about a month.
  • Manage Accounts moved from the top of the page to the foot, and lost its box. It is account
    housekeeping, not the first thing worth your attention.
  • Overview now uses the same type, spacing and icons as the rest of the app, including the
    shared notice for PIN-locked profiles in place of its old amber banner.

Below decks

  • The net worth history behind Soundings is read in two queries instead of forty-eight, so
    Overview settles immediately rather than sitting in a loading state.
  • Its figures and the roster beneath them are computed from one shared set of rules, so a
    statement dated ahead of today can no longer make the headline and the table disagree.
  • Compass is a desktop application, so the phone-width layout tests and the leftover mobile
    navigation drawer have been removed rather than maintained.
  • The end-to-end layout suite no longer times out on slower continuous integration machines.
  • Version 1.3.1 across the app, installers, and website.

Compass 1.3.0 β€” The Chart 🧭

Compass has always been able to tell you what your money did. This release shows you where it
went, what it cost you to hold and borrow, and how fast this pay cycle is running against your
own usual pace. Three new instruments, all computed on your computer from statements you have
already imported.

New: The Chart

  • A new page draws one month of money as currents. Paychecks and other deposits run into your
    accounts on the left, then out to scheduled bills (named by their Plan rule), recurring charges
    Compass detected (named by the charge), spending categories, card payments, savings, investments,
    and debt. Each card's own purchases fan out from the payment that funded it.
  • Ribbons are as wide as the money. A faint channel shows the whole month; the brighter current
    fills it up to the day under the scrubber, and gold particles ride each ribbon. Scrub or play
    the days to watch paydays arrive and rent leave; the rows that posted on the selected day send
    a short burst.
  • Every account is drawn as an honest junction. When a month spent more than came in, a "From
    balance" leg shows the difference; when less, "Stayed in checking" shows what was not spoken
    for. A card whose purchases outran its payments shows the difference as "Carried on card"; one
    paid down beyond its purchases shows "Paid down".
  • Moves between your own accounts are paired from both statements, so a transfer to savings or a
    card payment is drawn once and never counted as spending or income. Card refunds net against
    their category.
  • Click any ribbon or place to dim the rest and see the transactions behind it in the same ledger
    rows Transactions uses, with a link into Transactions for categories. With nothing selected,
    the panel shows the scrubbed day's movements.
  • The figures above the map: money that reached savings, investments and debt, what came in,
    what was spent (card purchases counted once, never their payments), and what stayed in
    checking or was drawn from balance.
  • Node positions never move while scrubbing. Reduced motion hides the particles and the Play
    button. On a narrow window the map keeps its width and pans sideways.

New: Cost of money

  • Insights gains a second instrument under Fixed and flexible: what your money cost you or earned
    you last month. Interest paid is read from the interest lines on your card statements and
    estimated for loans from the balance and APR on file; interest and dividends earned come from
    interest lines on your bank accounts and dividend and interest rows on brokerage statements.
  • Underneath, today's balances accrue by the second: what your debts are costing so far today,
    and what idle checking above your Plan reserve is forgoing at a savings yield you can edit.
    That yield is the one assumption on the page, labelled as such and remembered.
  • Each card and loan is listed with its balance, rate, and daily cost. A card that was not
    charged interest costs nothing however large its statement balance; a loan with no APR on
    file is named so you can add one.

New: This pay cycle

  • The Dashboard shows the current pay cycle when you are looking at the current month. Paydays
    come from your Plan schedule, or, when nothing is scheduled, from the rhythm of your payroll
    deposits (with a link to make it exact).
  • Everyday spending since payday is drawn as a gold line against the average of your past
    cycles aligned on the same day, with past cycles faint behind it. Scheduled bills and detected
    recurring charges are left out, since they land on fixed dates regardless of pace.
  • The figure that matters is what each remaining day can carry and still land where the cycle
    usually does. Three-paycheck months are called out.

Below decks

  • Pure, unit-tested modules behind each instrument: transfer pairing and flow layout, cost of
    money, and pay cycle detection.
  • Version 1.3.0 across the app, installers, and website.

Compass 1.2.3 β€” Statements From Anywhere 🧭

A statement should import correctly the first time, whatever bank it came from and however
that bank likes to write its dates. This release widens the import wizard's understanding of
real-world files, makes sure no row ever disappears silently, and quietly tightens the hull.

The import wizard reads more banks' dialects

  • Dates now parse in the forms banks actually export: two-digit years ("3/5/24"), dash
    separators ("03-05-2024"), compact "20260905", trailing times ("09/05/2026 14:32", "2:32 PM"),
    and unambiguous day-first dates ("25/12/2026"). Impossible dates are still rejected rather
    than guessed.
  • Amounts now understand trailing minus signs ("12.34-"), currency codes ("USD 12.34"),
    euro/pound/yen symbols, and European decimal commas ("1.234,56") - alongside the existing
    parentheses, CR/DR suffixes, and separate debit/credit columns.
  • Multi-sheet Excel workbooks no longer assume the first sheet is the statement: the wizard
    finds the sheet with a date-labeled header and data under it, so a "Summary" cover sheet
    can't hijack the import.
  • A brokerage statement's "Priced as of" date is now found even behind a cover page or a long
    disclaimer block, instead of silently stamping holdings with today's date.
  • Nothing vanishes without a trace: rows left out because they had no usable date and amount
    (headers, totals, memo lines) are counted and named on the import summary, separate from
    duplicates and real errors.
  • Fixed a subtle timezone bug where a written-out date ("March 5, 2024") could import as the
    previous day for anyone east of UTC.

Rules that show their work

  • The Rules Manager now tests every rule as you type it: a live preview shows how many of your
    last 1,000 transactions match, with the matched text marked in gold on real examples - so you
    know a rule works before you save it, not after.
  • Saving a rule can now categorize your existing uncategorized transactions in the same breath,
    and tells you exactly how many it touched.
  • Each rule row shows its priority, and editing tools moved to proper icons.

The amount step shows, not tells

  • Every previewed amount on the import wizard's Amount step is now labeled with exactly what
    Compass will record it as - "money out" or "money in" on bank files, "purchase / charge" or
    "payment / refund" on card statements. Flip the signs and the labels update in front of you;
    two dense paragraphs of sign theory are gone.
  • The column-layout question now speaks plainly: one amount column, a Debit/Credit label
    column, or two separate Debit and Credit columns.

The line chart knows its accounts

  • Slice a report by account and the line view draws one line per account. Keep the scope on
    all accounts and it draws your cash & debit and your credit cards as two independent
    lines instead of one merged total - the two halves of your money, told apart.

Trust, visibly

  • If your system's credential store ever loses Compass's encryption key, Compass restores it
    from the local backup key file - and now tells you it happened, right in the app, instead of
    only whispering to a terminal nobody has open.

Blending in

  • The Transfers & Excluded explainer on Transactions traded its bright blue emoji box for
    the app's own quiet hairline-and-gold language.
  • The last off-palette colors are gone: indigo bars and lines in the debt payoff timeline and
    portfolio charts now use Compass's own sea and success tones, stray emoji gave way to the
    app's icon set, and new categories default to Compass gold instead of a borrowed blue.

Below decks

  • Deleting an account with a long import history now cleans up its orphaned import sessions in
    one statement instead of one query per session.
  • Version 1.2.3 across the app, installers, and website.

Compass 1.2.2 β€” Money That Is Actually Yours 🧭

This release makes Compass honest about which money is spoken for and which is genuinely free,
puts a report builder on the plotting table, and gives Trends a voice of its own.

New: The report builder

  • Reports opens with a plotting table: measure spending, income, net, or purchase counts;
    slice by category, merchant, account, month, or weekday; look back 3, 6, 12 months or all
    time; and draw the result as a line-by-line sheet, ranked bars, a wheel, or a line through
    time. Split any cut by month or by account - pivot columns on the sheet, segments on the
    bars, one series per account on the line - and scope it to all accounts, cash & debit
    only, or credit cards only.
  • Merchants fold on their cleaned identity ("SQ *BLUE BOTTLE 05/21…" and "BLUE BOTTLE #12"
    are one row), a description search narrows any cut, and everything past the top rows folds
    into one honest "Everything else" line. Name a cut and save it; presets live on the page.

Your plan is the source of truth now

  • The "Fixed and flexible" instrument on Insights runs on your Plan schedule: planned income
    (paychecks, dividends, anything you hard-set) and scheduled bills at their planned monthly
    amounts, exactly matching the Plan page. A bonus, a one-off deposit, or a bank descriptor
    that doesn't match a rule name no longer distorts the picture.
  • Flexible spending measured from history is now an overlay you turn on, off by default. It
    inherits your categorization - card payments or moves between your own accounts that aren't
    categorized as Transfers read as spending - so the instrument names its top flexible
    categories to help you find and fix exactly that.
  • Money into investment categories (crypto, brokerage, retirement) and single purchases of
    $1,000+ are reported separately as set-aside money, never as flexible spending.
  • Months that spend past planned income but are covered by supplemental deposits say so
    plainly; the track only turns red when spending passed all income. With no income scheduled
    yet, the instrument still works from averaged deposits, says so, and points at Plan.
  • The plan view and the measured view never mix: measured mode shows the bill payments actually
    matched from history next to measured flexible spending, so a bill whose bank descriptor
    doesn't match its rule is never counted twice - once as a planned bill and again as
    "flexible" - which had been inflating both flexible spending and the over-income figure.
  • The "fixed costs take X% of income" insight runs on the same maths, so the row and the
    instrument can never disagree.

Debt payoff spends only free money

  • The payoff plan now works out what a typical month genuinely leaves over - planned income
    minus scheduled bills, minus detected recurring charges, minus your normal everyday spending -
    and shows the derivation right above the slider. The slider redirects a share of that free
    money, not a share of spending you were always going to do.
  • Cutting categories (dining, shopping, subscriptions...) is now an explicit opt-in on top of
    the free-cash redirect, instead of being pre-counted as available. When spending runs past
    income, the plan says there is no free cash rather than inventing some.

Trends is the ship's log now

  • The three summary tiles and the identical chart cards are gone. The page opens with one serif
    figure - everything the log records, net - over a gold running line of the whole voyage,
    then reads as one column: the monthly rhythm, where it went, cash on hand, what the cards carry.
  • Every section header carries its own figure (kept in a typical month, top category of the
    range, latest balances), so a heading is never just a label. A gold rule on a section means
    it opens for detail - the same affordance gold already means everywhere else in Compass.
  • Category chips under "Where it went" toggle a category's trend directly; the generic chart
    legends are gone.

New insight

  • Supplemental income: when deposits land beyond your Plan schedule, Compass names them and
    the total, and suggests directing the money - an extra debt payment or a goal contribution -
    before it dissolves into the month. Only appears once you have scheduled income to measure
    against.

Compass 1.2.0 β€” Night Navigation 🧭

This release gives Compass a visual identity of its own. The logo, the navy-and-gold palette,
every page, and every keyboard shortcut are where you left them; what changed is how it all
looks, plus one new planning view.

New: Planned payments against planned income

  • Plan now shows the money you have scheduled as one bar: planned income as the track,
    planned payments filling it from the left, and the remainder labelled Left for unplanned.
    It replaces the two separate "Scheduled margin" and "In vs out" figures, which said the same
    thing twice. Detected recurring charges count when the existing "Include detected bills"
    toggle is on; budgets are not counted.
  • The Dashboard's new bearing bar shows the current month as spent, still due, and free
    against expected income (income received so far plus scheduled deposits still to come),
    with a marker for today. Past months show spent against actual income.

New: Insights that use everything you have imported

  • The bills and paychecks you schedule in Plan now drive the Insights page. "Bills due this
    week" lists what is coming with the day and amount, and turns into a warning with the exact
    shortfall when your checking balance will not cover a bill before the next deposit lands. A
    scheduled bill or paycheck that has not posted by its date is called out by name.
  • Recurring charges are watched for what changes: a subscription that quietly went up (with the
    old and new price and the yearly difference), a charge that has just started recurring, a
    yearly renewal about to hit, and two identical charges on the same day.
  • A new "Fixed and flexible" instrument in the context section shows an average month as one
    track: scheduled bills you confirmed, recurring charges Compass detected, flexible spending,
    and what was left, as lengths of income. The serif figure is the money not spoken for before
    the month starts. A companion row warns when fixed costs pass half of income.
  • Goals join the engine: a balance floor that is short, a spending limit already over or on pace
    to be, a streak that reset, and a projected landing date for savings and debt-paydown goals.
  • Cards and investments: interest actually charged on each card, cards paid in full for two
    months running, payments covering only part of new charges, and the fees your investments
    cost over the last year.
  • Housekeeping first: when the newest transaction is weeks old or a tenth of spending is
    uncategorized, that is said before anything else, with a one-click way to fix it.
  • Every row now carries the money at stake and its time frame, and the list is ordered by that
    figure inside each severity band rather than by severity alone. Rows with more to show open
    inline (a ranked list, a dated timeline, or a share bar) instead of repeating themselves in a
    separate spotlight card. The Dashboard's "Worth a look" picks one row per type from the same
    ranking.
  • Retired: the "ghost subscription" rows (which were just the five largest recurring charges),
    the subscription total that summed every price a subscription ever had, and "most improved"
    comparing a half-finished month with a whole one. Averages no longer include the partial
    current month, rules that ignored "exclude from insights" now honour it, month boundaries are
    computed in local time, and dismissed warnings no longer light the navigation badge.

New: A typeface, a token system, and a night sky

  • Source Serif 4 sets page titles and the one hero figure on each page; Source Sans 3 sets
    everything else, with tabular numerals for money. Both fonts ship inside the app, so nothing
    is fetched from the network.
  • The palette is now Compass's own. Dark mode is the navy of the compass mark with a soft
    moonlight gradient, a faint graticule of chart lines, and a fine grain; light mode is cool
    chart paper with navy ink. Gold is the accent for anything you act on (active navigation,
    buttons, focus, clickable charts, what-if values), and a sea blue is reserved for recorded
    data such as balances and income.
  • Three corner radii, navy-tinted shadows, and one chart language (grid, ticks, tooltips,
    series colors) replace the mix of defaults that had accumulated.
  • Category and account colors are harmonized at paint time: each keeps its hue but sits in
    the same lightness band as its neighbours, in both themes. Nothing in your data changes.

Changed: Dashboard

  • The Dashboard moves to the rule-and-space layout the newer pages already used: the month's
    net figure, income and spending with their comparison to last month, then the bearing bar.
    Insight cards sit below the numbers they refer to.
  • Accounts are rows grouped as bank, credit cards, and loans instead of three grids of
    tiles; top categories are ranked bars; recent activity uses the same ledger rows as
    Transactions. On wide windows the accounts sit beside the categories and insights.
  • The empty state is a calm single pattern with a one-sentence explanation and one action.
    Other pages keep their layouts for now and pick up the new type, tokens, icons, and copy.

Changed: Insights page

  • Same sections in the same order; the KPI strip's four figures now live inside the new
    instrument. Charts use the shared sea-blue series and tooltip, grade colours come from the
    theme tokens, the score modal loses its emoji, the PIN-lock notice matches the other pages,
    and the Category trends and Subscription inventory tables gain a 3-month average, a "since"
    month, and a price-change column.

Changed: Icons, chrome, and copy

  • Icons are now Phosphor. The sidebar is the instrument panel: navy in both themes, the
    compass mark in the rail, a gold bearing mark on the active item, and a compass-needle
    loading indicator.
  • Copy is sentence case throughout; arrows, middle dots, and exclamation marks are gone from
    buttons and labels, and two garbled strings on Overview and Trends are fixed.

Website

  • privatecompass.app mirrors the new palette and fonts, uses the vector mark instead of a
    bitmap, and now honours the reduce-motion setting.

Compass 1.0.2 β€” A Plan That Knows How You Actually Spend ✨

This release simplifies Plan, Transactions, and Goals while preserving Compass's colors,
themes, and branding.

New: Cash-Flow Horizon

  • Compare the current projection with extra spending and one dated purchase preview.
    Previews never create transactions or scheduled bills.
  • Inspect daily balances, scheduled events, detected estimates, and hypothetical changes
    with the date scrubber or optional playback. The chart uses exact daily steps.
  • Scenario amounts allocate every cent exactly and stay separate for each profile.
    A purchase outside the selected window remains saved but inactive.
  • Recorded checking-balance dates are available in source details. Missing balances make
    safe-to-spend unavailable instead of treating unknown cash as a confirmed zero.

Fixed: Signed Budgets And Rollover

  • Category credits can produce negative net usage. A $200 budget with -$50 net used shows
    $250 remaining; only the $200 allowance carries forward, plus any prior carry.
  • Weekly bars show signed daily values and drill into the exact labelled week.
  • Budget streak goals and celebrations use covered, completed months and effective limits.
    Insights no longer describe a count of qualifying months as a consecutive streak.
  • Income targets and existing credit/loan account treatment remain unchanged.

Changed: A Workspace That Fits The Window

  • All pages use available width and reflow as the window or sidebar changes. Narrow-screen
    navigation opens as a dismissible overlay.
  • Insights puts readable action rows first, with compact context and expandable scores.
    Limited history no longer hides otherwise available sections.
  • Transaction filters, view and sort are remembered per profile for the session, along with
    report date ranges and trend windows. Search text is not added to URLs.
  • Settings prioritizes backups and appearance, remembers System/Light/Dark themes, and
    recovers from failed account checks. Bulk data controls remain behind disclosures.
  • Login particles use restrained depth-aware parallax, retain positions during resize,
    and stop when hidden or when reduced motion is enabled, including live preference changes.

Fixed: Safe To Spend Can Go Negative

Plan now displays the actual negative allowance in red instead of stopping at zero.
The number includes your reserved cushion, and a negative allowance no longer produces a
suggestion to move surplus cash.

Changed: Decision-First Workspaces

  • Categories: custom categories can be renamed, reordered, or removed from the manager.
    Rename and reorder preserve IDs. Removal reassigns linked records atomically; conflicting
    budgets or rules must be resolved first. System categories remain protected.
  • Transaction colors: category colors now provide a subtle whole-row gradient in both
    activity and table views, with neutral category controls.
  • Budgets: the default view emphasizes limits and remaining amounts, with an over-limit
    filter and an on-demand editor. Weekly limits now use spending from the labelled week.
  • Reports: exact selected-period totals, income/spending trends, category shares, and
    expense drill-downs lead. Detailed tables and all-time payees expand on demand. Balance
    charts use consistent currency units and stop at the selected end date.
  • Plan: cash outlook and forecast lead; scenario controls sit alongside the chart on wide
    screens. Balance arithmetic, action explanations, and scheduled-rule setup expand on demand.
  • Transactions: a date-grouped activity view emphasizes merchant, account, category, and
    amount. The full table remains available, along with search, filters, bulk actions, and editing.
    Export and categorization tools now live in a compact menu.
  • Goals: progress, target gaps, and status filters lead. A compact editor opens when adding
    or editing a goal, replacing the always-visible grid of goal types.

New: The Forecast Can Use Your Real Spending

Plan projected your balance from scheduled bills and income only β€” everyday spending was
always $0 unless you dragged a slider, so the picture was permanently rosier than reality.

Turn on "Include my typical spending" and the forecast folds in what you actually spend
day to day, derived from your last three months of transactions (with your scheduled bills
excluded so nothing counts twice). It uses the median week β€” a one-off car repair won't
inflate what "typical" means. With it on:

  • Safe to spend accounts for the selected everyday-spending baseline
  • The math breakdown shows typical spending as its own line, separate from what-if spending
  • The extra-spend slider becomes "on top of what you typically spend"

It's opt-in and clearly labelled, and it needs about a month of imported history before it
trusts itself enough to turn on.

New: Confirm Detected Charges In One Click

Compass has always spotted charges repeating in your history, but the only thing you could do
about one was hide it. Now every detected item in Upcoming cash flow has a confirm button that
turns it into a real scheduled bill β€” pre-filled with its amount and usual date, editable
in the schedule editor like any other rule. The forecast stops guessing about it, and the
"Estimated" label disappears.

New: "What To Do Next" Actually Takes You There

The suggested actions used to describe what you could do. Now they're buttons:

  • Schedule your paycheck scrolls you to the rules panel with the income form already open
  • Confirm detected charges jumps you to the list
  • You have room to move $X opens the debt payoff planner directly

Changed: Plan Remembers Your Scenario

The what-if sliders, the set-aside amount, and the detected-charges toggle all survive
navigating away and coming back β€” and the window selector has moved up to the page header,
since it's how you look at the page, not a scenario you're trying.

Changed: Quieter When Things Are Fine

The Plan headline no longer glows green when you're okay β€” a calm border is the good state, so
the red shortfall warning stands out by being the only loud thing on the page. Same principle
applied across the app: saturated color is reserved for things that need your attention.

Changed: Livelier, Smoother, Easier To Read

  • Headline numbers count up when they load or change (Dashboard, Overview, Insights).
    Plan updates its safe-to-spend amount immediately as scenarios change.
  • Pages fade in on navigation; cards rise in with a gentle stagger
  • Dashboard's Income / Expenses / Net cards now show how they compare to last month
  • The Reports category donut and Investments allocation donut are now horizontal bars β€” shares
    you compare by length at a glance instead of decoding arc angles
  • Updated metrics use tabular digits to keep columns aligned
  • Buttons have pressed-state feedback and shared keyboard focus styling

Changed: More Accessible Throughout

  • Added dialog semantics to shared modals and keyboard handlers to selected account and insight cards
  • Added text alternatives to selected sparklines and mini-charts
  • Deepened light-theme status colors and added labels alongside key status indicators

New: First End-To-End Test Suite

npm run test:e2e runs isolated browser tests using an in-memory SQLite database; it does not
read or modify your desktop data. Tests cover negative Plan values, scenario controls,
transaction views and editing, goal filters, and desktop/mobile layouts in both themes.
The optional native smoke suite runs when COMPASS_CDP_URL points at a Tauri debug window
launched with WEBVIEW2_ADDITIONAL_BROWSER_ARGUMENTS=--remote-debugging-port=9222.

All local, all offline, as always. 🧭


Compass 1.0.1 β€” Forecast Accuracy & Loading Feedback πŸ”§

A fast follow-up to v1.0 fixing the things real use turned up immediately.

New: Plan Connects Your Spare Money To Your Debt

Plan knew what was coming in and going out, but nothing about what you owe β€” so a surplus just
sat there being described as a surplus.

Put your spare money to work now takes the gap between your scheduled income and your
scheduled bills, and shows what redirecting it at your cards and loans would actually do: the
date they'd clear under minimum payments, the date they'd clear with your surplus behind them,
and the interest that difference saves. One click opens the full payoff planner already in
Compass, pre-loaded with those accounts.

The suggested actions know about your debt too β€” instead of "that surplus could go toward a
goal or a debt", it now names the account and the balance still costing you interest.

New: Plan Now Shows What's Actually Yours To Decide

Plan could tell you your balance over time, but never the number people actually want: how much
of what's coming in is genuinely free once your bills are paid.

  • An After bills figure sits alongside safe-to-spend and the low point β€” the income arriving
    in this window minus the bills scheduled against it. When it's negative, your bills for the
    period exceed the pay arriving and the difference is coming out of savings, which is worth
    knowing.
  • A one-line breakdown spells out the whole picture β€”
    $3,834 now + $2,331 coming in βˆ’ $2,374 bills βˆ’ $2,449 everyday = $1,342 left on Aug 31 β€”
    so where the projection lands is arithmetic you can follow rather than a number to trust
  • The chart now shades bills still due at each point, so the gap between your balance and
    that band is what's left for everyday life and saving. It steps down only when a bill is
    actually due β€” everyday spending is deliberately left out of it, since an estimate of your own
    choices isn't an obligation
  • Setting money aside draws a line on the chart, so it's something you can see the balance
    approach rather than just a number

Fixed: Chart Amounts Were 100Γ— Too Small

The projection chart's vertical axis showed $15 where it meant $1,500 β€” the axis was reading
dollars as cents. Hovering a point gave the right figure, which made the mismatch easy to miss.

Changed: Plan Layout

The green summary is followed by the sliders, then the chart, then what to do next β€” so a change
to a slider and its effect on both the numbers and the chart are visible together instead of
needing a scroll between them.

Changed: Plan Now Asks You What Window To Use

The forecast used to run over a fixed 30, 60 or 90 days β€” while the What-if slider said "this
month", which wasn't the period it was actually calculating. Two different answers to the same
question, which made the whole panel hard to trust.

Plan now has three windows that match how people actually think about their balance:

  • Rest of month (the new default) β€” today through the last day of this month
  • To next paycheck β€” today through your next scheduled income
  • Through next month β€” today through the last day of the following month

That third one deliberately ends on a month boundary rather than counting a flat 30 days. A
rolling 30-day window starting mid-month stops before the next month's rent is due, so a bill
you definitely owe simply vanished from the list. Ending on the last day of next month means
every bill in both months is accounted for.

Bills more than a fortnight out are now grouped under their real month name too β€” a window
spanning two months used to label September's bills "later this month", which made them look
like duplicates of August's.

Every figure moves with the window: safe to spend, the projected low point, money in versus out,
the chart, the bill list and the suggested actions. The headline states the exact range it used
(Aug 18 – Aug 31 Β· 14 days) so there's no ambiguity about what any number covers.

"To next paycheck" needs a scheduled income to aim at. If you haven't added one yet, Compass
falls back to the rest of the month and tells you why rather than quietly showing something else.

Improved: The What-if Panel Explains Itself

The window picker now sits inside the What-if box alongside the sliders, since it's the same
kind of question. Each control explains what it does and what it doesn't:

  • Spend an extra… is an amount across the whole window, spread evenly β€” and now shows the
    per-day figure that works out to. Previously it always divided by 30 regardless of the window
    being shown, so the arithmetic didn't match the label.
  • Keep … untouched makes clear it comes off "safe to spend" and doesn't move the projection.
  • The panel states up front that nothing here is saved or changes your data.

Fixed: Cancelled Subscriptions Never Went Away

A charge that recurred for a few months and then stopped kept its streak forever β€” so a
subscription you cancelled in April was still listed under Subscriptions and still being billed
against you in the Plan forecast months later. Anything not seen for 2 months is now treated
as cancelled and drops out of both. If it ever reappears in an import, it comes straight back.

Fixed: Your Own Bills Counted Twice in the Forecast

Compass only skipped a detected charge if its description matched a scheduled bill exactly.
In practice nobody types SOFI BANK PL DES:PL PYMT ID:T86083200 INDN:...WEB β€” they type "SoFi".
So the bill you entered and the charge Compass detected were both projected, doubling it. Matching
is now based on the amount plus a recognisable overlap in the description, so a hand-typed name
lines up with whatever your bank actually writes.

New: Hide a Detected Charge

Detected charges are guesses, and sometimes the guess is wrong β€” a one-off that looked like a
pattern, or a transfer that isn't a bill. Hover any detected item on Plan β†’ What's coming, or
any row under Insights β†’ Subscriptions, and hide it. It's removed from the forecast, the
subscription totals and the insights, with an Undo and a "Restore hidden" link if you change your
mind. Bills you scheduled yourself are never hidden this way β€” they're facts, not guesses.

Fixed: The App Looked Frozen While Importing

Two separate causes. The import step showed a static icon while it wrote transactions to the
database, so a large file looked like a hang. It now shows a moving spinner. Separately, the
reduce-motion support added in v1.0 was too aggressive and stopped loading spinners and skeletons
animating at all β€” for anyone with reduce-motion enabled, every loading state in the app appeared
frozen. Loading indicators now keep moving (just slowly) because they're feedback, not decoration.

Fixed: Pages Could Get Stuck Loading Forever

v1.0 made failed page loads show an error, but the loading skeleton underneath never cleared β€” so
you'd get an error message floating over a page that span forever. The skeleton now clears and you
get the page, the explanation and a Retry button.

Fixed: Transactions Silently Stopped at 500

A month with more than 500 transactions quietly dropped the rest with no indication. It now tells
you how many are shown and suggests narrowing the search.

Fixed: Erasing a Profile Left Traces

Erasing a profile's data removed everything from the database but left behind app memory tied to
it β€” celebrated milestones, dismissed insights, hidden charges. A fresh start now really is one.

Improved: Faster First Launch After Updating

The new database indexes are created in a single operation rather than three, which matters if
you have years of history.

Compass 1.0.0 β€” Version One 🧭

Compass is out of pre-release. Version one is the same app you've been using, finished: nothing
here changes how your money is counted, and nothing needs to be re-imported.

New: Plan β€” Compass Now Looks Forward

Every screen in Compass has described the past. The new Plan tab describes what's coming.

It projects your checking balance forward 30, 60 or 90 days using the bills and income you've
scheduled, the recurring charges Compass spots in your history, and an estimate of everyday
spending drawn from your last 3 months. The headline answers the question people actually have:
do I make it to payday? Underneath it are three numbers β€” what's safe to spend today, the
lowest point your balance is projected to reach and when, and total money in versus out over the
window.

Below the chart, What if… lets you drag a slider to see what an extra few hundred dollars of
spending does to that low point, or set aside a cushion you don't want to dip into, and watch
the whole projection respond instantly.

What's coming lists every bill and paycheck the forecast is counting on, grouped by week.
Charges Compass inferred from your history are marked as detected rather than confirmed β€” they
are an educated guess about a pattern, not something you told us, and they're labelled that way.
You can switch them off entirely if you'd rather only plan against what you've entered yourself.

New: What To Do Next

Compass has always described your money. Plan adds a short list that recommends β€” the amount
you'd need to find before a projected shortfall and what that works out to per day, a nudge to
schedule your paycheck if nothing is scheduled, a heads-up when your cushion gets thin, and a
prompt to put a surplus to work when you're comfortably ahead. Only what applies to you appears,
ordered by how pressing it is, and the list is empty when there's genuinely nothing to do.

New: Last Month In Review

The "Welcome to August" message that appeared when the calendar turned over now actually says
something. It recaps the month that just ended: money in, money out, what you kept, how your
spending compared to the month before, where most of it went, and how many budgets you held.
It waits for you to dismiss it rather than disappearing on a timer, and falls back to the old
welcome message when there's nothing to summarise.

Some deliberate limits, so the number means something:

  • Checking and debit accounts only. "Will I make it to payday" is a question about spendable
    cash. Folding revolving credit balances in would make the figure harder to explain than it is
    useful.
  • At least 2 months of history required. With less than that, a spending estimate is noise,
    and a forecast you might actually rely on shouldn't be built from noise. Compass tells you how
    much history you have instead of guessing.
  • Bills you've scheduled are never double-counted. The everyday-spending estimate has your
    known bills removed from it first, so rent doesn't get charged twice.
  • If you haven't scheduled any income, Compass says so β€” without a paycheck in the picture a
    forecast only ever slopes downward, which looks far worse than reality.

Moved: Scheduled Bills & Income

Recurring bills and paychecks now live on the Plan page, directly beneath the forecast they
drive, rather than at the bottom of Settings. Settings links across to it. They're still
reminder-only: nothing ever posts a real transaction on your behalf.

New: Compass Now Celebrates When You Hit Something

Progress with money is slow and mostly invisible. A card balance drops a little each month, a
goal creeps toward its target, and the moment it actually lands passes without anything marking
it. Compass now notices those moments and says something.

Celebrations come in two sizes. The big ones β€” a debt reaching zero, a goal completed, net worth
crossing into positive territory β€” get a full congratulations dialog and a confetti burst, and
wait for you to dismiss them. The smaller ones appear as a banner at the top of the screen and
clear themselves after a few seconds.

What Compass watches for:

  • Debt paid off β€” a loan or credit card reaching a zero balance
  • Debt paid down β€” passing 25%, 50% and 75% of the way to zero, measured against the
    earliest balance on record for that account
  • Net worth turning positive β€” the first month you own more than you owe
  • Net worth milestones β€” passing $1K, $5K, $10K, $25K, $50K, $100K, $250K, $500K and $1M
  • Goals reached β€” any goal hitting 100%
  • Budgets held β€” finishing a full calendar month inside your monthly budgets
  • Health Score grade up β€” your Financial Health Score moving up a letter grade

Each milestone celebrates once, per profile, and is remembered across restarts β€” so reopening
the Insights page doesn't replay it. The exception is the Health Score grade, which celebrates
again if you lose a grade and earn it back, because that's a real accomplishment the second time
too. If you've turned on your system's "reduce motion" setting, the confetti is skipped and you
still get the message.

A few deliberate details, so nothing feels random:

  • Only the highest milestone you've newly passed is announced. Importing years of history at
    once gives you a single "$100K net worth" moment rather than nine banners counting up to it.
  • Budget celebrations only ever refer to a month that has actually finished β€” a budget you're
    still in the middle of can still be blown, and congratulating you early would be dishonest.
  • Multiple budgets held in the same month are announced together ("3 budgets held"), not one
    after another.
  • The first time you open Compass after updating, your current Health Score grade is recorded
    quietly as a starting point. You won't be congratulated for a grade you already had β€” only for
    the next one you earn.

Because net worth milestones are new, one may fire shortly after updating if you're already past
one of those marks. That's a one-time catch-up, not a bug.

Fixed: Failures No Longer Happen in Silence

If loading a page failed β€” a database problem, a permissions issue β€” Compass showed you an empty
page and said nothing. In an app about your money, an empty page reads like lost data. Every page
now tells you when something went wrong and offers to try again.

New: Suggested Budgets

A blank Budgets page asks you to invent numbers you don't have, which is where most people give
up. Compass can now propose a starter set from your last 3 months of spending, rounded to
sensible figures. Nothing is final β€” edit or delete any of them.

Improved: Accessibility

Compass now honours your system's "reduce motion" setting throughout β€” the confetti, the
particle field, the glows and the page transitions all stand down. There's also a Reduce
motion in Compass
switch in Settings, for calmer animation in this app without turning it on
system-wide. Dialogs now keep keyboard focus inside them while open and hand it back where it
came from on close, and the remaining unlabelled icon buttons have been named for screen readers.

New: Erase a Profile's Data

Settings gains a way to permanently delete everything belonging to one profile β€” transactions,
accounts, budgets, goals, scheduled items and custom categories β€” while leaving your other
profiles untouched. It takes a typed confirmation, and it points you at Backup first, because it
cannot be undone. An app that promises your data never leaves your machine should also be able to
forget it on request.

Improved: The Guided Tour Is Easier To Find

"Replay the guided tour" now also lives in Settings, not only tucked in the sidebar footer.

Improved: Speed on Larger Histories

Transactions were only indexed by date, while nearly every screen also filters by profile. On a
few years of data that meant scanning the whole table repeatedly. Added the indexes that were
missing β€” the difference grows with the size of your history.

Improved: Empty Goals Page

The Goals page now shows all eight goal types with a one-line explanation of each, and clicking
one sets up the form for it, instead of an empty list and a sentence.

Compass 0.9.9 β€” Brokerage Statements & Honest Numbers πŸ“Š

Full E*TRADE statement support, plus a round of accuracy fixes to how your savings rate and
investment totals are calculated. Some of your numbers will change after updating β€” that's
intentional, and explained below.

New: E*TRADE / Morgan Stanley Client Statements

Compass now reads an E*TRADE (Morgan Stanley) monthly or quarterly client statement PDF
directly. Unlike a portfolio-positions export, a statement carries the whole picture, and
Compass now imports all of it:

  • Holdings β€” symbol, shares, share price, total cost, market value and estimated annual income
  • Activity β€” the period's buys, sells, dividends, interest, fees, deposits, withdrawals and
    transfers, each categorized automatically
  • Period totals β€” beginning and ending value, change in value, cash balance, and realized
    and unrealized gain

The statement's own period-end date is used as the snapshot date, so importing a few months of
back statements builds a real portfolio history rather than stacking them all on today.

New: Activity and Income & Gains Views

The Investments page gains two new tabs alongside Holdings. Activity lists every transaction
from your imported statements, filterable by type. Income & Gains shows dividends and
interest you actually received, charted by month, next to realized gains β€” a real counterpart to
the "Est. Annual Income" tile, which has always been the brokerage's forward-looking projection
rather than a record of anything paid.

New: Re-Import Protection for Statements

Importing the same statement twice used to silently double every position in it. Compass now
notices when a snapshot already exists for that account and date and asks whether to replace it,
rather than quietly counting everything twice.

Fixed: One Account's Statement Could Hide All Your Other Investment Accounts

If you held, say, a 401(k) that reports quarterly and a brokerage account that reports monthly,
importing the monthly statement made the 401(k) disappear from the Investments page, your
portfolio value, and your net worth. Nothing was ever deleted β€” Compass was looking for holdings
dated on one single "most recent" date and quietly dropping every account that hadn't filed a
statement on exactly that day. Each account is now read as of its own latest statement. The
portfolio value chart was affected by the same issue and no longer collapses toward zero on
months where only one account reported. The Investments page also now lists each account with
its own "priced as of" date so mixed statement schedules are visible rather than silent.

Fixed: Savings Rate Ignored Credit Card Spending

Your savings rate is meant to be the share of income you didn't spend. It was only counting
money that left your checking account, so anything charged to a credit card was invisible to it β€”
which could show a comfortable savings rate in a month you actually spent more than you earned.
Card purchases now count as spending, while the card payment itself is still treated as a
transfer so nothing is counted twice.

Expect your savings rate to drop if you use credit cards regularly. The old number was
flattering, not accurate. Your Financial Health Score may drop alongside it, and budgets now
count card purchases against their category the same way the Budgets page always has.

Fixed: Savings Rate Math and Labelling

Three separate problems made the savings rate on the Insights page disagree with the savings
rate chart directly above it:

  • It averaged each month's percentage rather than dividing the actual dollars, so a single
    unusual month could swing the figure wildly past anything your real income and spending
    justified
  • It blended in the current, half-finished month, so the number drifted every day
  • It was labelled "Current rate" while actually being a multi-month average β€” now labelled
    "3-month average"

Fixed: Pages Disagreeing About the Same Numbers

Several figures were calculated independently in different places and had drifted apart. The
Trends expense chart excluded credit card spending while the cumulative-net line on the same
page included it; the All Accounts overview counted transfers and loan statement rows as
spending while the Dashboard didn't; a budget-streak goal could break a streak the Budgets page
showed as under budget; and the "low balance" insight reported only one checking account's
balance if you had more than one. Every reporting figure now comes from a single shared
definition, so the same number means the same thing everywhere.

Improved: Existing Investment Formats

The other supported formats got the same depth of extraction while this work was underway.
Fidelity exports now use the file's own download date instead of today's, and correctly identify
stocks, ETFs and funds even when the export leaves its type column blank (previously everything
landed under "Other"). Thrivent's combined stock/ETF holdings are now filed individually rather
than all as ETFs, cash sweep funds are recognized as cash, and holdings without a ticker fall
back to their CUSIP. Principal 401(k) statements now also record their period totals.

Compass 0.9.8 β€” Quality of Life πŸ› οΈ

A round of small but real quality-of-life improvements ahead of v1.0.

New: Edit an Account's Interest Rate & Minimum Payment Anytime

Previously, a credit card's APR and minimum payment could only be set once, during import -
there was no way to update them later if a rate changed. Both are now editable directly from an
account's detail view (click any credit card or loan tile), no re-import required.

New: Backup Reminder

Settings now shows how long it's been since your last backup, with a gentle nudge if it's been
30+ days (or if you've never backed up at all) - so it's easier to notice before it matters.

Improved: Insights Page Loading State

The Insights page now shows the same loading skeleton as every other page while your data is
being analyzed, instead of a different one-off spinner.

Improved: Roadmap Refresh

The README's "Path to v1.0" section now reflects everything shipped in the last few releases -
the visual refresh, the balance-integrity fixes, and import duplicate detection.

Compass 0.9.7 β€” Import Duplicate Protection πŸ”

A focused release closing a real gap: a transaction entered by hand and later seen on an
imported statement had no way to be recognized as the same one.

New: The Import Wizard Now Catches Possible Duplicates of Manual Entries

Manually-added transactions never had a way to match against a real import - so entering one by
hand and later importing a statement that includes it could quietly double-count it. The import
wizard now checks incoming statement rows against your existing manual entries (same amount, a
close date, and a similar description) and, only when it finds a likely match, shows a
side-by-side comparison before anything is saved: keep both, keep your manual entry, or keep the
imported one. Nothing is ever deleted automatically - "keep both" is the default for anything you
don't explicitly resolve. This step stays out of the way entirely when nothing looks like a
duplicate, which is the common case.

Compass 0.9.6 β€” Premier UI Refresh ✨

A visual polish pass ahead of v1.0 - a calmer, more professional look plus a handful of real
month-picker bugs found along the way.

Fixed: Manually Adding/Editing/Deleting a Transaction Could Corrupt Your Account Balance

If you manually added, edited, or deleted a transaction dated on or before the day you last
entered your account's real balance, the running balance could silently fail to update - e.g.
adding a $300 transfer out of an account showing $315 could still show $315 afterward instead of
$15, throwing off every balance calculated from that point on. This is now fixed: your entered
balance correctly shifts by the change instead of absorbing it. The same stale-balance problem
could also happen when importing another batch of transactions right after - the Import
wizard's "Current balance" field now correctly suggests your balance including the new
transactions instead of the old, pre-import figure, so accepting the suggested value is safe
again. A third, deeper case affected accounts that were originally imported with their own
running-balance column and never had a manually-entered balance at all: adding a second manual
transaction right after a first one could bump every earlier transaction's balance up by the
new amount instead of applying it correctly. All three now share the same fix, so your real
balance stays correct through any combination of manual entries and imports. If an account was
already thrown off by this before updating, re-confirm its real balance once (via a small
re-import through the Import wizard's "Current balance" field) to reset it - this fix prevents
it happening again, but can't retroactively repair a balance that was already thrown off.

New: A Calmer, More Professional Look

The tiled background texture is gone, replaced by a barely-there gradient. Gold is now reserved
specifically for things you can click or interact with (chart cards, profile switching, the
onboarding checklist), while blue carries everything else - navigation, buttons, and structural
chrome - for a more consistent, less "busy" feel throughout the app.

Improved: Dimmed and Contained the Glow on Clickable Cards

The gold glow that signals a chart card can be clicked for detail was brighter than intended and
bled out past the card's own edges. It's now dimmer and clipped to the card itself.

Fixed: Some Month Pickers Were Missing Their Forward/Back Buttons

The Transactions page's month picker had no way to step forward or backward a month - only
Dashboard, Overview, Budgets, Goals, and Reports had them. All month pickers are now consistent.

Fixed: The Month Picker Could Silently Jump to a Different Month Than Expected

If the real current month had no transactions yet, every month picker used to quietly jump to
whichever past month last had data - easy to miss, and confusing right at the start of a new
month. Every page now always defaults to the actual current month, and each page's selection is
now remembered independently when navigating between tabs, resetting to the current month again
on profile switch.

New: A Friendlier Empty State for a Transaction-Free Month

The Transactions page now says "No transactions for this month - Add some now!" (with a button
to add one directly) when a month is genuinely empty, instead of a generic "no results" message
meant for search/filters.

Fixed: "Try Demo Mode" Could Appear After You Already Had Real Data

The empty-month Demo Mode button only checked whether demo accounts already existed, not whether
the profile had any real transactions at all - so it could resurface on a month with no data even
after you'd been actively using the app. It now only appears for a profile that has never had any
real transactions, and correctly reappears if everything is later cleared.

Compass 0.9.5 β€” Data Integrity Hardening πŸ”’

A behind-the-scenes release focused on making sure your data stays correct and intact, even when
something goes wrong mid-operation - plus a handful of real import correctness fixes found during
the audit.

Fixed: Schema Migrations Could Be Left Half-Applied

Migrations that rebuild a table (rename β†’ recreate β†’ copy β†’ drop) previously ran as several
separate, independently-committed database statements. If Compass or the computer crashed partway
through, the database could be left with a renamed-away table and no replacement. Every migration
now runs inside one real database transaction - a crash or error midway rolls back the whole thing,
leaving your existing data untouched instead of half-migrated.

Fixed: A Crash Mid-Import Could Leave a Partially Imported File

CSV/XLSX imports inserted transactions one row at a time, each its own independent database write.
Imports now run inside one transaction, so an interruption partway through can no longer leave a
statement half-imported.

Fixed: Import Summaries Could Mislabel Real Errors as "Duplicates"

Any row that failed to insert - for any reason - was previously counted as a "duplicate skipped,"
even if the real cause was a genuine data or constraint error unrelated to it already existing.
Compass now distinguishes true duplicates from real errors and reports them separately, so the
import summary never quietly hides a real problem behind a reassuring "duplicates skipped" message.

Fixed: Two Legitimately Identical Transactions in One File Could Be Wrongly Treated as a Duplicate

Two genuinely separate transactions with identical details (e.g. two $5 purchases at the same
merchant on the same day) could collide and get silently dropped as if the second one were a
re-import of the first. Both are now imported correctly, while re-importing an already-imported
file is still correctly recognized as all duplicates.

Fixed: Capital One-Style Statements (Separate Debit/Credit Columns) Silently Dropped Rows

Banks that export two separate amount columns instead of one signed column - Capital One being the
common example - previously only read the Debit column, so any row with a value only in the Credit
column (a payment, refund, or cashback) was silently skipped. Compass now supports mapping separate
Debit and Credit columns directly, so nothing gets left out.

Fixed: Saved Column Mappings Could Collide Across Profiles

Two profiles importing the same bank's CSV format could overwrite each other's saved column
mapping. Mappings are now scoped per profile.

Fixed: A Manually Chosen Sign-Flip Setting Wasn't Saved

The "flip amounts" choice for banks that export expenses as positive numbers wasn't persisted with
the rest of a saved column mapping, so it could be lost on a later import for a custom bank. It's
now saved and restored correctly.

Fixed: Backups Read the Database File Directly

Backups previously read compass.db straight off disk while the app had it open, relying on the
assumption that nothing would ever be mid-write. Backups now take a proper SQLite snapshot first,
guaranteeing a consistent copy every time.

Fixed: A Restore Could Leave a Mismatched Database/Key Pair

If restoring a backup failed partway through swapping files into place, the live database and its
encryption key could end up as a mismatched pair. Restores are now fully rolled back on any
failure, and the newly restored database is verified to actually open before being trusted.

Fixed: Impossible Calendar Dates Could Be Silently Accepted

A date like February 31st could previously be normalized into a string and imported as if it were
valid. Dates are now validated against the real calendar before being accepted; amount parsing also
now recognizes trailing "CR"/"DR" suffixes some statements use.

Cleanup: Removed Dead Code

Removed several unused/unreachable leftovers found during this pass, including an entire unused
Rust command module that wasn't even compiled into the app.

A correctness release for anyone who gets money back into a spending category - a reimbursement,
refund, or shared-cost repayment deposited back into your account and categorized alongside the
original expense.

Fixed: Spending Categories Ignored Credits Filed Under Them

Category totals across Insights, Reports, Trends, Budgets, Goals, and the Dashboard only ever
summed the debits in a category, completely ignoring any credits (refunds, reimbursements, a
roommate paying you back) filed under that same category. For example, $2,740 spent on Rent with
a $1,700 reimbursement credited back would previously show as $2,740 spent instead of the correct
net $1,040. Every category total now nets debits against credits (excluding credit card/loan
payment credits, which are debt reduction, not refunds, and continue to be tracked separately).
This affects budget progress, category breakdowns, spending insights (unusual spikes, budget
suggestions, category creep, most-improved), and reduce-spend goals.

New: Clickable Cards Now Signal Themselves

Cards that open more detail on click - Credit Card/Investment Health, debt payoff accounts, and
Dashboard's Bank/Credit Card/Loan tiles - now glow softly and shimmer to signal they're
interactive, and show a "Click for more details" hint after a second of hovering.

New: A Settings Page

A dedicated home for backup/restore and recurring transactions, linked from the sidebar.
Currency stays USD-only for now.

New: One-Click Encrypted Backup & Restore

Export Backup bundles your entire database and its encryption key into a single
.compassbackup file - no more manually copying compass.db and compass.key separately.
Restoring is validated before anything touches your live data (a bad or mismatched-key backup
is rejected up front) and takes effect on the next relaunch, which Compass triggers
automatically.

New: User-Defined Recurring Transactions

Schedule a bill or paycheck ahead of time - monthly, weekly, or every two weeks - from the new
Settings page, instead of only finding out it's recurring after it's already happened a few
times. Reminder-only: nothing is ever posted automatically, you stay in control of every real
transaction.

New: Bulk Transaction Operations

Select multiple transactions on the Transactions page (checkbox column, "select all" in the
header) to recategorize or delete them all at once, instead of one at a time.

New: Automated Test Suite

The core balance/category-netting math (utils.ts, voice.ts, the new recurring.ts) now has
unit test coverage via Vitest (npm test), so future changes to this arithmetic have a
regression safety net.

Docs: README Accuracy Pass

Fixed a couple of stale claims - loan and investment statements already accept PDF (the
"Known Limitations" table said otherwise), and the Goals table was missing three real goal
types (Balance Floor, Debt Paydown, Savings Target). The Roadmap section now reflects the
actual path to v1.0.