Smoke the convention record page on a live fleet
Table of Contents
This page is a capture in the inbox bucket of the product backlog — a pre-sprint idea, not yet pulled into a sprint as a story.
1. What
Open a tenor basis swap convention on the record page of a running fleet and confirm the terms of both leg forms read as terms: the paying and receiving form's nine, the long and short form's seven, and the central row's Id.
2. Why
The parts were grouped onto field groups and their payloads now nest one level. The BFF zip flattens them, and its suite feeds the nested shape, so the logic is covered. What is not covered is the page: the leaf renderer, the two leg forms drawn from one central row, and whether the long and short terms read with their new documentation.
3. Acceptance
- A tenor basis swap convention draws its terms on the record page, each with its label and its documentation.
- The long and short form's five newly documented terms show text rather than a bare label.
- A convention with one form shows no terms of the other.
4. References
- PR #3908, which grouped the parts.
- PR #3919, which taught the BFF zip to flatten them.
- `doc/knowledge/ui/ore_element_and_leaf_screen_standard.org` — what the page must show.
5. Result
Done on 2026-10-27 against a provisioned tenant on bright_faraday, with a browser rather than a fixture, and it failed: the page had not been seen since the parts were grouped. Three things were wrong, and the third was the one the suite could not have caught.
- The list answered 500. The central row is grouped too, so the wire nests `id` and `version` one level; the BFF read them off the top and its own body schema rejected the reply. The record page matched a party the same way and said the convention did not exist.
- The record page then drew every term the kind declares, so a convention holding only the long and short form was shown the paying and receiving form's terms as defaults. Two of those terms carry the same name on both forms, so they drew twice.
- The tests passed throughout, because their fixtures wrote the central row flat by hand. A fixture that does not come from the wire cannot catch the wire.
All three are fixed, and the check is now `packages/harness/tests/ convention-record.spec.ts`: it opens a convention of each form on the live fleet and asserts the documentation of each term, and that a one-form convention is told nothing about the other form.
The frontend that was being served was also from an older build than the source, so the page could not be judged until it was rebuilt. That is how this run started.