Files
library-desk/PROJECT_CLAUDIFICATION_HANDOVER.md
T
jpmschweitzerandClaude Fable 5 84e9185371 feat!: require explicit user on every tenant-data endpoint
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>
2026-07-14 11:06:11 +02:00

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