Skip to content

telemetry: record harness identity and forge pointers on the root run span #6842

Description

@rh-hemartin

What happens

A fullsend run writes Level 1 telemetry as run-telemetry.jsonl (ADR 0050). The root run span records agent name, work item id, security trace id, gen_ai fields, exit code, and cost/turn aggregates.

It does not record which resolved harness produced the run, or which forge/CI identity the run was against (repo, SHA, change id, pipeline run). Downstream scoring and eval wrappers that need those facts scrape ambient CI env, which is unstable across local runs, child dispatches, and forges.

#5524 proposed a sibling harness-snapshot.json plus mirrored root-span attributes. That ADR was not accepted. Review settled on this split: primary run facts belong on the trace; extra on-disk files are for derived products (for example eval-measurements.jsonl from ADR 0087). Snapshot implementation was #5449 (closed, not planned).

What should happen

Harness fingerprint and forge/CI pointers are attributes on the root run span. They then appear in run-telemetry.jsonl with no extra file, and in OTLP when Level 2 export is on.

The set should be enough to answer "what harness/config produced this run, and against which forge/CI identity?" without scraping CI env. This issue covers both the harness content SHA tracked in #2368 and the forge/CI pointers. Close #2368 as overlapping when this lands.

When OTEL_SDK_DISABLED=true, Level 1 is not written; these facts are absent in that mode. A dedicated snapshot file is out of scope until the root-span attributes are shown not to be enough.

Context

Successor to closed #5524 (ascerra review, follow-up comment): start with root-span attributes, then reassess.

Related:

  • #2368 (harness content SHA; overlapping, close when this lands)
  • #5449 (closed snapshot tracker)
  • operational observability
  • Fullsend owns Level 1 / OTEL attribute names; external tools (including ABEvalFlow) map from that

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/harnessAgent harness, config, and skills loadingcomponent/runnerAgent runner behavior and lifecyclefeatureFeature-category issue awaiting human prioritizationpriority/mediumNormal priority, plan for next cycletriagedTriaged but awaiting human prioritizationtype/featureNew capability request

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions