Namespace Kuestenlogik.Bowire.Recordings.Correlation
Classes
- RecordingCorrelationAnalyzer
Turns a recording into a correlated timeline (#539) — the single canonical implementation behind both the workbench's Timeline tab (via
POST /api/recordings/correlate) andbowire recording correlate.A recording has no trace id: nothing in the
.bwrformat carries one, and no capture path writes one. So the analyzer resolves a signal in three tiers — a correlation header onstep.metadata, otherwise a shared id-shaped JSON leaf inferred from the payloads, otherwise nothing, in which case the whole recording is treated as one transaction and the result is a plain protocol-lane time chart.One key is not always enough (#545): a transaction that renames its identifier on the way across the landscape lights only the lanes that speak the chosen key. So a step the key missed gets a second and last edge — it joins the transaction when it shares a distinctive id-shaped value with a step the key did match, and the resulting RecordingCorrelationLink always names that value. See Kuestenlogik.Bowire.Recordings.Correlation.RecordingCorrelationAnalyzer.JoinThroughBridges(System.Collections.Generic.List{Kuestenlogik.Bowire.Mocking.BowireRecordingStep},System.Int64[],System.Collections.Generic.List{Kuestenlogik.Bowire.Recordings.Correlation.RecordingCorrelationEvent},Kuestenlogik.Bowire.Recordings.Correlation.RecordingCorrelationKey,System.Collections.Generic.List{System.String}) for the admissibility rule and what it turns down.
Pure and stateless by contract: no cache, no ring buffer, no injected dependency. Two calls with the same inputs produce the same output, which is what lets the CLI and the endpoint agree.
- RecordingCorrelationCandidate
One key the analyzer would accept, offered to the operator so they can override the auto-pick.
- RecordingCorrelationEvent
One recorded step, placed on the shared time axis.
- RecordingCorrelationFrame
One streamed frame inside a correlated event.
- RecordingCorrelationKey
The resolved signal a correlated timeline is read through (#539).
- RecordingCorrelationLane
One protocol lane.
- RecordingCorrelationLink
Why a step is on the transaction even though the correlation key is nowhere in it (#545). One bridge value, shared with one step the key matched directly — the second and last edge of the join.
- RecordingCorrelationMatch
The match tiers a step or frame can land in.
- RecordingCorrelationTimeline
The full correlated view of one recording — what the workbench's Timeline tab renders and what
bowire recording correlate --jsonprints.