fix(smoke): use the prebuilt CLI in E2E; arm the extender in the daemon-claim smoke test - #318
Merged
Conversation
…m smoke test With #317 the readiness gate finally gets past architecture validation — and lands on the next step, "Dry-run — build + run smoke tests", which had been skipped on every previous run. Two long-standing failures were waiting there (cross-platform-tests has shown them since March): - Every RuntimeStudio smoke test on Windows: "CLI build failed (exit 1) … Nexo.API.dll … locked by testhost". CliRunner rebuilt the CLI from INSIDE the test host; the CLI's project graph includes the test projects (its `test` command discovers them by assembly name), so that build also rebuilt Nexo.Tests.Infrastructure — into the bin the running testhost had locked. Every CI lane builds the CLI in a setup step before any test host exists, so an already-built CLI now wins; the in-host build is only the fallback when none exists. NEXO_CLI_FORCE_REBUILD=1 restores the old behaviour for local CLI edit-run loops. - Daemon_extender_claims_objective_from_store_increments_attempts on every OS: Attempts stayed 0. Since 20e6ded (Jun 24) an unconfigured extender is DENIED — the aggressiveness mode defaults to passive — and this Apr 18 test never set a mode. The product is right (a daemon must not act on a backlog nobody armed); the test now pins the passive default, then sets active, and the claim is the Active-mode contract. Reproduced end to end in a container: passive → Attempts 0; active → "claimed objective … attempt #1", released, Attempts 1. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
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 freeto 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
Follow-up to #317. That PR got the Full Platform Readiness Gate past architecture validation for the first time in 60+ runs (
Validation passed (2984/2984 tests), 26/26 projects) — which let it reach the next step, "Dry-run — build + run smoke tests", skipped on every previous run. Two long-standing failures were waiting there (cross-platform-testshas shown them since March; nothing recent caused them):1. Windows: every RuntimeStudio smoke test —
CLI build failed (exit 1) … Nexo.API.dll … locked by testhostCliRunnerrebuilt the CLI from inside the test host. The CLI's project graph includes the test projects (itstestcommand discovers them by assembly name —TestRunnerAdapterdoesAssembly.Load("Nexo.Tests.Infrastructure")), so that build also rebuiltNexo.Tests.Infrastructure— copying into the verybinthe running testhost had locked. Windows-only file locking, every test.Fix: an already-built CLI wins. Every CI lane builds the CLI in a setup step before any test host exists (readiness: "Setup — build CLI"; cross-platform:
dotnet build Nexo.sln), so no in-host build happens in CI at all; the fallback build remains for a cold local run.NEXO_CLI_FORCE_REBUILD=1restores the old behaviour for local CLI edit-run loops.2. All OSes:
Daemon_extender_claims_objective_from_store_increments_attempts—Attemptsstayed 0Since
20e6ded6(Jun 24, "default aggressiveness Passive; deny extender when unconfigured") the daemon must not act on a backlog nobody armed. This Apr 18 test predates that and never set a mode → passive → extender skipped → no claim. The product is right; the test's setup was stale.Fix: the test pins the passive default (the safety invariant), then sets
active; the claim is the Active-mode contract. Reproduced end to end in a container against the real CLI: passive →Attempts: 0; active →Self-extend cycle (claim-smoke-owner) claimed objective … attempt #1, released,Attempts: 1.Test plan
BaseFrameworkSmokeTests|RuntimeStudioBlackBoxSmokeTests): 20/20 (was 19/20)🤖 Generated with Claude Code