15 Commits

Author SHA1 Message Date
gilles 8ebdccb543 feat(mcp): câblage FastAPI + nginx proxy + docker-compose MCP_API_KEY
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 06:49:50 +02:00
gilles 5d7dbec67c fix(mcp): status active + search_products guard + item.product + cleanup auto-name 2026-05-28 06:41:04 +02:00
gilles 87efbcb03d feat(mcp): 6 outils shopping + tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-28 06:37:38 +02:00
gilles c72ffd0ad6 fix(mcp): FTS colonnes non qualifiées + test positif search_notes 2026-05-28 06:29:36 +02:00
gilles e902452781 feat(mcp): 5 outils notes + tests
Ajoute search_notes, get_note, create_note, update_note, delete_note au serveur MCP.
Tests: 6 nouveaux tests notes (13 tests MCP au total, tous passent).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 23:11:15 +02:00
gilles 6cd866c77a fix(mcp): scope fixture NullPool + suppression imports inutiles + validation enums + cleanup tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 23:03:43 +02:00
gilles 05db49f27a feat(mcp): 5 outils todos + tests
Ajoute mcp_server.py avec get_todos, create_todo, update_todo, postpone_todo, delete_todo.
Ajoute test_mcp.py (7 tests). Corrige conftest pour injecter NullPool dans AsyncSessionLocal des outils MCP (évite les conflits d'event loop entre tests).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 22:58:20 +02:00
gilles e9dfb6e293 feat(todos): domains[], photo_path, gps_lat/lng — modèle, schemas, API, tri par date
- Modèle SQLAlchemy : ajout de domains (ARRAY), photo_path, gps_lat, gps_lng ; import Float
- Schemas Pydantic : domain → domains dans TodoCreate, TodoUpdate, TodoResponse ; ajout photo_path, gps_lat, gps_lng
- API GET /api/todos : filtre domain (param URL) redirigé vers domains.contains([domain]) sur le champ ARRAY
- Tests : domain → domains dans les payloads POST ; assertion domains == ["informatique"] dans test_creer_todo
2026-05-24 16:04:21 +02:00
gilles e4c3edc72b test(shopping): 9 tests d'intégration CRUD listes et articles
Couvre : création liste, listing, ajout article custom, validation (422),
cocher/décocher, suppression, finish avec report des non cochés, 404, stores, recherche produits.
2026-05-24 15:37:15 +02:00
gilles a3704a2b27 feat(todos): endpoints CRUD + postpone — 15 tests passent
Ajoute les 5 endpoints REST (list, create, update, delete, postpone),
enregistre le routeur sur /api/todos, et corrige l'isolation des sessions
de test via NullPool + dependency_overrides dans conftest.py.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 09:20:53 +02:00
gilles 861f6497bb fix(todos): Literal types pour status/priority/days, Field default_factory pour tags 2026-05-24 09:17:39 +02:00
gilles 3591972014 test(todos): schémas Pydantic + 9 tests d'intégration todos (en échec)
Ajoute les schémas Pydantic TodoCreate/TodoUpdate/PostponeRequest/TodoResponse,
la fixture db_session dans conftest, et 9 tests d'intégration contre PostgreSQL
réel — tous en échec car les endpoints /api/todos/ n'existent pas encore.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 09:13:58 +02:00
gilles cb85801061 feat: module media — upload, miniatures Pillow et suppression
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 05:05:37 +02:00
gilles 94b971cdf3 feat: endpoint GET /api/health + tests
Implémentation TDD : test écrit en premier (phase rouge), puis
app.main, app.api.health et app.api.media créés pour le faire passer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 04:59:36 +02:00
gilles 8bc69bb705 chore: structure initiale backend et docker-compose 2026-05-24 04:45:16 +02:00