Version history

Every change to the Roger Wilco Imagery pipeline and this site, numbered and dated. Versions follow semantic versioning while the project is pre-alpha (0.x).

Pipeline
v0.8.4
commit 1737a35
Frontend
v0.20.0
built 30 Oct 2026 04:30 MDT (10:30 UTC)

Pipeline

Data collection, analysis and reporting.

v0.8.4
  • Workflows free about 20 GB of unused runner toolchains (dotnet, Android, GHC, CodeQL, Boost) before checking out the repo. The 29 Oct daily pickup failed with "No space left on device": the checkout is now about 8 GB of data, too much for the runner's free space once the pickup's downloads are added. Longer term, raw chips and logs need to move out of git.
v0.8.3
  • Cloud mask v2 everywhere Sentinel-2 is read. incident_pull.py (baseline must pass it; dNBR compares only pixels both masks call clear;
  • cloudmask.mask(min_area=…): extra-test cloud patches smaller than this are left alone. detect.py uses 200 px (aircraft are at most 60 px) and
  • Heat sources (roadmap flare-vs-fire, step 1). scripts/heat_sources.py learns which hot spots burn all the time from FIRMS history (a
  • incident_pull.py: VIIRS near-real-time granules (*_NRT, from LANCE) failed with "file signature not found" since 27 Oct: requests dropped
  • task.py: the imagery step passed --bbox W,S,E,N as two arguments, so a western-hemisphere box (leading minus) failed with "expected one
  • *Incident pull* workflow: no longer reports failure when trigger line 2 (GOES) is empty.
v0.8.2
  • Tasking (custom runs), phase 1. sources.yaml lists what can be tasked: Sentinel-2, Sentinel-1, Landsat, VIIRS granules, FIRMS,
  • incident_pull.py: Sentinel-1 scenes that only have HH/HV (most Canadian and Arctic SDH acquisitions) are read as HH instead of
v0.8.1
  • Cloud mask v2 for the daily pickup (scripts/cloudmask.py). SCL let fair-weather cumulus and haze through as clear: Rzeszów on 27 Oct scored
  • Sentinel-2 raw chips gain a sixth layer, B11 (SWIR 1.6 µm), used for snow vs cloud.
  • On the 103 saved passes with a baseline (tools/cloudmask_eval.py): Rzeszów 27 Oct 09:36 1.00 → 0.46 clear (no longer usable), 09:46 change
  • Not yet: detect.py, incident_pull.py and wilco_analysis.py still use SCL alone.
v0.8.0
  • Lead differentiation test (journalist hold). SITREPs 014 and 015 were built as a test of differentiated leads: the full report (with
  • Lead status register (reports/lead-status.yaml).
  • NASA FIRMS map key: scripts/firms_area.py and the *FIRMS area pull* workflow (any box, any dates, every satellite). Two keys as named
  • Tracks end as closed or aborted and stay in the Track archive; TRK-001–007 ended.
  • ADS-B archive scanner: --hex (whole-day traces) and a bases profile (aircraft using each detect site); commit step keeps any
  • scripts/identify_counts.py: names for ship and aircraft counts from transponders (roadmap item ship-air-counts; first run pending).
  • Reports: SITREP 014 (Israel election day), SITREP 015 (four zones, 21–27 Oct); Wainwright airlift whole-route plate.
v0.7.0
  • Ship counts from Sentinel-1 radar (CFAR detector on a JRC surface-water mask) and transient-aircraft counts from Sentinel-2 (change vs a multi-scene median on OpenStreetMap aprons), with size classes and annotated plates (scripts/detect.py).
  • ADS-B logging of military-flagged aircraft near watchlist sites every 20 minutes (adsb.lol, no key) and optional AIS logging (aisstream.io, needs AISSTREAM_API_KEY), stored on the tracks branch; detections are matched to these for identities.
  • Pilot sites flagged detect: true: Halifax, Esquimalt, Norfolk, Trenton, Winnipeg, Barksdale.
v0.6.0
  • Added 65 radar sites: the full North Warning System (45 in Canada, 6 on Alaska's North Slope) and 14 Alaska Radar System (NORAD) long-range radars. New program field.
  • Added 12 Canadian installations and detachments abroad: operational support hubs (Kuwait, Germany, Senegal, Jamaica), Formation Europe/SHAPE, NATO Geilenkirchen, Stavanger, Lille, Izmir, and NORAD sites in Colorado Springs and Alaska.
  • Watchlist now 164 sites (160 active).
v0.5.0
  • Added 38 Canadian military installations (all CAF bases, wings, support bases and stations on DND's footprint list, plus major training areas, Ottawa HQ sites, and northern forward operating locations). Canada now has 43 sites; watchlist 87.
v0.4.2
  • Added Taman Peninsula (Crimean energy-bridge substation area) and a coarse peninsula-wide Crimea box after the 23–24 Oct blackout strike. Watchlist now 49 sites.
v0.4.1
  • Every site tagged with a geographic region, US combatant command (area of responsibility) and a list of countries, for filtering.
v0.4.0
  • Every watchlist site now carries an added timestamp (backfilled from git history).
  • SITREP register (reports/index.yaml) for numbered reports; frontend builds from it.
  • SITREP 002 issued; shared report styles.
v0.3.1
  • Southern Lebanon box extended north to cover the Nabatieh area.
  • Gaza box flagged: rectangle includes Israeli territory; polygon support pending.
v0.3.0
  • Quicklook-only mode with georeference sidecars for long look-back windows.
  • 7-day pull; weekly SITREP 001 (7 d / 72 h / 24 h) with annotated plates and news correlation.
v0.2.0
  • Watchlist expanded to 47 sites: +10 bases, +3 conflict zones, +10 infrastructure sites.
  • 3-hourly FIRMS thermal watch with persistent-site baselines, seeded with 7 days.
v0.1.0
  • First watchlist (18 bases, 6 zones), daily pickup of Sentinel-2, Sentinel-1, Landsat 8/9 and FIRMS.
  • First 48-hour run and analyst SITREP.

Frontend

This website.

v0.20.0
  • The v2 interface is the site. Its pages now live at the root, so the address bar shows /, place/…, report/… and map.html instead of /v2/….
  • The classic site is archived at /v1/: the last build that still had it (29 Oct 2026, 06:26 UTC), frozen by tools/make_v1_archive.py in archive/v1/.
  • tests/hold_leak_test.py checks the root pages.
v0.19.1
  • A carried-forward lead now stays held until the lead it repeats is released. SITREP 017's L4 repeats SITREP 016's L1 word for word; under a live hold it would have published 016's lead early. The deploy's hold-leak test caught it and blocked every build since the pipeline published SITREP 017.
  • Build: blobless pipeline checkout, and runner disk freed before checkout (deploys had been failing with "no space left on device").
v0.19.0
  • Tasking, phase 1 (admins only): a Task page (v2/task.html, "Task" in the rail, "Task a pass" on every place page) to order a custom run of all sources, a preset (imagery, fire, air) or a hand-picked set, for one to ten targets (a watchlist site, a point and radius, or a box) over a date range.
  • Fixed: the full-screen Map was 2 px tall (a 0.16.1 rule for the map's fallback message overrode its layout), so on phones it showed no map at all.
  • Map on phones: the Layers and time panel folds to one line at the top of the map; tap it to open.
  • The CSS and JS links carry a hash of their content (v2.css?v=…), so phones and browsers pick up a new deploy instead of an old cached stylesheet (the stray "▶ More" over the phone tab bar).
v0.18.0
  • The classic site is retired. Every page now uses the v2 interface:
  • Place pages now carry everything the classic site page had: every pass, every heat detection, resolution and status.
  • Fixed: links from place-page timelines to Thermal watch and Tracks pointed inside v2/ (broken since 0.16.1); Watch reports' links to files in the day folder; the Roadmap status filter showed only "All" (the lead status labels had replaced the roadmap's); Thermal watch's feed list showed a raw Python dict.
  • Removed the classic page builders that are now redirects.
  • Thermal watch and Tracks have native v2 pages:
  • Signals, MILAIR and Wilco Watch have native v2 pages too:
v0.17.0
  • The home page is now the v2 analyst interface. The classic Overview moved to overview.html; "Classic site" in v2 and "New interface" on the classic site switch between them, and the home page remembers the choice. No other URL changed.
  • Watches in v2: a Watches page (latest day of each Area Watch, with plates, plus Wilco Watch) and a page per Watch with every day and the full report. Today links there.
  • Signed-in accounts keep their starred places and last visit on the account (account/prefs.php), so they follow you between devices; stars made before signing in are kept.
  • Lead status from the site (account/lead-status.php): admins (config.php admin_emails) set a lead's status on the Leads board or a report page; approved journalists report an outcome (confirmed, story published…) with a link and note, which an admin accepts or dismisses on the Leads page. Status shows live on v2 and in leads.php. php accounts.php lead-status-yaml prints the site's statuses for the pipeline's reports/lead-status.yaml; php accounts.php outcomes lists reports waiting for review.
v0.16.1
  • v2 respects the journalist hold: held leads never appear on Today, Leads, report pages or in search. Report pages show "N new leads held for journalists until …" and fill in from leads.php for approved journalists, or once the hold ends.
  • The build now refuses to publish if any held lead's text is in a public file (anything outside desk/ and account/), and the deploy runs a simulated-hold leak test first.
  • Today: routine heat (flares, refineries, known sources) is folded into one line per day; Watches with nothing notable are folded into one "Nothing out of pattern on N Watches" line, so every Watch is counted.
  • Plain satellite names (VIIRS (NOAA-21), MODIS) instead of feed codes; times just ahead of the clock read "just now".
  • Maps render again: CARTO now answers keyless requests with an "API KEY REQUIRED" image, so v2 uses keyless Esri grey basemaps (light or dark with the theme) with a Map / Satellite switch, falls back to OpenStreetMap, and says so if no tiles load. Leaflet 1.9.4 is bundled in assets/vendor instead of loaded from unpkg.
  • Phone filter rows fade at the edge to show they scroll.
v0.16.0
  • Preview of the new analyst interface at /v2/, built alongside the classic site (nothing in it changes).
v0.15.1
  • Leads page and journalist desk say when the 24-hour journalist hold is paused (read from the pipeline's HOLD_PAUSED_UNTIL), instead of promising an exclusive that is not running. The usual wording returns on its own when the pause ends.
v0.15.0
  • New Watches page (Reports → Watches): the latest day of every Area Watch (Vegas, Mojave, San Diego, Central Coast, LA, NorCal) with its notable items, flight and heat counts and new satellite plates, plus Wilco Watch. Each Watch has its own page (watch/<area>.html) with every day on record and the full report.
  • New MILAIR page (Monitor → MILAIR): military, state, contractor and police aircraft over 18 Canadian cities, with the daily CSVs.
  • Menu: the "Watch" group is now "Monitor", so it no longer clashes with the Watch reports; Wilco Watch moved under Reports.
  • Capabilities: each card links to where you can see it, and shows one filled status badge (Live / Testing / Paused) with a separate New badge.
v0.14.0
  • Header: one row on every device. The 15 links are grouped into Overview · Reports (SITREPs, Hindcasts, Briefs) · Leads · Watch (Sites, Tracks, Thermal watch, Signals, Wilco Watch) · About (Method, Capabilities, Proofs, Benchmarking, Versions, Roadmap); every page keeps its URL. Phones and tablets get a Menu button that lists every page under its group.
  • Header stays pinned while scrolling again (the 0.12 account widget had turned that off); links to a SITREP or lead ID land below it.
  • The two sign-in buttons are now one Sign in menu; once signed in it shows your name, with the desk and account links.
  • Overview banner is shorter, from the brand pack's website header, so the latest report shows on the first screen.
v0.13.0
  • Journalist hold: a report's new leads are exclusive to approved journalists for 24 hours. Public pages and PDFs show a "held" notice; leads.php, report.php and plate.php release them on the minute, without a rebuild. Full PDFs, lead data and held plates sit in desk/_data and desk/_files, which the web server refuses.
  • New public Leads tab: every lead after its hold, with status and links back to its report.
  • Journalist desk is now a lead dashboard: permanent lead IDs (<report>-L<n>), desk exclusives with countdowns, status (open / confirmed / killed / stale / story published), lineage (carried from / carried into), filters.
v0.12.0
  • Accounts: separate journalist and corporate sign-in (PHP; own tables, cookies and approval queues). Sign-in buttons top right on every page.
  • Journalist desk (/desk/), gated to approved journalist accounts: every reporter lead from SITREPs, hindcasts and briefs in one searchable list, newest reports, live tracks, and how to credit RWI. Press styling (Sky / Mountain Blue accent).
v0.11.0
  • SITREPs: reporter leads (things in our data that no reporting explains yet) shown first on each report, with a lead count tag, a revision tag, and a "Leads only" filter (?leads=1). Leads are searchable.
  • New SITREP type: Intra-day.
v0.10.2
  • Privacy page (draft placeholder, PIPEDA / Alberta PIPA) rendered from docs/PRIVACY.md and linked in the footer.
v0.10.1
  • Terms of Use page, rendered from the pipeline's docs/TERMS.md, with a draft banner while it is not in force; linked from the footer of every page (private and public sites).
v0.10.0
  • SITREPs page: strictly newest first (by issue time), with search and filters for type (daily, weekly, special…), place and month, plus an oldest-first toggle. Filters are kept in the URL so a filtered view can be shared. Each SITREP shows its type and the places it covers.
  • Overview "Latest report" now picks the most recently issued SITREP.
v0.9.4
  • Wilco Watch: each day now carries an automated daily read (optical and radar change with labelled patches, snow, weather, night lights, thermal) and a change plate.
v0.9.3
  • Wilco Watch is now filed under DOGINT (type label "DOGINT · neighbourhood watch", page kicker). Small DOGGOINT easter egg in the page footer.
v0.9.2
  • Wilco Watch page now reads from the wilco-watch archive repo when it is available (falls back to the pipeline's copy). Only the marked images are published; the unmarked chips stay in the archive.
v0.9.1
  • SITREP imagery is now collapsed behind an expandable "Imagery — N plates" toggle.
  • Deploy fix: the staging branch now keeps a normal history so Hostinger's Git redeploy can pull it; HTML/JSON are served no-cache so a redeploy shows at once.
v0.9.0
  • New Wilco Watch page: daily Killarney-to-Beltline look (newest and latest clear Sentinel-2 pass, newest Sentinel-1 radar, 24 h thermal count), house marked as Wilco HQ. No address is published.
v0.8.1
  • SITREPs page shows each report's plates as thumbnails that open the full image.
v0.8.0
  • New Benchmarking section: graded evaluations of RWI output against Prime Rogue's published analysis and other coverage (BENCH-001 self-evaluation #1, BENCH-002 Global News coverage benchmark), bylined Roger Wilco Imagery.
v0.7.0
  • Place names and site IDs anywhere on the site (thermal watch, signals, SITREP list, roadmap, site pages) now link to that place's page.
v0.6.0
  • Sites: new Visual change column and filter — latest clear Sentinel-2 pass vs baseline, graded No change / Minor / Undetermined change / Change + heat / Scene-wide (season, snow).
v0.5.2
  • Method page corrected: SITREPs are LLM-generated and automated (not analyst-written); Analyses are human and signed.
v0.5.1
  • Disclosure on the SITREPs and Method pages and in every footer: SITREPs are LLM-generated and automated; Analyses are human-written and signed by their author.
  • Footer links Prime Rogue Inc. to primerogueinc.com.
v0.5.0
  • Roger Wilco brand (tentative): Wilco mark and wordmark in the header, brand palette in dark and light modes, Wilco hero on the overview, Wilco favicon/home-screen icon, footer motto.
v0.4.1
  • All timestamps shown in Calgary time (MST/MDT) with UTC in brackets after.
v0.4.0
  • Signals page: night-lights flags (VIIRS) and dark-ship candidates (radar ships with no AIS).
  • Proofs page: SHA-256 manifest of every SITREP and data drop, with its OpenTimestamps anchor.
  • Markdown tables (thermal watch, signals) now render with proper headers.
v0.3.0
  • Roadmap page: releases 0.8–0.11 with every planned item's purpose, sources, method, outputs, done-when, risks and dependencies; filter by status. Built from the pipeline's roadmap.yaml.
v0.2.0
  • Site register: separate filters for geographic region, US combatant command and country (plus type and search), with counts; filters are kept in the page link so a filtered view can be shared.
  • Region and combatant command shown in the register and on each site page.
v0.1.1
  • Dark mode is now the default, with a light/dark toggle in the header (remembered per browser).
v0.1.0
  • First build: overview, site register with dates added and map, per-site history pages (imagery + thermal detections), numbered SITREP archive, thermal watch, method page.
  • Version history page shared by the private site and a standalone public build.
  • Static output (dist/private, dist/public) for Hostinger; daily rebuild via GitHub Actions with optional SFTP deploy.

Pipeline commit log private

Latest 60 commits, including automated pickups.

CommitWhenMessage
1737a3530 Oct 2026 04:16 MDT (10:16 UTC)FIRMS watch 2026-10-30T10:16Z
5ee2ae330 Oct 2026 01:57 MDT (07:57 UTC)tracks 2026-10-30T07:57Z
c0e40dc30 Oct 2026 00:39 MDT (06:39 UTC)Ship watch 2026-10-30T06:39Z
22d75e930 Oct 2026 00:38 MDT (06:38 UTC)Provenance 20261030T0638Z
e21a3a429 Oct 2026 19:46 MDT (01:46 UTC, 30 Oct)tracks 2026-10-30T01:46Z
6cc439e29 Oct 2026 19:11 MDT (01:11 UTC, 30 Oct)Provenance 20261030T0111Z
98f9a0729 Oct 2026 19:04 MDT (01:04 UTC, 30 Oct)SITREP 019 — daily 29–30 Oct: LNG Canada daytime heat pair (lead), Gagetown quieter with no burn image yet, Arctic radar-site changes are snow
03db44429 Oct 2026 19:01 MDT (01:01 UTC, 30 Oct)Alerts 20261030T0101Z
bbdd97d29 Oct 2026 18:52 MDT (00:52 UTC, 30 Oct)FIRMS watch 2026-10-30T00:51Z
81af65129 Oct 2026 18:43 MDT (00:43 UTC, 30 Oct)Pickup 20261030T0043Z (36h window )
339ec2529 Oct 2026 18:20 MDT (00:20 UTC, 30 Oct)Area Watch 2026-10-30
ab12dbb29 Oct 2026 18:15 MDT (00:15 UTC, 30 Oct)Night lights 20261030T001511Z
72ac32b29 Oct 2026 18:09 MDT (00:09 UTC, 30 Oct)Daily pickup, 36 h (covers the failed 29 Oct run) for the daily SITREP
325c9c529 Oct 2026 18:08 MDT (00:08 UTC, 30 Oct)Merge pull request #5 from primerogueinc/ci/free-disk
41b098f29 Oct 2026 18:06 MDT (00:06 UTC, 30 Oct)Ship watch 2026-10-30T00:06Z
80d833829 Oct 2026 17:56 MDT (23:56 UTC)Incident pull 20261029T235635Z
eebc94b29 Oct 2026 17:51 MDT (23:51 UTC)Area Watch 2026-10-29
086971129 Oct 2026 17:41 MDT (23:41 UTC)Wilco Watch 2026-10-29
5c7c10229 Oct 2026 17:04 MDT (23:04 UTC)Provenance 20261029T2304Z
27234e829 Oct 2026 16:51 MDT (22:51 UTC)Provenance 20261029T2251Z
4771e1329 Oct 2026 16:46 MDT (22:46 UTC)SITREP 018 — 29 Oct daytime: Gagetown day 2, cause confirmed (artillery into Lawfield Impact Area); SITREP 017 L1 confirmed; Tunisian C-130J at St. John's
53dda6429 Oct 2026 16:46 MDT (22:46 UTC)Drop SITREP 018 plates swept into the 0.8.4 commit by mistake (they go to main with the SITREP)
56f0caf29 Oct 2026 16:36 MDT (22:36 UTC)0.8.4: free runner disk before checkout in every full-checkout workflow (daily pickup failed: no space left on device)
137ed0f29 Oct 2026 16:23 MDT (22:23 UTC)Detections 20261029T2222Z
40ec62629 Oct 2026 16:22 MDT (22:22 UTC)Roadmap: lead-to-story tracking (0.9.0) — confirm stories that follow our leads and record our lead time; 3-hourly news agent
157ee3029 Oct 2026 16:14 MDT (22:14 UTC)Heat sources 2026-10-29T22:14Z
bc5426229 Oct 2026 15:56 MDT (21:56 UTC)Incident pull: Gagetown VIIRS granules 28–29 Oct (checks the 0.8.3 near-real-time login fix)
f3da8dc29 Oct 2026 15:54 MDT (21:54 UTC)Merge pull request #4 from primerogueinc/cloudmask-everywhere
59f460e29 Oct 2026 15:09 MDT (21:09 UTC)tracks 2026-10-29T21:09Z
9cab19729 Oct 2026 14:50 MDT (20:50 UTC)Incident pull 20261029T205018Z
0e5485b29 Oct 2026 14:41 MDT (20:41 UTC)Task trigger/task.json
144e2a829 Oct 2026 14:38 MDT (20:38 UTC)Gagetown re-run 28–29 Oct: task (FIRMS, GOES) + incident pull (S2, Landsat, S1, VIIRS)
509f4e829 Oct 2026 13:49 MDT (19:49 UTC)Night lights 20261029T194903Z
7dc293229 Oct 2026 13:46 MDT (19:46 UTC)Ship watch 2026-10-29T19:46Z
ada166829 Oct 2026 12:42 MDT (18:42 UTC)Alerts 20261029T1842Z
094419829 Oct 2026 12:36 MDT (18:36 UTC)FIRMS watch 2026-10-29T18:36Z
36c03fa29 Oct 2026 10:51 MDT (16:51 UTC)Libya landing watch 2026-10-29T16:51Z
84e545629 Oct 2026 10:43 MDT (16:43 UTC)ADS-B history 2026-10-28
4732f9529 Oct 2026 09:06 MDT (15:06 UTC)tracks 2026-10-29T15:06Z
1e2d94b29 Oct 2026 08:16 MDT (14:16 UTC)History pull 2026-10-29T14:16Z
dc7110029 Oct 2026 08:11 MDT (14:11 UTC)History pull: ERA5 weather at Wainwright Health Centre, 17–18 Oct (SAR jump)
168733629 Oct 2026 07:52 MDT (13:52 UTC)Provenance 20261029T1352Z
f876fd329 Oct 2026 07:46 MDT (13:46 UTC)Ship watch 2026-10-29T13:46Z
a956de829 Oct 2026 06:50 MDT (12:50 UTC)Provenance 20261029T1250Z
b88777129 Oct 2026 06:45 MDT (12:45 UTC)SITREP 017 — 28–29 Oct 2026 (the CFB Gagetown fire): GOES/VIIRS timeline, Djibouti and Zawiya plates, 5 leads
a15b4ef29 Oct 2026 06:36 MDT (12:36 UTC)0.8.3: cloud mask v2 in every Sentinel-2 reader; heat-source catalogue (flare-vs-fire step 1); VIIRS NRT token fix; task --bbox fix
fd7300c29 Oct 2026 06:13 MDT (12:13 UTC)Incident pull 20261029T121345Z
a38616f29 Oct 2026 06:08 MDT (12:08 UTC)Incident pull: CFB Gagetown post-fire imagery 28–29 Oct (S2, Landsat, S1)
fc5174729 Oct 2026 06:07 MDT (12:07 UTC)Task trigger/task.json
985e1ec29 Oct 2026 06:06 MDT (12:06 UTC)Task: post-fire imagery check, CFB Gagetown 28–29 Oct (S2, S1, Landsat, FIRMS)
5a1716929 Oct 2026 06:05 MDT (12:05 UTC)Task trigger/task.json
250f2d229 Oct 2026 06:03 MDT (12:03 UTC)Merge pull request #3 from primerogueinc/tasking-phase1
9d04bf129 Oct 2026 05:53 MDT (11:53 UTC)0.8.2: tasking phase 1 — sources.yaml, scripts/task.py, Task workflow; incident_pull reads HH-only Sentinel-1 scenes, --out/--name, ad hoc boxes
7177ca829 Oct 2026 05:46 MDT (11:46 UTC)Pickup 20261029T1146Z (12h window --out data/adhoc/2026-10-29-overnight)
c61c17329 Oct 2026 05:35 MDT (11:35 UTC)Incident pull 20261029T113553Z
d3666ea29 Oct 2026 05:31 MDT (11:31 UTC)GOES fire series over CFB Gagetown, 28 Oct 12:00 – 29 Oct 06:00 UTC (bbox arg fixed)
ff02aae29 Oct 2026 05:30 MDT (11:30 UTC)Incident pull 20261029T113038Z
3695fb129 Oct 2026 05:24 MDT (11:24 UTC)Overnight pickup (12h) — ad hoc, data/adhoc/2026-10-29-overnight
e99468129 Oct 2026 05:23 MDT (11:23 UTC)Incident pull: CFB Gagetown 21–29 Oct (FIRMS flag 28 Oct) + GOES fire series 28–29 Oct
3cd844929 Oct 2026 05:22 MDT (11:22 UTC)0.8.1: cloud mask v2 for the daily pickup (#2)