## Summary - Closes [#33](#33) — per-user `use_conversation_context` boolean on `CustomUser` (default `false`, opt-in). - Migration `0034_customuser_use_conversation_context`. - `GET/POST /api/conversation_preferences` reads/writes the flag; POST sets absolute boolean without toggling `conversation_order` when only this field is sent. - Chat + document RAG paths skip prior-turn history when the flag is off (`AsyncLLMService`, `AsyncRAGService`, both WS consumers). ## Frontend contract - Field: `use_conversation_context` (boolean, default false) - Read: `GET /api/conversation_preferences` → `{ order, use_conversation_context }` - Write: `POST /api/conversation_preferences` with `{ "use_conversation_context": true|false }` - Tooltip copy: use previous conversations to better customize the experience - Counterpart: [chat_web_app#66](ai_ml_operations/chat_web_app#66) ## Test plan - [ ] `manage.py test chat_backend.tests.test_models chat_backend.tests.test_views_conversations.ConversationPreferencesTestCase chat_backend.tests.test_services_llm chat_backend.tests.test_services_rag` - [ ] New user / unset flag → `use_conversation_context` is false; history empty in LLM/RAG prompts - [ ] Enable via preferences API → prior turns appear in history - [ ] Disable again → history skipped; order preference unchanged when posting only the context flagReviewed-on: #73