Repository navigation
Audit fixes - #20
Merged
Merged
Audit fixes#20
Conversation
Settling up - The UPI ID handed to a payment app is always the payee's own: a typed one is kept with the payee it was typed for and only read back for them. - Amounts take a comma or a dot as the decimal point and refuse grouping, so "12,50" is no longer 1,250; very long amounts are refused instead of breaking the screen. - Nobody pays themselves, and the payee picker clears on screen when the payer becomes the payee. - With "Suggest the fewest payments" off, each pair's own debt is suggested, netted both ways, and explained from the expenses they shared. The expense editor and Settle up keep their state in Riverpod notifiers holding an immutable form, seeded once and listened to after, so a sync cannot wipe what is being typed and the logic is tested without widgets. Leaving a group - Leaving needs you settled up, as removing somebody else does. - Somebody who left comes back with a link, to the same place; nobody else can bring an account holder back. - No write may change what a departed member owes, except to settle it. - Left groups move to the archived list, read-only, and stop syncing once the server has confirmed it. Sign-in - Attaching an email address or a Google account to an account that has one needs a sign-in from the last ten minutes, as deleting it does. Rates and storage - The daily rate job keeps the last year complete, fetching any week-long gap in one range request; a rate over a week older than a day no longer answers for it, on the server or the device. - Multi-row inserts are split to fit 100 bound values a statement, so an expense among 26 or more people saves instead of being refused forever. Groups are listed by their newest activity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VUEWUK8dHE137xzXX3zSBu
- Add stale base check for all edits in ledger - Replace separate activity table with lastActivityAt column on meta - Implement integer profile version counters in D1 - Replace per-group sync endpoints with batched POST /sync - Implement cross-group ID collision guard on client - Optimize partial syncs to pull only affected groups and exchange rates - Add local database secondary indexes - Use PRAGMA data_version to detect background handler writes - Replace outbox timestamps with position ordering
- Removed fallback default values for schema migrations - Created single pristine generated migrations for D1 and DOs - Simplified DO upkeep logic assuming fresh deployment - Deleted all old migration files since this is early dev
…DateTime expectations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.