From 2dbba36bf071e7aa6c8311c91d909aa1c2e056b4 Mon Sep 17 00:00:00 2001 From: Eric Rakestraw Date: Fri, 31 Jul 2026 19:22:43 +0000 Subject: [PATCH] Document Weatherreporter v0.9.0 --- docs/releases/v0.9.0.md | 134 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 docs/releases/v0.9.0.md diff --git a/docs/releases/v0.9.0.md b/docs/releases/v0.9.0.md new file mode 100644 index 0000000..e5b59e4 --- /dev/null +++ b/docs/releases/v0.9.0.md @@ -0,0 +1,134 @@ +# Weatherreporter v0.9.0 + +Weatherreporter `v0.9.0` replaces its external Scriptorium execution path with +an in-process Promptkit integration and makes prompt preparation, execution, +validation, and failure artifacts first-class parts of each report run. + +## Summary + +- Promptkit `v0.4.0` now executes all generated text for Daily, Today, + Tomorrow, and Hourly reports. +- The four exact-version prompts and their JSON Schemas are embedded in the + Weatherreporter binary. +- Prompt preparation and execution have separate durable, redacted provenance + records, while sensitive prompt debugging is explicit and stored outside the + managed workspace. +- Weather API collection now performs a warmup request and retries transient + transport, read, and selected HTTP failures. +- Release binaries now report their embedded version and are published with + checksums through a guarded Woodpecker pipeline. + +## Compatibility + +This pre-`v1` minor release contains intentional configuration, CLI, and +artifact changes that require review when upgrading from `v0.8.0`. + +- The `scriptorium:` configuration section is no longer supported. A file that + contains it fails with a migration error instead of silently ignoring it. + Use `promptkit:` configuration instead. +- The previously exposed but unfinished three-day, weekend, and storm report + surfaces have been removed. Supported report IDs and `generate` commands are + `daily`, `today`, `tomorrow`, and `hourly`. The retired `storm_id` + Distributor template variable is also no longer accepted. +- Generate and batch result items now expose `preparationPath` and + `executionPath` instead of the Scriptorium-oriented `preflightPath` and + `generatedTextResultPath`. An opt-in prompt capture may also add + `llmDebugPath`. +- New runs write `weatherreporter.metadata.v2`, which records Promptkit + preparation and execution paths. Inspection and prior-run lookup continue to + read existing `weatherreporter.metadata.v1` records. +- The built-in `weather_api.precision` default changed from `1` to `0`. + Configurations that explicitly set a value retain that value. +- Report prose may differ because the embedded prompt corpus, structured + output path, alert presentation, and SPC background context have changed. + +The documented Go version remains 1.26. Distributor integration remains at +`v0.5.0`. Existing managed workspaces do not require conversion. + +## Upgrade + +Replace the old Scriptorium block in the Weatherreporter configuration. The +smallest equivalent Promptkit block is: + +```yaml +promptkit: + timeout: 2m +``` + +The embedded prompts default to the Promptkit `gemini-flash-latest` profile. +Ensure that the selected profile's credential environment variable is present, +or configure `promptkit.profile`, an external `profile_file` or `profile_dir`, +or the optional `promptkit.local` backend. Direct per-request API keys are not +supported by Weatherreporter. + +Before upgrading automation or downstream processing: + +1. remove any `three-day`, `weekend`, or `storm` command, report override, and + `storm_id` template usage; +2. update consumers of action-summary JSON to use the new preparation and + execution path fields; +3. decide whether to retain the new precision default or explicitly configure + the previous value; and +4. preserve the existing workspace if historical V1 runs must remain + inspectable. + +Scriptorium, its executable configuration, and its external prompt corpus are +no longer needed by Weatherreporter. See the +[configuration reference](../config.md), [CLI reference](../cli.md), and +[Promptkit integration](../integrations/promptkit.md) for the current +contracts. + +## Changes + +### Prompt Execution And Artifacts + +- Added a project-owned Promptkit adapter with exact prompt and profile + inspection, prepare-once execution, error classification, and bounded + execution timeouts. +- Embedded version `1.0.0` of the Daily, Today, Tomorrow, and Hourly prompts and + their private generated-text schemas. +- Added durable preparation and execution receipts with prompt, profile, + backend, model, hashes, timings, validation status, classified failures, and + paths to every artifact reached during the run. Credentials, endpoints, + rendered messages, request parameters, and generated content are excluded + from these managed records. +- Added `--llm-debug-dir` for explicitly requested content-rich diagnostics. + Debug output must use an absolute path outside the managed workspace and is + written with restrictive filesystem permissions. +- Preflight now validates each exact prompt and selected profile before weather + collection. Batch execution validates every candidate first, collects once, + and retains independent report progress and failure artifacts. + +See the [operations guide](../operations.md) for artifact layout, inspection, +debug handling, and recovery. + +### Weather Collection And Report Content + +- Added a `/conditions/current` warmup before source collection and automatic + retry for transient transport and response-read failures and HTTP `408`, + `429`, `500`, `502`, `503`, and `504` responses. +- Changed the default upstream precision query value to `0`. +- Added embedded background definitions for recognized SPC categorical, + tornado, wind, and hail outlook products. +- Made the Alert Digest more concise: alert descriptions are omitted, and an + SPC-only digest is rendered only for Enhanced, Moderate, or High categorical + risk. +- Removed duplicated alert detail from the prompt-facing metadata module; the + alert digest remains its single prompt-facing owner. + +See the [Weather API integration](../integrations/weatherapi.md) for the request, +retry, and response contract. + +### CLI, Documentation, Testing, And Releases + +- Added `weatherreporter --version`; tagged binaries report `v0.9.0`, while + ordinary local builds report `development`. +- Reworked CLI summaries and inspection coverage around the Promptkit artifact + lifecycle and retained partial-result behavior. +- Reorganized contributor, policy, user, operator, integration, template, and + internal documentation around explicit canonical owners. +- Added focused single-report, batch, CLI, Promptkit adapter, durable-state, + and artifact-path coverage while simplifying orchestration internals. +- Added guarded tag validation and reproducible release builds for Linux, + macOS, and Windows on `amd64` and `arm64`, with SHA-256 checksums and + changelog-backed Gitea releases.