Skip to content

fix: omit the deprecated States declaration from fresh work plans - #182

Merged
vjovanov merged 3 commits into
mainfrom
fix/issue-181
Oct 4, 2026
Merged

vjovanov merged 3 commits into
mainfrom
fix/issue-181

Conversation

@vjovanov

@vjovanov vjovanov commented Oct 4, 2026 •

Copy link
Copy Markdown
Collaborator

Closes #181

Before, a fresh plan from ephor work dispatch or work sync began with a title and a **States:** declaration. After, it begins with the title, a blank line and frontmatter, and uses the states.yaml beside 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::create now omits it at the shared dispatch/sync writer. New roots still receive ephor-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 lay delegates 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 in 24a04e487f. Review approved correctness; its sole minor finding was signature formatting, corrected in 9bf1dd1d34 without changing behavior.

Verification:

  • Five declaration regressions failed before implementation, while five compatibility controls passed. All ten focused contract tests passed in review. The four new E2E-049 cases cover default/custom-root dispatch, fresh-root sync and recipe-state validation; metadata controls cover insertion, reading and merging with fresh and legacy headers. Existing generated-metadata, work-integration, legacy-prior and unmanaged-root tests also pass.
  • The original reproducer derivative now exits 0 and reports OBSERVED: the laid plan carries no **States:** line.
  • Green run 2 at 9bf1dd1d34 passed pre-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 with TMPDIR pointing 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.
  1. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 1) — cdx, openai/gpt-6.1-sol — 2m46s — 700.3k in / 4.6k out
  2. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 2) — cdx, openai/gpt-6.1-sol — 4m16s — 1.1M in / 7.0k out
  3. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket.specify specify — cdx, openai/gpt-6.1-sol — 9m20s — 2.1M in / 16.0k out
  4. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 3) — cdx, openai/gpt-6.1-sol — 2m45s — 695.6k in / 4.6k out
  5. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket.implement implement — cdx, openai/gpt-6.1-sol — 3m20s — 505.8k in / 5.9k out
  6. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 4) — cdx, openai/gpt-6.1-sol — 2m02s — 460.2k in / 3.5k out
  7. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket.review-1 review — cdx, openai/gpt-6.1-sol — 3m21s — 627.1k in / 5.2k out
  8. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 5) — cdx, openai/gpt-6.1-sol — 2m54s — 875.5k in / 4.7k out
  9. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket.green green-fix — cdx, openai/gpt-6.1-sol — 1m50s — 446.6k in / 2.9k out
  10. github-issues-agent-grounds-ephor-181-implement-885b9191.ticket supervising (visit 6) — cdx, openai/gpt-6.1-sol — 2m33s — 621.7k in / 4.4k out
Accounting Value
cost $3.00
total tokens 8.2M
input tokens (incl. cache) 8.2M
input cache read 7.3M
input cache write -
output tokens (incl. cache) 58.7k
output cache read -
output cache write -
coverage Complete

@vjovanov vjovanov changed the title test: specify plans that use the work root's machine fix: omit the deprecated States declaration from fresh work plans Oct 4, 2026
@vjovanov
vjovanov marked this pull request as ready for review October 4, 2026 02:13
@vjovanov
vjovanov merged commit 1b1363a into main Oct 4, 2026
5 checks passed
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.

Plan::create writes the **States:** line rhei 0.6.0 deprecates into every plan ephor lays, and rhei#350 makes it a parse error

1 participant