Astra modification, 2026-10-13, AGPL-3.0-only:
stellarium-web-engine.js: cap rendering devicePixelRatio at 2; compare canvas backing size to rounded CSS size times DPR, preventing a canvas reset on every frame on high-DPI screens. Original source src/js/canvas.js is in stellarium-source.tar.gz. No WASM changes.
2026-10-13 v2: render loop checks Module.astraPaused and document.hidden before updating/resizing. Astra pauses hidden screens and lazy-loads the engine on screen 2. Legacy pointer handlers are suppressed by a capture listener in sky.mjs; custom Pointer Events handle pan and pinch without document-wide mouse handlers.

Direction reporting (2026-10-13): public/constellation-boundaries.mjs contains the original B1875 polygons from src/algos/cst-boundaries.c. public/sky-target.mjs ports its lookup and J2000-to-B1875 matrix to JavaScript. Copyright 2022 Stellarium Labs SRL; AGPL-3.0-only. WASM is unchanged.
2026-10-13: listObjs snapshots g_ret before constructing SweObj. Constructors and filters reuse g_ret for attributes/designations; the upstream loop otherwise loses the remaining star pointers. Source-equivalent change: const pointers = g_ret.slice(); iterate pointers instead of g_ret.
