Appendix D — Release notes

Generated from the annotated v* tags (docs/make-releases.sh).

v0.94 — 2026-08-14

v0.94 — selection-aware culling, instant batch close, metadata-less CFA, Stellarium

Highlights:

  • Selection-aware image list — the culling keep-checks understand multi-selection: B group-toggles the highlighted rows (checks all; unchecks only when all are already checked), clicking a checkbox inside a multi-row selection retags the whole selection, and C closes every highlighted image. The context-menu entry is now Close & Remove from List, and it means it: decoded pixels, per-view copies, and all per-image state are freed on close. In-app results (Combine, transport, crop) carry the keep-check too.
  • Instant batch close — closing hundreds of blinked frames used to freeze the app for tens of seconds: each removed row triggered a full decode of its neighbour. Row removals now run signal-blocked with a single display fix-up, so clearing a 400-sub session is instantaneous.
  • Annotation-safe closing — when closed images carry unsaved annotation edits, one prompt covers the whole batch: Save Annotations writes every affected image’s default sidecar, Ignore and Close discards, Cancel aborts untouched.
  • Metadata-less CFA (mosaic sniffer) — planetary/solar capture tools can dump raw Bayer mosaics into plain grayscale PNG/TIFF with no pattern keyword anywhere. NebulaScope now detects the mosaic statistically on open and names the two candidate patterns in the status bar; Image ▸ Debayer ▸ Apply Choice to All in List (script: debayer bggr rcd all) stamps a forced pattern onto a whole capture stream. Born from — and illustrated in the manual by — the total solar eclipse of August 12, 2026.
  • Point Stellarium Here — the sky context menu can point a running Stellarium (Remote Control plugin) at the clicked J2000 coordinates, field of view matched: where Aladin/SIMBAD answer “what is this”, Stellarium answers “where is it in tonight’s sky”.
  • Clean canvasH now also hides the active-cell border and link buttons; with fullscreen (⌥F) the display is pure image, e.g. to preview a wallpaper.

Also: HISTORY.md, a development chronicle of how this program came to be; design notes on the removal cascade in DECISIONS; French translations for everything above.

v0.93 — 2026-08-06

v0.93 — PixInsight display interop, stretch history, DS9 palettes

Highlights:

  • PixInsight display interop — a PI-saved XISF now opens LOOKING as PI showed it, with far-out STF white points rebased onto the data range in closed form (histogram controls stay fully usable, SPCC channel balance preserved exactly; derivation in the book’s new Mobius-rebase appendix): the embedded display function (STF) applies on first view, embedded ICC profiles are honoured, and on macOS the window is colour-managed for wide-gamut (P3) panels. The transfer LUT adapts its resolution to the occupied window and the histogram’s curve overlay is evaluated exactly — imported stretches with far-out white points render smoothly.
  • Stretch undo history — every stretch/adjustment gesture is one undo step (drags coalesce): ⌘Z walks back to the as-loaded state, through Auto STFs, pastes, transport fits. Reload Original (⌘⇧R) re-decodes from disk and re-runs the first-view rules, itself undoable.
  • DS9 classic palettes — a, b, bb, he, cool, rainbow, standard, and the stepped i8, aips0, sls, reproduced from SAOImage DS9’s reference control points (renditions match DS9 exactly); compose with the invert/split modifiers. Requested by a user.
  • Save ergonomics — an in-memory result’s list entry takes the saved file’s name on every save path (Save Data As, Save Stretched As, script save); clicking any image in a save dialog adopts its base name, the extension following the chosen format.
  • Build provenance — the About headline and –version carry the exact git build id, so test binaries identify their commit.

An imported UNLINKED display function (the channel-equalizing STF that visually cancels an SPCC calibration) is flagged in the status bar with the remedy: Shift+U preserves calibrated colour. The import pipeline is regression-tested end to end via synthetic XISF fixtures and the new assert stretch script assertion.

Fixes: linked histogram drags are rigid (per-channel clamps no longer ratchet the channels’ offsets apart on repeated drags); the panel-resize cursor no longer sticks over overlay panel contents; the script cmap command actually applies the selected map.

v0.92 — 2026-08-04

v0.92 — list & session ergonomics, inline export options, display sampling

Highlights:

  • Large-list workflows — drag a list row onto any view cell to show it there; the list holds each image once (re-opening selects the existing row); batch opens fill the empty cells in the order given; Clear List & Close All (⌥C) sweeps the session in one stroke. Together with Apply to All and blink culling, per-filter inspection of a full night’s acquisitions is now a tight loop.
  • Inline save options — pixel depth (PNG/TIFF), quality (JPEG, and now WebP), and XISF compression are options INSIDE the save dialogs, enabled by the selected format — no follow-up prompts.
  • Display sampling — bilinear when zoomed out (kills the moiré that nearest-neighbour subsampling beats out of CMOS fixed-pattern noise), crisp nearest-neighbour at 1:1 and beyond.
  • Window & dialogs — ⌥F is the green button on a key (native full screen on macOS; maximize elsewhere); every file dialog starts in the current image’s directory.
  • Fixes — Zoom to Fit/1:1 acted on the wrong cell in split views (stale receiver); overlay panels no longer hide behind newly created cells after a split; Finder open events carry status-bar feedback and Console logging; proper French plural forms for counts.
  • Manual — §12 gains a real-data showcase: NGC 7331 with SN 2025rbs, a C11 beside a 180mm camera lens in linked views. Release notes now live in the annotated tag, rendered identically on the release page, in the manual appendix, and in both PDFs.

v0.91 — 2026-08-01

v0.91 — French localization, blink culling, crop tool, transport stretch fit

Highlights:

  • Français — the full UI is localized (system-language default, Preferences ▸ Language override, --lang CLI flag), alongside a French user manual and colour-transport chapter: on the manual site, and as a second PDF on every release. The .nsc script language and CLI output stay English as a stable, locale-independent API.
  • Colour transport, stage two — the non-destructive stretch fit (matches the transported look with zero data loss — cannot posterize, never amplifies noise) gains intensity weighting and an optional cross-channel colour-adjust stage for hue-rotation targets. Undoable; derivations in the new Colour Transport chapter.
  • Blink culling — keep-checks on every list row (toggle with B while blinking), then sort / move / remove checked frames; scriptable via tag/tagsort/tagmove/tagremove.
  • Crop to Visible Region (Shift+C) — full-bit-depth crop into a new list entry; the astrometric solution survives exactly (CRPIX rebase), annotations and stretch follow.
  • Keyboard zoom — > / < (10%) and . / , (3%), configurable; arrow keys reserved for panning.
  • Manual online — the documentation book is published at https://hugues-talbot.github.io/nebulascope/ (English) and /fr/ (français), rebuilt on every docs change.

Fixes: large TIFF re-open (Qt decode allocation limit), XISF→FITS metadata preservation (typed keyword values; standard cards synthesized from PixInsight properties), Save Annotations enabled for orientation-only state.

v0.90 — 2026-07-30

v0.90: OSC debayering (RCD validated against Siril, undoable), auto-reload interop, fast batch opens, shared STF, stretch-function shortcuts

v0.89 — 2026-07-28

v0.89: script-command CLI reference (–run list / –help ), Quarto documentation book, PDF attached to releases

v0.88 — 2026-07-28

v0.88: scripted documentation complete, dialog automation, transport CLI, macOS open fix

v0.87 — 2026-07-28

v0.87: testing + docs consolidation — 7 CTest suites on 3 platforms, PI interop fixtures, script-driven screenshots, zstd/Finder-open/split fixes

v0.86 — 2026-07-26

v0.86: XISF block compression re-enabled, save-time codec choice (Zstd/Zlib/Uncompressed); CI: Qt imageformats + Windows test DLL paths

v0.85 — 2026-07-24

Unit test with a cheap command language.

v0.84 — 2026-07-24

New features described in the manual, more extensive testing.

v0.83 — 2026-07-24

Rotation adding border persistent bug removed

v0.82 — 2026-07-24

Optimal transport colour match. Amazing feature.

v0.81 — 2026-07-23

General improvements to the user interface

v0.80 — 2026-07-23

This version sets up a workable distribution system on Github

v0.73 — 2026-07-23

This version is deployed on github

v0.72 — 2026-07-23

This version compiles on Windows, Linux and Macos

v0.71 — 2026-07-22

Version with side panels

v0.70 — 2026-07-21

New version with linked view. Totally cool

v0.52 — 2026-07-20

Now we have annotations, pretty solid and consistent.

v0.6 — 2026-07-21

This version now reads and displays sextractor catalogs as annotations.

v0.5 — 2026-07-19

Smooth display pipeline: dithered, interpolated rendering

v0.0 — 2026-06-26

v0.0: project inception — FITS/XISF inspector skeleton with histogram stretch