Conversation
Contributor
Bundle sizes [mpdx-react]Compared against df619f6 No significant changes found |
SAA only returns about the last year of transfer history, but the missed-month scan in filteredTransfers started at recurringStart. A recurring transfer that started more than a year ago had no rows for its older months, so every one of them was shown as a failed transfer even when it ran fine. - Have TransfersPage compute the history window start (start of the month one year ago, matching the SAA/mpdx_api default), send it to the query as transactedAtStart, and pass it to filteredTransfers - Begin the missed-month scan at the first monthly occurrence on or after that window start, stepping in whole months from recurringStart so the failed dates keep the schedule's day of the month - Flag rows whose recurring transfer started before the window as historyTruncated, and note in the failed-transfer modal for those rows only that just the last 12 months of history are shown Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
frett
force-pushed
the
MPDX-10044-history-window-failed-transfers
branch
from
September 18, 2026 22:45
594bb10 to
09d5af2
Compare
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.
Description
SAA's transfer history only covers about the last 12 months, but the missed-month scan in
filteredTransfersstarted atrecurringStart. For a recurring transfer that started more than a year ago, the older months had no history rows, so each one showed up as a failed transfer (red badge + Failed row in the modal) even though it ran fine.Confirmed against SAA:
TransferListdefaultstransacted_at_startto1.year.ago.beginning_of_monthand honors an explicit value, and a failed recurring attempt creates no record at all, so the client can't learn about real failures from the data. This keeps the client-side inference and just bounds it to the fetched window.TransfersPagecomputes the window start (start of the month one year ago, the same default SAA and mpdx_api use), sends it toReportsSavingsFundTransferastransactedAtStart, and passes it tofilteredTransfers. Mutations refetch by operation name, so they reuse the same variables.filteredTransferstakes ahistoryStartand begins the missed-month scan at the first monthly occurrence on or after it, stepping in whole months fromrecurringStartso the failed dates shown in the modal keep the schedule's day of the month.historyTruncated. For those rows only,FailedTransferModaladds a note that just the last 12 months of transfer history are shown, so the list doesn't look like it starts mid-stream for no reason. Transfers that fit entirely inside the window get no note.Note:
yarn extractproduces a large unrelated diff on main right now, so only the one new string was added totranslation.jsonby hand.Follow-up worth filing: have SAA record and return missed recurring occurrences directly so the client can drop the inference entirely.
Checklist:
🤖 Generated with Claude Code