fix: refactor process collection to centralize provider materialization - #145
Merged
cdsap merged 1 commit intoSep 23, 2026
Merged
Conversation
cdsap
deleted the
issue/144-hermes-refactor-process-collection-to-centr-a1
branch
September 23, 2026 20:50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Problem
InfoKotlinProcessBuildService.close and DevelocityWrapperConfiguration.buildScanDevelocityReporting both independently read jStat/jInfo providers and invoke KotlinProcessCollector, duplicating the infrastructure-to-domain handoff.
Why this matters
The duplicated boundary can drift between console and Build Scan reporting, while tests must inspect adapter implementation details to ensure consistent collection behavior.
Proposed change
Add one internal helper beside KotlinProcessProviders that materializes both providers and delegates to KotlinProcessCollector, then use it from both reporting adapters. Preserve KotlinProcessCollector's raw-string API and all output behavior.
Notes
This keeps provider access in the infrastructure-facing consolidation boundary while leaving raw process parsing in the core collector, reducing coupling without introducing a broader abstraction.
Fixes #144
Changes
plugin/src/main/kotlin/io/github/cdsap/kotlinprocess/DevelocityWrapperConfiguration.ktplugin/src/main/kotlin/io/github/cdsap/kotlinprocess/InfoKotlinProcessBuildService.ktplugin/src/main/kotlin/io/github/cdsap/kotlinprocess/KotlinProcessConsolidation.ktplugin/src/test/kotlin/io/github/cdsap/kotlinprocess/KotlinProcessCollectorOwnershipTest.ktplugin/src/test/kotlin/io/github/cdsap/kotlinprocess/KotlinProcessConsolidationTest.ktVerification
./gradlew ktlintCheck./gradlew test