locate method

ScenarioRunStep locate({
  1. required String root,
  2. required String address,
  3. required String path(
    1. String
    ),
})

This step, published: its artifact paths rewritten through path, its address assigned, its root recorded.

How a host that knows the worktree turns the harness's own record — absolute paths, no address — into the one every surface reports. Lives beside the fields it copies so a new field cannot be forgotten in a parser three files away.

Implementation

ScenarioRunStep locate({
  required String root,
  required String address,
  required String Function(String) path,
}) => ScenarioRunStep(
  index: index,
  position: position,
  parent: parent,
  branch: branch,
  name: name,
  auto: auto,
  tags: tags,
  kind: kind,
  ms: ms,
  image: switch (image) {
    var image? => path(image),
    null => null,
  },
  format: format,
  width: width,
  height: height,
  tree: switch (tree) {
    var tree? => path(tree),
    null => null,
  },
  file: switch (file) {
    var file? => path(file),
    null => null,
  },
  mimeType: mimeType,
  bytes: bytes,
  notification: notification,
  keys: switch (keys) {
    var keys? => path(keys),
    null => null,
  },
  semantics: switch (semantics) {
    var semantics? => path(semantics),
    null => null,
  },
  texts: texts,
  address: address,
  root: root,
  statusBrightness: statusBrightness,
  navBrightness: navBrightness,
  verb: verb,
  target: target,
  aim: aim,
  events: switch (events) {
    var events? => path(events),
    null => null,
  },
  eventCount: eventCount,
  eventChannels: eventChannels,
  eventTitles: eventTitles,
  eventsDropped: eventsDropped,
  frames: switch (frames) {
    var frames? => path(frames),
    null => null,
  },
  frameCount: frameCount,
  frameWidth: frameWidth,
  frameHeight: frameHeight,
  frameIntervalMs: frameIntervalMs,
  framesDropped: framesDropped,
  settled: settled,
  waited: waited,
  landed: landed,
  guessed: guessed,
  stillTicking: stillTicking,
  digest: digest,
  strayFrames: strayFrames,
  unchanged: unchanged,
  failure: failure,
  keyboard: keyboard,
);