feat(commands): add @gittensory configuration effective-config command (#2168)#3983
Conversation
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - fixes requiredReview updated: 2026-07-07 09:08:15 UTC
🛑 Suggested Action - Fix Blockers CI checks failing
Review context
Contributor next steps
Signal definitions
🟩 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 Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
❌ 1 Tests Failed:
View the top 1 failed test(s) by shortest run time
To view more test analytics, go to the Test Analytics Dashboard |
Signed-off-by: venus <153379385+real-venus@users.noreply.github.com>
|
Gittensory is closing this pull request on the maintainer's behalf (CI is failing (validate, validate-code)). This is an automated maintenance action — to pursue this change, please open a new pull request with the issues resolved. Closed PRs may be analyzed later to improve review accuracy, but they are not automatically reopened or re-reviewed. |
…ill has none (#3996) A test asserting "@gittensory configuration" has no dispatch handler went stale once #3983 wired one up. Swapped to "pause", which still has none, matching the test's own stated title/intent -- unaffected by (and not duplicating) the moderation-decay-days clamp fix another concurrent PR already shipped.
Summary
Closes #2168
Wires the
@gittensory configurationcommand (#2168): when a maintainer comments@gittensory configurationon a PR or issue, the bot replies with the effective resolved review config (theyml > DB > defaultsresult ofresolveRepositorySettings) as a public-safe comment — so maintainers can see what's actually in force without the dashboard.The command id already existed in the catalog but had no dispatch handler; this adds the two missing deliverables plus the wiring.
summarizeEffectiveConfig(settings, executionMode)(src/settings/effective-config-summary.ts) — a PURE, public-safe summarizer of a safe subset: agent execution mode, per-action-class autonomy (viaresolveAutonomy, unset →observe), the slop-gate minimum score, the blacklist label (configured / default / disabled), and the command-authorization overview (reusing the existingsummarizeCommandAuthorizationPolicy). It omits every secret / wallet / hotkey / coldkey / raw-trust / reward field by construction.classifyConfigurationCommandRequest(src/github/configuration-command.ts) — a PURE classifier holding every eligibility guard (wrong action, bot author, missing repo/issue/installation/actor), mirroring the planner's classifier so the guards are exhaustively unit-tested and the processor carries a singleokbranch.maybeProcessConfigurationCommand(src/queue/processors.ts) — classify →evaluateCommandAuthorization("configuration")over the REAL repo permission (never the spoofable commentauthor_association) →resolveRepositorySettings→summarizeEffectiveConfig→ post viasanitizePublicComment+gittensoryFooter, then audit. Wired into theissue_commentcommand-dispatch chain.Read-only: it never mutates the PR, so unlike
gate-overrideit always answers a maintainer's direct query (the displayed execution mode still reflects a pause). Non-configuration comments returnfalseand fall through to the other handlers.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.md; does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Validation
git diff --checknpm run typecheck— exit 0.npm run test:coverage— all suites relevant to this change pass; the new tests pass. (The only failures in the local run are pre-existing, Windows-only environmental cases:spawn claude/codex/docker ENOENTinmcp-cli-*/miner-*/selfhost-*/*-scripttests that shell out to binaries not installed on the dev box — untouched by this change and green on Linux CI.)codecov/patch: every added line and branch is covered — verified against the coverage JSON,uncovered stmts = none, uncovered-branch lines = noneforeffective-config-summary.ts,configuration-command.ts, and the addedprocessors.tsregion.processJob(authorized→posts, non-maintainer→skip, non-command→declines, bot→skip).main— no conflict.Safety
sanitizePublicComment+gittensoryFooter.resolveRealRepoPermissionAssociation), not the spoofable commentauthor_association, honoring the per-repocommandAuthorizationpolicy forconfiguration.Notes