This website requires JavaScript.
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