feat(config): add review.auto_merge_summary read-only knobs surface (#2051) - #3855
Conversation
…SONbored#2051) Config slice for JSONbored#1959: a per-repo boolean (default off) that renders a READ-ONLY collapsible in the unified comment showing which auto-merge conditions currently pass/fail (CI green, gate passing, mergeable-clean, valid linked issue). Surface only — never changes the merge/close decision. Off ⇒ byte-identical. - focus-manifest.ts: autoMergeSummary: boolean|null on FocusManifestReviewConfig (mirror fixHandoff) — normalizeOptionalBoolean parse, default null; round-trip serialize (omitted when null ⇒ byte-identical) + present + EMPTY literals. - unified-comment.ts: AutoMergeSummarySignals (already-computed, injected) + pure buildAutoMergeSummaryCollapsible(signals) — renders the conditions table from the injected signals ONLY; no re-derivation, no decision path, no IO. - Documented review.auto_merge_summary (marked read-only) in BOTH .gittensory.yml.example and config/examples/gittensory.full.yml. - Tests: config absent/true/false round-trip + non-boolean warn; render reflects exactly the injected signal states (all-pass / mixed), deterministic. Verified: full suite (npm run test) green — 10569 passed, 0 failed.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3855 +/- ##
=======================================
Coverage 93.48% 93.48%
=======================================
Files 333 333
Lines 33151 33158 +7
Branches 12127 12128 +1
=======================================
+ Hits 30990 30997 +7
Misses 1530 1530
Partials 631 631
🚀 New features to boost your workflow:
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-06 18:59:59 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 5 non-blocking
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.
|
Closes #2051 (part of #1959).
Adds
review.auto_merge_summary(bool, default off): a read-only collapsible in the unified comment showing which auto-merge conditions currently pass/fail — CI green, gate passing, mergeable-clean, valid linked issue. Surface only — it never changes the merge/close decision. Off ⇒ byte-identical.What's here
focus-manifest.ts—autoMergeSummary: boolean | nullonFocusManifestReviewConfig(mirrorsfixHandoff):normalizeOptionalBooleanparse, defaultnull; round-trip serialize (omitted whennull⇒ byte-identical) +present+EMPTYliterals.src/review/unified-comment.ts—AutoMergeSummarySignals(already-computed, injected by the host) + purebuildAutoMergeSummaryCollapsible(signals). It renders the conditions table from the injected signals only — no re-derivation, no decision path, no IO. The caller adds it (via the existingextraCollapsibles) only when the knob is on, so off ⇒ nothing added ⇒ byte-identical.review.auto_merge_summary(marked read-only) in both.gittensory.yml.exampleandconfig/examples/gittensory.full.yml.Validation
Ran the full suite locally (
npm run test):Typecheck clean. Covers config absent/true/false round-trip + non-boolean warn, and the render reflecting exactly the injected signal states (all-pass / mixed), deterministic — with an explicit read-only framing assertion (no merge promise/trigger).