- Add /admin/runs page listing all rule executions with filters for
All/Running/Success/Error.
- Add /api/admin/runs endpoint returning run status, stage, progress,
duration, and error details.
- Add Run History link to admin sidebar.
- Add editorial/magazine-style public layout with serif wordmark.
- Build homepage with three bias columns and editor's picks.
- Add search page with query, bias filter, and sort tabs.
- Add article detail page with summary, bias badge, and reasoning.
- Article cards include expandable "Why this classification?" panel.
- Style with warm, retro-editorial color palette and responsive layout.
- Add article list, editor, and deletion UI.
- Add source management with bias/credibility/active toggles.
- Add encrypted API key CRUD UI.
- Add automated search rules with query, sources, schedule presets,
and per-rule AI model override.
- Implement node-cron scheduler and instrumentation hook.
- Add admin settings including password change and quota reference.
- Implement adapters for NewsAPI, GNews, NewsData, Serper Web Search,
and Brave Search.
- Add unified fetchNews aggregator with URL deduplication.
- Wire OpenAI-compatible Kimi client for bias classification, ranking,
summarization, and topic extraction.
- Add AI analysis prompts, response parsing, and fallback logic.
- Build ranker combining AI score, source credibility, and recency.
- Create admin Discover page and API for manual news discovery.