141 lines
7.4 KiB
Markdown
141 lines
7.4 KiB
Markdown
# 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.
|
|
- `generate` and `run` now publish directly to operator-selected paths, with
|
|
useful current-directory defaults when output flags are omitted.
|
|
- Local Recent Changes comparison and the historical `inspect` command family
|
|
have been removed.
|
|
- Promptkit `v0.5.0` and 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:` and `recent_change:` configuration sections are no longer
|
|
supported. Strict configuration loading rejects them.
|
|
- The `inspect reports`, `inspect metadata`, `inspect modules`,
|
|
`inspect data-package`, `inspect prior`, and `inspect sources` commands have
|
|
been removed. Weatherreporter no longer reads V1 or V2 run metadata or other
|
|
historical workspace artifacts.
|
|
- Every successful `generate` writes exactly one Markdown file. Without
|
|
`--out`, Daily writes `daily-YYYY-MM-DD.md` and Today, Tomorrow, and Hourly
|
|
write `today.md`, `tomorrow.md`, and `hourly.md` in the invocation's current
|
|
directory. `--out` selects that file rather than creating an extra copy of a
|
|
separately managed report.
|
|
- `run` writes selected outputs beneath the current directory unless
|
|
`--out-dir` selects 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`, optional
|
|
`llmDebugPath`, 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`,
|
|
and `failed` counters describe reports only, so notification failure can
|
|
produce a failed action while `failed` remains `0`.
|
|
- The prompt data package advances from `weatherreporter.data_package.v3` to
|
|
`weatherreporter.data_package.v4` and removes `recent_changes`. All four
|
|
embedded prompts advance from `1.1.0` to `2.0.0`.
|
|
- Generated-text schemas now require string-valued `precipitation_timing`; the
|
|
model returns an empty string when there is no timing text. The unused
|
|
`confidence` field 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`:
|
|
|
|
1. Remove `workspace:` and `recent_change:` from configuration files.
|
|
2. Give scheduled commands a predictable working directory or explicit
|
|
`--out` or `--out-dir` destination. Confirm that these selected files may be
|
|
atomically replaced on later successful runs.
|
|
3. Remove historical `inspect` invocations and update action-summary consumers
|
|
to use `outputPath` and the remaining active-workflow fields.
|
|
4. 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.
|
|
5. Review Promptkit profile selection and credentials. Hourly defaults to
|
|
`weather-light`; Daily, Today, and Tomorrow default to `weather-balanced`.
|
|
A configured `promptkit.profile` still 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](../cli.md), [configuration
|
|
reference](../config.md), [operations guide](../operations.md), and [Promptkit
|
|
integration](../integrations/promptkit.md) 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/state`
|
|
subsystem.
|
|
- 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.0` to `v0.5.0`.
|
|
- Added embedded `weather-light`, `weather-balanced`, and `weather-deep`
|
|
profiles and mapped each exact prompt to its logical default.
|
|
- Added embedded-profile fallback after configured `profile_file` or
|
|
`profile_dir` lookup, 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.0` and 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.
|