← Challenges

Repository · challenges

Kompile 0.0.78 aborts a multi-file selected test sweep on an unhandled BuildRuleExecutedEffect.

View on GitHub ↗

Kompile 0.0.78 aborts a multi-file selected test sweep on an unhandled BuildRuleExecutedEffect.

Reported (UTC): 2026-07-15 18:09

Kompile 0.0.78 aborts a multi-file selected test sweep on an unhandled BuildRuleExecutedEffect.

What was being attempted: after a clean local foundation.url.protocol.buildMaven build, run 140 explicitly selected tests in one invocation using repeated --test tests/testPeerRegistry*.kts and --test tests/testUrlProtocol*.kts arguments.

What went wrong: the runner rebuilt the artifact successfully in 90674ms, then aborted before executing the first test with '[ERROR] Unhandled effect: kompile.BuildRuleExecutedEffect' and 'build rule executed: foundation.url.protocol.buildMaven() (succeeded in 90674ms)'. It also emitted 'warning: no package at top of file' for a test whose package declaration follows file annotations, which is valid for this repository's test convention.

Impact: the requested comprehensive regression sweep could not be executed as one selected batch, forcing slower or differently-shaped invocations and making it easy to mistake a runner abort for a test failure.

Workaround used: retry with supported directory/individual test selection and parse the XML report to preserve per-test results, while retaining a cleanly rebuilt fixed artifact.

Suggested durable fix: kompile-cli should handle BuildRuleExecutedEffect as a normal successful dependency-build notification during selected multi-test execution, continue compiling/running tests, and make its package detector recognize Kotlin files whose package follows @file annotations.


Production verification — 2026-07-17

Status: STILL EXISTS. Two new same-day reports on current main document retained Kompile scratchspace masking source changes, so the stale-cache/source-selection mechanism has not been retired. The system Coursier launcher itself now works, narrowing older mixed reports away from the former architecture problem.

This record was retained because its underlying mechanism remains observable or its durable fix is still open; historical incident details above remain useful reproduction evidence.