fix(config): restore main's typecheck and clear an injection-detector false positive - #3641
Conversation
… false positive Two independent issues surfaced by #3635 merging concurrently with #1958's own review.finding_categories addition: - main's typecheck is currently broken: #3635's new compile-time exhaustiveness map (test/unit/focus-manifest.test.ts) predates review.finding_categories and is missing that key, which the `satisfies Record<...>` check requires. Documents the field in .gittensory.yml.example and adds the missing map entry, mirroring the review.changed_files_summary entry immediately above it. - "override of the synthesis merge rule" (added by #3635) matches gittensory's own INJECTION_SOURCE pattern for "override ... the ... rule", so the review pipeline redacted it to [external-instruction-redacted] before the AI reviewer ever saw it -- correctly, since the redaction can't tell a benign config override from a real one without the surrounding context a human has. Rewording "rule" to "mode" preserves the exact meaning and clears the false positive; confirmed via a direct regex test against the full file that no other phrase matches.
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
|
Warning 🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨🟨 ⏸️ Gittensory review result - manual review recommendedReview updated: 2026-07-05 21:31:22 UTC
⏸️ Suggested Action - Manual Review
Review summary Nits — 4 non-blocking
Concerns raised — review before merging
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 #3641 +/- ##
=======================================
Coverage ? 93.13%
=======================================
Files ? 314
Lines ? 32002
Branches ? 11723
=======================================
Hits ? 29804
Misses ? 1552
Partials ? 646 🚀 New features to boost your workflow:
|
Summary
mainis currently broken: docs(config): make .gittensory.yml.example genuinely exhaustive, add a drift check #3635 (merged 2026-07-05T21:18Z) added a compile-time exhaustiveness map intest/unit/focus-manifest.test.ts(REVIEW_FIELD_TOKENS satisfies Record<Exclude<keyof FocusManifestReviewConfig, "present">, string>) that predates Finding category taxonomy on AI review findings #1958'sreview.finding_categoriesfield, which merged separately around the same time. The map is missing thefindingCategorieskey thesatisfiescheck now requires, sonpm run typecheckcurrently fails onmain. Fixed by documentingreview.finding_categoriesin.gittensory.yml.example(mirroring thereview.changed_files_summaryentry immediately above it) and adding the corresponding map entry..gittensory.yml.example's newgate.aiReview.onMergecomment says "Per-repo override of the synthesis merge rule" — this matches gittensory's ownINJECTION_SOURCEpattern for "override ... the ... rule" (a prompt-manipulation heuristic insrc/review/prompt-injection.ts), so the review pipeline redacted it to[external-instruction-redacted]before the AI reviewer ever saw it. Confirmed via a direct regex test that this is a genuine false positive (the text is ordinary config documentation, nothing resembling an actual instruction) and that no other phrase in the file matches. Reworded "rule" to "mode", preserving the exact meaning.No linked issue — this is a direct fix restoring
mainto a working state plus a follow-up correction on an already-merged PR; both are evidenced above rather than tracked separately.Scope
type(scope): short summaryConventional Commit format.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.npm run typecheckand a reproduced regex match) in place of a tracked issue.Validation
git diff --checknpm run actionlintnpm run typecheck— confirmed FAILING onmainbefore this change (missingfindingCategorieskey), PASSING after.npm run test:coverage— N/A, zerosrc/**lines changed (only.gittensory.yml.example, a doc/test file); confirmed no coverage obligation.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderatetest/unit/focus-manifest.test.ts) now correctly assertsreview.finding_categoriesis documented; ran the full affected suite (test/unit/focus-manifest.test.ts, 426 tests) plusnpm run test:changedlocally, all green.Safety
UI Evidencesection. (N/A — noapps/gittensory-uichanges.)Notes
Verified the false-positive claim directly rather than assuming it: