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.
Developer chapters
Architecture
Runtime entry point, module boundaries, lazy tabs, shared settings, state files, workers and WStack-to-WCCD hand-off.
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.
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.
WStack integration
Host callbacks, settings mapping, matched-stack contracts, safe rebase sequence and conflict policy.
Technical baseline
- Main application: flat Python module layout with a PyQt5
MainWindowinkopr.py. - Six persistent tab positions; widgets are created once on first access and retained in a cache.
- WStack implementation:
wstack.py,wstack_functions.pyandwstack_common.py; R74 retains the sharedrawmaterialization.pyboundary, 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 throughcometfinder.pyandstarmeasure.py; manual aperture/ACF primitives remain inphotom.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 bywccd.pyandautophot.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.