fix(tracker-lens): recognise api-detector-core's current semver schemaVersion header line - #236
Merged
Conversation
…aVersion header line
ApiContractTrackerSource's header-skip only matched the legacy bare-
integer {"schemaVersion":N} marker. api-detector-core's
ContractHistoryStore now writes {"schemaVersion":"x.y.z"[,"migrations":
[...]]} instead - every project's shared contract-history file gets
this line rewritten the first time any of the three detector plugins
saves it, so this reader was misreading it as a malformed data line on
every single read.
Arc-E-Tect
added a commit
that referenced
this pull request
Aug 27, 2026
# [2.3.0](tracker-lens-v2.2.0...tracker-lens-v2.3.0) (2026-08-27) ### ✨ New and updated features * **detector-plugins:** adopt api-detector-core 1.5.0 and add scanContracts progress ([#227](#227)) ([523e72d](523e72d)), closes [#227](#227) * **mirage-api-detector:** scan WireMock stubs created at run time by Java code ([#230](#230)) ([3c12eee](3c12eee)), closes [#230](#230) ### 🐛 Bug Fixes * **api-only-suite:** bump api-detector-core to 1.5.0 ([#228](#228)) ([aedfabb](aedfabb)), closes [#228](#228) [#227](#227) * **shadow-api-detector:** bump api-detector-core to 1.5.1 ([#233](#233)) ([dcc9be8](dcc9be8)), closes [#233](#233) * **mirage-api-detector:** bump api-detector-core to 1.5.1 ([#234](#234)) ([bbb028b](bbb028b)), closes [#234](#234) * **doppelganger-api-detector:** bump api-detector-core to 1.5.1 ([#235](#235)) ([ca0d4cf](ca0d4cf)), closes [#235](#235) * **examples:** correct response-coverage chart math and grid legibility ([#225](#225)) ([9317796](9317796)), closes [#225](#225) [#224](#224) * **gherkin-to-asciidoc:** explain why a scenario becomes removed ([#238](#238)) ([66ae18b](66ae18b)), closes [#238](#238) * **api-only-suite:** forward mirage's stubSourceDirs and doppelganger's testDirsUserConfigured to detectAllApiGaps's task instances ([#231](#231)) ([89c235c](89c235c)), closes [#231](#231) * **tracker-lens:** recognise api-detector-core's current semver schemaVersion header line ([#236](#236)) ([7aaf30c](7aaf30c)), closes [#236](#236) * **mirage-api-detector:** rewrite a literal urlPath/url purely numeric id segment into a {id} placeholder ([#237](#237)) ([df6d205](df6d205)), closes [#237](#237) [#232](#232) * **mirage-api-detector:** rewrite a WireMock urlPattern/urlPathPattern regex id segment into a {id} placeholder ([#232](#232)) ([ea9441e](ea9441e)), closes [#232](#232) ### 👷 CI/CD * **api-only-suite:** derive api-detector-core version from sibling plugins ([#229](#229)) ([cca417d](cca417d)), closes [#229](#229) ### 📝 Documentation * **tracker-lens:** show response-coverage in the register() DSL examples ([#226](#226)) ([f3217f7](f3217f7)), closes [#226](#226) ### 🔧 Misc * **examples:** bump dashboard-extra-charts to tracker-lens 2.2.0 ([#224](#224)) ([beaa1a0](beaa1a0)), closes [#224](#224) [#223](#223)
Owner
Author
|
🎉 This PR is included in version 2.3.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Arc-E-Tect
added a commit
that referenced
this pull request
Aug 27, 2026
# [6.3.0](gherkin-to-asciidoc-v6.2.0...gherkin-to-asciidoc-v6.3.0) (2026-08-27) ### ✨ New and updated features * **doppelganger-api-detector:** add scanContracts task and response coverage tracking ([#221](#221)) ([773cf7b](773cf7b)), closes [#221](#221) [Arc-E-Tect/SoftwareEngineeringDoneRight-Library#75](Arc-E-Tect/SoftwareEngineeringDoneRight-Library#75) * **detector-plugins:** adopt api-detector-core 1.5.0 and add scanContracts progress ([#227](#227)) ([523e72d](523e72d)), closes [#227](#227) * **mirage-api-detector:** scan WireMock stubs created at run time by Java code ([#230](#230)) ([3c12eee](3c12eee)), closes [#230](#230) * **tracker-lens:** visualize Doppelganger response-code coverage ([#223](#223)) ([23de77e](23de77e)), closes [#223](#223) [#160](#160) ### 🐛 Bug Fixes * **api-only-suite:** bump api-detector-core to 1.4.0 ([#222](#222)) ([3d79566](3d79566)), closes [#222](#222) * **api-only-suite:** bump api-detector-core to 1.5.0 ([#228](#228)) ([aedfabb](aedfabb)), closes [#228](#228) [#227](#227) * **shadow-api-detector:** bump api-detector-core to 1.5.1 ([#233](#233)) ([dcc9be8](dcc9be8)), closes [#233](#233) * **mirage-api-detector:** bump api-detector-core to 1.5.1 ([#234](#234)) ([bbb028b](bbb028b)), closes [#234](#234) * **doppelganger-api-detector:** bump api-detector-core to 1.5.1 ([#235](#235)) ([ca0d4cf](ca0d4cf)), closes [#235](#235) * **examples:** correct response-coverage chart math and grid legibility ([#225](#225)) ([9317796](9317796)), closes [#225](#225) [#224](#224) * **tracker-lens:** exclude removed items from chart-series cumulative counts ([#219](#219)) ([ee35459](ee35459)), closes [#219](#219) * **tracker-lens:** exclude removed items from progress-projection counts ([#220](#220)) ([010f581](010f581)), closes [#220](#220) * **gherkin-to-asciidoc:** explain why a scenario becomes removed ([#238](#238)) ([66ae18b](66ae18b)), closes [#238](#238) * **api-only-suite:** forward mirage's stubSourceDirs and doppelganger's testDirsUserConfigured to detectAllApiGaps's task instances ([#231](#231)) ([89c235c](89c235c)), closes [#231](#231) * **examples:** migrate doppelganger-api-detector RestDocs examples to Spring Boot 4's split test modules ([#218](#218)) ([2b3cd7b](2b3cd7b)), closes [#218](#218) [#122](#122) * **tracker-lens:** recognise api-detector-core's current semver schemaVersion header line ([#236](#236)) ([7aaf30c](7aaf30c)), closes [#236](#236) * **mirage-api-detector:** rewrite a literal urlPath/url purely numeric id segment into a {id} placeholder ([#237](#237)) ([df6d205](df6d205)), closes [#237](#237) [#232](#232) * **mirage-api-detector:** rewrite a WireMock urlPattern/urlPathPattern regex id segment into a {id} placeholder ([#232](#232)) ([ea9441e](ea9441e)), closes [#232](#232) * **ci:** stop treating a sibling-triggered no-op release as a failure ([#216](#216)) ([ac53a54](ac53a54)), closes [#216](#216) ### 👷 CI/CD * **api-only-suite:** derive api-detector-core version from sibling plugins ([#229](#229)) ([cca417d](cca417d)), closes [#229](#229) ### 📝 Documentation * **tracker-lens:** show response-coverage in the register() DSL examples ([#226](#226)) ([f3217f7](f3217f7)), closes [#226](#226) ### 🔧 Misc * **examples:** bump dashboard-extra-charts to tracker-lens 2.2.0 ([#224](#224)) ([beaa1a0](beaa1a0)), closes [#224](#224) [#223](#223) * dependency updates for Gradle plugin repository ([#217](#217)) ([de0d5e8](de0d5e8)), closes [#217](#217)
Owner
Author
|
🎉 This PR is included in version 6.3.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Arc-E-Tect
added a commit
that referenced
this pull request
Aug 27, 2026
## [4.4.3](mirage-api-detector-v4.4.2...mirage-api-detector-v4.4.3) (2026-08-27) ### 🐛 Bug Fixes * **doppelganger-api-detector:** bump api-detector-core to 1.5.1 ([#235](#235)) ([ca0d4cf](ca0d4cf)), closes [#235](#235) * **gherkin-to-asciidoc:** explain why a scenario becomes removed ([#238](#238)) ([66ae18b](66ae18b)), closes [#238](#238) * **tracker-lens:** recognise api-detector-core's current semver schemaVersion header line ([#236](#236)) ([7aaf30c](7aaf30c)), closes [#236](#236) * **mirage-api-detector:** rewrite a literal urlPath/url purely numeric id segment into a {id} placeholder ([#237](#237)) ([df6d205](df6d205)), closes [#237](#237) [#232](#232)
Owner
Author
|
🎉 This PR is included in version 4.4.3 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Arc-E-Tect
added a commit
that referenced
this pull request
Aug 27, 2026
## [3.6.4](api-only-suite-v3.6.3...api-only-suite-v3.6.4) (2026-08-27) ### 🐛 Bug Fixes * **gherkin-to-asciidoc:** explain why a scenario becomes removed ([#238](#238)) ([66ae18b](66ae18b)), closes [#238](#238) * **tracker-lens:** recognise api-detector-core's current semver schemaVersion header line ([#236](#236)) ([7aaf30c](7aaf30c)), closes [#236](#236) * **mirage-api-detector:** rewrite a literal urlPath/url purely numeric id segment into a {id} placeholder ([#237](#237)) ([df6d205](df6d205)), closes [#237](#237) [#232](#232)
Owner
Author
|
🎉 This PR is included in version 3.6.4 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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
ApiContractTrackerSource's header-skip logic only matched the legacy bare-integer{"schemaVersion":N}marker.api-detector-core'sContractHistoryStore(as of 1.5.1) now writes{"schemaVersion":"x.y.z"[,"migrations":[...]]}instead - discovered while verifying api-detector-core#78/#232 end-to-end: every shared contract-history file gets this line rewritten the first time any detector plugin saves it post-migration, and tracker-lens's own independent reader (this module has no code dependency onapi-detector-core, by design) was misreading it as a malformed data line on every single read.