-
22c2349a47
docs: one CSV import path, and the statement-coverage rule that replaced the Frollo importer
main
siddharthd
2026-08-13 15:09:11 +10:00
-
3edcc27781
csv import: map a currency column, or foreign rows land as AUD
siddharthd
2026-08-13 15:08:50 +10:00
-
461c021e7a
csv import: exclude what the statements already cover, and delete the Frollo importer
siddharthd
2026-08-13 12:58:06 +10:00
-
b82c4570bd
frollo: don't import what the statements already cover
siddharthd
2026-08-13 12:36:08 +10:00
-
afd75d3f09
transactions: never print a foreign amount as AUD
siddharthd
2026-08-13 12:32:17 +10:00
-
2738213a23
docs: record the ledger-duplicate guard and why awaitsStatementLine is gone
siddharthd
2026-08-13 12:24:59 +10:00
-
bb8a009e02
frollo: don't re-import what the ledger already has, and stop hiding the queue
siddharthd
2026-08-13 12:23:01 +10:00
-
3e826a317b
CLAUDE.md: document the Frollo account feed and the new reconcile exclusion
siddharthd
2026-08-13 11:29:08 +10:00
-
21e9e765a3
Add /api/frollo/ingest so the import can run unattended
siddharthd
2026-08-13 11:19:27 +10:00
-
493ff6f631
Import Frollo account feeds for the accounts statements don't cover
siddharthd
2026-08-13 10:49:35 +10:00
-
2c666236b2
orders: share the merchant tidy, and fix two bugs the corpus run found (board 212)
siddharthd
2026-08-12 21:07:50 +10:00
-
215303161b
orders: bring the lifecycle-only toggle's numbers up to date (board 210)
siddharthd
2026-08-12 20:38:43 +10:00
-
3b5e495ca4
orders phase 2: order_transaction_links, and move every reader to it (board 205)
siddharthd
2026-08-12 20:29:42 +10:00
-
6b9b5fe518
orders: badge the annual summary receipts (board 211)
siddharthd
2026-08-12 20:12:36 +10:00
-
231ef3411a
orders: record why line items may not exempt a row from the phantom filter
siddharthd
2026-08-12 18:26:24 +10:00
-
699e4a2ddd
orders: cast cadence order_count to int — BigInt broke every recurring merchant
siddharthd
2026-08-12 17:12:14 +10:00
-
79940202f1
orders: fix the 42703 that broke EVERY order detail page
siddharthd
2026-08-12 17:10:13 +10:00
-
9790b64e1d
orders: badge sender authentication, not source_trust
siddharthd
2026-08-12 17:10:04 +10:00
-
1b34cd65d8
orders: restore the design the prototype had, and stop repeating the row
siddharthd
2026-08-12 13:28:06 +10:00
-
c05c4b5a35
orders: show the context, not just the row
siddharthd
2026-08-12 12:50:03 +10:00
-
b26d526e83
orders: a browse surface for the purchase history the ledger cannot show
siddharthd
2026-08-12 12:15:16 +10:00
-
872da3b12c
shared page: window the rendered rows — DOM no longer grows with history
siddharthd
2026-08-10 19:46:58 +10:00
-
b4f28010df
shared page: fix expand freeze — cache date formatter, memoize rows
siddharthd
2026-08-10 19:39:19 +10:00
-
0e5422919e
shared page: expandable receipt details on split transactions
siddharthd
2026-08-10 18:27:16 +10:00
-
7f8e363b5b
order details: hide the review surface for spine-bridged retail rows
siddharthd
2026-08-10 18:02:51 +10:00
-
502e3f563c
0029: rescope uq_expense_source_order for per-shipment bridge rows
siddharthd
2026-08-10 17:42:45 +10:00
-
7819a88af2
order-details: null item amounts render nothing, not $0.00; qty defaults to 1
siddharthd
2026-08-10 13:37:39 +10:00
-
a1e776e9be
docs: quote the net trip phase figures, not the raw sums
siddharthd
2026-08-02 22:22:46 +10:00
-
9e4b518f57
Split a trip into its two economies, so travel stops being a 60% slab
siddharthd
2026-08-02 22:20:55 +10:00
-
2d341e24a0
A negative trip balance is over-coverage, not a bill
siddharthd
2026-08-02 21:52:51 +10:00
-
6db2345c49
Net the trip debt to one figure, and show payer, category and search on Shared
siddharthd
2026-08-02 21:19:40 +10:00
-
cb7665ded1
Let everyone on a trip see it, and give payments their scope back
siddharthd
2026-08-02 19:11:19 +10:00
-
6e179d3a0a
docs: put the UI review's priorities 1-4 on the board, and correct two claims
siddharthd
2026-08-02 16:44:04 +10:00
-
dbc6fd1352
Add source identity to transactions so a feed can be re-imported safely
siddharthd
2026-08-01 22:13:07 +10:00
-
c70d2b1fac
Sign the investments line so withdrawals net against contributions
siddharthd
2026-07-31 00:05:05 +10:00
-
f6c500b27a
Hide transfers in the transactions view by default
siddharthd
2026-07-30 23:34:31 +10:00
-
549abd8cca
docs: point work tracking at the board, not ACTIONS.md
siddharthd
2026-07-30 23:12:50 +10:00
-
a465b147a3
Read receipt lines under the keys the receipt panel renders
siddharthd
2026-07-30 13:51:33 +10:00
-
17028c79ff
Accept grocery receipts scanned in pantry as candidate spend
siddharthd
2026-07-30 13:40:32 +10:00
-
69b3ed8ea9
docs: catch CLAUDE.md and the UI review up with the shared-expenses rebuild
siddharthd
2026-07-29 22:22:42 +10:00
-
a56e5e2de5
docs: splits total 100%, and why the remainder is the owner's
siddharthd
2026-07-29 10:26:44 +10:00
-
22e4a1ead0
fix(splits): make every split account for 100%
siddharthd
2026-07-29 10:23:06 +10:00
-
dd0462a5f9
fix(orders): decode • so item options separate again
siddharthd
2026-07-28 22:38:38 +10:00
-
3144cf3176
feat(orders): record credits orders from before the cutover
siddharthd
2026-07-28 22:20:03 +10:00
-
fe104a9618
fix(orders): read both legs of an Uber payment
siddharthd
2026-07-28 21:59:35 +10:00
-
63aaf1eb21
fix(orders): read A$ totals and credits-funded receipts
siddharthd
2026-07-28 20:32:02 +10:00
-
7cf247951a
docs: the verdict scale, and the two Slack rules that cost real data
siddharthd
2026-07-28 19:17:25 +10:00
-
d458228625
feat(orders): a fifth verdict, 'bad', between ok and never again
siddharthd
2026-07-28 19:12:26 +10:00
-
82f751cbf4
fix(slack): update the card via response_url, not the HTTP response
siddharthd
2026-07-28 18:54:53 +10:00
-
9f0f38449b
feat(slack): ask the other person too, and put rating before sharing
siddharthd
2026-07-28 18:33:25 +10:00
-
0595d49d5c
fix(orders): the restaurant is the merchant, not the courier
siddharthd
2026-07-28 17:51:36 +10:00
-
50c5b7c430
fix(slack): don't let one tap flatten a hand-made split
siddharthd
2026-07-28 16:40:53 +10:00
-
14d6b40578
feat(slack): per-item verdicts and a note, in a Slack modal
siddharthd
2026-07-28 16:33:10 +10:00
-
8fbcbc5f83
fix(slack): one select instead of four rating buttons
siddharthd
2026-07-28 16:22:49 +10:00
-
aaa36dd75e
feat(slack): answer the order nudge in Slack, without opening the app
siddharthd
2026-07-28 15:50:06 +10:00
-
66a6a51fb8
docs: order verdicts are built; record the four load-bearing shape decisions
siddharthd
2026-07-28 15:43:20 +10:00
-
b8919a4775
feat(transactions): honour ?q= so a link can land on one row
siddharthd
2026-07-28 15:34:24 +10:00
-
0cb46a087b
feat(orders): record what we thought of an order, per person
siddharthd
2026-07-28 15:31:22 +10:00
-
d081d80a3f
docs: rewrite the shared-expenses section, which had gone false
siddharthd
2026-07-28 14:41:05 +10:00
-
db6b7f8375
docs(shared): the cutover date is the gate, the flag refines it
siddharthd
2026-07-28 13:54:46 +10:00
-
788219b9fd
fix(splits): the cutover date, not a boolean, is what gates a balance
siddharthd
2026-07-28 13:52:30 +10:00
-
6add958132
fix(splits): editing a split must not resurrect a settled debt
siddharthd
2026-07-28 13:40:48 +10:00
-
3339a0b9b7
chore: ignore the scripts venv
siddharthd
2026-07-28 13:32:31 +10:00
-
3b9d302ce2
docs(shared): record the grouped-payment allocation
siddharthd
2026-07-28 13:02:56 +10:00
-
4fc8eeac95
docs(shared): record the Sonu+Sunny leg as its own trip
siddharthd
2026-07-28 12:59:53 +10:00
-
89300450a7
docs(shared): describe what was built, not what was proposed
siddharthd
2026-07-28 12:06:56 +10:00
-
b4a116c134
feat(scripts): import the matched split history as settled
siddharthd
2026-07-28 12:02:57 +10:00
-
c9b000a428
feat(scripts): dry-run matcher for the SplitMyExpenses history
siddharthd
2026-07-28 12:00:18 +10:00
-
dbfbd5196d
fix(transactions): supersede rows imported twice instead of deleting them
siddharthd
2026-07-28 11:54:25 +10:00
-
d5589b2980
feat(statements): flag billing periods that overlap another statement
siddharthd
2026-07-28 11:46:45 +10:00
-
7a1acc32a9
feat(trips): say which direction a trip balance points
siddharthd
2026-07-28 11:39:11 +10:00
-
e92fcb709f
docs(trips): say whose money the trip total counts
siddharthd
2026-07-28 11:30:37 +10:00
-
8c21893cc2
fix(trips): money that came back is not what the trip cost
siddharthd
2026-07-28 11:25:03 +10:00
-
4fcb135805
fix(trips): a trip figure must only count what the owner is owed
siddharthd
2026-07-27 23:40:58 +10:00
-
ff0629462c
fix(ci): generate the Prisma client before running tests
siddharthd
2026-07-27 23:23:32 +10:00
-
ae23b03d5d
fix(trips): carry the currency and reconcile rules into the trip figure
feat/split-scopes
siddharthd
2026-07-27 23:15:28 +10:00
-
689fadc8b9
feat(shared): give a payment a tab to settle
siddharthd
2026-07-27 23:12:05 +10:00
-
a4ab543a6c
fix(analytics): make the displayed numbers mean what they say
siddharthd
2026-07-27 17:10:27 +10:00
-
5ee5ee24cf
feat(orders): expand a row to see the receipt it came from
siddharthd
2026-07-27 11:52:33 +10:00
-
3bb67f370d
feat(orders): show where an Uber trip went, in the list
siddharthd
2026-07-27 11:43:55 +10:00
-
6161ddc9de
fix(orders): don't restate a platform the merchant already names
siddharthd
2026-07-27 11:33:37 +10:00
-
c656f5d26b
feat(orders): read Uber trips, and reject the charge summary that duplicates them
siddharthd
2026-07-27 11:21:13 +10:00
-
4febf38292
test(orders): clean statement fixtures before ingest, not after
siddharthd
2026-07-27 11:01:23 +10:00
-
b6cd62f7b5
feat(orders): show the receipt in the transaction detail panel
siddharthd
2026-07-27 10:55:57 +10:00
-
df4b875b82
feat(orders): make an ingested order legible in the transactions view
siddharthd
2026-07-27 10:51:30 +10:00
-
ae0c34fce7
fix(orders): two defects the backfill exposed that tests could not
siddharthd
2026-07-27 10:41:10 +10:00
-
5db42f086f
fix(orders): match the card leg by masking, not by card brand
siddharthd
2026-07-27 01:39:42 +10:00
-
1103397397
fix(orders): three defects found reviewing my own branch
feat/order-ingestion
siddharthd
2026-07-27 01:15:39 +10:00
-
a9e251d969
feat(orders): amendments, family imports, and the ingest API
siddharthd
2026-07-27 00:48:20 +10:00
-
c82a22767f
feat(orders): wire the real parser in, defer card reconciliation
siddharthd
2026-07-26 22:43:10 +10:00
-
33db7d05ef
feat(orders): rebuild the receipt parser against real captured email
siddharthd
2026-07-26 22:25:26 +10:00
-
6d3b6e1a9d
feat(orders): withdraw the ShopBack transfer guard
siddharthd
2026-07-26 22:09:31 +10:00
-
9f168cf4c8
test(orders): stop integration files racing on the shared test database
siddharthd
2026-07-26 19:50:21 +10:00
-
775e5cc08f
feat(orders): add Uber Eats and Uber Rides support, fare parsing, and category resolution
siddharthd
2026-07-26 19:00:59 +10:00
-
bbb90238e4
feat(orders): implement order ingestion pipeline, review ratings schema, and [Family] exclusion
siddharthd
2026-07-26 18:52:34 +10:00
-
d06088fe34
docs: monthly expense baseline and emergency reserve analysis
siddharthd
2026-07-26 16:57:23 +10:00
-
c465742635
docs: capture this session's learnings for a future pickup
siddharthd
2026-07-26 16:19:02 +10:00
-
3f04cbd5e7
fix(trips): stop reporting a settlement breakdown that cannot be computed
siddharthd
2026-07-26 16:13:20 +10:00
-
ba87ff86e7
docs: record loan decisions — separate ledger, 50/50 fixed, $4,000 receivable
siddharthd
2026-07-26 16:03:53 +10:00
-
4b7a7e5d9c
docs: design proposal for shared expenses, settlement and the shared loan
siddharthd
2026-07-26 15:57:03 +10:00