MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / recency_score

Function recency_score

atomic-cli/src/commands/vault/context.rs:541–550  ·  view source on GitHub ↗

Recency component in [0, 1]: 1.0 for "just updated", halving every [`RECENCY_HALF_LIFE_DAYS`]. Unparseable timestamps score 0.

(updated_at: &str, now: chrono::DateTime<chrono::Utc>)

Source from the content-addressed store, hash-verified

539/// Recency component in [0, 1]: 1.0 for "just updated", halving every
540/// [`RECENCY_HALF_LIFE_DAYS`]. Unparseable timestamps score 0.
541fn recency_score(updated_at: &str, now: chrono::DateTime<chrono::Utc>) -> f64 {
542 let Ok(updated) = chrono::DateTime::parse_from_rfc3339(updated_at) else {
543 return 0.0;
544 };
545 let age_days = (now - updated.with_timezone(&chrono::Utc)).num_seconds() as f64 / 86_400.0;
546 if age_days <= 0.0 {
547 return 1.0;
548 }
549 0.5_f64.powf(age_days / RECENCY_HALF_LIFE_DAYS)
550}
551
552/// Combine the candidate score parts into the final ranking score.
553fn final_score(candidate: &CandidateScore, recency: f64) -> f64 {

Callers 2

resolve_and_rankFunction · 0.85

Calls

no outgoing calls

Tested by 1