Skip to content

fix(config): stop documenting the retired blockedPaths key as a live feature#5304

Merged
JSONbored merged 2 commits into
mainfrom
fix/retire-dead-blockedpaths-key
Jul 12, 2026
Merged

fix(config): stop documenting the retired blockedPaths key as a live feature#5304
JSONbored merged 2 commits into
mainfrom
fix/retire-dead-blockedpaths-key

Conversation

@JSONbored

Copy link
Copy Markdown
Owner

Summary

  • blockedPaths was fully retired from the FocusManifest parser in fix(selfhost): make hard guardrails authoritative #2974 (2026-07-04) — zero findings, not enforceable under any gate.manifestPolicy mode. That commit missed the two checked-in bootstrap templates, which kept documenting it with example values and false claims (feeds guidance, becomes an enforceable blocker). Very likely why all 3 live self-hosted repos still carry a dead blockedPaths: [] key today.
  • Fixes both templates (byte-synced, edited identically — verified via the existing sync test).
  • Fixes the self-hosting docs page's self-contradicting paragraph (claimed live guidance behavior in one sentence, correct retirement in the next).
  • Extends config-templates.test.ts to also run lintManifestText (the only function with the retired-field check) so a retired field reintroduced into a shipped template fails CI automatically — the previous zero-warnings test used the lenient parser, which structurally can't catch this.
  • Removes the dead "manifest_blocked_path" string from processors.ts's policyCodes Set.

Scope

.gittensory.yml.example, config/examples/gittensory.full.yml, docs.self-hosting-configuration.tsx, test/unit/config-templates.test.ts, src/queue/processors.ts, test/unit/queue-2.test.ts (stale comment).

Validation

  • npm run typecheck — clean
  • npx vitest run test/unit/config-templates.test.ts — 19/19 (new lint-zero-warnings test included)
  • npx vitest run test/unit/gate-check-policy.test.ts test/unit/focus-manifest.test.ts test/unit/predicted-gate.test.ts test/unit/local-branch.test.ts test/unit/mcp-predict-gate.test.ts — 880/880 (every test referencing the retired code, confirming the processors.ts Set edit is inert)
  • npm run docs:drift-check — clean
  • npm run ui:typecheck — clean

Not in this PR

Stripping the live blockedPaths: [] key from the 3 production self-hosted configs is a separate, direct VPS operational step (no code/PR needed there) — tracked in #5294 alongside this PR.

Closes #5294

@superagent-security

Copy link
Copy Markdown
Contributor

Superagent didn't find any vulnerabilities or security issues in this PR.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 12, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
gittensory-ui b34d241 Commit Preview URL

Branch Preview URL
Jul 12 2026, 01:58 PM

@codecov

codecov Bot commented Jul 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.37%. Comparing base (dc6fa7a) to head (b34d241).
⚠️ Report is 8 commits behind head on main.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5304   +/-   ##
=======================================
  Coverage   94.37%   94.37%           
=======================================
  Files         474      474           
  Lines       40128    40128           
  Branches    14631    14631           
=======================================
  Hits        37871    37871           
  Misses       1582     1582           
  Partials      675      675           
Flag Coverage Δ
shard-1 46.28% <ø> (-0.28%) ⬇️
shard-2 34.74% <ø> (+0.06%) ⬆️
shard-3 32.24% <ø> (+0.14%) ⬆️
shard-4 32.09% <ø> (-0.15%) ⬇️
shard-5 33.38% <ø> (-0.11%) ⬇️
shard-6 45.14% <ø> (+0.30%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/queue/processors.ts 95.63% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@gittensory-orb gittensory-orb Bot added the gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. label Jul 12, 2026
@gittensory-orb

gittensory-orb Bot commented Jul 12, 2026

Copy link
Copy Markdown

Caution

🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥

🛑 Gittensory review result - fixes required

Review updated: 2026-07-12 13:46:32 UTC

6 files · 1 AI reviewer · no blockers · readiness 100/100 · CI failing · blocked

🛑 Suggested Action - Manual Review

  • Touches a guarded path — held for manual review: This PR changes guardrail-protected path(s): src/queue/processors.ts (matched src/queue/**).

Review summary
This PR removes documentation and example config for the retired blockedPaths key, cleans up a dead policy code from processors.ts's enforceable-codes Set, and adds a real test (via lintManifestText) that would catch the retired field reappearing in shipped templates — closing a gap the previous lenient-parser test structurally couldn't catch. The change is well-scoped, internally consistent (docs, both templates, code, and tests all move together), and the processors.ts edit is verified inert by the referenced test suite runs. The stated CI failures (validate, validate-code) aren't visible in the diff and can't be attributed to a code defect here.

Nits — 7 non-blocking
  • The magic issue/date reference 'fix(selfhost): make hard guardrails authoritative #2974' embedded in prose (docs.self-hosting-configuration.tsx:596 and both yml comments) is fine as documentation but has no enforced link-check, so it can silently rot if the issue number is ever wrong.
  • test/unit/queue-2.test.ts's updated comment is good but only touches the comment, not new assertions — worth confirming the existing test body doesn't still reference manifest_blocked_path anywhere below the shown hunk.
  • Consider adding a one-line CHANGELOG or migration note pointing self-hosted operators at Retire the dead blockedPaths key and fix stale templates that document it as live #5294 for stripping the live blockedPaths key from their configs, since this PR explicitly defers that operational step.
  • In config-lint.ts (not shown here), verify RETIRED_FIELD_MIGRATION_WARNINGS still includes blockedPaths so the new lintManifestText test in config-templates.test.ts actually has a check to pass/fail against.
  • test/unit/config-templates.test.ts:61 only runs lintManifestText against config/examples/gittensory.full.yml; if the root .gittensory.yml.example ever drifts despite the sync test, this specific retired-field guard would not name that file directly.
  • PR author also opened the linked issue — Link an issue that was opened by a different contributor, or provide a rationale for why this self-authored issue represents genuine discovery work.
  • Touches a guarded path — held for manual review — A maintainer must review and merge this change.

CI checks failing

  • validate
  • validate-code
Signal Result Evidence
Code review ✅ No blockers 1 reviewer
Linked issue ✅ Linked #5294
Related work ✅ No active overlap found No same-issue or scoped active PR overlap found.
Change scope ✅ 20/20 Low review scope from cached public metadata (1 linked issue).
Validation posture ✅ 25/25 PR body includes validation/test evidence.
Contributor workload ✅ 10/10 Author activity: 44 registered-repo PR(s), 36 merged, 476 issue(s).
Contributor context ✅ Confirmed Gittensor contributor JSONbored; Gittensor profile; 44 PR(s), 476 issue(s).
Gate result ⚠️ Not blocking Advisory; not blocking this PR.
Improvement ✅ Minor risk: clean · value: minor — Code changes are accompanied by test evidence.
Review context
  • Author: JSONbored
  • Role context: owner (maintainer lane)
  • Public audience mode: oss maintainer
  • Lane context: Repository is configured for direct PR review.
  • Public profile languages: not available
  • Official Gittensor activity: 44 PR(s), 476 issue(s).
  • PR-specific overlap: none found.
Contributor next steps
  • Treat this as maintainer-lane context rather than normal contributor-lane activity.
Signal definitions
  • Related work = same linked issue, overlapping active PRs, or title/path similarity.
  • Change scope = cached public metadata such as size labels, draft state, and review-burden hints.
  • Validation posture = whether the PR provides enough public validation/test evidence for maintainer review.
  • Contributor workload = public contributor activity and cleanup pressure, not a repo-wide quality failure.
  • Contributor context = public GitHub/Gittensor identity context; non-Gittensor status is not a blocker.
[BETA] Chat with Gittensory

Ask Gittensory a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.

  • @gittensory ask &lt;question&gt; answers contribution-quality Q&A with source citations and freshness.
  • @gittensory chat &lt;question&gt; answers in natural prose from cached decision-pack facts via local inference (maintainer/collaborator; read-only).
  • A plain-language @gittensory mention with a real question is routed to the closest matching read-only command automatically -- no exact syntax required.

Full command reference: https://gittensory.aethereal.dev/docs/gittensory-commands

Visual preview
Route Viewport Before (production) After (this PR's preview) Diff
/docs/self-hosting-configuration desktop before /docs/self-hosting-configuration after /docs/self-hosting-configuration
/docs/self-hosting-configuration mobile before /docs/self-hosting-configuration (mobile) after /docs/self-hosting-configuration (mobile)

Click any thumbnail to open the full-size screenshot. Before = production · After = this PR's preview deploy.

🟩 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.

  • Re-run Gittensory review

…feature

blockedPaths was fully retired from the FocusManifest parser in #2974
(2026-07-04) -- it produces zero findings and is not enforceable under
any gate.manifestPolicy mode. That retirement commit missed the two
checked-in bootstrap templates (.gittensory.yml.example,
config/examples/gittensory.full.yml), which kept documenting it with
example values and false claims that it feeds guidance/becomes an
enforceable blocker. This is very likely why all 3 live self-hosted
repos still carry a dead blockedPaths: [] key today.

Fixes the false claims in both templates (byte-synced, both edited
identically), fixes the self-hosting docs page's self-contradicting
paragraph, and extends config-templates.test.ts to also run
lintManifestText (the only function with the retired-field check) so
a retired field reintroduced into a shipped template fails CI
automatically going forward -- the previous zero-warnings test used
the lenient parser, which structurally cannot catch this class of bug.

Also removes the dead "manifest_blocked_path" string from
processors.ts's policyCodes Set (no producer has emitted that code
since the retirement).

Refs #5294
CI's ui:lint caught formatting the earlier commit's editor didn't
apply. No content change, whitespace wrapping only.
@JSONbored JSONbored merged commit 329af5a into main Jul 12, 2026
19 checks passed
@JSONbored JSONbored deleted the fix/retire-dead-blockedpaths-key branch July 12, 2026 14:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

gittensor:bug Gittensor-scored bug fix — scores a 0.05x multiplier. manual-review Gittensor contributor context

Development

Successfully merging this pull request may close these issues.

Retire the dead blockedPaths key and fix stale templates that document it as live

1 participant