Skip to content

Phase 7.2: KnowledgeService facade (#643)#656

Merged
ShaerWare merged 2 commits intomainfrom
server/643-knowledge-service-facade
Mar 29, 2026
Merged

Phase 7.2: KnowledgeService facade (#643)#656
ShaerWare merged 2 commits intomainfrom
server/643-knowledge-service-facade

Conversation

@ShaerWare
Copy link
Copy Markdown
Owner

Summary

  • New KnowledgeServiceImpl in modules/knowledge/facade.py — unified facade implementing the KnowledgeService Protocol from modules/knowledge/protocols.py
  • Wraps wiki_rag_service (search/retrieval) and domain services (FAQService, KnowledgeCollectionService, KnowledgeDocService) behind a single interface
  • Lazy access to wiki_rag_service via ServiceContainer — handles late initialization gracefully (returns empty results before RAG is ready)
  • Multi-collection search: deduplicates and merges results from multiple collection indexes
  • Dict → TypedDict converters (_to_search_result, _to_collection_info, _to_document_info, _to_faq_entry_info)
  • Registered in ServiceContainer.knowledge_service during init_wiki_rag() startup
  • Module-level singleton knowledge_service set during startup for direct imports

Closes #643

Files changed

File Change
modules/knowledge/facade.py NewKnowledgeServiceImpl + converters
modules/knowledge/startup.py Create facade early in init_wiki_rag()
app/dependencies.py Add knowledge_service field to ServiceContainer
CLAUDE.md Document Phase 7.2 completion
tests/unit/test_knowledge_service.py New — 18 tests (protocol, signatures, converters)

Test plan

  • 18 new unit tests pass (protocol compliance, signatures, converters)
  • All 170 existing unit tests pass
  • Ruff lint clean
  • CI green

🤖 Generated with Claude Code

ShaerWare and others added 2 commits March 29, 2026 04:45
Phase 7.2: Create KnowledgeServiceImpl that wraps wiki_rag_service
(search/retrieval) and knowledge domain services (collections, documents,
FAQ) behind a single Protocol-conformant facade.

- modules/knowledge/facade.py: KnowledgeServiceImpl + dict→TypedDict converters
- Lazy wiki_rag access via ServiceContainer (handles late initialization)
- Multi-collection search with dedup/merge
- Registered in ServiceContainer.knowledge_service during startup
- 18 unit tests (protocol compliance, signatures, converters)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ShaerWare ShaerWare merged commit b817a37 into main Mar 29, 2026
3 checks passed
@ShaerWare ShaerWare deleted the server/643-knowledge-service-facade branch March 29, 2026 06:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Phase 7.2: KnowledgeService facade — объединить wiki_rag_service + knowledge/service.py

2 participants