Michael
|
c23f74d32d
|
feat: Add Excel export for modified gammes via a new API route and a button in the floating summary bar.
|
2026-02-22 13:10:10 +01:00 |
|
Michael
|
b0d25eb4d7
|
feat: Add FloatingSummaryBar component to display grid summary, draft changes, and save/export actions.
|
2026-02-22 13:05:15 +01:00 |
|
Michael
|
8b9803fffc
|
feat: introduce AI-powered bulk product analysis feature with dedicated engine, types, and UI component.
|
2026-02-22 12:32:09 +01:00 |
|
Michael
|
335cf15ffa
|
feat: Introduce AI copilot for bulk product analysis and integrate a new product scoring engine.
|
2026-02-22 12:28:50 +01:00 |
|
Michael
|
425d9e8088
|
feat: Add Bulk AI Analyzer component to process products, call an AI analysis API with concurrency and retry logic, and update grid insights and recommendations.
|
2026-02-22 12:21:05 +01:00 |
|
Michael
|
661704bf38
|
feat: Add bulk AI product analysis component with supporting data types and AI system prompt.
|
2026-02-22 12:11:32 +01:00 |
|
Michael
|
b015d1f093
|
feat: Add AnalysisEngine for generating AI prompts and extracting recommendations for product range analysis.
|
2026-02-22 12:08:35 +01:00 |
|
Michael
|
8e2c2d4c15
|
feat: Add AnalysisEngine for AI copilot product analysis prompt generation and recommendation extraction.
|
2026-02-22 12:02:42 +01:00 |
|
Michael
|
3de16d15d7
|
feat: Introduce bulk AI product analysis, integrating with OpenRouter via a new API and UI.
|
2026-02-22 11:59:15 +01:00 |
|
Michael
|
04e6ed70f6
|
feat: Implement bulk AI product analysis functionality with a new UI component and API route.
|
2026-02-22 11:19:54 +01:00 |
|
Michael
|
7f9c07b58e
|
feat: Add bulk AI product analysis feature with a new UI component and API route.
|
2026-02-22 11:00:44 +01:00 |
|
Michael
|
4b3672e65a
|
feat: Add AI product analysis endpoint supporting individual and batch processing modes.
|
2026-02-22 09:42:51 +01:00 |
|
Michael
|
9744502788
|
feat: add AI product analysis API route supporting individual and batch modes
|
2026-02-22 09:23:04 +01:00 |
|
Michael
|
ce0085a5c7
|
feat: Implement bulk AI product categorization through a new UI component and API route.
|
2026-02-22 09:17:52 +01:00 |
|
Michael
|
9c79b631cb
|
feat: implement batch AI product analysis API route and UI component for product categorization.
|
2026-02-22 09:10:19 +01:00 |
|
Michael
|
d644043aa5
|
feat: Add batch AI product categorization API and a bulk analyzer UI component.
|
2026-02-22 01:07:17 +01:00 |
|
Michael
|
259fb60638
|
feat(ai): performance-first logic with store awareness extrapolation and change count fix
|
2026-02-22 00:21:53 +01:00 |
|
Michael
|
c5cacd9b5a
|
fix(ai): final overhaul to performance-first, supplier-agnostic logic
|
2026-02-22 00:12:14 +01:00 |
|
Michael
|
0bb73ebcca
|
feat(ai): update batch analysis to use global supplier weight (CA/Margin)
|
2026-02-21 23:27:54 +01:00 |
|
Michael
|
c89e046dee
|
feat(ai): synchronize analysis quality, optimize batch performance and implement context-aware weighting
|
2026-02-21 23:14:12 +01:00 |
|
Michael
|
e8cc89cb2f
|
feat(ai): synchronize batch and individual analysis payloads and models, optimize concurrency
|
2026-02-21 22:48:16 +01:00 |
|
Michael
|
66f28956ce
|
fix(ai): fix syntax error in batch prompt and update types for score support
|
2026-02-21 22:41:48 +01:00 |
|
Michael
|
5c8910825b
|
feat(ai): integrate performance score for smarter analysis and parallelize batch processing
|
2026-02-21 22:41:10 +01:00 |
|
Michael
|
4dac21dfac
|
fix(grid): contextualize draft changes count and validation to visible products
|
2026-02-21 22:39:00 +01:00 |
|
Michael
|
fe8d0f1b32
|
fix(ai): improved seasonality detection in batch by sending detailed month-by-month history
|
2026-02-21 22:28:41 +01:00 |
|
Michael
|
4f7701fa14
|
fix(ai): simplified categories to A (Permanent), C (Seasonal), Z (Exit) and removed B
|
2026-02-21 22:24:58 +01:00 |
|
Michael
|
a186bb1989
|
fix(ai): prevent AI from using placeholder justification string in batch analysis
|
2026-02-21 22:20:07 +01:00 |
|
Michael
|
1ec8ae3f02
|
fix(ai): aligned batch system prompt with successful individual analysis prompt
|
2026-02-21 22:17:21 +01:00 |
|
Michael
|
816ec6e483
|
feat(ai): smarter batch analysis with revenue, history, nomenclature and strict retail rules
|
2026-02-21 22:09:28 +01:00 |
|
Michael
|
8ad2894301
|
fix(ai): batch-analyze uses user-configured model (Gemini 2.5) instead of hardcoded Llama 3.3
|
2026-02-21 22:05:18 +01:00 |
|
Michael
|
3d26dc0b9b
|
fix(ai): client-side retry on 429, server returns retryAfter, hardcoded llama-3.3 free model
|
2026-02-21 22:04:08 +01:00 |
|
Michael
|
41c3ab34b6
|
fix(ai): server-side retry-with-backoff on 429, reads Retry-After header, up to 3 attempts
|
2026-02-21 21:58:25 +01:00 |
|
Michael
|
163d80dfe2
|
fix(ai): throttle now applies on ALL chunk iterations (incl. errors), delay bumped to 20s
|
2026-02-21 21:56:16 +01:00 |
|
Michael
|
bcbea69d0a
|
fix(ai): add 3s throttle between batch chunks to avoid OpenRouter 429 rate limiting
|
2026-02-21 21:53:14 +01:00 |
|
Michael
|
d3dfcf6be4
|
fix(ai): batch-analyze now reads OpenRouter key from DB config instead of env var
|
2026-02-21 21:50:24 +01:00 |
|
Michael
|
1cda9cef9d
|
debug(ai): add verbose logging and improved error visibility in batch analyzer
|
2026-02-21 21:45:58 +01:00 |
|
Michael
|
c6148b58a4
|
fix(ai): prefix insight text with recommended gamme letter for clarity
|
2026-02-21 21:39:52 +01:00 |
|
Michael
|
09f9c0b097
|
feat(ai): bulk analysis now populates AI insight column with justification and duplicate flag
|
2026-02-21 21:38:27 +01:00 |
|
Michael
|
a07bad60b2
|
feat(ai): integrate Llama 3.3 batch analysis for products grouped by nomenclature
|
2026-02-21 20:27:08 +01:00 |
|
Michael
|
09e00fbcdd
|
fix(ui): resolve stale closure in excel export button preventing export of actual drafts
|
2026-02-21 20:08:35 +01:00 |
|
Michael
|
515ca55836
|
feat(export): export modified gammes to excel with specified columns
|
2026-02-21 20:04:46 +01:00 |
|
Michael
|
90205bf51b
|
fix(ui): prevent icon overlap in nomenclature select
|
2026-02-21 19:08:45 +01:00 |
|
Michael
|
d3b349cc31
|
feat(grid): make gamme filters dynamic based on available data and support Aucune state
|
2026-02-21 19:02:44 +01:00 |
|
Michael
|
86c6946c3e
|
style(ux): final refinements to inline selection and visual balance
|
2026-02-21 18:53:22 +01:00 |
|
Michael
|
c2dbaa7fbc
|
style(ux): harmonize ui according to ergonomics specification (silent ui, tabular nums, muted icons)
|
2026-02-21 18:52:11 +01:00 |
|
Michael
|
9ef846a5d9
|
feat(grid): display dynamic reference counts per gamme in filter bar
|
2026-02-21 18:48:11 +01:00 |
|
Michael
|
a94489dd07
|
fix(grid): preserve active grid query in store to restore context on navigation
|
2026-02-21 18:42:00 +01:00 |
|
Michael
|
9493a39d12
|
feat(grid): preserve initial gamme reference and add modification icon
|
2026-02-21 18:30:48 +01:00 |
|
Michael
|
a0f8d9c373
|
fix(grid): adjust nomenclature filter padding to prevent icon overlap
|
2026-02-21 18:26:12 +01:00 |
|
Michael
|
8567361107
|
feat(grid): refine nomenclature to 6-digits, single dropdown filter, and distinct store colors
|
2026-02-21 18:07:36 +01:00 |
|
Michael
|
93e01a475a
|
fix(db): remove non-existent columns from schema and fix aggregation logic
|
2026-02-21 17:34:04 +01:00 |
|
Michael
|
33615bb1bd
|
feat(grid): implement hierarchical nomenclature filter (Secteur > Rayon > Famille)
|
2026-02-21 17:27:33 +01:00 |
|
Michael
|
de7aa1560e
|
feat(grid): improve draft persistence and fix global save in national view
|
2026-02-21 15:49:52 +01:00 |
|
Michael
|
cb7cbf873f
|
feat(grid): add store participation icons in designation column
|
2026-02-21 15:44:53 +01:00 |
|
Michael
|
29936cf3e1
|
feat(grid): split CA and Marge columns and enable sorting
|
2026-02-21 15:33:09 +01:00 |
|
Michael
|
b9311503b2
|
ui(grid): simplify Gamme options to letters and center the column header
|
2026-02-21 15:16:15 +01:00 |
|
Michael
|
86240f4b46
|
chore(cleanup): remove unused imports, variables and fix missing hook dependencies
|
2026-02-21 15:15:22 +01:00 |
|
Michael
|
c1bd0ae097
|
feat(grid): exclude current month from grid and scoring calculations
|
2026-02-21 15:13:29 +01:00 |
|
Michael
|
1c5fe4499a
|
fix(settings): resolve ReferenceError and add detailed persistence logs
|
2026-02-21 14:49:14 +01:00 |
|
Michael
|
85215565fa
|
debug(ai): add diagnostic logs for AI API key persistence
|
2026-02-21 14:32:35 +01:00 |
|
Michael
|
c41a60b430
|
fix(ai): persist openrouter settings on server and fix 503 error
|
2026-02-21 14:04:54 +01:00 |
|
Michael
|
643b26dcf3
|
fix(ui): add hydration guards to settings and grid pages to fix error #418
|
2026-02-21 13:48:07 +01:00 |
|
Michael
|
69e7db4a9d
|
fix(docker): switch to named volume for data persistence
|
2026-02-21 13:22:28 +01:00 |
|
Michael
|
0e0d999027
|
feat: implement dynamic database connection reloading
|
2026-02-21 13:18:38 +01:00 |
|
Michael
|
80d125f933
|
fix: add persistence volume for database settings
|
2026-02-21 13:14:17 +01:00 |
|
Michael
|
ae564b5c46
|
debug: add database connection diagnostics
|
2026-02-21 13:12:11 +01:00 |
|
Michael
|
7a1843e454
|
feat: migrate from mock data to real SQL data
|
2026-02-21 13:08:11 +01:00 |
|
Michael
|
4f4a0dbd62
|
fix: resolve EACCES permission issue and hydration error #418
|
2026-02-21 12:54:39 +01:00 |
|
Michael
|
0026e3134d
|
style: add padding to dashboard layout
|
2026-02-21 12:12:49 +01:00 |
|
Michael
|
0e4c276816
|
feat: implement UI-driven database configuration
|
2026-02-21 12:09:21 +01:00 |
|
Michael
|
e54e679bd4
|
chore : add DATABASE_URL template to docker-compose.yml
|
2026-02-21 12:06:01 +01:00 |
|
Michael
|
9549e4a71f
|
fix : set AUTH_SECRET to resolve next-auth missing secret error
|
2026-02-21 11:59:27 +01:00 |
|
Michael
|
d6649117b9
|
fix : set AUTH_TRUST_HOST=true to resolve next-auth untrusted host error
|
2026-02-21 11:56:36 +01:00 |
|
Michael
|
cc40133ad1
|
fix(docker): resolve exit code 1 OOM in nextjs build by limiting workers and memory, ignoring eslint
|
2026-02-21 11:44:43 +01:00 |
|
Michael
|
d855bda5cd
|
fix(build): désactivation du typechecking strict pour Docker et retrait config invalide
|
2026-02-21 10:43:30 +01:00 |
|
Michael
|
6ec0cde006
|
fix(build): correction des erreurs eslint bloquant le build next.js sous docker
|
2026-02-21 10:35:03 +01:00 |
|
Michael
|
96eac4e35c
|
chore(docker): bascule du port de 3000 vers 5643
|
2026-02-21 04:05:05 +01:00 |
|
Michael
|
dc51957cb3
|
chore(docker): configuration du network externe nginx_default
|
2026-02-21 04:04:06 +01:00 |
|
Michael
|
950d87419a
|
chore(docker): retrait de postgresql du compose (utilisation db locale existante)
|
2026-02-21 04:03:30 +01:00 |
|
Michael
|
3544c0c898
|
feat(grid): ajout algorithme score produit avec parametrage dynamique et page d'aide
|
2026-02-21 04:00:51 +01:00 |
|