feat(engine): add opportunity freshness scorer - #2780
Conversation
Expose a pure computeOpportunityFreshness helper with an injected clock, case-normalized open states, and blank-timestamp fallback so miners can derive the ranker freshness signal without reward-risk IO. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Caution 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥 🛑 Gittensory review result - reject/close recommendedReview updated: 2026-07-03 20:15:07 UTC
🛑 Suggested Action - Reject/Close
Review summary Blockers
Nits — 6 non-blocking
Why this is blocked
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Validate timestamps while picking issue age input and trim open-state values so malformed updatedAt cannot score a stale issue as fresh. Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve index.ts export conflict by exporting freshness and competition helpers together. Co-authored-by: Cursor <cursoragent@cursor.com>
JSONbored
left a comment
There was a problem hiding this comment.
Merge conflicts, please fix.
Resolve add/add conflict with main's opportunity-freshness module by keeping parseable timestamp fallback, bounded min-age iteration, and deduplicated barrel exports. Co-authored-by: Cursor <cursoragent@cursor.com>
Summary
computeOpportunityFreshnessto@jsonbored/gittensory-enginefor the rankerfreshnesssignal documented byopportunity-ranker.src/signals/reward-risk.tswith an injectednowMsclock, case-normalized open states, and blank-timestamp fallback tocreatedAt.dist/index.js.Test plan
npm test --workspace @jsonbored/gittensory-engine