Gadoes makes Mike's citations prove themselves

Every source Mike cites can now be checked against the actual document, with a status badge that tells you whether it holds up.

knowledge-management

Gadoes has wired citation verification straight into the chat experience. When Mike answers a question and points to a source, that citation gets saved with a status: verified, unverified, pending, or unavailable. Sources Mike controls and trusts are marked verified automatically; everything else starts as unchecked until someone presses the button.

Click "Verify & read" on a citation and the system pulls up the cited source and confirms the quoted passage actually appears in it. A small badge on each citation shows where things stand. It's a deliberately simple check, so sources behind login walls, paywalls, or redirects can come back as "unavailable" rather than verified - but it fails quietly instead of breaking, and it catches the thing that matters most: a quote that isn't really there.

So what Anyone who has watched a legal AI confidently cite a case that doesn't say what it claims will want this - it turns "trust me" into "check it."

View this fork on GitHub →

Spotted something wrong? Or know the PR text has fresher detail than the writeup above?

Commits in this thread

5 commits from Gadoes/dispumike, oldest first. Source extracted verbatim from the harvested git log.

SHA Subject Author Date
0ba14c89 feat(chunk20): migration 006, citation DB saving with IDs, verification_status type Gadoes 2026-05-02 ↗ GitHub
1e0939c2 feat(chunk20): CitationVerifier service with unit tests Gadoes 2026-05-02 ↗ GitHub
85e53476 feat(chunk20): POST /citations/:id/verify route with tests Gadoes 2026-05-02 ↗ GitHub
0681ec54 Chunk 20 Task 8: CitationCard verification badge Gadoes 2026-05-02 ↗ GitHub
commit body
- VerificationBadge component shows pending/verified/unverified/unavailable
- handleVerify calls POST /api/citations/:id/verify and updates badge state
- Button hidden when citation has no id
- makeCitation helper defaults to id="cite-default" for pre-Chunk-20 tests

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20b226cd Merge Chunks 19-20: Telemetry Dashboard + Citation Verification Gadoes 2026-05-02 ↗ GitHub
commit body
Chunk 19 - MCP Telemetry:
- migration 005_mcp_events.sql
- Telemetry logging in McpClientManager.callTool (latency, cache_hit, success, error_type)
- GET /admin/mcp-telemetry route with per-source aggregation
- Frontend /admin/mcp-telemetry dashboard with auto-refresh

Chunk 20 - Citation Verification:
- migration 006_citations_verification.sql (verification_status column)
- Citation DB saving with IDs before SSE emit; chat_message_id linking
- CitationVerifier service (fetch + HTML text normalize, 10s timeout)
- POST /citations/:id/verify route
- CitationCard VerificationBadge component with live API updates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

Capture this thread into my fork

Download a single Markdown prompt that tells Claude how to port every commit above into your working tree — adapting paths and structure to match your repo. Run it via claude -p < capture-thread-20.md from inside the repo you want the changes in.

⬇ Download capture-thread-20.md