Goal: match upstream gittensor's time-decay scoring (the detection half shipped in #690, which surfaces that upstream defines TIME_DECAY_* constants gittensory doesn't model).
Scope: implement the time-decay dimension to match upstream. CHANGES LIVE CONTRIBUTOR RANKINGS — GATED on owner review of a before/after ranking diff before merge.
Acceptance: scoring matches upstream time-decay; ranking diff reviewed + signed off by the owner. Effort: L (correctness-sensitive). Sub-issue of #529.
Inherits #525 cross-cutting AC: test:ci + 97% coverage; miner⊕maintainer access boundary (identity per-login, authority per-repo) + public-safe redaction (#542); advisory-first, no auto-merge/submit; no source upload from miner tooling. Part of #525.
Goal: match upstream gittensor's time-decay scoring (the detection half shipped in #690, which surfaces that upstream defines
TIME_DECAY_*constants gittensory doesn't model).Scope: implement the time-decay dimension to match upstream. CHANGES LIVE CONTRIBUTOR RANKINGS — GATED on owner review of a before/after ranking diff before merge.
Acceptance: scoring matches upstream time-decay; ranking diff reviewed + signed off by the owner. Effort: L (correctness-sensitive). Sub-issue of #529.
Inherits #525 cross-cutting AC:
test:ci+ 97% coverage; miner⊕maintainer access boundary (identity per-login, authority per-repo) + public-safe redaction (#542); advisory-first, no auto-merge/submit; no source upload from miner tooling. Part of #525.