Skip to content

test(public-safety): centralize GitHub output sanitizer invariants #107

Description

@JSONbored

Parent roadmap: #82
Cross-link: Phase 6 safety work #269

Background

Public output safety is one of Gittensory's core trust boundaries. It should be tested centrally instead of relying on scattered checks.

Goal

Create a unified public/private safety proof suite for comments, checks, mention replies, PR packets, MCP public output, generated issue/PR text, extension public panels, and copied snippets.

Current behavior

Several sanitization tests exist, but the forbidden language boundary should be harder to regress as new surfaces are added.

Desired behavior

A single helper and fixture set validates every public-output producer against the same forbidden concepts. Private authenticated output remains separately tested so it can carry allowed private context without leaking it into public surfaces.

Implementation requirements

  • Centralize forbidden concept checks.
  • Add helper for public-output assertions.
  • Cover GitHub comments, minimal checks, mention replies, PR packets, MCP public-safe text, extension public panels, generated issue/PR text, and copied public snippets.
  • Keep private API/MCP tests separate.
  • Avoid brittle exact-copy snapshots where semantic checks are better.

Public/private output boundaries

Public GitHub output must stay quiet-by-default and sanitized. It must not include private reviewability, scoreability, reward/risk, raw trust, wallet/hotkey, public score estimates, or farming language.

Acceptance criteria

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, private scoreability, and public score estimate.
  • MCP/local tooling must prove source contents are not uploaded.

Additional test scenarios

  • Comment fixture.
  • Check-run fixture.
  • Mention reply fixture.
  • PR packet fixture.
  • MCP public-safe fixture.
  • Extension public-panel fixture.
  • Generated issue/PR body fixture.
  • Negative control for private API.

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions