Problem
TrustScoreStore::get_score() applies asymmetric decay in-memory at read time but does not write the decayed value back to SQLite. The next read will re-apply decay from the stale persisted value, causing over-decay if multiple reads happen within the same decay window.
Fix
Either persist the decayed score on read (UPDATE trust_scores SET score = ? WHERE server_id = ?), or track last_decay_at timestamp and compute decay only when advancing to a new window.
Priority
P3 — over-decay is conservative (makes scores lower, not higher), so it does not create a security hole but may cause unnecessary tool filtering.
Related: PR #2310
Problem
TrustScoreStore::get_score()applies asymmetric decay in-memory at read time but does not write the decayed value back to SQLite. The next read will re-apply decay from the stale persisted value, causing over-decay if multiple reads happen within the same decay window.Fix
Either persist the decayed score on read (
UPDATE trust_scores SET score = ? WHERE server_id = ?), or tracklast_decay_attimestamp and compute decay only when advancing to a new window.Priority
P3 — over-decay is conservative (makes scores lower, not higher), so it does not create a security hole but may cause unnecessary tool filtering.
Related: PR #2310