Commit Graph

  • 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