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_of path 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.cpp sets as_of to 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
       

10. Result

Emacs 29.3 (Org mode 9.6.15)