BE-3541 Single Error Emission

The single-emission migration, previously the top-ranked deferral of BE-3482 Datadog Logs and APM Conformance: flow-step failures are emitted exactly ONCE at the step boundary, with HttpContext carried on the error instead of a second at-site log line. MERGED into develop via MR !571 (squash d1cf9c75 “refactor: emit step errors once by removing the logged-at-site path”, merge commit 1c4c33a5; verified against git 2026-07-22).

For Agents

Since !571, ErrorWithStepStatus.logged_at_site and the logged() constructor are GONE. Always construct with new/message and never error!-log at the detection site; the step boundary emits the single ERROR line. The AGENTS.md section 6.3 “in-flight BE-3541” note is now landed behavior.

What changed

  • One ERROR emission per step failure, at the step boundary.
  • ErrorWithStepStatus.logged_at_site flag and logged() constructor removed; new/message are the only constructors.
  • HttpContext rides the error to the boundary, so http.* fields survive without at-site logging.

What it closes

Downstream

  • BE-3656 APM Span Enrichment was originally stacked on the pre-merge BE-3541 head dee24ad3; after !571 merged, its MR !578 was rebased zero-conflict onto the post-!571 develop 1c4c33a5.
  • Part of the dev throwaway build 1.16.1-feat.2682437891.b7d15e2c (see Dev prototype verification (build b7d15e2c)).
  • develop moved on to e2ff6b79 afterwards via the unrelated BE-3685 merge (“feat: generate data point constants and simplify domain generation”).