Trace-surface friction from the #311 field test: handle discoverability, measure-ic parity, pre-run identity, empty-state answers #355
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Source
The #311 cycle-close field test, run source-blind against the built binary. Corpus and full transcript:
fieldtests/cycle-311-trace-identity/. Five friction findings, none a defect on its own, all on the path from "a run recorded something" to "I am looking at it". Bundled per the tracker's consolidation rule.1. The handle listing carries no discriminator
aura chart <render-name>now lists the handles recorded under a name — the cycle's new refusal, and the right shape:It answers which handles exist but nothing about which is which. After running one blueprint at three parameterisations, the only public route from a handle back to what that run was is reading
runs/traces/<handle>/index.jsonby hand — the directory listing #309 set out to retire, one level in. The pointer to stdout only helps while that stdout is still on screen, which is exactly not the case when you are asking.Worth having: a discriminator column (recorded-at, or the manifest keys that differ across the listed handles), or a
runs tracesverb printing handle plus differing fields.2.
measure icrefuses a bare render name blankly, wherechartlistsThe same mistake, two verbs, two answers:
measure ic's refusal names neither the<name>-<id8>shape, nor where a handle is printed, nor the one recorded handle that begins withgraphand would have answered the call. #309 already established this parity principle by givingmeasure ica listing refusal for the family-handle case; the single-run case did not follow.3. There is no way to ask for a run's identity without running it
"Will this invocation land on top of an earlier one?" is unanswerable in advance, and the closest public answer is awkward to reach:
The working form is
--content-id <FILE> --identity-id, which prints both ids even when only the second is wanted.--helpdocuments--content-id [<FILE>]with its file form but--identity-idwith none, so the asymmetry is discoverable only from the authoring guide. Giving--identity-idthe same[<FILE>]shape would close it.4.
runs familiesandruns familyare silent on the empty caseAfter six single runs that all recorded traces:
Both
runsverbs succeed silently: the first on a legitimately empty store (single runs form no families — correct, it just never says so), the second on an argument that could never name one. A user hunting for where their runs went asksruns familiesfirst and cannot tell an empty store from a broken one.campaign runsalready has the empty-state line;reproducealready has the refusal. Orthogonal to #311 and pre-existing.5. The README's command map omits
chartREADME.mdcalls itself "a discoverability map of the shippedauraCLI — what commands exist and what they do", and its tables coverexec,graph,runs,reproduce.chart,measure,new,dataandnodesare absent, whileaura --helplists them all. So the map that claims to enumerate the surface never mentions the verb that reads what a run records; the route from "the run wrote a trace" to "here is how to look at it" runs only through the guide's tap example or--help. Orthogonal to #311 and pre-existing.Not included here
The field test's remaining findings were routed separately: the node-rename fork is #354, the tap-retraction case went onto #352, and two documentation defects (the guide predicting two directories for a no-op
--override, and a C22 clause asserting a convergence the code does not deliver) were fixed inside the #311 cycle.