2026-03-25: Contradiction Finder Port
- extracted contradiction scanning, AI verification, keyword fallback, and resolution logic into `src/server/plugins/ports/contradiction-finder.ts`
What Changed
- extracted contradiction scanning, AI verification, keyword fallback, and resolution logic into
src/server/plugins/ports/contradiction-finder.ts - replaced the large contradiction route with a thin wrapper
- moved contradiction verification onto the shared
src/server/ai-client.ts - added unit coverage for bridge-concept extraction
- documented Contradiction Finder as the first codex analysis-batch port
Why It Matters
This starts the codex analysis parity batch with a port that uses the shared AI client in a meaningful way.
That makes it an important template for:
- writing-style
- knowledge-gaps
- topic-evolution
- sentiment-timeline
Remaining Gaps
- the wider analysis batch still needs the rest of the frain logic ports brought over
- shared vector/clustering utilities from frain are not yet visible on the fetched branch
- deeper eval/test fixtures for contradiction detection would still improve confidence