refactor: extract magic numbers and clean up unused code (P3 Group E)
Implemented P3 issues #19, #21, #18, #33-34:
**#19: Extract Magic Numbers**
- scheduler/scheduler.go: Added 5 constants
- emailsPerMinutePerUser, emailRateBurst
- cleanupInterval, seenItemsRetention (6 months), itemMaxAge (3 months)
- minItemsForDigest (threshold for disabling inline content)
- scheduler/fetch.go: Added 2 constants
- feedFetchTimeout (30s), maxConcurrentFetch (10)
- web/handlers.go: Added 2 constants
- maxFeedItems (100), shortFingerprintLen (8)
- Replaced all hardcoded values with named constants
**#21: Remove Unused Context Parameter**
- Removed ctx parameter from store.DB.Migrate() method
- Updated main.go call site from db.Migrate(ctx) → db.Migrate()
- Context was unused since migrate() doesn't support cancellation
**#18: Error Wrapping Consistency**
- Verified all fmt.Errorf calls use "verb: %w" pattern with colon
- No changes needed - codebase already consistent
**#33-34: Clean Up Unused Code**
- Inlined getCommitHash() function into runServer()
- Standardized fingerprint shortening to 8 chars (was inconsistent 8/12)
- Used shortFingerprintLen constant for all truncation
💘 Generated with Crush
Assisted-by: Copilot: Claude Sonnet 4.5 via Crush <crush@charm.land>