7.4 KiB
Weatherreporter v0.10.0
Weatherreporter v0.10.0 makes report execution stateless, adds stable
weather-specific Promptkit profiles, and turns every successful generation
into one atomic operator-owned Markdown output.
Summary
- Ordinary generation no longer creates or depends on a managed workspace, historical run artifacts, metadata, receipts, or prior snapshots.
generateandrunnow publish directly to operator-selected paths, with useful current-directory defaults when output flags are omitted.- Local Recent Changes comparison and the historical
inspectcommand family have been removed. - Promptkit
v0.5.0and three embedded logical profiles provide a stable model ladder with complete file- or directory-based overrides. - Prompt input and generated-text contracts have been tightened, and output, cancellation, batch preflight, notification, and partial-failure behavior have focused offline coverage.
Compatibility
This pre-v1 minor release intentionally breaks CLI, configuration,
prompt-input, action-summary, and workspace contracts from v0.9.0.
- The
workspace:andrecent_change:configuration sections are no longer supported. Strict configuration loading rejects them. - The
inspect reports,inspect metadata,inspect modules,inspect data-package,inspect prior, andinspect sourcescommands have been removed. Weatherreporter no longer reads V1 or V2 run metadata or other historical workspace artifacts. - Every successful
generatewrites exactly one Markdown file. Without--out, Daily writesdaily-YYYY-MM-DD.mdand Today, Tomorrow, and Hourly writetoday.md,tomorrow.md, andhourly.mdin the invocation's current directory.--outselects that file rather than creating an extra copy of a separately managed report. runwrites selected outputs beneath the current directory unless--out-dirselects another directory. Successful items remain available when another batch item fails.- Action summaries no longer expose managed report, metadata, snapshot, data
package, prompt preparation, prompt execution, generated-text, render-context,
or notification-receipt paths. They retain the final
outputPath, optionalllmDebugPath, safe effective profile/backend/model details, validation, warnings, notification status, and safe errors. - Batch report items no longer contain per-report notification fields. Batch
notification is represented once at the top level. The
total,succeeded, andfailedcounters describe reports only, so notification failure can produce a failed action whilefailedremains0. - The prompt data package advances from
weatherreporter.data_package.v3toweatherreporter.data_package.v4and removesrecent_changes. All four embedded prompts advance from1.1.0to2.0.0. - Generated-text schemas now require string-valued
precipitation_timing; the model returns an empty string when there is no timing text. The unusedconfidencefield has been removed and is rejected as an unknown field.
Existing operator-owned Markdown files remain valid. Existing workspace trees are ignored rather than migrated or deleted. Distributor continues to receive the completed Markdown report, but its source is now the selected operator output rather than a managed report copy.
Upgrade
Before replacing v0.9.0:
- Remove
workspace:andrecent_change:from configuration files. - Give scheduled commands a predictable working directory or explicit
--outor--out-dirdestination. Confirm that these selected files may be atomically replaced on later successful runs. - Remove historical
inspectinvocations and update action-summary consumers to useoutputPathand the remaining active-workflow fields. - Decide whether old workspace contents have any external retention value. Weatherreporter no longer reads them; after review, they may be removed manually using the narrowly scoped procedure in the operations guide.
- Review Promptkit profile selection and credentials. Hourly defaults to
weather-light; Daily, Today, and Tomorrow default toweather-balanced. A configuredpromptkit.profilestill overrides every report in one action.
The embedded logical profiles are:
| Profile | OpenRouter model | Default use |
|---|---|---|
weather-light |
deepseek/deepseek-v4-flash |
Hourly |
weather-balanced |
~google/gemini-flash-latest |
Daily, Today, Tomorrow |
weather-deep |
~anthropic/claude-sonnet-latest |
Explicit selection |
Override a complete same-ID definition through promptkit.profile_file or
promptkit.profile_dir to use different models or a local OpenAI-compatible
endpoint. Definitions are replaced rather than field-merged, and a malformed
matching override fails instead of silently falling back.
See the CLI reference, configuration reference, operations guide, and Promptkit integration for the exact current contracts.
Changes
Stateless Execution And Operator-Owned Outputs
- Removed local forecast-change comparison, prior-snapshot selection, durable
module and prompt artifacts, managed reports, metadata compatibility, run
discovery, notification receipts, and the complete
internal/statesubsystem. - Added an Accepted architecture decision recording the stateless transformation pipeline and operator-owned output boundary.
- Kept weather, facts, modules, prompt input, generated text, and render context in memory during ordinary execution.
- Made output publication atomic and ensured cancellation or deadline expiry observed before publication leaves an existing destination unchanged.
- Added complete batch-destination preflight before the first report prompt, so a structural collision cannot leave an unreported partial batch.
- Preserved successful outputs after report or Distributor failure. Batch notification runs only after every selected report succeeds.
Promptkit Profiles And Prompt Contracts
- Upgraded Promptkit from
v0.4.0tov0.5.0. - Added embedded
weather-light,weather-balanced, andweather-deepprofiles and mapped each exact prompt to its logical default. - Added embedded-profile fallback after configured
profile_fileorprofile_dirlookup, allowing operators to replace a logical profile without changing report definitions. - Added a maintained local-endpoint example for replacing
weather-light. - Advanced the four prompt definitions to
2.0.0and the curated data package to v4 after removing Recent Changes. - Required
precipitation_timing, normalized whitespace-only timing to an empty string, and removed the unused confidence value.
CLI, Reliability, Documentation, And Testing
- Simplified action summaries to active workflow identity, output, model, validation, warning, debug, notification, and safe error information.
- Made batch counters report-only while retaining failed action status and non-zero exit behavior for batch notification failure.
- Kept prompt and profile inspection ahead of weather collection and validated every batch candidate before collecting once.
- Replaced state-oriented workflow fixtures with focused generation, batch, output, cancellation, profile-resolution, Distributor, and CLI coverage.
- Reconciled user, operator, integration, internal, policy, and ADR documentation around the implemented stateless architecture and removed completed temporary roadmaps.