fix(review): wire skipAutomationBotAuthors into .loopover.yml config - #5986
Conversation
skipAutomationBotAuthors ("inherit" | "off" | "enabled", mirrors
moderationGateMode's shape) had a DB column and a dashboard/API write
path, but was never added to the FocusManifestSettings parser --
docs-drift's own exclusion comment recorded this as "an intentional
scope choice", explicitly modeled on agentGlobalFreezeOverride's
DB-only shape. That's the same pattern already removed elsewhere for
making the DB a second, independently-mutable source of truth
alongside config -- this closes the same gap here: a global or
per-repo .loopover.yml can now override it directly, config-as-code
like every sibling *GateMode field, with no DB write required.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ LoopOver review result - manual review recommendedReview updated: 2026-07-15 06:15:52 UTC
⏸️ Suggested Action - Manual Review Review summary Nits — 5 non-blocking
Concerns raised — review before merging
📋 Copy for AI agents — paste into your coding agent
Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://gittensory.aethereal.dev/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
skipAutomationBotAuthors("inherit" | "off" | "enabled", mirrorsmoderationGateMode's exact shape) controls whether AI review, gate evaluation, and public-surface publish get skipped entirely for a PR/event genuinely triggered by a known automation bot (release-please, Renovate, Dependabot). It had a DB column and a dashboard/API write path, but was never wired into the.loopover.ymlparser --scripts/check-docs-drift.mjseven carried an explicit comment recording this as "an intentional scope choice", modeled directly onagentGlobalFreezeOverride's DB-only shape. That's the same DB-as-second-source-of-truth pattern already removed fromagentGlobalFreezeOverrideitself -- this closes the identical gap here.skipAutomationBotAuthorstoFocusManifestSettings's Pick list +parseSettingsOverrideinpackages/loopover-engine/src/focus-manifest.ts(and its engine-parity twin type inpackages/loopover-engine/src/types/manifest-deps-types.ts), so a global or per-repo.loopover.ymlcan set it directly -- no DB write required.NOT_YML_CONFIGURABLE_SETTINGS_FIELDSinscripts/check-docs-drift.mjsand documents it in both.loopover.yml.exampleandconfig/examples/loopover.full.yml, so the existing "everyRepositorySettingsfield needs SOME yml mention" drift check now covers it like every other setting.Test plan
npm run test:ci(full local gate) greennpm audit --audit-level=moderate-- 0 vulnerabilitiesparseFocusManifest/resolveEffectiveSettingstest covering valid override, DB-value-survives-when-omitted, and invalid-enum-warns (mirrors the existingmoderationGateModetest)check-docs-drift-script.test.ts: the old "excluded even with zero yml mention" case no longer includes this field; added a new case proving a zero-yml-mention regression now fails the drift check