Preserve domain scientific status through the analysis front door - #101
Merged
Conversation
The front door assigned a fresh scientific_status dict when finalizing every analysis result, overwriting the block the domain layer had already attached via attach_scientific_status(). Codes the front door cannot rederive were silently dropped: SPHERE_RADIUS_UNAVAILABLE is raised by UXarray inside the computation, so only the domain sees it. The effect was that gradient, curl, and divergence results computed on a grid with no sphere_radius came back as an unqualified status 'complete' with physically_interpretable null and no warning codes, when the domain had correctly marked them 'warning' with physically_interpretable false. A result known to be uninterpretable was presented as a clean one -- the exact silent laundering the result contract exists to prevent. Merge the two blocks instead, taking the stricter judgment on every field so neither layer can upgrade the other's negative verdict, and keeping domain-only detail keys such as physical_scaling_applied. The override path still forces 'unverified' with interpretability false.
The test hardcoded 3.12.13 as the worker's version. The CI image now ships exactly that patch release, so worker and submitter matched, the drift branch never fired, and submitter_python_version was never written. Derive a version that differs from the submitter's instead so the test exercises drift on any runner.
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 free
to 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.
The analysis front door assigned a fresh scientific_status block when finalizing results, discarding warning codes the domain layer had already attached. This meant curl, gradient, and divergence on a grid with no sphere_radius returned status "complete" with empty warning_codes instead of the domain's "warning" and SPHERE_RADIUS_UNAVAILABLE. The two blocks are now merged so the stricter judgment wins per field, with two regression tests that fail on the unpatched code.