Status and live state
flume status reports every place flume runs on its host, as each
stands now. flume status --json gives the same to callers: millpond,
crew, sounding and flume’s own plugins read it.
What status gives
| For each place | What it says |
|---|---|
| kind | fix, change, question, or a kind the repository declares |
| stage | the stage running, or the last one run |
| agent | working, waiting or stopped |
| deliverable | whether the stage’s deliverable exists |
| submission | the place’s submission to sluice, and sluice’s outcome |
| tasks | for a change, how many of its tasks are ticked, of how many |
Beside these, status names what an agent that stopped short needs, and a stage reported stuck or never started. It names a readying step that failed, with its words, and a place tidying kept, with the reason.
A change’s tasks
For a change, flume reads the OpenSpec change’s own files in the place.
Its tasks show ticked as code ticks them: three of eight, then eight
of eight, and the stage ends once the last tick is committed. flume
reads the files directly, and what it reads agrees with what
openspec reports on the same worktree (plan.12).
Live state, and the records that outlast it
flume keeps only the live state of the places it runs. Once it tidies a place, the place leaves its status.
An item’s record outlives its place, so the record belongs to whoever keeps the item:
- millpond keeps an item’s send and its landing, written from sluice’s record (millpond’s items).
- crew keeps its plans, its bolts and each unit’s stage.
- sluice keeps every submission and every landing.
- git keeps the commits, and a branch tidying kept.
flume holds no history a caller needs later, and no caller reads one from it.
One reading per repository
A flume command reads each repository once, however many of its places
it reports (plan.12). A status of twenty places in one repository
costs one reading of that repository, so the herdr sidebar and crew can
read status as often as they need.