Repository navigation
feat(frontend): guided one-click resolution for venue-confirmed outbound mutations - #787
Merged
Merged
Conversation
…und mutations Refs #785, follow-up to #786. The reconciliation panel shipped in #786 exposed the full admin API surface (evidence registration, resolution decision, evidence type, raw evidence reference, reason code) as a single generic form. For the common case — mutations already in `venue_acknowledged` state with an eligible terminal Execution Report already recorded by the platform — this made operators manually locate and copy a 64-hex evidenceId out of a raw JSON blob for every mutation, one at a time. Add a guided batch action: - The mutation list now surfaces a "Resolve N confirmed mutations" banner whenever any listed mutation is `venue_acknowledged`, requires reconciliation, and has no pending proposal. - Clicking it loads each candidate's detail, selects its eligible terminal ER evidence automatically (`findTerminalExecutionReportEvidence`), and submits `venue_acknowledged` / `terminal_er` / `terminal_er_verified` for all of them behind a single confirmation dialog. - Mutations without eligible evidence are left untouched and reported back to the operator for advanced review. - The full evidence-registration/propose-resolution/approve forms move behind an "Advanced reconciliation" `<details>` disclosure — still available unchanged for `venue_absent`/`leave_ambiguous`/ registered-evidence flows, which genuinely need the raw fields. No backend/API changes. Purely a frontend UX layer on top of the existing `/api/admin/outbound-mutations` endpoints from #785/#786. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… resolve Code review (gpt-5.5) flagged that handleResolveVenueConfirmedBatch only checked for eligible terminal-ER evidence after fetching each mutations detail, but never re-checked state/requiresReconciliation/pendingApproval against the freshly-fetched detail payload. A mutation that flipped out of venue_acknowledged (e.g. reopened ambiguous by a late contradictory ER) between the list render and this call could still be auto-resolved by the guided one-click path using a stale terminal ER. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.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.
Summary
Follow-up to #786 (
AGENTS.mdmandatory code review noted below). The #786 admin panel exposed the fulloutbound-mutationsAPI surface as one generic form per mutation, requiring an operator to manually copy a 64-hexevidenceIdout of a raw JSON blob for every one of the 7 mutations in the recent incident. That UX regression was flagged by the user directly.What changed
venue_acknowledged,requiresReconciliation: true, and has no pending proposal.findTerminalExecutionReportEvidence), and submitsvenue_acknowledged/terminal_er/terminal_er_verifiedfor the whole batch behind a single confirmation dialog.<details>disclosure for the genuinely exceptional flows (venue_absent,leave_ambiguous, registered venue/official evidence).No backend/API changes — this is a frontend-only UX layer on top of the existing
/api/admin/outbound-mutationsendpoints from #785/#786.Testing
Both pass; added fixtures/tests for the guided batch action and the terminal-ER evidence selection.
Protocol evidence gate
Does this PR add or change a dependency on B3MatchingPlatform / B3MarketDataPlatform wire behavior?
Checklist: