Export secret-free run friction over OTLP #1552

Closed
opened 2026-07-24 21:34:20 +00:00 by coilyco-ops · 1 comment
Member

Problem

Ward emits a literal per-run friction report in the drained meta.json.friction field, but it stays on the host filesystem. No current code sends those events to SigNoz.

Ward previously shipped full console and transcript data through a selectable SigNoz sink, then explicitly deferred that path on 2026-07-09 because of content and locality risk. The current release hard-codes the drain sink to disk. This issue must not revive full-log or transcript export.

Change

  • Add a narrow, vendor-neutral OTLP log exporter for the already secret-free structured friction events.
  • Keep the disk archive and meta.json as the durable producer contract. Export out of band so collector downtime never blocks or loses a completed run.
  • Use an idempotent watermark or receipt ledger so repeated shipper runs do not duplicate accepted events and failed delivery remains retryable.
  • Export stable correlation dimensions: run/container, repo, issue, role, harness/driver, workflow, Ward version, and timestamps when available.
  • Export event fields: stage, category, severity, confidence, fingerprint, and bounded redacted evidence.
  • Never export console lines, transcript bodies, prompts, tool bodies, opaque identifiers, credentials, or unbounded args through this path.
  • Provide a native command suitable for a timer or service, with an explicit OTLP endpoint and a dry-run mode. Unset endpoint must fail soft while preserving pending records.
  • Keep this path independent of ward ops, ward-kdl, Aguard, and any SigNoz API credential. OTLP is the only integration contract.
  • Correct documentation that implies an existing agent-run SigNoz envelope when only local artifacts ship today. Update docs/FEATURES.md.

Acceptance

  • A synthetic drained meta.json with two friction events produces two bounded OTLP log records with stable fingerprints and run correlation fields.
  • A second shipper pass produces no duplicates after acknowledged delivery.
  • Collector refusal or timeout leaves the events retryable and does not fail the Ward run or drain.
  • A clean run with no friction field emits nothing.
  • Tests inspect the serialized OTLP payload and prove console/transcript/body content is absent.
  • The existing WARD_AGENT_SINK compatibility spellings still resolve to disk.
  • No generated operator surface is required at runtime.
  • Ward validation and pre-commit pass.

Downstream

Infrastructure will separately converge the shipper and SigNoz view on native operator hosts.

## Problem Ward emits a literal per-run friction report in the drained `meta.json.friction` field, but it stays on the host filesystem. No current code sends those events to SigNoz. Ward previously shipped full console and transcript data through a selectable SigNoz sink, then explicitly deferred that path on 2026-07-09 because of content and locality risk. The current release hard-codes the drain sink to disk. This issue must not revive full-log or transcript export. ## Change * Add a narrow, vendor-neutral OTLP log exporter for the already secret-free structured friction events. * Keep the disk archive and `meta.json` as the durable producer contract. Export out of band so collector downtime never blocks or loses a completed run. * Use an idempotent watermark or receipt ledger so repeated shipper runs do not duplicate accepted events and failed delivery remains retryable. * Export stable correlation dimensions: run/container, repo, issue, role, harness/driver, workflow, Ward version, and timestamps when available. * Export event fields: stage, category, severity, confidence, fingerprint, and bounded redacted evidence. * Never export console lines, transcript bodies, prompts, tool bodies, opaque identifiers, credentials, or unbounded args through this path. * Provide a native command suitable for a timer or service, with an explicit OTLP endpoint and a dry-run mode. Unset endpoint must fail soft while preserving pending records. * Keep this path independent of `ward ops`, ward-kdl, Aguard, and any SigNoz API credential. OTLP is the only integration contract. * Correct documentation that implies an existing agent-run SigNoz envelope when only local artifacts ship today. Update `docs/FEATURES.md`. ## Acceptance * A synthetic drained `meta.json` with two friction events produces two bounded OTLP log records with stable fingerprints and run correlation fields. * A second shipper pass produces no duplicates after acknowledged delivery. * Collector refusal or timeout leaves the events retryable and does not fail the Ward run or drain. * A clean run with no `friction` field emits nothing. * Tests inspect the serialized OTLP payload and prove console/transcript/body content is absent. * The existing `WARD_AGENT_SINK` compatibility spellings still resolve to disk. * No generated operator surface is required at runtime. * Ward validation and pre-commit pass. ## Downstream Infrastructure will separately converge the shipper and SigNoz view on native operator hosts.
Author
Member

Closing as premature external telemetry integration. Rewritten #1618 defines the v1 Ward-owned observability contract for detached broker work through durable local state and machine-readable commands.

Closing as premature external telemetry integration. Rewritten #1618 defines the v1 Ward-owned observability contract for detached broker work through durable local state and machine-readable commands.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
coilyco-flight-deck/ward#1552
No description provided.