Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

All notable changes to `mostlyright`. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/); the project follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.8.0] — 2026-06-19 — GOES ABI L2 satellite ingest (free local tier)

Minor release: a new optional extra **`mostlyrightmd-weather[satellite]`** adds local-first GOES-16/19 ABI Level-2 single-pixel extraction at station locations, mirroring the `[nwp]` extra and the `forecast_nwp()` pipeline shape.

### Added
- **`weather.satellite()` fetcher + `[satellite]` optional extra** ([#78](https://github.com/mostlyrightmd/mostlyright-sdk/pull/78), Phase 25). Reads anonymous public NOAA NODD buckets (AWS `noaa-goes16/19`, GCP mirror) directly — no hosted backend — and returns a leakage-safe DataFrame of single-pixel ABI L2 derived products extracted at a station's ICAO lat/lon. Covers **GOES-16 and GOES-19** (the GOES-East lineage) across **10 products / 18 variables**: `ABI-L2-ACMC` (cloud/clear-sky mask — the primary CONUS product), `LSTC`, `TPWC`, `ACHAC`, `CTPC`, `AODC`, `DSIC` (stability indices), `DSRF` (downward shortwave radiation — full-disk, gated behind a one-time warning), and the 3D vertical profiles `LVMPC` / `LVTPC`.
- **`schema.satellite.v1`** with source identity `"noaa_goes"` (shared by live self-extraction and the future paid adapter so a cross-delivery model reconciles), a per-row `delivery` lineage enum `{live, hosted}` (informational only, NOT source-identity), `qc_status` (annotate-never-drop: `clean`/`flagged`/`suspect`), ICAO `^[A-Z]{4}$` station identity, and event-time (`scan_start/end`) vs knowledge-time (`as_of`) wiring through `KnowledgeView` so satellite is leakage-safe in `research()`/backtests.
- **Whole-file S3/GCS transport** (single full-object read into memory, not byte-range), a parquet cache tier at `~/.mostlyright/cache/satellite/...`, and a **fleet-ready backfill CLI** (`python -m mostlyright.weather.satellite backfill`) with crash-safe resume, an AWS/GCP `--mirror` selector, and an on-demand throughput probe.
- Lazy-imports the heavy deps (`boto3`/`s3fs`/`gcsfs`/`h5netcdf`/`xarray`) inside the public function — the module imports cleanly without the extra and raises `SourceUnavailableError` with a `pip install mostlyrightmd-weather[satellite]` hint when it is absent.

### Notes
- Dual version bump: PyPI `1.8.0` (`mostlyrightmd`, `mostlyrightmd-weather`, `mostlyrightmd-markets`) and npm `vts-1.8.0` (`@mostlyrightmd/core`, `@mostlyrightmd/weather`, `@mostlyrightmd/markets`, `mostlyright`). **This release is Python-only** — the TypeScript satellite reader is a deferred parity ticket (future `h5wasm` impl) per `CROSS-SDK-SYNC.md`; the npm `1.8.0` carries no satellite surface and bumps for version parity only.
- Known follow-ups (tracked, non-blocking — the bulk backfill is the not-yet-run path): wire cached-partition reads into `satellite(cache=True)`; have the backfill write finalized (schema-shaped) rows; add dead-PID/stale-lock recovery to the backfill progress lock.

## [1.7.0] — 2026-06-12 — GEFS/CFS ensemble member selection

Minor release: `forecast_nwp()` gains a `member=` ensemble-member selector for GEFS and CFS.
Expand Down
2 changes: 1 addition & 1 deletion packages-ts/core/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mostlyrightmd/core",
"version": "1.7.0",
"version": "1.8.0",
"description": "TypeScript SDK core for quants, ML pipelines, and AI agents: types, schemas, validators, temporal-safety primitives, and the research() join over weather data + prediction-market settlements. Local-first, no hosted backend.",
"keywords": [
"weather",
Expand Down
2 changes: 1 addition & 1 deletion packages-ts/markets/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mostlyrightmd/markets",
"version": "1.7.0",
"version": "1.8.0",
"description": "Prediction-market data for TypeScript / Node — Kalshi NHIGH/NLOW weather-contract resolvers, Polymarket discovery + settlement, and Kalshi + Polymarket trade history. For quants, backtesting, and ML training pipelines.",
"keywords": [
"kalshi",
Expand Down
2 changes: 1 addition & 1 deletion packages-ts/meta/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "mostlyright",
"version": "1.7.0",
"version": "1.8.0",
"description": "Public-data SDK for TypeScript — one import for quants, ML pipelines, and AI agents. Adapters ship weather (METAR, ASOS, GHCNh, NWS CLI) and prediction-market settlements (Kalshi NHIGH/NLOW, Polymarket) today; SEC filings, Federal Reserve series, court filings, FDA approvals, and equities are next. Local-first, no hosted backend.",
"keywords": [
"weather",
Expand Down
2 changes: 1 addition & 1 deletion packages-ts/weather/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@mostlyrightmd/weather",
"version": "1.7.0",
"version": "1.8.0",
"description": "Weather data for TypeScript / Node — live METAR (AWC), ASOS archive (IEM), historical observations (GHCNh), and NWS climate text products (CLI). For quants, ML training pipelines, and weather-bot agents. Direct public-API access, no hosted backend.",
"keywords": [
"weather",
Expand Down
2 changes: 1 addition & 1 deletion packages/core/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "mostlyrightmd"
version = "1.7.0"
version = "1.8.0"
description = "Python SDK for quants, ML engineers, and AI agents — one interface to public data. Adapters ship weather + prediction-market settlements (Kalshi NHIGH/NLOW, Polymarket) today; SEC filings, Federal Reserve series, court filings, FDA approvals, and equities are next. Schema-versioned, leakage-free, local-first. Imports as `mostlyright`."
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion packages/markets/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "mostlyrightmd-markets"
version = "1.7.0"
version = "1.8.0"
description = "Prediction-market data for Python — Kalshi NHIGH/NLOW weather-contract resolvers, Polymarket discovery + settlement, and Kalshi + Polymarket trade history. For quants, backtesting, and ML training pipelines. Imports as `mostlyright.markets`."
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion packages/weather/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "mostlyrightmd-weather"
version = "1.7.0"
version = "1.8.0"
description = "Weather data for Python — live METAR (AWC), ASOS archive (IEM), historical observations (GHCNh), and NWS climate text products (CLI). For quants, ML training pipelines, and weather-bot agents. Direct public-API access, no hosted backend. Imports as `mostlyright.weather`."
readme = "README.md"
license = "MIT"
Expand Down
6 changes: 3 additions & 3 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading