Developer documentation

Architecture, numerical algorithms, regression strategy and the maintained WStack integration contract for the current KOPR Python 3 source snapshot.

Source-verified The technical chapters are grounded in the KOPR Live beta source baseline, its reports, tests and maintained integration plan.

Baseline-sensitive documentation. Function names, data contracts and thresholds below describe the audited source baseline. Recheck them against the production tree whenever KOPR is rebased or its scientific algorithms change.

Developer chapters

Architecture

Runtime entry point, module boundaries, lazy tabs, shared settings, state files, workers and WStack-to-WCCD hand-off.

Open architecture

Current release authority

R81 retains the cumulative R79 scientific contracts and adds the R80 effective Reference stars Use-state projection plus the R81 direct/derived RAW provenance and viewport-preservation hotfixes. Complete deterministic QA reports 1225 passed, 6 skipped and 0 failed from 1231 collected tests.

Algorithms

Calibration, quality control, astrometry, relative-WCS validation, reprojection, stacking, saturation provenance and comet photometry.

Open algorithms

Testing

R55 crowded-field Auto Star Measure construction checks, R50 acceptance policy, R49 finder review and inherited R48 blind-online/offline-seed, R47 COBS/FLOAT-saturation, R45 robust local solver, R40 role-policy, R27 photometry and R22 performance contracts, plus required live GUI/network/solver checks.

Open testing

WStack integration

Host callbacks, settings mapping, matched-stack contracts, safe rebase sequence and conflict policy.

Open integration contract

Technical baseline

  • Main application: flat Python module layout with a PyQt5 MainWindow in kopr.py.
  • Six persistent tab positions; widgets are created once on first access and retained in a cache.
  • WStack implementation: wstack.py, wstack_functions.py and wstack_common.py; R74 retains the shared rawmaterialization.py boundary, removes the session decision branch and automatically resolves pending/stale RAW into a FITS-only session index.
  • Shared automatic-helper numerical implementation: selected primitives in autophot.py, exposed to WCCD through cometfinder.py and starmeasure.py; manual aperture/ACF primitives remain in photom.py.
  • R81 keeps the R74 automatic DSLR materialization and FITS-only graph, while direct TG FITS now carries RAWREP=T, downstream derivatives are marked or cleaned as derived, and historical RAW ancestry on CALIB/WCS/CO/ST products no longer creates a false direct-representation conflict. Live rawpy/LibRaw decoding remains target-system acceptance.
  • R80 projects the canonical reference-star states unambiguously: Use represents effective inclusion, Reason explains exclusion and the redundant Pairwise status column is absent. The strict R79 pairwise solver is unchanged. R55 crowded-field stability, the live 169P run, nova.astrometry.net submission and the R45 real solve-field/index check remain inherited or target-machine evidence.
  • PA-adaptive ACF context and provenance: acfcore.py, integrated by wccd.py and autophot.py.
  • Performance release contract: fixed internal worker/memory ceilings, thread-based numerical scheduling, two bounded external astrometry processes and validate_performance_release.py.

Scientific/Compact implementation reference

The storage writer, noise-relative fallback, unified time/exposure contract, storage-preserving WCS updates and validator are covered in Scientific and Compact FITS output, Architecture, Algorithms and Testing.

Downloadable compact reference

KOPR developer reference (plain text) summarizes module ownership, public integration surfaces, test commands and protected scientific invariants.

Current ACF contract

PA-adaptive ACF, centroid and Review dialog documents the user-facing state model and provenance summarized by the developer chapters.

WCCD helper subsystems

The current architecture includes candidate-only comet finding, an optional lazy JPL position service, a non-mutating Auto Star Measure backend, one canonical lossless AutoStars/Manual Stars collection and global pairwise solution, named Slice modes and persistent ACF Review ownership. See architecture, algorithms and acceptance tests.