Task: Rewire the ORE path to families and packages
Table of Contents
This page documents a task in the Refactor conventions onto families and bundles story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
The ORE path stops handing refdata one value that holds every family. It maps a conventions file into per-family payloads, stages them, and commits them as a bundle. Export goes the other way, one family at a time, and the file it writes is the same file it read.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Refactor conventions onto families and bundles |
| Now | Nothing. |
| Waiting on | Nothing. |
| Next | Nothing. |
| Last touched | 2026-10-18 |
3. Acceptance
- The importer maps a conventions file into per-family payloads and stages each one. No message it sends carries every family.
- The exporter reads each family on its own and rebuilds the ORE file from those reads.
- The ORE conventions file is a package at the boundary. No refdata type that holds every family reaches ores.ore.
- A conventions file imported and exported unchanged produces the file it started from.
4. Plan
Move the service path onto begin, stage and commit first. Then move the run store and the export, which is what allows the aggregate to go.
5. Measurements
Every number this task claims about a tree, with the command that produced it
and the commit it was measured at. A number without both is not a measurement,
because a clean-up record describes a tree and trunk moves under a branch: a
consumer count, a gate's component count and a suite's size all change with no
code changing, and the reader of a bare number cannot tell which tree it came
from. Where the raw output matters, put it in an evidence/ file beside the
task and name that file in the Command column.
| What | Value | Command | Commit |
|---|---|---|---|
6. Notes
- The ORE conventions import ran as one call carrying the whole document. That call is gone from the service.
projects/ores.ore/service/src/messaging/run_configuration_operations.cppnow opens an import, stages one message per family, and commits, and the export asks for each family in turn. - A second path still saves the whole document.
projects/ores.ore/core/src/store/run_store.cppcallsconventions_document_serviceto store the conventions a run's input package carries, and calls it again to write them back out. That service is the only refdata service that builds the aggregate, and the run store is its only production caller. ores.ore still holds the type in five places, the mapper pair, the legacy importer and exporter, the diff, and the service import, so moving the run store alone does not delete it. - The FX convention has no family of its own. The export skips it and the boundary mapper derives it from the currency pair.
- The export currently asks with a null
as_of, so the families it reads are not read at one instant. Task 7 owns that.
7. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario)
that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
8. PRs
9. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|
10. Result
The ORE path no longer hands refdata one value that holds every family. A conventions file splits into a package of one bundle and the FX projection. The run store and the run configuration operations apply and read that bundle, and the exporter reads each family on its own and joins the rows back into the file.
What shipped:
- #3542 and #3554 wrote and read a bundle of family payloads in the caller's transaction.
- #3562 made the package the ORE boundary and moved both production callers onto it.
- #3564 deleted the aggregate, the whole-document service and the mapper pair, which was the work this task waited on.
Acceptance, point by point:
- The importer maps a file into per-family payloads, and no message carries every family. Met.
- The exporter reads each family on its own and rebuilds the file from those reads. Met.
- The conventions file is a package at the boundary, and no refdata type that holds every family reaches ores.ore. Met.
- A file imported and exported unchanged produces the file it started from. Met, and the pinned export digests and the run store round trip prove it.
The export reads at one instant are task 7, which stays open on its own.