D865 - A run's trace, frames and dumps are its own

Status: assumed Date: 2026-10-14

Amends: D695 - the region an Event::Frame names is a full path, not a bare name.

A run writes everything it leaves behind into runs/<title>/<run>/ under the traces directory: the title named by the module's last two path components, the run by a RunId minted when the worker prepares the run, its suffix the worker's process id. The directory holds:

A title's previous run is its latest that wrote a trace: run ids sort chronologically, and a run that died before writing one is passed over, so it is not reported as a measurement (D470). A reading across titles - the census, the worklist, the questions - takes each title's latest trace once.

The shim reads a region only within the traces directory it was given: a path outside it, or one with a parent component, is refused as a bare name with a separator was before.

A title keeps its last four runs. When a run starts, the title's older run directories are removed; a run whose directory goes while it still writes makes it again.

Why: every run on the machine shares the traces directory, and runs in several sessions draw at once. GTA V (PPSA04263) presented its first 3840x2160 frame as frame-1000000.bin, and minutes later the same file held a 1920x1080 Neverball frame from another session's run: the picture was lost, and the descriptor that named it named Neverball's. A title's trace was one file, so two runs of one title wrote over each other's in the same way.

Known limits:

Rejected: