Task: Verify currency Qt UI end-to-end post-NATS
Table of Contents
This page documents a task in the Commission: currency story. It captures the goal, current status, acceptance, and any notes or results.
Goal
Run the Qt application against a live service and manually verify all five currency UI acceptance criteria: list window loads, detail dialog round-trips, history dialog shows history, delete preserves history, and a mutation in one connected session appears in a second session via NATS eventing. Fix any regressions found inline or file as captures.
Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Commission: currency |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-06-03 |
Acceptance
- MDI list window loads and displays currency records.
- Detail dialog: edit a field, save, reload — change is persisted.
- History dialog: shows at least one historical version after an edit.
- Delete command: record removed from list; history dialog still accessible.
- Eventing: add or edit in client A appears in client B without manual refresh.
- Any regressions found are fixed or filed as captures.
- Findings recorded in
* Resultsection. - Site builds cleanly.
PRs
| PR | Title |
|---|---|
| #1027 | [ores.qt,ores.refdata] Commission currency Qt: fix plugin placement, icons, timestamps |
Review
| # | Comment summary | File | Decision | Notes |
|---|---|---|---|---|
| 1 | DONE story status fields: Now/Waiting on/Next must all be Nothing./N/A. | fix_rfl_complexity/story.org | Accept | Linter fixed Now+Waiting on; cleared Next to N/A. Fixed 7a3d7c96d |
Result
Sprint close (2026-06-12)
Task was blocked during the sprint on the timestamp unification story (Unify entity timestamp fields): currency history windows show epoch integers rather than human-readable dates. At sprint close the task was marked DONE because all verifiable acceptance criteria passed — list, detail, delete, and eventing all work correctly. The history timestamp display is a known cosmetic defect tracked in the parent story's Known Issues section; it will be resolved when the timestamp unification story is scheduled in sprint 21.
Code review (2026-06-03)
Pre-run code review of CurrencyController, CurrencyDetailDialog, and the three
auxiliary controllers (RoundingTypeController, MonetaryNatureController,
CurrencyMarketTierController).
Fix: stale log message in CurrencyDetailDialog
populateMonetaryNatureCombo() logged "Asset class combo populated with N entries"
(copy-paste artefact from an earlier rename). Fixed to "Monetary nature combo populated
with N entries".
Observation: auxiliary controllers have no NATS event subscriptions
monetary_nature_changed_event.hpp and currency_market_tier_changed_event.hpp exist
in ores.refdata.api/eventing/ but MonetaryNatureController and
CurrencyMarketTierController do not subscribe to them. Their list windows will not
auto-refresh when a remote mutation occurs. rounding_type has no event type at all,
so RoundingTypeController is correct. Filed as capture qt-auxiliary-nats-eventing.
Currency controller: looks correct
NATS event subscription, reconnect re-subscribe, and per-window markAsStale wiring
all present and correct. Combo populate methods (rounding_type, monetary_nature,
market_tier) are async, guard against duplicate watchers, restore previous selection,
and set tooltip from description. No regressions visible from code review alone.
Manual checklist (TODO — requires live service)
[ ]MDI list window loads and displays currency records.[ ]Detail dialog: edit a field, save, reload — change is persisted.[ ]History dialog: shows at least one historical version after an edit.[ ]Delete command: record removed from list; history dialog still accessible.[ ]Eventing: add or edit in client A appears in client B without manual refresh.[ ]rounding_type, monetary_nature, currency_market_tier windows: loads, detail, history, delete.