Skip to content

refactor(roadmap): type the stage planner request - #4124

Merged
dan-petty merged 4 commits into
mainfrom
refactor/4046-stage-request-model
Nov 8, 2026
Merged

dan-petty merged 4 commits into
mainfrom
refactor/4046-stage-request-model

Conversation

@dan-petty

Copy link
Copy Markdown
Owner

The stage planner built its request as a loose dict and kept the gate inputs in planner fields. A typed StageRequest now holds both: the model fields and the gate-only fields. The planner passes the request to every gate and refusal retry, so the model and the gates read the same data. The model JSON stays the same.

Closes #4046

Change: openspec/changes/archive/2026-11-08-4046-type-the-stage-planner-request/

@dan-petty dan-petty added type/refactor Code simplification, deduplication, or structural reorganization scope/roadmap The roadmap jobs: intake, refine, stage, implement and the Service that runs them labels Nov 8, 2026
@dan-petty

Copy link
Copy Markdown
Owner Author

Test record for #4046.

  • Tests first: tests/roadmap/stage/test_roadmap_stage_request.py (15 tests) was committed before the code. On the base it fails at collection (ModuleNotFoundError for devops_cli.roadmap.stage.stage_request). This is a refactor, not a fix, so devops ci fail-to-pass is not required. It reports 0 failed and 1 errored (collection error) on base.
  • Two planner tests pin the model JSON of today. They pass on unchanged code when the stage_request import line is removed.
  • Full devops ci at the code-final commit: 21166 passed, 1 failed. All rows pass except test and coverage. The one failure was tests/invariants/test_change_folders.py (a ! grep line in the change folder). It is fixed in d0b62a1 and the file now passes (34 tests). Coverage failed only after that test failure (total 92.97%, above the 85% threshold).
  • The test row took 11 min 21 s, over 5 min. This is the known issue fix(ci): the pytest step of devops ci exceeds the 5-minute budget #3593.
  • After the rebase onto origin/main (a0d827b): test_change_folders (34 pass), test_roadmap_stage_request (15 pass), devops docs generate --check pass.
  • Rollout rule: the change removes, renames and tightens no setting, ConfigMap key or Settings field, and adds none. No ConfigMap load test is needed.
  • One order change: the planner now reads the open-creates store once in _request, before the model call. Before, the gate read it after. The callable is cached, so the value is the same.

@dan-petty
dan-petty marked this pull request as ready for review November 8, 2026 04:04
@dan-petty
dan-petty merged commit d83491e into main Nov 8, 2026
25 checks passed
@dan-petty
dan-petty deleted the refactor/4046-stage-request-model branch November 8, 2026 04:25
dan-petty pushed a commit that referenced this pull request Nov 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[0.87.2](v0.87.1...v0.87.2)
(2026-11-08)


### Bug Fixes

* **k8s:** check example ConfigMap keys are settings
([7935fba](7935fba))
* **k8s:** check example ConfigMap keys are settings
([#4134](#4134))
([7935fba](7935fba))
* **roadmap:** write the body with the marks in one request
([#4130](#4130))
([9504170](9504170))
* **service:** show a state record the Service could not write
([#4128](#4128))
([cd2ebda](cd2ebda)),
closes [#4048](#4048)


### Code Refactoring

* **roadmap:** type the stage planner request
([#4124](#4124))
([d83491e](d83491e))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

Co-authored-by: dan-petty-release[bot] <346998822+dan-petty-release[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

scope/roadmap The roadmap jobs: intake, refine, stage, implement and the Service that runs them type/refactor Code simplification, deduplication, or structural reorganization

Projects

None yet

Development

Successfully merging this pull request may close these issues.

refactor(roadmap): type the stage planner request

1 participant