fix: expose order.status on a pending order you created - #680
Conversation
The trade detail swaps the Mostro message card for the creator's reputation on a pending order the user made, and that card is the only place `order.status` lives. The status therefore vanished from the one screen the automation contract names as its home (docs/automation-contract.md), for the whole pending phase of every order this app creates -- a black-box driver reads the maker's own order as having no state at all. A one-pixel readout carries the identifier and the wire status through that branch, the same way `pay.invoice.text` carries the invoice being paid. Nothing changes visually; screen readers get the status.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (6)
Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review. WalkthroughThe PR adds a reusable ChangesAutomation readouts
Estimated code review effort: 2 (Simple) | ~10 minutes Merge Risk: ⚪ Minimal · up to The PR exposes the existing wire-level order status on the maker’s pending-order screen without changing visible UI or order behavior. No actionable merge-blocking risk remains beyond normal checks and review. Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Docstring CoverageExplanation No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (6 skipped: 6 unsupported.) ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The screen only had the identifier through MostroMessageDetail, and the maker's own pending order renders the creator reputation instead, so the status was absent for the whole pending phase. Nothing in the suite said so: the gap was found by an external harness. Add a widget test for each branch — it fails without the readout — and give the invisible-readout idiom one definition (AutomationReadout) instead of a second copy, now used by the pay-invoice screen too. The contract doc records that the maker's pending order gets its status from a readout, still exactly one node.
docs/automation-contract.mdnames the trade detail as the home oforder.status:That identifier lives in exactly one widget,
MostroMessageDetail. AndTradeDetailScreenswaps that widget for the creator's reputation on a pending order the user made:So for the whole pending phase of every order this app creates, the maker's own trade detail has no status at all. A black-box driver reads the screen as having no state — the accessibility dump has
order.idandtrade.canceland nothing else:Found by Mortsom, which cannot get past the first step of a sell:
elementorder.statusnot found within 30s.The change
A one-pixel readout carries the identifier and the wire status through that branch. That idiom already existed on the pay-invoice screen (
pay.invoice.text), so it now has one definition —AutomationReadout— and both screens use it. Nothing changes visually. Note the label is the wire status, not a localized string, because that is what the contract specifies: accessibility gains a machine-readable state on that branch, not a polished announcement.Two widget tests lock the identifier to the screen, one per branch; the first fails without the readout. Until now nothing in the suite covered it, which is why only an external harness caught the gap.
Test plan
flutter analyzeclean;flutter testgreen (1103 tests).order.statusis present with the wire status on the maker's pending order and on the message-card branch, and never on both at once.content-desc="pending" resource-id="order.status", and Mortsom reads it.happy_sellend to end — still pending, it needs the companion harness fix (MostroP2P/mortsom#15).Summary by CodeRabbit