fix: omit the deprecated States declaration from fresh work plans - #182
Merged
Merged
Conversation
vjovanov
marked this pull request as ready for review
October 4, 2026 02:13
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #181
Before, a fresh plan from
ephor work dispatchorwork syncbegan with a title and a**States:**declaration. After, it begins with the title, a blank line and frontmatter, and uses thestates.yamlbeside it (§FS-005-dispatch.6):# Rhei: Widen the retry window -**States:** ephor-work --- metadata:Rhei 0.6.0 deprecates that declaration, and agent-grounds/rhei#350 removes it and makes it a parse error.
Plan::createnow omits it at the shared dispatch/sync writer. New roots still receiveephor-work; existing custom machines remain unchanged and continue to validate recipe states. The refusal to install a machine over unmanaged plans also remains intact. The specification makes these guarantees explicit, and the writer cites it (§FS-005-dispatch.6).Older plans remain readable without migration. Header handling still skips a legacy declaration when inserting metadata, and both header forms preserve existing fields, other tickets and runtime bookkeeping when reading and merging frontmatter. The specification now states this placement and preservation rule, and the code cites it (§FS-005-dispatch.8). Public
work laydelegates workflow contents to the external runtime; this patch does not change that writer. The manual's generated-plan examples and a fixed changelog fragment are updated.The specification and tests were committed first in
d692f546f7, followed by the implementation in24a04e487f. Review approved correctness; its sole minor finding was signature formatting, corrected in9bf1dd1d34without changing behavior.Verification:
OBSERVED: the laid plan carries no **States:** line.9bf1dd1d34passedpre-commit run --all-files(formatting, warnings-as-errors build, Rust/Python tests and repository hooks), all 102 Python integration tests,check_boundary.py,check_parity.py, and the full Rust suite withTMPDIRpointing to a symlink under~/ag/tmp. Grund used CI's pinned 0.14.0 and--ignore local-section-citation. The private-word hook had no local list, so its scan was skipped.This is local validation; hosted CI and merge remain for ship. Rhei 0.6.0 validation was not run: the installed 0.5.1-dev command produced a context-only error under its older machine-resolution rules.
AI workflow: `rhei`, 10 agent invocations across 1 model; 6 tasks completed, 10 in progress.
github-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 1) — cdx, openai/gpt-6.1-sol — 2m46s — 700.3k in / 4.6k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 2) — cdx, openai/gpt-6.1-sol — 4m16s — 1.1M in / 7.0k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticket.specifyspecify — cdx, openai/gpt-6.1-sol — 9m20s — 2.1M in / 16.0k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 3) — cdx, openai/gpt-6.1-sol — 2m45s — 695.6k in / 4.6k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticket.implementimplement — cdx, openai/gpt-6.1-sol — 3m20s — 505.8k in / 5.9k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 4) — cdx, openai/gpt-6.1-sol — 2m02s — 460.2k in / 3.5k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticket.review-1review — cdx, openai/gpt-6.1-sol — 3m21s — 627.1k in / 5.2k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 5) — cdx, openai/gpt-6.1-sol — 2m54s — 875.5k in / 4.7k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticket.greengreen-fix — cdx, openai/gpt-6.1-sol — 1m50s — 446.6k in / 2.9k outgithub-issues-agent-grounds-ephor-181-implement-885b9191.ticketsupervising (visit 6) — cdx, openai/gpt-6.1-sol — 2m33s — 621.7k in / 4.4k out