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>
60 lines
2.0 KiB
Markdown
60 lines
2.0 KiB
Markdown
# 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:
|
|
|
|
1. **Larger response payloads are now viable** - Claude can process more search results
|
|
2. **Better synthesis** - Claude can better combine HybridRAG sources
|
|
3. **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_search` response size limits**
|
|
- Current defaults may be conservative for 8k Ollama context
|
|
- Consider increasing `max_results` defaults for Claude's 200k context
|
|
- Add optional `context_budget` parameter?
|
|
|
|
- [ ] **Review `smart_create` endpoint**
|
|
- 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:
|
|
|
|
```bash
|
|
# 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
|