Skip to content

Add "experimental" to config-lint.ts's TOP_LEVEL_FIELDS allowlist #5281

Description

@JSONbored

Context

All 3 live repo configs declare a real, functional experimental:\n gittensor: true block (opted in via #5030), fully parsed by packages/gittensory-engine/src/focus-manifest.ts:3085 (EXPERIMENTAL_PLUGIN_KEYS = ["gittensor"], line 252). But src/selfhost/config-lint.ts's TOP_LEVEL_FIELDS allowlist (lines 4-21) was never updated — #5030 touched focus-manifest.ts, index.ts, env.d.ts, gittensor-wire.ts, focus-manifest-loader.ts, and example YAML, but not config-lint.ts. Reproduced empirically: running npx tsx scripts/gittensory-config-lint.ts against a live gittensory config snapshot produces "Manifest contains unknown top-level field: experimental." — a false positive. Not CI-gated (no workflow invokes this script), so it only affects the documented operator-facing CLI validator. This is the same class of bug already fixed once before in this exact file (commit 7d600e05f, #3364, for repoDocGeneration) — a recurring maintenance gap.

Requirements

  • Real code fix — PR against JSONbored/gittensory.

Deliverables

  • Add "experimental" to TOP_LEVEL_FIELDS in src/selfhost/config-lint.ts (e.g. after "maintainerRecap", or grouped near "features" per focus-manifest.ts:246-251's comment).
  • Add a regression test to test/unit/selfhost-config-lint.test.ts mirroring the fix(selfhost): recognize repoDocGeneration in the config-lint allowlist #3364 repoDocGeneration precedent.
  • Verify by re-running the CLI against a live config snapshot — no false positive on experimental.

Expected Outcome

npm run selfhost:config-lint no longer false-flags a real, live, correctly-configured experimental: block. The regression test prevents this recurring for the next new top-level field.

Links & Resources


Part of #5270 (roadmap epic).

Metadata

Metadata

Assignees

Labels

maintainer-onlyOwner-only work — yields no Gittensor points.

Projects

Status
Done

Relationships

None yet

Development

No branches or pull requests

Issue actions