AdoptionMetrics
AdoptionMeasurementEngine
SourceCountRegionLinesAsync
Task<int> CountRegionLinesAsync(string path, AdoptionMeasurementRegion region, CancellationToken cancellationToken)
Scans one source file without materializing the entire file in memory.
Remarks
StreamReader removes the physical line terminator while preserving the old CR, LF, and CRLF behavior. Matching remains ordinal after trimming each physical line. The scan records every token occurrence so duplicate-token and ordering diagnostics are unchanged.
The source file has a byte-size limit and the caller token is checked for every line; cancellation is intentionally not converted into an adoption-measurement failure.
GitConsumerRevisionVerifier
SourceCleanupProcessAsync
Task CleanupProcessAsync(Process process, Task standardOutput, Task standardError)
Stops a canceled process and bounds both process and redirected-pipe cleanup.
Remarks
The cleanup token is provider-owned so caller cancellation cannot interrupt termination or pipe-drain observation. A drain may still be abandoned after the fixed budget; its fault is observed so it cannot become an unobserved task exception.