Repository navigation
Defaults a screen picks for you are picked from what you can see - #2
Merged
Merged
Conversation
A second top-down pass on current main: typecheck, the full suite (2073), a production build started in demo mode and every reachable page crawled as each of the three demo members, checking every response for the names of another member's private accounts, envelopes and groups. No server errors, no dead links, no leaks. Every POST that takes an id from the form body goes through a visibility guard. The simulated household closes its identity in every month of every budget on 41 seeds, 39 of them new, with the rollup matching a cold compute, every transfer cancelling and no bank account overdrawn. What it did find was three places that read the whole household to pick something for the reader. None printed another member's private data, since each was filtered on the way out, but each chose from it: - Review's "File as" suggestion counted every member's filings. A payee Ravi files privately more often than Priya files it anywhere came out as his envelope, which the page would not name, so Priya got no suggestion. It now uses the reader's history, as payeeStats already does on /add. - /add started on the household's last-used account. When that was another member's private account it was not in the list, so nothing was selected. - /health showed the household's transaction count, which moved whenever somebody spent privately. Each now filters with hiddenTransactionSql. Three tests fail without it. 2076 tests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016zXWwzys3K4XksLh3rrcKu
Owner
Author
|
The GitHub's hosted AI scanner failed while opening its model session ( CodeQL and local checks cover this head: Generated by Claude Code |
flaxvin
marked this pull request as ready for review
September 27, 2026 08:19
febin92
added a commit
that referenced
this pull request
Sep 27, 2026
The fixers updated the docs finding by finding; this pass catches what they left stale elsewhere, and the website, which nothing had touched. - website/api.html: status codes (403 for a read-only token, 422 for a reused idempotency key with a new body, 404 for a missing or hidden id), the real /query parameters, /import/map and its date-order choice, the PDF upload field, transfer fees, the token deny-list, and more. - website/guides.html: three target kinds, fill-from-last-month, moves between budgets refused, import date order and Dr/Cr files, recording a card payment from Review, rules as the form really writes them, schedules recorded when marked paid, investments and tax changes, sessions as an absolute lifetime. - demo and privacy pages: the demo resets on every wake and is re-seeded every Wednesday; sign-in is a password, OIDC or Google. - docs: the error table (Missing is a 404, JSON errors), token rules, PDF decompression cap, privacy guards, rule amounts, screens, data model, testing counts; index updated. - home page test count to 2,117; sitemap lastmod for the changed pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
febin92
pushed a commit
that referenced
this pull request
Oct 5, 2026
Defaults a screen picks for you are picked from what you can see
febin92
added a commit
that referenced
this pull request
Oct 5, 2026
The fixers updated the docs finding by finding; this pass catches what they left stale elsewhere, and the website, which nothing had touched. - website/api.html: status codes (403 for a read-only token, 422 for a reused idempotency key with a new body, 404 for a missing or hidden id), the real /query parameters, /import/map and its date-order choice, the PDF upload field, transfer fees, the token deny-list, and more. - website/guides.html: three target kinds, fill-from-last-month, moves between budgets refused, import date order and Dr/Cr files, recording a card payment from Review, rules as the form really writes them, schedules recorded when marked paid, investments and tax changes, sessions as an absolute lifetime. - demo and privacy pages: the demo resets on every wake and is re-seeded every Wednesday; sign-in is a password, OIDC or Google. - docs: the error table (Missing is a 404, JSON errors), token rules, PDF decompression cap, privacy guards, rule amounts, screens, data model, testing counts; index updated. - home page test count to 2,117; sitemap lastmod for the changed pages. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Second top-down pass on current main
The layers below were checked in order, from build down to the money engine. Only the last one found anything.
npm run typecheck, then the full suiteWhat this fixes
Three places read the whole household to pick something for the reader. None of them showed another member's private data, because each result was filtered before display. But each one made its choice from that data, so the reader got a worse answer than their own history would have given.
payeeStatsalready does on/add./addstarted on the household's last-used account. When that account was another member's private one, it was not in the reader's list, so nothing was preselected./healthshowed the household's total transaction count, which changed whenever someone spent privately.Each of these now filters with
hiddenTransactionSql.Tests
src/web/viewer-defaults.test.tsadds 3 tests, one per case. All three fail on main and pass with this change. Full suite is 2076/2076, and typecheck is clean.🤖 Generated with Claude Code
https://claude.ai/code/session_016zXWwzys3K4XksLh3rrcKu
Generated by Claude Code