Files
weatherreporter/docs/releases/v0.9.0.md

6.3 KiB

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:

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, CLI reference, and Promptkit integration 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 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 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.