Repository navigation
Configure dependency bot admission in merge-train policy - #4891
6 commits merged into
Conversation
|
Review result: weighed Anthropic claude-opus-5-5[1m] reviewed the change twice. Acted on: narrowed workspace exemption to complete immutable TOML comparisons allowing only devkit/runtime exact ref pins; shared-addons pins and other fields are rejected. Made the classifier author explicit. Replaced the refresh fixture's new unlimited comparison fallback with one explicit response. New behavioral coverage passed. Declined: the claim that workspace updates have no producer is refuted by the existing Declined: grouped commitBody context concern. Renovate's branch worker compiles against the complete branch config; the installed renderer produced both grouped entries and the classifier accepted them. Real CM #245 commit readback confirmed renovate[bot], web-flow committer and verified signature. No signature exception was added. Dependabot admission now also requires the same complete dependency-only diff. Workflow and image recipe edits therefore need agent review even when update versions are within major. This is the requested dependency-only boundary. No literal/config/wording tests were added. New comments/docstrings were not added under repository style. |
|
Ready for the merge train Head: 658a31f |
|
Engineering ready; waiting for the Director-requested policy-backed bot configuration revision Chris requests that bot identities, metadata formats and qualifying update types live in the merge-train policy, leaving one parser per format in code. This replaces the prior Ready while the source is updated and reviewed. The previous policy card is superseded by that schema revision; do not approve it as the final configuration. |
|
Review result: weighed Anthropic claude-opus-5-5[1m] reviewed the policy redesign and its fixes. No blocking defect remains. Acted on: moved policy lookup inside the shared pure-dependency predicate, after Bot and same-repository checks; real store failures no longer affect human/fork PRs. Added that regression. New legacy ID-only entries are refused by the managed proposal planner, and both permitted migration paths (keep existing legacy ID while adding an explicit row; remove legacy ID) are tested through that planner. Extended the existing legacy raw-payload digest test, keyed parser registration by the format Literal, and removed redundant test loops/dead request recording. Accepted/documented: bot removal also removes dependency-only Client exemptions; release readers use current policy while recorded notes remain readable. Deploy the schema, refresh the complete active policy, then propose the migration for the signed-in admin. Legacy-only records do not infer a bot format or types. The previous Q881 card is superseded. Declined: optional additional per-reader memoization is a quota optimization, not an admission defect, and adds another cache concept; the transport already has conditional caching. Test-only identity values are fixtures, not production defaults. No legacy-login fallback or authority bypass was introduced. No tests pin config/docs/workflow wording or a copied version. Validation: final 328 parser/policy/admission/admin safety tests, 402 caller tests after the lazy lookup change, and 41 final migration/planner tests passed. Whole-repo Ruff/format and mypy passed. Inspection not run under the recorded direction#98 exception. Source migration has local schema proof only until the live policy read succeeds and the new schema is deployed. |
|
Ready for the merge train Head: ae887cc |
|
Launchplane completed the merge-train step for this pull request.
Launchplane landed this pull request through protected batch PR #4900. Launchplane manages this comment and will update it as the train moves. |
…2dcfd030aa2d272: merge PR #4891
c659dd9
Dependency bots currently require a code change because admission and Client-note consumers recognize specific logins. This moves identity, metadata-format and allowed-update selection into
enqueue.dependency_update_bots. Adding or removing a bot that uses a supported format is now an admin-approved policy proposal. Code keeps one parser per format and the shared within-major/same-branch safety checks. Renovate automerge stays disabled; only the train merges.The same policy governs dependency-only Client exemptions across previews, status, batch notes and releases. Human/fork PRs do not read dependency policy. Legacy ID-only records remain readable with unchanged bytes/digests but grant no inferred parser/admission; proposals cannot add new legacy IDs. The migration removes that legacy field from active records.
Closes #4893. Refs #4889, which stays open for rollout and the two bot PR landings. The shared metadata preset is cbusillo/odoo-devkit#273, held on its CM consumer-build gate, cbusillo/odoo-devkit#274. The earlier Q881 ID-only policy card is superseded; do not approve it. The new schema must deploy before the explicit table can be proposed. The migration is rebuilt and locally validated from current active policy f923d7f1b12fb93e044e47724ccac8830b3b2145fdace7552f685e8406830ffa. The earlier policy-read 404 cleared after a recorded service replacement; it is not a current blocker. After the schema deploys, refresh the active record once more before submitting and posting the replacement admin review URL on #4889.
Validation: 328 final parser/policy/admission/admin safety tests and 402 caller tests passed, plus the broader policy recovery/split modules. Ruff lint/format and whole-project mypy passed. Anthropic claude-opus-5-5[1m] reviewed the redesign and the review fixes; head-bound disposition is recorded below. Inspection not run under https://github.com/cbusillo/direction/issues/98#issuecomment-6399734189.
This is a coherent schema-and-consumer change: every former login-based exemption moves to the same policy source, rather than retaining a fallback during migration. Tests cover arbitrary configured IDs sharing formats, removal, per-type selection, missing/mismatched policy, signatures, immutable dependency diffs, legacy bytes/digests, and admin proposal boundaries. The complete suite remains in CI.
Removed: the production bot-login table, implicit parser/default type choices, eager policy reads for human/fork PRs, and redundant test repetitions. No second bot admission path.
Net lines: +771 in Launchplane (+879/-108); companion preset/docs +7.