OBSERVERTC / Reference

Where to implement a change

Follow a field or behavior through its owning layers.

Choose the owning layer

ChangeImplementation and verification path
New browser fieldW3C/schema definitions if appropriate → schema generation → synchronized generated types → owner monitor assignment + createSample → observer entity update → browser-availability tests
New local derived metricowner monitor accept/update/getter; reset/missing/stale semantics; raw→derived unit/formula metadata; tests for counter reset, no progress and missing input; serialize only if backend needs the value itself
New client detectorDetector class with category/layer, config type, constructor defaults, correct owner registration, event payload/type, issue union, source tests/taxonomy test; independently define trigger/recovery and unavailable behavior
New score behaviorDefaultScoreCalculator and relevant monitor readings; component reasons and root aggregation kept distinct; verify absence/zero/continuous reason visibility
New schema fieldauthoritative Avro/chunk, source version/changelog, generator outputs/packages, both consumer copies, codec roundtrips and compatibility tests
New server entity behaviorappropriate Observed*.update/accept, ObserverEvents typed scope, lifecycle cleanup, metric reset semantics, focused source tests
New server detectorclass + AvailableCallScope/ObserverScopeDetectorsConfigs + appropriate addDetector factory switch + index exports; explicit application registration
New structural validationValidator + AvailableValidatorConfigs + Observer.addValidator switch; evidence-backed positive/negative/inconclusive behavior
New SFU integrationapplication signaling/attachments → RemoteTrackResolverFactory; optional server object observer; no guessed publisher linkage

Verification

Client Monitor: tests/monitors/DerivedFields.spec.ts, UnreportedRoundRecovery.spec.ts, EndedTrackStandDown.spec.ts, RemoteRtcpReportStaleness.spec.ts, detector-specific specs and DetectorTaxonomy.spec.ts, scoring specs

Observer: acceptMiddleware.spec.ts, issueLifecycle.spec.ts, payloadWireGenerations.spec.ts, injection.spec.ts, RemoteTrackResolver.spec.ts, mediasoupRouter.spec.ts, callSummary.spec.ts

Schema: JSON/protobuf codec roundtrip/delta/nested-payload/error tests.

Version coverage varies by reference. Source revisions · Markdown source