Changelog

What's new in isnad.app

v0.9.9

Smart Triage Routing

  • Auto model selection: Haiku classifies question confidence in ~0.6s, then routes high-confidence questions to Haiku (2-5s answer) and complex/debated questions to Sonnet (8-12s). 70% of questions now answer 2-3x faster.
  • Single Ask button with model dropdown: Auto (smart routing), ⚡ Fast (Haiku), Detailed (Sonnet). Auto is selected by default.
  • Removed /fast and /medium developer pages. Renamed /deep to /rag for source-grounded evaluation reference.
v0.9.8

Quick Reply + Detailed Answer

  • Two submit buttons: Quick Reply (Haiku — fast, lower cost) and Detailed Answer (Sonnet — comprehensive, current default). Enter key triggers Detailed Answer.
  • Confidence spectrum bars are now equal height instead of a rising graph — cleaner visual indicator
v0.9.7

WS1a Confidence Spectrum

  • Confidence indicator replaced with a 7-level spectrum analyzer: visual red→green signal meter with bars growing taller toward higher confidence
  • Spectrum levels: Level 1 Quranic Explicit, Level 2 Scholarly Consensus (ijmāʿ), Level 3 Majority Consensus, Level 4 Legitimate Disagreement (khilāf), Level 5 Contemporary Debate, Level 6 No Clear Precedent, Level 7 Beyond Scope
  • Each bar in the spectrum is individually hoverable with level name and description tooltip
  • All bars up to the active level are filled; bars beyond are dimmed — like a signal strength meter
  • Dynamic mode prompt now returns spectrum level labels instead of high/medium/low; legacy values mapped for backward compatibility with Medium and Deep modes
v0.9.6

Clean Mode Routing

  • Home page now uses Dynamic mode only — no mode selector displayed to beta testers
  • Developer mode pages available at /deep, /medium, and /fast as direct URLs
  • Mode badge shown only on non-default developer pages
v0.9.5

Dynamic Mode Fixes + OG Meta Tags

  • Fixed JSON truncation in Dynamic mode: increased MAX_TOKENS from 2,000 to 4,096 so complete answers with sources and follow-up suggestions render correctly
  • Dynamic mode now returns a conversation_id and caches context, enabling the follow-up question input box after answers
  • Scholarly, fatwa, and other non-indexed sources in Dynamic mode answers are now counted as unverified citations — previously showed 0 unverified even when fatwas were cited
  • Shared links now render dynamic OG meta tags (question + answer preview) for WhatsApp, iMessage, and Twitter card previews instead of the generic site description
  • Accounting dashboard now shows a By Mode breakdown table: Dynamic vs Medium vs Deep with query count, avg tokens, avg cost, and total cost per mode
  • Scholarly source tiles now show 🎓 emoji instead of bullet point
  • Anthropic token counting fix: input_tokens now includes cache_creation and cache_read tokens — was previously reporting only non-cached portion (e.g. 222 tokens instead of actual 56K)
v0.9.4

Dynamic Mode + Citation Verification

  • Dynamic mode is now the default ask flow: the Answer AI responds first, then Quran and hadith citations are verified against the database
  • Ask API now accepts a `mode` field (`dynamic`, `medium`, `deep`), keeps `deep_research` as backward-compatible output, and auto-maps old `deep_research=true` requests to `mode='deep'`
  • Home page now uses a four-button mode selector with Dynamic selected by default, while Fast remains disabled with a Coming soon tooltip
  • Answer cards now show citation verification totals and color inline citations by verification status, and query logs persist the selected mode
v0.9.3

Scholarly Hadith Numbering

  • Hadith ingestion now stores up to three numbering systems per narration: `sunnah_com`, `scholarly`, and `in_book` when the CDN provides them
  • Retriever and vector hadith search now prefer the scholarly number for citations, falling back to the sunnah.com sequence when no scholarly number exists
  • Dashboard metadata now marks D1-005 complete for the scholarly hadith numbering rollout
v0.9.2

Tafsir-Hadith Cross-Search

  • Tafsir-referenced hadith cross-search: when tafsir quotes a hadith by collection name, the retriever now finds the matching hadith in the database and adds it to the source list
  • Primary-source citations improve for tafsir-quoted narrations, enabling direct references such as `Sahih Muslim #1598` instead of indirect tafsir-only attributions
  • Arabic script collection patterns added: مسلم, بخاري, ترمذی etc. now match in mixed Arabic/English tafsir text
  • Muslim regex tightened to require 'Sahih Muslim' or Arabic رواہ مسلم — prevents false positives from 'Muslims' (the people) in Islamic text
  • Adjacent verse scanning (±2 ayahs): cross-search now checks tafsir of nearby verses, catching hadith referenced in consecutive passages
  • Combined keyword strategy: action verb + topic word (e.g. 'cursed' + 'interest') for cross-translation hadith matching
  • Stricter include_arabic prompt: only true for Arabic language/recitation questions, not for English questions about Islamic concepts with Arabic names
v0.9.1

Follow-Up Query Mode + Prompt Caching

  • Answers now return a `conversation_id`, and the home page keeps a follow-up composer under the answer for context-aware follow-up questions
  • New `/api/v1/ask/follow-up` path skips Search AI and retrieval, reuses cached authenticated source context for 30 minutes, and chains follow-ups on the same conversation
  • Anthropic answer calls now mark the system prompt and cached source context as ephemeral prompt-cache blocks to reduce repeated follow-up input cost
  • Query logs now flag follow-up requests separately, with zero search tokens recorded for accounting visibility
v0.9.0

Hadith Citation Priority + Safari Clipboard Fix

  • Answer AI Rule 10: hadith quoted within tafsir now cited from primary collection (e.g. Sahih Muslim #4093) instead of through the tafsir
  • Safari clipboard fix: Share button now uses ClipboardItem with Promise for Safari compatibility
  • Search AI prompt updated to reflect expanded corpus: 7 hadith collections, 5 tafsir works
v0.8.9

Dynamic Retrieval Profiles

  • Search AI now classifies question type and emits a retrieval profile with preferred tafsir works, Arabic inclusion, and tafsir depth for each query
  • Standard retrieval now adapts per question: simple questions stay lean, while contested or comparative questions pull broader preferred tafsir coverage
  • Arabic context gating now follows the retrieval profile in standard mode, while Deep Research remains the unchanged full-source control path
v0.8.8

Token Cost Reduction

  • Standard mode now uses relevance-ranked context: the top 2 Quran verses and top 2 hadith keep Arabic, while lower-ranked sources switch to English-only formatting
  • Top-ranked verses now keep full Ibn Kathir commentary, while supporting verses use a lean Ibn Kathir section capped at 3,000 characters after deduplication
  • Deep Research remains the unconstrained control path with full Arabic and full tafsir for all retrieved sources, and dashboard metadata reflects the amended D1-001 rollout
v0.8.7

Tafsir Enrichment

  • Tafsir enriched: Ma'arif ul-Quran, Asbab al-Nuzul, Tafsir al-Sa'di, Tafsir al-Qushairi added — 6 works, ~37,000 tafsir entries total
v0.8.6

Hadith Corpus Expansion

  • Hadith corpus expanded: Tirmidhi, Abu Dawud, Nasa'i, Ibn Majah, Muwatta Malik added — 7 collections, ~36,000 hadith total
v0.8.5

Share Links + Session Restore

  • Share button now stores full answer snapshots and copies a `/s/{short_id}` link to the clipboard
  • Shared result pages render the saved answer, sources, confidence, token stats, and follow-up suggestions in read-only form
  • Home page now restores the last successful question, answer, selected models, and mode toggles after same-tab navigation
  • Dashboard metadata now tracks `shared_results` and marks D0-035 complete
v0.8.4

Accounting Dashboard

  • Query logging now persists per-request token counts, model usage, elapsed time, feature flags, and total cost
  • New accounting API summarizes total queries, daily cost by answer model, and top IP usage over selectable periods
  • Accounting page added at /accounting with spend and token tables tailored to the engineering dashboard theme
  • Dashboard stats now track query_logs and mark D0-034 as complete
v0.8.3

Security Hardening

  • nginx rate limiting on /api/v1/ask with a 10 requests/minute budget, burst 5, and JSON 429 response
  • Swarm guard middleware blocks repeated identical questions once they fan out across 5 or more IPs within 5 minutes
  • Prompt and output hardening now reject off-topic or injection-style requests with a standard Islamic-scope JSON response
  • Question length limits tightened to 3-500 characters across API validation and the search box
v0.8.2

Export PDF Reports

  • Export PDF - generate structured multi-page evaluation reports with query config, answer text, token stats, and source breakdown
  • Report layout now separates configuration, answer text, cited sources, and truncated Answer AI input context into dedicated pages
  • PDF filenames now use model-aware timestamps for side-by-side comparison of evaluation runs
v0.8.1

Deep Research Baseline Mode

  • Deep Research mode — toggle sends all available sources to Answer AI for comprehensive scholarly analysis
  • Search box now shows Kid-Friendly and Deep Research toggles side by side
  • Answers display a Deep Research badge when full-source baseline mode is active
v0.8.0

Token Instrumentation

  • Token usage tracking for Search AI and Answer AI with input/output breakdown
  • Cost estimates per query based on model pricing
  • Search result caching — reuses search when only the answer model changes, enabling fair model comparison
  • Elapsed time per AI call shown alongside token counts and cost
  • Tafsir now appears as a citable source type in answers
  • Tafsir deduplication — grouped Ibn Kathir commentary sent once instead of per-verse, reducing input tokens by 50-80%
  • Source tree shows actual retrieval breakdown instead of gap estimation
  • Expandable debug panels — click input tokens to see full AI context, output tokens for source tree
  • Search debug data moved into token instrumentation bar
v0.7.1

Tafsir Coverage Fix + Loading Refinements

  • Ibn Kathir tafsir now covers all 6,236 verses — grouped commentary pre-populated to every verse in range, Surah Al-Fil gap fixed
  • Jalalayn English tafsir ingested — both tafsirs now surface in answers, Ibn Kathir prioritized
  • Loading timer styled to match amber theme
  • Dua rotation slowed to 30 seconds for comfortable reading
v0.7.0

UI Polish & Kid-Friendly Mode

  • Kid-Friendly mode toggle — age-appropriate answers that filter sensitive content for children
  • Loading screen shows rotating duas from Quran and Hadith with elapsed timer
  • Loading timer replaces animated dots — seconds ticker now sits beside the icon
  • Dua rotation slowed to 20 seconds for comfortable reading
  • Dynamic example questions — 24 questions rotate randomly on each visit
  • Citation punctuation cleanup — periods now appear before citation pills, not after
  • Follow-up suggestions left-aligned instead of centered
  • Retry with model selector — switch providers when one is unavailable
  • Clean error messages — raw API errors now show human-readable text
  • Error messages now include expandable debug details for development
  • iPad submit fix — Ask button responds reliably after screenshots
  • GPT-5.4 Pro removed — requires unsupported Responses API
v0.6.0

AI Query Understanding & Multi-Corpus Search

  • AI reformulates queries before search — understands intent and generates Arabic + English search terms
  • Tafsir content is now searchable — Ibn Kathir explanations can surface relevant verses during retrieval
  • Arabic text search now covers Quran, Hadith, and Tafsir corpora
  • Search AI model selector added alongside Answer AI model selection
  • Fallback indicator with retry appears when AI query understanding is unavailable
  • Concept synonym map removed — vocabulary bridging now comes from AI query understanding
v0.5.0

Multi-Model Selection & Competitive Analysis

  • 9 AI models across Anthropic + OpenAI — switch between Claude Opus 4.6, Sonnet 4.6, Haiku 4.5, GPT-5.4, GPT-5.2, GPT-4.1, and economy variants
  • Config-driven model registry — add new providers (Gemini, DeepSeek, etc.) via JSON config, no code changes
  • Model selector dropdown grouped by tier (Premium / Standard / Economy) with provider icons
  • Regenerate any answer with a different model — same sources, different AI
  • Changelog page added at /changelog with timeline view
  • Competitive analysis against Burhan.app — identified Arabic lexicon and citation verification gaps
v0.4.0

UI Polish & Markdown Rendering

  • Dark/light theme toggle with localStorage persistence
  • Auto-scroll to answer after submitting a question
  • Rich markdown rendering — bold text, Arabic, and citations all render inline
  • Fixed bold formatting across Arabic text fragments
v0.3.0

Semantic Vector Search

  • pgvector integration — 21,150 vector embeddings (6,236 Quran + 14,914 Hadith)
  • OpenAI text-embedding-3-small for semantic similarity
  • Interleaved retrieval: vector search + keyword search + concept synonyms merged
  • Conceptual queries like 'purpose of life' now return relevant Quran verses
  • IVFFlat indexes for fast approximate nearest neighbor search
v0.2.1

Retriever Improvements

  • Concept synonym map — 40+ English-to-Quranic vocabulary bridges
  • Expanded stop words list (130+) to filter high-frequency noise
  • Combined phrase search with co-occurrence boosting
  • Queries like 'homosexuality', 'alcohol', 'hijab' now find correct Quranic verses
v0.2.0

P0 Search Interface & AI Pipeline

  • Search interface at isnad.app — type a question, get a sourced answer
  • Claude Sonnet AI pipeline with Quran, Hadith, and Tafsir retrieval
  • Citation pills — amber for Quran, emerald for Hadith
  • Arabic text auto-detection with RTL rendering in Amiri font
  • Follow-up question suggestions
  • Confidence scoring (high/medium/low) with hover explanations
  • Source cards showing where each citation comes from
  • Example questions with auto-submit on click
  • Engineering dashboard moved to /dashboard
v0.1.0

Foundation — Corpus & API

  • 6,236 Quran verses with Arabic text + 3 English translations
  • 8,131 Tafsir entries — Ibn Kathir (Abridged) + al-Jalalayn
  • 14,914 Hadith — Sahih al-Bukhari (7,554) + Sahih Muslim (7,360)
  • 8 REST API endpoints for browsing and searching
  • Verification framework — 23 automated corpus integrity checks
  • PostgreSQL schema with 14 tables and 19 enums
  • Docker Compose deployment on DigitalOcean