Skip to content

fix(miner): deny-hook synthesis has zero live consumers — approved guardrail rules never reach a coding agent #8806

Description

@JSONbored

Context (AMS adversarial audit)

packages/loopover-miner/lib/deny-hook-synthesis.ts's refreshProposals (:44/:187) has NO caller outside tests (no CLI subcommand either), and coding-agent-construction.ts:140-158 + both its callers (attempt-cli.ts:270, cross-repo-evaluation.ts:711-712) invoke the driver with no houseRulesConfig — so coding-agent-house-rules.ts:58-61 always falls back to DEFAULT_DENY_RULES and resolveEffectiveDenyRules (which merges maintainer-approved synthesized proposals) is never consulted. An operator who approves synthesized rules reasonably believes future attempts respect them; they never do.

Fix

Wire initDenyHookSynthesisStore(...).resolveEffectiveRules(repoFullName) into buildAttemptDeps' houseRulesConfig, add a refresh CLI subcommand, and pin with a test that an approved synthesized rule actually blocks the matching tool call. (Contrast: the min-rank calibration loop (#8172) is the correctly-wired precedent for this same advisory-then-double-gated-apply shape.)

99%+ patch coverage, branch-counted.

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions