Task: Use as_of consistently for reads
Table of Contents
This page documents a task in the Refactor conventions onto families and bundles — the remaining work story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
An export describes one moment. Every family it reads is read at the same bitemporal instant, and the file it writes records that instant, so two exports of an unchanged environment are identical and an export taken during an import cannot mix two states.
2. Status
| Field | Value |
|---|---|
| State | BACKLOG |
| Parent story | Refactor conventions onto families and bundles — the remaining work |
| Now | Not started. The export currently asks with a null as_of. |
| Waiting on | Task 4, which is where the export reads live. |
| Next | Take one instant at the start of an export and pass it to every read. |
| Last touched | 2026-10-18 |
3. Acceptance
- An export takes one bitemporal instant before its first read and passes that instant to every family it reads.
- Paged reads go through the generated
as_ofpath rather than each service choosing its own. - The file an export writes records the instant it was taken at, so a reader can say what moment the export describes.
- A regression test takes an export, changes one family, and takes a second export. The first export is unchanged.
4. Plan
Take one instant at the start of an export, thread it through every read, and record it in the file.
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 instant belongs to the export, not to the family. A read per family that each takes its own instant describes a different moment per family, which is the defect this task exists to remove.
projects/ores.ore/service/src/messaging/run_configuration_operations.cppsetsas_ofto null when it asks for a family. That is the place to start.
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
| PR | Title |
|---|---|
9. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|