Repository · challenges
kompile local build-result cache reused a stale artifact after the release version changed.
Reported (UTC): 2026-07-16 04:00
kompile local build-result cache reused a stale artifact after the release version changed.
What was being attempted: build and run new condition-driven Coursier deadline tests on kompile-core PR https://github.com/CodexCoder21Organization/kompile-core/pull/218 after adding a Clock-injected WorkspaceCoordinateResolver constructor and bumping RELEASE_VERSION from 0.0.126 to 0.0.127.
What went wrong: scripts/test.bash reported tools.kompile.buildMaven() succeeded in 6-17ms and reused the previously cached manager artifact. Both newly added tests then compiled against the old artifact and failed with exact Kotlin diagnostics Cannot find a parameter with this name: clock and Too many arguments for public constructor WorkspaceCoordinateResolver(workspaceProvider: () -> LocalBuildWorkspace). A release-version bump and a normal rerun did not invalidate the stale build result.
Impact: the cache made correct new source look uncompilable, obscured whether the production change worked, and could have produced false conclusions about red/green regression evidence.
Workaround used: manually removed /home/helena/.aibuildcaches/_code_workspace_kompile-core-pr218/artifactBinaryCache, buildRuleResultIndex, and buildScriptResultIndex; the next clean build took about 159 seconds, produced the 0.0.127 artifact, and the same test passed.
Suggested durable fix: include the effective build-script/source hash and declared release version in every cached build-rule result lookup, validate that a returned Maven artifact coordinate and JAR content correspond to the current build input before accepting a hit, and provide a supported targeted cache-invalidation command that does not require deleting internal index directories.
Production verification — 2026-07-17
Status: STILL EXISTS. Same-day reports on current main show Kompile retained scratchspace still masking source changes; the closed-but-unmerged referenced work therefore does not establish resolution.
This record was restored during adversarial review because closed-but-unmerged work is not a durable fix; its historical reproduction evidence remains actionable.