apply_feedback, decay, get_mean_affinity, and engagement_score had no
(or broken) test coverage. Also fixes decay(): subtracting a fixed
DAILY_DECAY from a score smaller than that step flipped its sign
instead of settling at zero, causing oscillation on repeated decay
passes.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KcD2BtNqehJxchKiuodTxi