Repository navigation
test(scripting): prove runtime and IDE reference selection with multiple SDK packs #19
Description
Verified on branch / awaiting merge
Production implementation: dd5979c613b0fe8ebd9f7026f25001ceee9f8cee. Delivered head: dbae93e8f211d45a69cdffdb6afa3a33a0af0fa5; the subsequent diff contains documentation/acceptance evidence only. Exact-head CI: Engine CI and NuGet dependency graph passed; all six checks on this exact head are successful. All applicable acceptance conditions for this issue are verified; unavailable physical/manual device checks are explicitly scoped, not reported passed.
Owner: Build SDK capture -> neutral compiler inputs -> Host/IDE. Implementation commits: 63d4f7dc.
Evidence: complete report, exact-head delivery attachment, portable test-case/raw-measurement/requirement indexes linked by the report. Specific proof: Contracts: frozen multi-SDK/CSharp14 inputs; Companion-Canvas; Companion-Rendering2D; Companion-FlappyBird.
Commands: official tests/Invoke-EditorUiAcceptance.ps1 Contracts/Workflows/Visual/Lifecycle/Products with SDK-selected independent outputs; complete source/entry preparation; formal InnoEngine.Build scripts --ide for the three companions; tests/Invoke-WikiChecks.ps1; controlled public performance fixtures where applicable. The report records original command owners, TRX/binlogs, negative tests, failures, skips, input hashes and device limits.
Profiles overlap; do not sum their pass counts into a distinct-test claim. Windows-only sharing fixtures and Unix-only filesystem fixtures are scoped to the executing host. Real native contexts/simulated display metrics and hidden product feature journeys are not a claim of physical display, OS IME or manual Mac testing. No BGCS/vendor/package/generated-binding modification, parallel Core system, test hook, IVT or private reflection was used.
Keep this issue Open. PR #26 includes an individual Fixes #19 and will close it only when the user merges to master. No automatic merge or premature master-resolution claim.
Original defect, ownership and accepted work
The following baseline observations describe the issue as opened. The verification above supersedes intermediate pending checkpoints; original failed/negative logs remain preserved. Acceptance checkboxes are checked only after the exact delivery-head verification completes.
Unverified consistency risk
FrameworkReferenceResolver selects the highest stable .NET 10 reference pack under candidate roots, while the IDE project obtains framework references through SDK evaluation. The current single-SDK run passed, but multiple packs/roots/selected SDKs have not demonstrated identical compilation inputs.
This issue tracks missing validation, not a confirmed API mismatch.
Owner: existing scripting compiler input freezing and IDE project generation. Keep one authoritative selected-SDK/reference contract; do not introduce a cross-layer version service or ask project users to duplicate framework configuration.
Acceptance
- Controlled cases with multiple installed pack versions, multiple roots and an explicitly selected SDK.
- Runtime compiler and IDE resolve the same actual framework references and C# 14 options.
- Framework/tool/input changes invalidate the artifact cache; unchanged logical public contracts remain separately identified.
- Missing or incompatible packs produce explicit diagnostics rather than host fallback.
- No global/implicit using or metadata-based implicit imports.
Evidence: framework-reference risk in records/architecture/acceptance/FULL_ENGINE_AUDIT_2026_10_24.md.
Activity
FLwolfy commentedon Oct 28, 2026
Additional Windows public-provider acceptance now passed in an independently owned SDK-root fixture. The real 10.0.402 SDK was invoked from the installed root and an alternate root exposing the same SDK, with an additional higher-named 10.0.999 reference-pack interference directory in that test root. Both SDK evaluations selected 167 references with identical content; the alternate invocation consumed only its selected root and never the higher interference directory. Invoking the installed .NET 9-only root against the explicit 10.0.402 project failed rather than silently finding the other installation. No temporary evaluation projects remained. Installed SDK contents were not modified. Evidence: e19-root-probe/result.json, installed.json, alternate.json, unsupported.log and the public SdkScriptCompilationEnvironment probe source. This proves root/selection isolation for the available SDKs; it does not claim two distinct supported .NET 10 patch installations or Mac device validation. Keep Open pending final combined acceptance.
FLwolfy commentedon Oct 28, 2026
Real SDK and reference-pack matrix
The additional Windows acceptance now uses two genuine stable SDK releases, not only renamed pack fixtures. Microsoft release metadata and SHA-512 verified the test-owned 10.0.401 archive; the repository and installed 10.0.402 baseline remain unchanged.
With identical authored C# 14 input, the public production SDK provider and script compiler selected:
Both Runtime compilation and actual generated IDE
dotnet buildpass with zero warnings/errors. Actual IDE ResolveReferences matches all 167 frozen framework paths for its selected SDK. All 167 reference contents differ between the two real packs. C# 14, frozen framework/authoring symbols, disabled implicit imports and zero MSBuild Using items agree. A genuine higher 10.0.13 pack was also made available in the owned 10.0.401 root through an explicitly recorded junction; 10.0.401 still selected 10.0.12. No global SDK or NuGet contents were edited.Evidence:
e19-dual-sdk/verified-result.json, both*-runtime-final.log,*-ide-final.log,*-ide-evaluation.json, andfixture-links.json. Earlier available-root and incompatible-host rejection evidence remains separately recorded. An early probe expected authoring DEBUG/TRACE to be absent; that expectation was corrected: raw framework input excludes them, while the normal authoring assembly deliberately freezes them in both compiler and IDE. Compile-time assertions now verify the actual common contract.Final companion projections, existing cache/negative/C# 14 contracts and final CI remain part of the closure check; this comment does not close the issue before merge.