You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(ci): verify-generated-types self-skips on autobot_shared-only changes that can alter both generated api.ts files #14885
Found while delivering #12986 in #14883, and deliberately NOT fixed there: it is a behaviour change to a gate, not a deduplication, so it belongs in its own change with its own measurement.
The gap
.github/workflows/verify-generated-types.yml's changes job declares two filters:
types — watches autobot-backend/**/*.py plus the autobot frontend's generated api.ts and lockfiles
slm_types — watches autobot-slm-backend/**/*.py plus the SLM frontend's equivalents
Neither watches autobot_shared/**/*.py.
Both products' OpenAPI schemas are dumped by importing the application, and both applications import from autobot_shared. A change confined to that tree can therefore alter the generated types while this workflow computes "nothing to verify" and self-skips — the same silent-coverage-shrink shape #12986 was filed about, one workflow over.
The per-product split between types and slm_types is deliberate and must be preserved; #14883 records it explicitly in pipeline-scripts/check_workflow_path_filters.py's NOT_CONSUMERS table with this reasoning, so it reads as considered rather than missed. Adding autobot_shared/**/*.py to both widens when the gate runs, which is the safe direction, but it is still an unmeasured behaviour change and it did not belong bundled into a consolidation PR.
Ask
Measure how often a pull request touches only autobot_shared/**/*.py and would newly trigger this workflow.
If the cost is acceptable, add autobot_shared/**/*.py to both types and slm_types — keeping the per-product backend split intact — and move the workflow from NOT_CONSUMERS into the guard's declared-consumer table so it is policed from then on.
Evidence must be a run showing the workflow triggering on an autobot_shared-only change, not a diff.
Acceptance criteria
A measured answer to whether autobot_shared changes can alter either generated api.ts
Either both filters watch it, or the reason they should not is recorded in the guard's table
pipeline-scripts/check_workflow_path_filters.py reflects whichever answer is chosen
All four acceptance criteria are delivered there: the measurement (both api.ts files depend on autobot_shared through the user-schema shims and normalize_pattern_anchors), both filters widened while keeping the per-product split, pipeline-scripts/check_workflow_path_filters.py asserting it from now on, and the workflow parsing cleanly.
The "Ask" section's bullet 3 — a run rather than a diff — is not delivered and cannot be pre-merge without pushing a throwaway commit for CI evidence. Tracked as #14925: the push trigger now names the shared tree, so the first autobot_shared-only push to Dev_new_gui after the merge produces that run by itself.
One adjacent defect was fixed in the same file rather than filed: verify-generated-types-slm used == 'true' where its sibling uses != 'false', so an empty filter output skipped it silently.
Measured before widening, rather than assumed.autobot_shared/user_management/schemas/user.py is the sole definition of the user schemas both backends re-export, and both api.ts files carry them; normalize_pattern_anchors rewrites both specs. 46 of the last 300 first-parent commits touch only autobot_shared/**/*.py — that is the size of the blind spot, and the added CI cost.
Widened, not un-skipped. The required context is already the separate reporting job, and un-skipping a path-filtered required job is exactly what deadlocks PRs on "Expected — Waiting for status" (#13388). verify-types-run, verify-generated-types-slm and the required verify-generated-types all ran green.
All four acceptance criteria met. The one item not delivered is the "Ask" bullet requesting an actual CI run on an autobot_shared-only change — that requires pushing a throwaway commit purely for CI evidence, which this repo forbids. Filed as #14925: the push trigger now watches the shared tree, so the first genuine such push after merge produces that evidence naturally.
Activity
mrveiss commentedon Aug 24, 2026
Fixed in #14924, with one residual.
All four acceptance criteria are delivered there: the measurement (both
api.tsfiles depend onautobot_sharedthrough the user-schema shims andnormalize_pattern_anchors), both filters widened while keeping the per-product split,pipeline-scripts/check_workflow_path_filters.pyasserting it from now on, and the workflow parsing cleanly.The "Ask" section's bullet 3 — a run rather than a diff — is not delivered and cannot be pre-merge without pushing a throwaway commit for CI evidence. Tracked as #14925: the push trigger now names the shared tree, so the first
autobot_shared-only push toDev_new_guiafter the merge produces that run by itself.One adjacent defect was fixed in the same file rather than filed:
verify-generated-types-slmused== 'true'where its sibling uses!= 'false', so an empty filter output skipped it silently.fix(ci): close two gate escapes — a missing route and an accidental s…
mrveiss commentedon Aug 24, 2026
Delivered and merged as
1208b77ba(PR #14924).Measured before widening, rather than assumed.
autobot_shared/user_management/schemas/user.pyis the sole definition of the user schemas both backends re-export, and bothapi.tsfiles carry them;normalize_pattern_anchorsrewrites both specs. 46 of the last 300 first-parent commits touch onlyautobot_shared/**/*.py— that is the size of the blind spot, and the added CI cost.Widened, not un-skipped. The required context is already the separate reporting job, and un-skipping a path-filtered required job is exactly what deadlocks PRs on "Expected — Waiting for status" (#13388).
verify-types-run,verify-generated-types-slmand the requiredverify-generated-typesall ran green.All four acceptance criteria met. The one item not delivered is the "Ask" bullet requesting an actual CI run on an
autobot_shared-only change — that requires pushing a throwaway commit purely for CI evidence, which this repo forbids. Filed as #14925: the push trigger now watches the shared tree, so the first genuine such push after merge produces that evidence naturally.