[release] v3.9.0 - Conversation timestamps, RAG improvements, Qdrant 1.16#32
Merged
byerlikaya merged 24 commits intomainfrom Feb 5, 2026
Merged
[release] v3.9.0 - Conversation timestamps, RAG improvements, Qdrant 1.16#32byerlikaya merged 24 commits intomainfrom
byerlikaya merged 24 commits intomainfrom
Conversation
Implement conversation source persistence across repositories and expose it via dashboard chat, and add a structured settings view with flags and layout improvements.
… chunks - Exclude schema chunks and documents when EnableDatabaseSearch is false - Do not prepend chunk 0 to top when it has no significant query overlap - IndicatesMissingData returns false when sources contain majority of query terms - Use fallback relevance threshold when few results but many candidates - Use effective search options in aggressive search path
Enable MCP search for requests tagged with -mcp even when EnableMcpSearch is false in config. McpIntegrationService now calls ConnectAllAsync when no servers are connected, so first -mcp query triggers connection.
- Increase max conversation turns passed to RAG pipeline - Boost previous-query chunks and retain top document chunks for follow-ups - Add previous assistant answer to document context for LLM - Refine last user query selection and prompt instructions for follow-ups
…er and docs - DocumentService: return existing document when FileHash matches (no re-parse/OCR) - SmartRagStartupService: initialize DatabaseConnectionManager for schema analysis - Whisper: ForceTranscribeOnly, language handling, WhisperNativeBootstrap - DocumentSkippedException, chunk deduplication, audio-ocr docs and examples
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…sponse building Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…gical matching Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…ency patterns Co-authored-by: Cursor <cursoragent@cursor.com>
- Add MatchesFilenameForQuery: exact word + token-prefix match (kasko/kaskosu) - Fix sürecektir/süreli false positive in filename matching - ChunkPrioritizer: RelevanceScore as primary sort - Skip filename early return when PreCalculatedResults provided - Preserve PreCalculatedResults when Options filter yields empty - Remove Qdrant cache, remove debug logs, keyword fallback normalization
Track conversation created/updated timestamps across storage providers, expose them via dashboard chat API, and update the dashboard UI for better chat and documents usability (copyable IDs, improved layout and alignment).
- QdrantDocumentRepository: replace obsolete Vector.Data with Vector.Dense.Data - QdrantDocumentRepository: use Vectors implicit conversion for PointStruct - QdrantDocumentRepository: use PointsCount instead of removed VectorsCount - SmartRAG.API: fix Swashbuckle/OpenAPI package references for successful build
- SmartRAG: Qdrant.Client 1.16.1, StackExchange.Redis, MySql.Data, itext, EPPlus, PDFtoImage - SmartRAG.Dashboard: Microsoft.Extensions.FileProviders.Embedded 9.0.12 - SmartRAG.Demo: Microsoft.Extensions.Logging.Console, StackExchange.Redis
…ovements, Qdrant 1.16
0ddc193 to
e3265e3
Compare
byerlikaya
added a commit
that referenced
this pull request
Feb 5, 2026
…1.16 (#32) * refactor: fix storage factory scoping for document repository * feat(dashboard): add web UI and API integration * feat(dashboard): add chat sources and settings UI Implement conversation source persistence across repositories and expose it via dashboard chat, and add a structured settings view with flags and layout improvements. * fix: improve RAG chunk selection and respect DB search off for schema chunks - Exclude schema chunks and documents when EnableDatabaseSearch is false - Do not prepend chunk 0 to top when it has no significant query overlap - IndicatesMissingData returns false when sources contain majority of query terms - Use fallback relevance threshold when few results but many candidates - Use effective search options in aggressive search path * feat(dashboard): UI and endpoint updates * feat(mcp): connect MCP servers on-demand when -mcp tag is used Enable MCP search for requests tagged with -mcp even when EnableMcpSearch is false in config. McpIntegrationService now calls ConnectAllAsync when no servers are connected, so first -mcp query triggers connection. * feat(rag): improve follow-up question handling with conversation context - Increase max conversation turns passed to RAG pipeline - Boost previous-query chunks and retain top document chunks for follow-ups - Add previous assistant answer to document context for LLM - Refine last user query selection and prompt instructions for follow-ups * feat(dashboard): pipeline and UI updates for chat * refactor: fix storage factory scoping for document repository * fix: skip duplicate uploads by hash, init DB schema on startup, Whisper and docs - DocumentService: return existing document when FileHash matches (no re-parse/OCR) - SmartRagStartupService: initialize DatabaseConnectionManager for schema analysis - Whisper: ForceTranscribeOnly, language handling, WhisperNativeBootstrap - DocumentSkippedException, chunk deduplication, audio-ocr docs and examples * feat(dashboard): improve web UI styling and endpoints * feat(api): integrate dashboard with SmartRAG API * refactor(document): improve search strategy, relevance scoring and response building * fix: always persist sources for chat turn in dashboard * refactor: improve chunk prioritization with phrase words and morphological matching * feat: add filename-based early return and improve document search * fix: improve PDF text extraction logic, Turkish encoding and OCR currency patterns * fix: improve RAG document search and filename matching - Add MatchesFilenameForQuery: exact word + token-prefix match (kasko/kaskosu) - Fix sürecektir/süreli false positive in filename matching - ChunkPrioritizer: RelevanceScore as primary sort - Skip filename early return when PreCalculatedResults provided - Preserve PreCalculatedResults when Options filter yields empty - Remove Qdrant cache, remove debug logs, keyword fallback normalization * feat: add conversation timestamps and dashboard UX improvements Track conversation created/updated timestamps across storage providers, expose them via dashboard chat API, and update the dashboard UI for better chat and documents usability (copyable IDs, improved layout and alignment). * style(dashboard): add WhatsApp-like dark theme and align settings badges with chat * fix: allow Dashboard Models folder to be tracked (was ignored by **/models/) * fix: resolve Qdrant.Client 1.16.x and SmartRAG.API build errors - QdrantDocumentRepository: replace obsolete Vector.Data with Vector.Dense.Data - QdrantDocumentRepository: use Vectors implicit conversion for PointStruct - QdrantDocumentRepository: use PointsCount instead of removed VectorsCount - SmartRAG.API: fix Swashbuckle/OpenAPI package references for successful build * build: update NuGet package versions - SmartRAG: Qdrant.Client 1.16.1, StackExchange.Redis, MySql.Data, itext, EPPlus, PDFtoImage - SmartRAG.Dashboard: Microsoft.Extensions.FileProviders.Embedded 9.0.12 - SmartRAG.Demo: Microsoft.Extensions.Logging.Console, StackExchange.Redis * [release] release: prepare v3.9.0 - conversation timestamps, RAG improvements, Qdrant 1.16
byerlikaya
added a commit
that referenced
this pull request
Feb 7, 2026
…1.16 (#32) * refactor: fix storage factory scoping for document repository * feat(dashboard): add web UI and API integration * feat(dashboard): add chat sources and settings UI Implement conversation source persistence across repositories and expose it via dashboard chat, and add a structured settings view with flags and layout improvements. * fix: improve RAG chunk selection and respect DB search off for schema chunks - Exclude schema chunks and documents when EnableDatabaseSearch is false - Do not prepend chunk 0 to top when it has no significant query overlap - IndicatesMissingData returns false when sources contain majority of query terms - Use fallback relevance threshold when few results but many candidates - Use effective search options in aggressive search path * feat(dashboard): UI and endpoint updates * feat(mcp): connect MCP servers on-demand when -mcp tag is used Enable MCP search for requests tagged with -mcp even when EnableMcpSearch is false in config. McpIntegrationService now calls ConnectAllAsync when no servers are connected, so first -mcp query triggers connection. * feat(rag): improve follow-up question handling with conversation context - Increase max conversation turns passed to RAG pipeline - Boost previous-query chunks and retain top document chunks for follow-ups - Add previous assistant answer to document context for LLM - Refine last user query selection and prompt instructions for follow-ups * feat(dashboard): pipeline and UI updates for chat * refactor: fix storage factory scoping for document repository * fix: skip duplicate uploads by hash, init DB schema on startup, Whisper and docs - DocumentService: return existing document when FileHash matches (no re-parse/OCR) - SmartRagStartupService: initialize DatabaseConnectionManager for schema analysis - Whisper: ForceTranscribeOnly, language handling, WhisperNativeBootstrap - DocumentSkippedException, chunk deduplication, audio-ocr docs and examples * feat(dashboard): improve web UI styling and endpoints * feat(api): integrate dashboard with SmartRAG API * refactor(document): improve search strategy, relevance scoring and response building * fix: always persist sources for chat turn in dashboard * refactor: improve chunk prioritization with phrase words and morphological matching * feat: add filename-based early return and improve document search * fix: improve PDF text extraction logic, Turkish encoding and OCR currency patterns * fix: improve RAG document search and filename matching - Add MatchesFilenameForQuery: exact word + token-prefix match (kasko/kaskosu) - Fix sürecektir/süreli false positive in filename matching - ChunkPrioritizer: RelevanceScore as primary sort - Skip filename early return when PreCalculatedResults provided - Preserve PreCalculatedResults when Options filter yields empty - Remove Qdrant cache, remove debug logs, keyword fallback normalization * feat: add conversation timestamps and dashboard UX improvements Track conversation created/updated timestamps across storage providers, expose them via dashboard chat API, and update the dashboard UI for better chat and documents usability (copyable IDs, improved layout and alignment). * style(dashboard): add WhatsApp-like dark theme and align settings badges with chat * fix: allow Dashboard Models folder to be tracked (was ignored by **/models/) * fix: resolve Qdrant.Client 1.16.x and SmartRAG.API build errors - QdrantDocumentRepository: replace obsolete Vector.Data with Vector.Dense.Data - QdrantDocumentRepository: use Vectors implicit conversion for PointStruct - QdrantDocumentRepository: use PointsCount instead of removed VectorsCount - SmartRAG.API: fix Swashbuckle/OpenAPI package references for successful build * build: update NuGet package versions - SmartRAG: Qdrant.Client 1.16.1, StackExchange.Redis, MySql.Data, itext, EPPlus, PDFtoImage - SmartRAG.Dashboard: Microsoft.Extensions.FileProviders.Embedded 9.0.12 - SmartRAG.Demo: Microsoft.Extensions.Logging.Console, StackExchange.Redis * [release] release: prepare v3.9.0 - conversation timestamps, RAG improvements, Qdrant 1.16
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 SmartRAG Pull Request
📝 Description
Release preparation for v3.9.0: conversation timestamps and sources, major RAG search improvements, duplicate upload prevention, Whisper native bootstrap, MCP on-demand connection, and Qdrant.Client 1.16.1 compatibility.
🔗 Related Issue
N/A - Release preparation
🔄 Type of Change
Please mark the relevant options:
🧪 Testing
Please describe the tests that you ran to verify your changes:
📋 Checklist
🚨 Critical Rules Compliance
📸 Screenshots (if applicable)
N/A
📋 Additional Context
🔄 Migration Guide (if breaking changes)
See docs/changelog/migration-guides.md for v3.8.x → v3.9.0 migration:
IStorageFactory:
IConversationRepository (custom implementations): Add
AppendSourcesForTurnAsync,GetSourcesForSessionAsync,GetAllSessionIdsAsync.IQdrantCacheManager: Removed - remove any references.
📊 Performance Impact
🔒 Security Considerations