Consolidate trace-handle naming authority and give the single-run leg a claim path #353
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?
Observation
Found by the #311 cycle-close architect review, and filed against this milestone because the store rebuild is where it resolves.
The trace store has one flat namespace, but authority over that namespace's shape is now spelled in three crates:
derive_trace_name—crates/aura-registry/src/lineage.rs:410— mints a campaign member's handle,{campaign8}-{run}, in the crate that owns the namespace.crates/aura-runner/src/member.rsandmeasure.rs— mints{render-name}-{id8}in the assembly crate, from a digest over the run manifest (#311).family_id_campaign_prefix—crates/aura-cli/src/main.rs:509-530— reads the campaign shape back, in the shell, to decide which refusal arm a user-typed name reaches.Each placement is defensible on its own and none violates an import direction, so this is not a layering fault. The cost is that a change to what a handle looks like has to be made, and kept consistent, in three places, and one of them is a parser that recovers structure from a string the other two produced.
A second, related gap: the single-run path never calls
ensure_name_free.bind_tap_plangoes straight tobegin_run(crates/aura-runner/src/tap_plan.rs:511), whose sole guard iscreate_dir_all. The store therefore cannot refuse, or even detect, a directory it did not mint — including one a user created by hand under a name that now collides with a minted handle. The campaign leg does call it (crates/aura-runner/src/runner.rs:396).Why this belongs here
This milestone proposes the container mechanics — format, index, chunk cache, serving — as a base crate with run traces and recorded inputs as two namespaces of one container (#320). Consolidating naming authority into whichever crate ends up owning the container, and giving both legs one claim/refuse path through it, is the same move, not an extra one. Doing it before that rebuild would mean placing it twice.
Not urgent on its own: nothing is broken today, all three spellings agree, and #311 shipped with them agreeing and pinned by tests on each side.
Reopened — closed accidentally by a commit message that says the opposite
This issue was closed at 2026-07-27 18:37 by the push that merged the #311
cycle. That close was not intended and nothing about the issue's scope was
delivered.
The audit commit
0d6d5b1records the routing decision in its body:Gitea's reference parser matches a close keyword followed by an optional
colon and an issue reference, so it read
fixed: #353out of that sentenceand fired a close — the negation in front of the keyword is invisible to it.
The commit is asserting that the work was not done here; the tracker
recorded the reverse.
Nothing else in the merged range was affected:
#311closed as intended, and#320/#352/#354/#355are untouched.The issue stands exactly as filed. Its disposition is unchanged: not urgent on
its own, and slated to be resolved inside the recorded-stream store milestone
rather than as separate work, since consolidating naming authority belongs in
whichever crate ends up owning the container.