Skip to content

feat(scoring): support upstream exponential saturation model #89

Description

@JSONbored

Parent roadmap: #82

Background

Upstream Gittensor scoring has moved away from density-based assumptions toward exponential saturation. Gittensory's private scoreability previews need to track that model so miners receive useful projections.

Goal

Update scoring model detection, snapshots, and previews to support the upstream exponential saturation model.

Current Behavior

Current model detection can still identify density-era constants and may not accurately represent newer upstream scoring behavior.

Desired Behavior

Private API/MCP previews identify the active model correctly and estimate scoreability using the correct saturation assumptions.

Implementation Requirements

  • Update scoring snapshot parsing for new constants/model indicators.
  • Make active model detection prefer the newer upstream model when both old and new constants exist.
  • Update score preview math or adapter fields as needed.
  • Preserve previous model handling for historical snapshots.
  • Record warnings when Gittensory cannot confidently classify the upstream model.

Public/Private Output Boundaries

Scoring projections remain private API/MCP only. Public GitHub output must never include estimated score, raw score, reward estimate, payout language, or farming language.

Acceptance Criteria

  • New model is detected from fixture constants.
  • Old model fixtures still parse.
  • Ambiguous constants produce warnings.
  • Private previews expose model metadata.
  • Public outputs remain sanitized.

Testing Requirements

  • npm run test:ci must pass.
  • Global coverage must remain at or above 97% for lines, statements, functions, and branches.
  • Aim for 98%+ branch coverage locally to avoid CI variance.
  • Add tests for every new branch, fallback path, sanitizer rule, and regression.
  • Add invariant/property-style tests when behavior depends on sorting, gating, scoring, queue pressure, source-upload safety, public/private boundaries, or upstream drift.
  • Public GitHub output must be tested against forbidden language: wallet, hotkey, raw trust score, payout, reward estimate, farming, private reviewability, and public score estimate.
  • MCP/local tooling must prove source contents are not uploaded.

Additional Test Scenarios

  • Exponential saturation fixture.
  • Density-era fixture.
  • Mixed constants fixture.
  • Score clamping invariant.
  • Public sanitizer regression.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions