feat(config): expose gate.mergeReadiness + gate.firstTimeContributorGrace in .gittensory.yml (#822)#826
Conversation
…race in .gittensory.yml (#822) Both settings shipped DB-only (#551, #552); their .gittensory.yml parity was deferred. Extend the focus-manifest gate-schema parser, the present predicate, the gateConfigToJson serializer, and resolveEffectiveSettings so a repo can drive both from its config file (manifest wins over DB, mirroring every other gate mode). gate.mergeReadiness: off|advisory|block -> mergeReadinessGateMode gate.firstTimeContributorGrace: true|false -> firstTimeContributorGrace Closes the recurring debt where each new DB gate setting shipped without its manifest mapping.
|
Note Gittensory Gate skippedPR closed before full evaluation. No late first comment was created.
💰 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. |
|
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 #826 +/- ##
=======================================
Coverage 96.64% 96.64%
=======================================
Files 97 97
Lines 14068 14072 +4
Branches 5126 5130 +4
=======================================
+ Hits 13596 13600 +4
Misses 95 95
Partials 377 377 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
gittensory · advisory review Reviewed 3 changed file(s) — two independent AI reviewers. Changed files: Suggested action: ✅ Safe to merge — both reviewers found no blocking issues. Reviewer A · Suggestions
Worth double-checking
Reviewer B · Suggestions
Worth double-checking
|
Closes #822.
What
The last two gate settings —
mergeReadinessGateMode(#551) andfirstTimeContributorGrace(#552) — shipped DB-only; their.gittensory.ymlparity was deferred each time. This closes that recurring debt so the config-as-code gate surface is complete (a prerequisite for the agent layer reading/proposing full gate policy as code).How
Six surgical additions in
src/signals/focus-manifest.ts, each mirroring the existing per-field pattern (e.g.gate.slop.mode):FocusManifestGateConfigtype +EMPTY_GATE_CONFIGdefaultparseGateConfig—normalizeOptionalGateMode/normalizeOptionalBoolean(bad values warn + null out, never block)gate.presentpredicategateConfigToJsonserializer (the cache round-trip path)resolveEffectiveSettings— manifest wins over DB, identical to every other gate modeTests
focus-manifest.test.ts: parse + round-trip + bad-value warnings for both keys; updated the two full-gate-object equality fixturesgate-check-policy.test.ts: end-to-end —gate.mergeReadiness: blockdrives the composite to failure even when the DB sub-gate is advisory;gate.firstTimeContributorGrace: truesoftens a newcomer's block to neutralVerification
typecheck clean · full suite 1965 passed, 1 skipped (only the pre-existing pngjs visual-agent skip) · diff is 3 files, +40/-3 · no migration / no openapi change
Relates #551, #552, #555 (focus-manifest-as-gate).