Skip to content

feat(review): extend MaintainerRecapRepoInput with a miner-vs-human cohort split once gate-eval supports one #4521

Description

@JSONbored

Context

A maintainer review-stack × Autonomous Miner System (AMS) integration audit (2026-07-09) found that the maintainer recap digest's aggregation contract has no cohort dimension at all — unlike a missing dashboard card (additive), this requires an upstream schema change before a rendering fix is even possible.

Evidence

  • src/services/maintainer-recap.ts:40export type MaintainerRecapRepoInput = { gatePrecision: GatePrecisionReport; calibration: OutcomeCalibration }; — no actor/origin/cohort field.
  • A repo-wide search for miner|actor|contributor|login in src/services/maintainer-recap.ts returns zero matches (the file's only "top contributors" mention is an already-known dead code path — maintainer-recap-top-contributors.ts, added by closed issue feat(notifications): top-N contributor summary section for the maintainer recap (public-safe) #2244, is never imported outside its own test file).
  • src/services/gate-precision.ts explicitly documents it carries "repo full name + PR-derived counts + gate-type codes ONLY — no actor logins," and outcome-calibration.ts likewise has no cohort dimension — so the aggregation contract genuinely has no path to a miner-vs-human split without new upstream fields.

Why this matters for the Autonomous Miner System

Once the dashboard-side gap (see the sibling issue extending Wave-3's analytics cards) is closed and gatePrecision/calibration gain a cohort-aware computation path, the recap digest — the maintainer's periodic pulse without opening a dashboard — should be able to report something like "N of this week's merges were miner-originated, precision X%" rather than only a blended aggregate. Today it structurally cannot, at any level of rendering effort, until the upstream types gain the field.

Deliverables

  • Extend MaintainerRecapRepoInput (and its upstream GatePrecisionReport/OutcomeCalibration sources) with an optional miner-vs-human cohort split, once the upstream gate-eval split lands
  • Add a recap section (or extend an existing one) that renders the cohort split when available, degrading gracefully to the current blended view when it isn't
  • Tests: cohort-aware and cohort-absent recap rendering both produce valid output; no privacy regression (aggregate counts only, no actor logins in the recap output)
  • Docs: note the new field in the recap/config documentation

Surfaced by a maintainer review-stack × AMS integration audit (2026-07-09). Depends on the miner-vs-human split landing in the underlying gate-eval aggregates first (see the companion Wave-3 dashboard issue). Related: #1963 (the recap digest's own parent epic), #2244 (the closed, currently-dead top-contributors section this issue's schema work is adjacent to but distinct from).

Metadata

Metadata

Assignees

No one assigned

    Labels

    gittensor:featureGittensor-scored feature linked to a feature issue — scores a 0.25x multiplier.orbGittensory Orb related - maintainer self-hosting analytics.

    Projects

    Status
    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions