Story: Commission: currency

Table of Contents

This page documents a story in Sprint 21. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

Commission currency and its three ores.refdata auxiliary types — rounding_type, monetary_nature, and currency_market_tier — across all access layers: verify SQL DDL, verify the Qt UI end-to-end post-NATS migration, verify existing shell and CLI commands, fix any regressions found, and add documentation (manual chapter, recipes, NATS reference). File backlog captures for Wt and HTTP support. Auxiliary types are commissioned using the same per-layer approach as the primary entity; they may have fewer moving parts but the same checklist applies.

Status

Field Value
State STARTED
Parent sprint Sprint 21
Now Auxiliary codegen synced. Currency-entity codegen sync (C++ core, messaging, Qt) and Wt/HTTP captures remain.
Waiting on Nothing.
Next Sync C++ core codegen for currency; then messaging; then Qt; then Wt/HTTP captures.
Last touched 2026-06-26

Acceptance

The following acceptance criteria apply to currency and, where the layer exists, to each auxiliary type (rounding_type, monetary_nature, currency_market_tier).

SQL

  • currency DDL verified against all DB-layer checklist criteria.
  • rounding_type, monetary_nature, currency_market_tier DDL verified against same checklist.
  • Any missing columns, indexes, or constraints fixed or filed as captures.

Qt

  • Currency MDI list window loads and displays records correctly.
  • Currency detail window: edit and save round-trips without error (dropdowns for rounding_type, monetary_nature, currency_market_tier populated correctly).
  • Currency history window: shows change history for the entity.
  • Currency delete command: removes the record; history is preserved.
  • Currency eventing: a change made in one connected session appears in a second session without manual refresh.
  • rounding_type, monetary_nature, currency_market_tier Qt windows (if they exist): loads, detail, history, delete verified.

Shell

  • currency: list, add, remove, history commands verified working post-NATS.
  • rounding_type, monetary_nature, currency_market_tier: shell commands verified or implemented.

CLI

  • currency: list, add, remove commands verified working post-NATS.
  • rounding_type, monetary_nature, currency_market_tier: CLI commands verified or implemented.

Documentation

  • Manual chapter for currency documents Qt windows, shell, and CLI commands.
  • CLI recipes for currency and auxiliaries created or updated.
  • Shell recipes for currency and auxiliaries created.
  • NATS message reference documents subjects and types for currency and auxiliaries.
  • Backlog captures filed for Wt and HTTP support (currency and auxiliaries).
  • All regressions found are fixed inline or filed as captures.
  • Site builds cleanly.

Tasks

Task State Start End Description
Appraise currency across all layers and produce evaluation checklist DONE 2026-05-29 2026-05-29 Assess each layer; produce reusable entity evaluation checklist.
Verify currency SQL against evaluation checklist DONE 2026-05-29 2026-05-29 Inspect DDL against DB-layer checklist criteria; fix any gaps.
Verify and fix codegen for currency and auxiliaries DONE 2026-05-29 2026-05-30 SQL zero-diff; component path fix in three auxiliaries; currency_domain_entity.json confirmed unnecessary; C++ drift filed.
Verify and fix currency CLI commands DONE 2026-05-29 2026-05-29 Confirm list/add/remove exist; implement missing; run against live service.
Verify currency shell commands and NATS integration DONE 2026-05-29 2026-05-31 Run list/add/remove/history in shell; validates NATS end-to-end.
Verify currency Qt UI end-to-end post-NATS DONE   2026-06-12 Manually test MDI list, detail, history, delete, eventing. Blocked on timestamp unification story.
Fix duplicate refdata rows: add tenant filters to auxiliary repositories DONE 2026-06-04 2026-06-05 Rounding/monetary-nature/market-tier repos read unfiltered; apply change_reason tenant-filter pattern.
Write currency documentation (manual chapter, recipes, NATS reference) DONE 2026-06-06 2026-06-06 Manual chapter, CLI recipe, shell recipe, NATS message reference.
Sync SQL codegen for currency and auxiliaries DONE 2026-06-26 2026-06-26 Re-run SQL codegen for rounding_type, monetary_nature, currency_market_tier; diff against repo; fix templates to match code.
Sync C++ core codegen for currency auxiliaries DONE   2026-06-26 Re-run domain, repository, service, and generator profiles for rounding_type, monetary_nature, currency_market_tier; diff against repo; fix templates to match code.
Sync C++ messaging codegen for currency auxiliaries DONE 2026-06-25 2026-06-26 Re-run protocol, nats-eventing, and nats-handler profiles for rounding_type, monetary_nature, currency_market_tier; diff against repo; fix templates to match code.
Sync Qt codegen for currency auxiliaries DONE 2026-06-25 2026-06-26 Re-run Qt profile for rounding_type, monetary_nature, currency_market_tier; diff against repo; fix templates to match code.
Define and implement entity view document type DONE   2026-06-12 Create entity view docs listing all artefacts per entity across every projection and component, with proj: links to artefacts and codegen archetypes; implement currency as the first example.
Sync C++ core codegen for currency BACKLOG     Re-run domain, repository, service, and generator profiles for currency; diff against repo; fix templates or code per drift classification.
Sync C++ messaging codegen for currency BACKLOG     Re-run protocol, nats-eventing, and nats-handler profiles for currency; diff against repo; fix templates or code per drift classification.
Sync Qt codegen for currency BACKLOG     Re-run the qt profile for currency; diff the 12 output files against the repo; fix templates or code per drift classification.
File Wt and HTTP gap captures for currency BACKLOG     Identify Wt UI and HTTP handler gaps for currency discovered during commissioning and file them as backlog captures for future work.
Migrate currency model from ores.codegen.table to ores.codegen.entity DONE 2026-06-26 2026-06-26 Convert currency_table.org from the SQL-only ores.codegen.table type to the unified ores.codegen.entity type so that all currency code (C++, SQL, Qt, NATS) can be generated from a single model.

Emacs 29.1 (Org mode 9.6.6)