- Wrap all scheduler.sync_* calls in automation_routes.py with
asyncio.get_running_loop().run_in_executor() to avoid blocking
the async event loop
- Replace bare 'except: pass' in paper_search._save_papers_to_project
with logging.warning
- Make API base URL configurable via RESEARCH_API_BASE_URL env var
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add StyleAsset model to research_api/models.py for storing writing style profiles
- Add StyleAsset db helpers (sync + async) to research_api/routes/_db_helpers.py
- Add StyleAsset REST routes to research_api/routes/research_routes.py