Skip to content

chore: regenerate for the forecast verification halt [HOLD — needs robosystems#1109] - #179

Merged
jfrench9 merged 1 commit into
mainfrom
chore/sdk-regen-forecast-halt
Aug 8, 2026
Merged

chore: regenerate for the forecast verification halt [HOLD — needs robosystems#1109]#179
jfrench9 merged 1 commit into
mainfrom
chore/sdk-regen-forecast-halt

Conversation

@jfrench9

@jfrench9 jfrench9 commented Aug 8, 2026

Copy link
Copy Markdown
Member

⚠️ Do not merge before robosystems#1109

This was regenerated against a local stack carrying that branch, not against origin/main. The server does not return halted_at yet and does not halt. Merging and publishing first would ship a client documenting behaviour the deployed API doesn't have — including a description telling integrators that false halts the walk, when the deployed server never halts.

Additive, so no version concern — purely an ordering one.

What

ComputeForecastResponse.halted_at — the month where the forecast walk stopped because verification failed, or null if it ran the full horizon.

Each month's opening balances are the previous month's closing balances, so computing past a failure doesn't yield merely unverified months — it yields months derived from a known-wrong one. The walk now stops and names where, and months_computed ends there.

ForecastMonthLite.verification_passed — same type, honest description. It is tri-state and the third state is not the first:

Value Meaning
true rules ran, all passed
false something failed — halts the walk
null no rules ran — unverified, not verified

Consumers had been treating null and true alike, which meant a rule corpus that silently stopped binding would have looked like a passing forecast.

Gate

519 passed, 17 skipped. ruff check + ruff format --check + basedpyright clean.

Additive, from robosystems#1109.

ComputeForecastResponse gains `halted_at`: the month where the forecast
walk stopped because verification failed, or null if it ran the full
horizon. Each month's opening balances are the previous month's closing
balances, so computing past a failure yields months derived from a
known-wrong one rather than merely unverified ones — the walk now stops
and names where.

ForecastMonthLite.verification_passed keeps its type and gains an honest
description. It is tri-state and the third state is not the first: true =
rules ran and passed, false = something failed (which halts the walk),
null = no rules ran, so the month is unverified rather than verified.
Consumers had been treating null and true alike.

DO NOT MERGE BEFORE robosystems#1109. This was regenerated against a local
stack carrying that branch, not against origin/main — the server does not
return `halted_at` yet and does not halt. Merging first would publish a
client documenting behaviour the deployed API doesn't have.

Gate: 519 passed, ruff + format + basedpyright clean.
@jfrench9
jfrench9 merged commit 5c54e2c into main Aug 8, 2026
1 check passed
@jfrench9
jfrench9 deleted the chore/sdk-regen-forecast-halt branch August 8, 2026 21:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant