Skip to content

Preserve domain scientific status through the analysis front door - #101

Merged
rajeeja merged 2 commits into
mainfrom
rajeeja/preserve-domain-scientific-status
Aug 7, 2026
Merged

Preserve domain scientific status through the analysis front door#101
rajeeja merged 2 commits into
mainfrom
rajeeja/preserve-domain-scientific-status

Conversation

@rajeeja

@rajeeja rajeeja commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

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.

rajeeja added 2 commits August 7, 2026 04:21
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.
@rajeeja
rajeeja merged commit ea23615 into main Aug 7, 2026
7 checks passed
@rajeeja
rajeeja deleted the rajeeja/preserve-domain-scientific-status branch August 7, 2026 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant