Skip to content

Correct mosaic SNR reporting and remove the extra loading area - #1006

Merged
theatrus merged 1 commit into
mainfrom
codex/mosaic-progress
Oct 26, 2026
Merged

theatrus merged 1 commit into
mainfrom
codex/mosaic-progress

Conversation

@theatrus

Copy link
Copy Markdown
Owner

Mosaic builds mix sky areas and pixel depths as panels arrive. The old SNR report normalized every checkpoint to the final canvas signal and fitted a same-field frame-count model. This could interpret coverage changes as a plateau or degradation and produce misleading extra-frame estimates.

Record covered canvas fraction and mean observations per covered pixel at each checkpoint, retain each mosaic checkpoint's own measured signal/noise ratio, and withhold the same-field ideal, verdict, and forecasts for mosaics. Single-field analysis keeps its existing behavior. Saved mosaic chart replies and SNR JSON downloads receive the interpretation correction without rebuilding; missing historical coverage is marked Not recorded.

A running live image also replaces the full-height waiting placeholder. The progress bar stays directly below the image rather than following a second image-sized loading area.

Validation on current main:

  • cargo test --lib server::stack_preview: 436 passed, 2 ignored. Includes real Seiza measurements of a deep first panel followed by a shallow second panel, saved-curve migration, and JSON download after restart.
  • cargo test --test integration_stack_snr: passed; ordinary single-field integration still follows its expected noise reduction.
  • cargo clippy --all-targets -- -D warnings and cargo fmt --all -- --check: passed.
  • npm run lint and npm run build: passed.
  • Focused Vitest SNR/theme checks: 17 passed.
  • Guarded Playwright live-preview checks: 4 passed in Chromium and WebKit. They check channel and mosaic previews, refresh/reload/completion, one image area, progress-bar placement, and mosaic coverage reporting.
  • Final diff reviewed; git diff --check passed.

Coverage takes one pass over the existing accumulator at SNR checkpoints, with no image copy or reintegration. Integrated pixels and Seiza output versions are unchanged. Existing FITS files are not rewritten; new mosaic FITS omit the invalid fitted slope/verdict cards while retaining measured SNR.

Coverage report from the deterministic browser fixture:

Mosaic SNR and coverage

@theatrus
theatrus merged commit 7af9270 into main Oct 26, 2026
13 checks passed
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