feat(config): add review.fixHandoff toggle (default off) for fix-handoff blocks (#2176)#3824
Conversation
…off blocks (JSONbored#2176) Config slice for JSONbored#1962: a per-repo boolean under review that gates whether fix-handoff blocks are emitted, ANDed with a global env kill-switch + the convergence cutover allowlist. Default-OFF, byte-identical when unset. Follows the inline_comments precedent. - focus-manifest.ts: fixHandoff: boolean|null on FocusManifestReviewConfig (mirror inlineComments) — normalizeOptionalBoolean parse, default null; round-trip serialize (omitted when null ⇒ byte-identical) + present + EMPTY literals. - src/review/fix-handoff.ts: isFixHandoffEnabled(env) kill-switch (mirror isInlineCommentsEnabled) + pure shouldEmitFixHandoff() ANDing manifest toggle + env flag + cutover allowlist (mirror shouldRequestInlineFindings). - Documented review.fixHandoff in BOTH .gittensory.yml.example and config/examples/gittensory.full.yml (the config-templates sync test enforces parity). - Tests: config absent/true/false round-trip + non-boolean warn; env truthy/falsy; resolver three-way gate (manifest AND env AND cutover). Verified: full suite (npm run test) green — 10349 passed, 0 failed.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
# Conflicts: # src/signals/focus-manifest.ts # test/unit/focus-manifest.test.ts # test/unit/signals-coverage.test.ts
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #3824 +/- ##
=======================================
Coverage 93.41% 93.41%
=======================================
Files 325 326 +1
Lines 32844 32848 +4
Branches 12030 12033 +3
=======================================
+ Hits 30680 30684 +4
Misses 1530 1530
Partials 634 634
🚀 New features to boost your workflow:
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-06 13:25:53 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 #2176 (config slice for #1962).
A per-repo boolean under
reviewthat gates whether fix-handoff blocks are emitted, ANDed with a global env kill-switch and the convergence cutover allowlist. Default-off, byte-identical when unset. Follows theinline_commentstoggle precedent exactly.What's here
focus-manifest.ts—fixHandoff: boolean | nullonFocusManifestReviewConfig(mirrorsinlineComments):normalizeOptionalBooleanparse, defaultnull;reviewConfigToJsonround-trip (omitted whennull⇒ byte-identical) +present+EMPTYliterals.src/review/fix-handoff.ts—isFixHandoffEnabled(env)kill-switch (mirrorsisInlineCommentsEnabled) + pureshouldEmitFixHandoff()ANDing manifest toggle + env flag + cutover allowlist (mirrorsshouldRequestInlineFindings). No emission/render here — a separate slice — so the gate/verdict is untouched.review.fixHandoffin both.gittensory.yml.exampleandconfig/examples/gittensory.full.yml(theconfig-templatesparity test enforces they match).Validation
Ran the full suite locally (
npm run test), not just focused tests:Typecheck clean. Covers config absent/true/false round-trip + non-boolean warn, the env kill-switch (truthy/falsy), and the resolver's three-way gate.