Tags: DanWBR/NINA.Polaris
Tags
fix(android): the app froze on every launch, jmDNS ran on the main th…
…read
capacitor-zeroconf posts watch/unwatch/close to the main looper:
getBridge().executeOnMainThread(() -> implementation.watchService(...))
watchService() builds the JmDNS instance, takes the WiFi multicast lock and
opens sockets; close() tears it down. That is hundreds of ms to seconds of
blocking work on the UI thread, a few seconds after launch, every launch,
with or without tabs open. iOS is unaffected: its half of the plugin uses
Bonjour, which is async.
Not awaiting the promise in JS does not help, the block is inside the plugin.
android-postadd.sh now rewrites those calls to Bridge.execute(), which posts
to the background taskHandler. None of the three methods touches the view
hierarchy. Idempotent, and it runs before cap sync in CI.
Live stacking, filter names and the Android app - MetricsOnly relayed nothing, so the LIVE image froze on the frame from before the stack started and the WASM client had no pixels to accumulate - changing the live-stack compute mode in the UI did not take effect until the next client connect or rig switch - a WASM client that goes silent no longer leaves nobody stacking: the server takes the accumulation back - filter names were lost on a page reload (the restore fired once, before the rig list had loaded) - incoming frames are processed one at a time instead of piling up on the main thread - Android: discovery awaited ZeroConf.close() on the launch path and froze the app on relaunch; discovery now stops when it is no longer needed
fix(focus): the manual focus loop idled 2 s between frames PREVIEW and FOCUS use the same 2 s default exposure, but FOCUS added a 2 s pause on top, so its cycle was twice as long and operators focused in PREVIEW instead. - default the interval to 0: capture back-to-back, like the PREVIEW loop - honour 0 (the scheduler had a 500 ms floor) by chaining on $nextTick - allow 0 in the input, which had min="1", and say what it does
AUTORUN reset keeps the items; frame recentres on panel changes - POST /api/sequence/reset zeroes the progress without touching the items - AUTORUN Reset now calls it; a new Clear button removes every item - pan/zoom remembers which fit produced the transform and rebuilds it from a ResizeObserver on .preview-area, so LIVE / PREVIEW / VIDEO stay framed when the sidebar is dragged, collapsed or hidden - tap-to-hide releases the sidebar's reserved margin so the frame uses the whole pane - locales: 4 new strings, and "Autorun cleared" no longer says "disabled"
feat: offer the Polaris denoise model and document it - add denoise polaris-1.0 with its fp16, int16 and int8 builds, now published - AI denoise page entry covers all three models and notes that only the Polaris one has int16 and int8, so GraXpert v3 cannot run on the Hexagon NPU at all Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
feat: name power-box channels per rig and split readings from controls - SwitchChannel gains a stable Key (PROPERTY.ELEMENT over INDI, #index over ASCOM/Alpaca) that survives reconnects, unlike the positional id - per-rig SwitchChannelNames map, overlaid by the API as displayName - PUT /api/switch/names to store them - power box panel renders read-only channels as a separate Readings block instead of interleaving sensors with outlets - rename mode in the panel; new strings translated in pt-BR, es, fr and de Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix: relay preview frames without blocking the capture handler - RelayImageAsync fans the raw frame out fire-and-forget instead of awaiting the per-client WebSocket drain - capture cadence is no longer gated by the browser download speed; a slow client skips frames via the existing SendLock backpressure - LatestImage cache + LZ4 still run synchronously, so /api/image/latest and GetLatestJpeg are unchanged - detached send uses CancellationToken.None so a disposed caller CTS cannot fault an in-flight send Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
docs: update the Orange Pi 4 Pro benchmark to 180 (Polaris 0.96.3) Was 156/147 on Polaris ~0.90; the newer build's faster capture/encode path lifts it to 180, no thermal throttling. Refresh the reference table, the website row, and the assistant knowledge mirror. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix: write the camera OFFSET to saved FITS/XISF when the driver omits it EnrichMetadata already back-fills GAIN, camera name and BayerPattern from the connected rig when the per-frame metadata came in empty, but had no twin for OFFSET, so save paths that do not stamp it (flat wizard, live-stack auto-save, client-saved stacks, native SDK adapters) wrote no OFFSET card. Fill m.Camera.Offset from the rig's DefaultOffset (what was actually applied) when it is 0; the writers still emit OFFSET only when non-zero, matching GAIN. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
PreviousNext