Commit Graph

  • 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
  • 3778bfe836 feat(rules): show what an apply run changed, and which rule ran siddharthd 2026-07-26 15:20:56 +10:00
  • cc852e7c6f feat(rules): preview what a rule would change before applying it siddharthd 2026-07-26 15:08:29 +10:00
  • 31a8177958 chore: untrack dump/ — raw statement exports must never be committed siddharthd 2026-07-26 14:49:47 +10:00
  • 030490efa3 feat(cash): mark how a transaction was paid, exclude cash from reconciliation siddharthd 2026-07-26 14:38:47 +10:00
  • d6b4ec84f6 feat(integrity): balance assertions, category constraint, refund netting siddharthd 2026-07-26 10:35:59 +10:00
  • ab00f8c592 fix(analytics): my share is what is left over, not 100% siddharthd 2026-07-26 10:05:09 +10:00
  • 02495e4173 fix(currency): show and settle foreign transactions in AUD siddharthd 2026-07-26 10:00:15 +10:00
  • 315bc06d0d fix(merchants): page crashed on an uncategorised transaction siddharthd 2026-07-26 01:35:50 +10:00
  • 76db9dddb4 feat(loans): principal/interest split so repayments stop distorting spend siddharthd 2026-07-26 00:21:01 +10:00
  • 25ef504574 feat(statements+analytics): normalise statement_type; fix analytics scoping siddharthd 2026-07-26 00:00:55 +10:00
  • e0b0fc91e0 feat(rules): manual-only rules as one-click quick actions on selected transactions siddharthd 2026-07-25 23:02:26 +10:00
  • 856e1a51ab docs: agent/MCP access guide — connect + query finance data from any MCP client siddharthd 2026-07-25 22:27:19 +10:00
  • 831d30669b feat(ui): ink & copper ledger retheme + analytics redesign siddharthd 2026-07-19 20:37:49 +10:00
  • 99af10f9ea chore: trips catch-up migration (0011) + docs for Komodo push-to-deploy siddharthd 2026-07-19 20:07:09 +10:00
  • 0b40924af0 fix(security+trips): auth/ownership on all API routes; trip analytics in AUD siddharthd 2026-07-19 20:06:51 +10:00
  • 48ec151c15 feat(trips): trip tracking with analytics, tag conversion, and transaction assignment siddharthd 2026-07-19 20:00:51 +10:00
  • b706973fb5 chore: verify Komodo push-to-deploy wiring siddharthd 2026-07-19 18:34:44 +10:00
  • 710e089c4f ci: lint advisory until pre-existing debt cleared siddharthd 2026-07-19 01:05:53 +10:00
  • b2a8a56c7b ci: trigger first Actions run siddharthd 2026-07-19 01:00:11 +10:00
  • d384cc96f6 ci: add Gitea Actions lint/test workflow siddharthd 2026-07-19 00:59:22 +10:00
  • 5df164e9a5 feat(secrets): add SOPS+age encryption for .env siddharthd 2026-05-15 19:28:13 +10:00
  • b8cd1b0f89 fix(reconcile): prevent split/tag double-counting on reconciled transactions siddharthd 2026-05-11 19:15:41 +10:00
  • ce67e38d77 docs: update CLAUDE.md and README to reflect recent changes siddharthd 2026-05-10 16:52:55 +10:00
  • b8296b6e29 fix(prisma): sync schema with DB siddharthd 2026-05-10 16:13:40 +10:00
  • 0c1f88ed9c feat(transactions): add imported date column, split filter, and sortable columns siddharthd 2026-05-10 16:04:54 +10:00
  • 4a49add277 feat: CSV import and batch reconciliation UI siddharthd 2026-04-13 06:23:08 +10:00
  • 07b8c1ef16 fix(shared): exclude payments from balance when tag filter is active siddharthd 2026-04-13 05:41:00 +10:00
  • 1b561af9e9 feat(filters): add No tags filter to transactions and shared pages siddharthd 2026-04-13 05:20:49 +10:00
  • 1296555f17 test: add unit and integration test suites siddharthd 2026-04-01 19:59:29 +11:00
  • 7491e70a15 fix(participants): show Me contextually per logged-in user siddharthd 2026-04-01 18:36:29 +11:00
  • 0a1f6b48a2 feat(ui): mobile-responsive sidebar + rules improvements siddharthd 2026-03-21 08:33:08 +11:00
  • ef73a9cea0 fix(payment): participantId stuck as empty string when participants load async siddharthd 2026-03-14 21:33:25 +11:00
  • d53d3106f2 fix(shared): tag filter SQL precedence, balance cards filter by tag siddharthd 2026-03-14 21:30:33 +11:00
  • 02ac136e19 fix(payment): crash on open due to amount.toFixed on numeric string feat(shared): tag filter on shared transactions list siddharthd 2026-03-14 21:27:08 +11:00
  • 084b8764e3 feat(transactions): Payment button to record existing transaction as debt payment siddharthd 2026-03-14 21:20:25 +11:00
  • 281f0d3782 fix(shared): show full description and notes in split transactions table siddharthd 2026-03-14 21:11:34 +11:00
  • 85e7801407 feat(shared): replace settle buttons with payment ledger siddharthd 2026-03-14 21:09:00 +11:00
  • 5206388958 feat(filters): smart query bar with amount operators and multi-select dropdowns siddharthd 2026-03-14 20:39:28 +11:00
  • 8076d1a949 docs: update README and add CLAUDE.md for finance app siddharthd 2026-03-14 20:06:37 +11:00
  • aeaca84cc7 feat(edit-transaction): edit modal with notes, inline tags, and split management siddharthd 2026-03-14 20:06:32 +11:00
  • 278e57354c feat(insights): analytics drill-down, fee tracking, and category improvements siddharthd 2026-03-14 20:06:24 +11:00
  • 9f90d8726f feat(rules): apply_split rules with run history and revert siddharthd 2026-03-14 20:06:19 +11:00
  • 859043f5a5 feat(shared): bidirectional split balance, credit direction, and multi-user view siddharthd 2026-03-14 20:06:13 +11:00
  • fc22a61a43 feat(transactions): manual transaction support and multi-owner query infrastructure siddharthd 2026-03-14 20:04:00 +11:00
  • 0985c38be8 fix(rules): save-as-rule uses full merchant name with equals, not first description word siddharthd 2026-03-11 12:46:16 +11:00
  • af4c64bba7 feat(splits): save split as rule from split modal siddharthd 2026-03-11 12:40:03 +11:00
  • a8743ba7df feat(transactions): save-as-rule prompt after merchant/category edit siddharthd 2026-03-11 12:05:35 +11:00
  • 7b3fd4b65f fix(merchants): net spend accounting for refunds/credits siddharthd 2026-03-10 00:43:58 +11:00
  • dd11019fdf fix(transactions): editable transaction type, fee/interest counted as spend, fees category siddharthd 2026-03-10 00:24:42 +11:00
  • 714c5a9b25 feat(merchants): scatter plot, merchant profiles, and per-merchant transaction history siddharthd 2026-03-10 00:05:48 +11:00