fix(config): wire badgeEnabled into the .gittensory.yml manifest parser#2598
Conversation
.gittensory.yml.example documents badgeEnabled under settings: as a config-as-code-settable field, and it's fully wired everywhere else (DB column, RepositorySettings type, API, the badge consumer) -- but FocusManifestSettings's Pick<RepositorySettings, ...> list and parseSettingsOverride both omitted it, so a maintainer setting it in .gittensory.yml had the value silently ignored. Added badgeEnabled to the manifest Pick-list and the existing boolean-field normalization loop in parseSettingsOverride, mirroring autoLabelEnabled exactly. resolveEffectiveSettings needs no change -- it spreads settings.* generically, so the field now overrides the DB value automatically. Added a regression test proving the override actually takes effect. Closes #2555
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-02 12:20:27 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 3 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.
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2598 +/- ##
==========================================
+ Coverage 95.99% 96.02% +0.02%
==========================================
Files 230 233 +3
Lines 25887 26077 +190
Branches 9410 9474 +64
==========================================
+ Hits 24851 25041 +190
Misses 425 425
Partials 611 611
🚀 New features to boost your workflow:
|
Summary
.gittensory.yml.exampledocumentsbadgeEnabledundersettings:as a config-as-code-settable field, and it's fully wired everywhere else (DB column,RepositorySettingstype, API, the badge consumer itself) — butFocusManifestSettings'sPick<RepositorySettings, ...>list andparseSettingsOverrideinsrc/signals/focus-manifest.tsboth omitted it, so a maintainer settingbadgeEnabledin.gittensory.ymlhad the value silently ignored.Scope
src/signals/focus-manifest.ts— addedbadgeEnabledto theFocusManifestSettingsPick-list and to the existing boolean-field normalization loop inparseSettingsOverride, mirroringautoLabelEnabledexactly.resolveEffectiveSettingsneeds no change — it spreadssettings.*generically, so the field now overrides the DB value automatically.test/unit/focus-manifest.test.ts— added a regression test proving.gittensory.yml'sbadgeEnabledvalue actually overrides the DB-stored value.Validation
npx vitest run test/unit/focus-manifest.test.ts— 163/163 passingnpm run typecheck— cleannpm run test:ci— full local gate greennpm audit --audit-level=moderate— 0 vulnerabilitiesSafety
badgeEnabledin.gittensory.yml.src/**andtest/**.Closes #2555