Remove the implicit jpmschweitzer default tenant (DEFAULT_USER) from src/core/multi_tenancy.py and every endpoint and request model that inherited it (~40 endpoints across /query, /wiki, /vector, /graph, /ingest, /volatile, /documents, /stats, /rag). - Add validate_required_user() + RequiredUser pydantic type in multi_tenancy and a shared require_user FastAPI dependency (RequiredUserQuery) that rejects missing, empty, and whitespace-only users with 422, following the /maintenance/* pattern. - Wiki page create / smart-create / dossier request models now require user (no fallback in wiki_service). - /maintenance/cleanup/test-data derives the tenant from the page path instead of using the production tenant collection. - Wiki.js change listener skips changes when no tenant user can be derived from the notification email instead of defaulting to the production tenant. - Consolidation service internal helpers no longer default to the production tenant. - Tool catalog marks user as required with honest descriptions. - OpenAPI descriptions updated honestly; CHANGELOG notes that callers (tatlock, Scheduler ingest tasks) must now send explicit user. - Offline tests: 422 coverage for query/body endpoints, required-user validator tests; updated legacy tests that assumed a default tenant. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.0 KiB
2.0 KiB
Tatlock Claudification Handover - library-desk
Context
Tatlock (the butler) is being upgraded to use Claude as its primary LLM backend instead of Ollama. This gives all agents 200k token context and improved reasoning. Library-desk is the backend for The Librarian agent.
Parent Issue: See /mnt/media/Projects/tatlock/PROJECT_CLAUDIFICATION.md
Impact on library-desk
Library-desk's API is consumed by The Librarian agent via LibraryDeskClient. With Claude's larger context and better reasoning:
- Larger response payloads are now viable - Claude can process more search results
- Better synthesis - Claude can better combine HybridRAG sources
- Faster processing - May need to review rate limiting
Required Changes
Priority: Low (No blocking changes)
Library-desk likely works as-is. These are optimizations:
-
Review
hybrid_searchresponse size limits- Current defaults may be conservative for 8k Ollama context
- Consider increasing
max_resultsdefaults for Claude's 200k context - Add optional
context_budgetparameter?
-
Review
smart_createendpoint- Claude's reasoning may benefit from more research context
- Consider returning more source material for synthesis
-
Evaluate response formats
- Are responses optimized for LLM consumption?
- Could structured metadata help Claude's reasoning?
Priority: None (Infrastructure)
- No API key changes needed (library-desk doesn't call LLMs directly)
- No authentication changes
- Existing endpoints remain compatible
Testing
Once Tatlock is running with Claude backend:
# Test from Tatlock
curl -X POST http://localhost:8777/v1/responses \
-H "Content-Type: application/json" \
-d '{"input": "Search for Docker networking best practices"}'
# Verify Librarian delegation works with Claude
Timeline
- Blocking: No
- When to implement: After Tatlock Phase 1 is tested and stable
- Effort: ~2-4 hours for optimizations