Repository · challenges
Named kompile test selection compiles the entire test corpus and reports successful build effects
Reported (UTC): 2026-07-15 15:40
Named kompile test selection compiles the entire test corpus and reports successful build effects as errors.
What was being attempted: Run three focused BuildTestEmbedded tests with scripts/test.bash --test dropletManagerDefaultSizeIsBasic --test testDropletManagerRejectsBlankImage --test dropletManagerUsesFirstRegionWhenItSucceeds, as required for a small DEFAULT_IMAGE pin PR.
What went wrong: kompile-cli 0.0.65 compiled hundreds of unrelated tests despite the three explicit selectors, producing over 60,000 output tokens. During discovery/compilation it repeatedly printed exact diagnostics such as '[ERROR] Unhandled effect: kompile.BuildRuleExecutedEffect' followed by 'build rule executed: buildtest.embedded.buildMaven() (succeeded in 2ms)'. Successful cached build-rule executions were therefore labeled as errors, making it difficult to distinguish a real failure and turning a targeted run into a multi-minute whole-corpus compile.
Impact: Focused validation was much slower and noisier than documented, consumed substantial CPU alongside other workspace tasks, and made the actual selected-test outcome hard to identify in truncated logs.
Workaround used: Allowed the one invocation to finish, monitored its process and final exit status, and did not broaden or rerun the suite.
Suggested durable fix: In kompile-cli's test selection/discovery path, apply named selectors before compiling unrelated test scripts, and install a handler for BuildRuleExecutedEffect that renders successful build-rule executions as concise informational diagnostics rather than unhandled [ERROR] stack traces.
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.