provide-telemetry
2026-04-05
Phase 3 cross-language parity: HealthSnapshot layout, PII depth, and noop trace IDs
70 files · 2,490+ · 960-
HealthSnapshot canonical 25-field layout across all three languages
7 files changed
health.goHealthSnapshot rewritten to canonical 25-field layouthealth_test.goTests updated for new layoutparity_health_test.goNew: 146-line parity test verifying Go layout matches Python/TypeScripthealth.pyHealthSnapshot trimmed to canonical 25-field layouthealth.tsHealthSnapshot aligned to canonical 25-field layouthealth.test.tsTests updated for new layoutbehavioral_fixtures.yamlHealth snapshot behavioral fixtures added (44 lines)
- HealthSnapshot standardized to a canonical 25-field layout across Go (220-line rewrite), Python (79-line change), and TypeScript (119-line change). All three implementations now expose the same field names and semantics. parity_health_test.go (146 lines) verifies field-level identity between the Go snapshot and the Python/TypeScript reference fixtures.
interface
behavioral
5 files
health.gohealth.pyhealth.tsparity_health_test.gobehavioral_fixtures.yaml
PII max depth across Go, Python, and TypeScript
6 files changed
pii.goPII default max depth changed from 32 to 8 to match Pythonparity_pii_test.goNew: parity tests for PII depth behaviorconfig.pyPROVIDE_LOG_PII_MAX_DEPTH env var support addedprocessors.pyPII depth wired into log processorpii.tsPII max depth parameter added, default 8, env var configurableconfig.tsPII max depth config field
- PII sanitization max depth now configurable via PROVIDE_LOG_PII_MAX_DEPTH environment variable across all three languages, defaulting to 8. Go was previously defaulting to 32 — now aligned to Python’s default. TypeScript adds the parameter and env var support. go/parity_pii_test.go verifies consistent truncation behavior at the same depth across languages.
interface
behavioral
4 files
pii.goconfig.pypii.tsparity_pii_test.go
TypeScript noop span synthetic trace IDs
4 files changed
tracing.tsNoop spans now emit synthetic random hex trace IDs (53-line change)hash.tsrandomHex utility (10 lines)tracing.test.tsNew: 53-line tests for noop trace ID generationhash.test.tsrandomHex tests updated
- TypeScript noop spans previously emitted zero/empty trace IDs, diverging from Python and Go behavior where noop spans emit synthetic random hex IDs for correlation. hash.ts adds randomHex(); tracing.ts injects synthetic IDs into noop span context. Matches Python/Go noop span behavior verified in parity.test.ts.
remediate
behavioral
3 files
tracing.tshash.tstracing.test.ts
Go session and trace wrapper fixes
3 files changed
session.goGetSessionID now returns (string, bool) to signal session absencesession_test.goTests updated for new signaturetracing.goError recording added to trace wrapper
- GetSessionID signature changed from returning an empty string to returning (string, bool), making the absence of a session ID explicit rather than ambiguous. Trace wrapper updated to record errors on spans when they occur rather than silently swallowing them.
remediate
behavioral
2 files
session.gotracing.go
Parity spec and test infrastructure
6 files changed
telemetry-api.yamlSpec additions for health snapshot and PII depth (18 lines)CONFIGURATION.mdPROVIDE_LOG_PII_MAX_DEPTH documentedparity.test.tsNew: TypeScript parity tests (52 lines)test_config_parity.pyPython config parity tests (21 lines)2026-04-05-cross-language-parity-phase3.mdPhase 3 implementation plan (855 lines)2026-04-05-cross-language-parity-phase3-design.mdPhase 3 design doc (220 lines)
- Phase 3 cross-language parity plan and design documents record the health snapshot, PII depth, and trace ID alignment work. Parity tests added in all three languages: go/parity_health_test.go + parity_pii_test.go, typescript/tests/parity.test.ts (52 lines), tests/parity/test_config_parity.py. spec/telemetry-api.yaml and CONFIGURATION.md updated.
specify
internal
3 files
parity.test.tstest_config_parity.pytelemetry-api.yaml