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

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:

  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:

# 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