Changelog
Historique des versions et modifications
Version 7.53.1
7.53.1 (2026-04-26)
Bug Fixes
- scraper: deduplicate Sentry events from cascading and retry-attempt logs (da26d16)
7.53.0 (2026-04-25)
Features
- scraper: add structured JSONL logging across all connectors (6b37c3e)
- scraper: initialize Sentry in ARQ workers (9e421f9)
- webapp,scraper: add UI to relaunch scrape sessions for missing PDFs (de78b0a)
- webapp: add --connector --limit --date flags to scrape-daily.sh (c602761)
- webapp: add connector filter to /scraping page (fd05365)
Bug Fixes
- scraper: compute total_ht from aggregated invoice lines not stale metadata (8d46183)
- scraper: keep session running on CircuitOpenError last attempt (eea4551)
- scraper: keep session running on Selenium slot + OCP CAPTCHA last attempt (233c287)
- scraper: prevent Pattern 2 line merge from polluting summary rows (1862547)
- scraper: reclassify OCP F5 rate-limit errors as OCPCaptchaError (05258e4)
- scraper: report missing Azure config error to GlitchTip (7849970)
- scraper: retry DigiPharmacie CircuitOpenError with jittered defer (8e6d94f)
- scraper: skip CERP VAT recap tables without product identifier (3b9c7d2)
- scraper: skip summary rows whose code/name contains keyword with whole-word match (f0874ab)
- scraper: surface real Cegedim auth error when password expires (3d7077d)
- scraper: widen CircuitOpenError defer to survive longer outages (c038c51)
- webapp: escape tojson output in connector edit button (2d02363), closes #34
- webapp: harden provider name resolution with pattern matching fallback (6e0824d)
- webapp: make scrape-daily.sh macOS-compatible with DATE_FROM override (56ec725)
- webapp: preserve date filters on scrape session retry (56c4377)
- webapp: preserve filters across /scraping pagination links (9a00e45)
- webapp: preserve null date_to in session redownload to avoid monthly split (ba3d715)
- webapp: reset errors_count on session completion (c0a3574)
Performance Improvements
- webapp: paginate grouped invoices view at SQL level (6152fc7)
Tests
- scraper: add OCP retry path baseline tests (Path A/B/C) (a9fb613)
7.52.0 (2026-04-20)
Features
- webapp: add connector filter to /scraping page (2316440)
Bug Fixes
- scraper: keep session running on CircuitOpenError last attempt (38c777b)
- scraper: keep session running on Selenium slot + OCP CAPTCHA last attempt (e72f720)
- scraper: reclassify OCP F5 rate-limit errors as OCPCaptchaError (92d519d)
- scraper: retry DigiPharmacie CircuitOpenError with jittered defer (d758760)
- scraper: widen CircuitOpenError defer to survive longer outages (5d6234b)
- webapp: escape tojson output in connector edit button (a0bbb7e), closes #34
- webapp: make scrape-daily.sh macOS-compatible with DATE_FROM override (e461ee1)
- webapp: preserve filters across /scraping pagination links (7673a80)
- webapp: reset errors_count on session completion (1b7aa53)
Tests
- scraper: add OCP retry path baseline tests (Path A/B/C) (d1cdc51)
7.51.2 (2026-04-17)
Code Refactoring
7.51.1 (2026-04-16)
Bug Fixes
7.51.0 (2026-04-13)
Features
- webapp: add premium biosimilaires tracking page (919cd37)
7.50.0 (2026-04-13)
Features
- webapp: add groupement filter and pharmacy indicator to export (b05a0e6)
- webapp: add server-side pagination to /export page (b882f46)
Documentation
- scraper: document OCP eDocuments.fr connector (9b477c8)
7.49.8 (2026-04-09)
Bug Fixes
7.49.7 (2026-04-07)
Bug Fixes
7.49.6 (2026-04-07)
Miscellaneous Chores
7.49.5 (2026-04-07)
Bug Fixes
7.49.4 (2026-04-06)
Code Refactoring
7.49.3 (2026-04-06)
Code Refactoring
7.49.2 (2026-04-06)
Bug Fixes
7.49.1 (2026-04-06)
Bug Fixes
7.49.0 (2026-03-26)
Features
7.48.4 (2026-03-26)
Miscellaneous Chores
- fix web-app docker (6a38787)
7.48.3 (2026-03-25)
Bug Fixes
- scraper: pin Chromium to 145.x to fix OCP F5 TSPD login failure (8f33ca2)
7.48.2 (2026-03-22)
Code Refactoring
- webapp: clean code improvements — inline imports, Alpine JS patterns, template fixes (#33) (3477cd0)
7.48.1 (2026-03-21)
Bug Fixes
7.48.0 (2026-03-19)
Features
7.47.4 (2026-03-19)
Bug Fixes
7.47.3 (2026-03-19)
Bug Fixes
7.47.2 (2026-03-11)
Bug Fixes
- webapp: send credential failure alerts only to victor.ottavi@odrpharma.fr (7776412)
Tests
- webapp: update credential failure tests for single recipient (a8477f1)
7.47.1 (2026-03-10)
Bug Fixes
7.47.0 (2026-03-10)
Features
7.46.2 (2026-03-10)
Bug Fixes
7.46.1 (2026-03-09)
Bug Fixes
7.46.0 (2026-03-08)
Features
7.45.0 (2026-03-08)
Features
- scraper: deactivate connectors with invalid credentials in auth-worker (a364ef6)
7.44.0 (2026-03-07)
Features
7.43.0 (2026-03-07)
Features
7.42.0 (2026-03-07)
Features
7.41.1 (2026-03-06)
Bug Fixes
- webapp: restore scraper_internal code lost in merge conflict (5cd38e7)
7.41.0 (2026-03-06)
Features
- scraper: auth-worker per-pharmacy jobs with dedicated AUTH_QUEUE (2532fb6)
- scraper: auth-worker per-pharmacy jobs with dedicated AUTH_QUEUE (994626a)
- webapp: add delete pending invitation (#15) (dcfb490)
- webapp: super admin decrypt & reveal connector passwords (#12) (5a58795)
Bug Fixes
- scraper: validate Phoenix cookies with real API call in auth-worker (5dd89cb)
- webapp: display percentage decimals in tracking tables (#14) (5876972)
- webapp: show dispatch counters in scrape-daily.sh output (4903b78)
- webapp: use calendar month arithmetic for monthly stats generation (cdcd3b3)
- webapp: use calendar month arithmetic for monthly stats generation (6c18441)
Miscellaneous Chores
- merge main into develop (ec22af0)
- release: 7.35.0 [skip ci] (2a85be6), closes #12
- release: 7.35.1 [skip ci] (39699a1), closes #14
- release: 7.36.0 [skip ci] (3106882), closes #15
7.40.3 (2026-03-05)
Bug Fixes
- scraper: commit updated uv.lock with nodriver dependency (9d754d8)
7.40.2 (2026-03-05)
Bug Fixes
- remove pnpm version from CI workflows, use packageManager from package.json (94816f2)
- remove pnpm version from CI workflows, use packageManager from package.json (fee172e)
- scraper: widen timing tolerances in rate limiter tests to fix flaky failures (4fd5cee)
- webapp: remove obsolete test for deleted InvoiceMetadata and _merge_raw_data (9b0bd59)
7.40.1 (2026-03-05)
Bug Fixes
7.40.0 (2026-03-05)
Features
- scraper: auth-worker per-pharmacy jobs with dedicated AUTH_QUEUE (596a4fb)
Bug Fixes
- scraper: validate Phoenix cookies with real API call in auth-worker (ab323de)
- webapp: show dispatch counters in scrape-daily.sh output (44c10fc)
- webapp: use calendar month arithmetic for monthly stats generation (04d4fcb)
7.39.1 (2026-03-05)
Bug Fixes
- align pnpm version in CI workflows to 10.30.3 (79afd59)
7.39.0 (2026-03-05)
Features
7.38.0 (2026-03-04)
Features
Bug Fixes
7.37.0 (2026-03-04)
Features
7.36.0 (2026-03-02)
Features
7.35.1 (2026-03-02)
Bug Fixes
7.35.0 (2026-03-02)
Features
7.34.1 (2026-03-02)
Bug Fixes
- scraper: disable credential failure email alerts (e9e1ad5)
- webapp: use calendar month arithmetic for monthly stats generatio (38e1f52)
7.34.0 (2026-02-25)
Features
- scraper,webapp: add OCP eDocuments.fr connector with nodriver (18ccc30)
- scraper,webapp: add OCP eDocuments.fr connector with nodriver (43a76a1)
- scraper,webapp: OCP search form + ZIP bulk download + webapp fixes (6425042)
- scraper,webapp: OCP search form + ZIP bulk download + webapp fixes (eddda6e)
- scraper: OCP login gate + auth/retry fixes (a610b91)
- scraper: OCP login gate + auth/retry fixes (87292b5)
Bug Fixes
- scraper: handle OCP search with no matching documents (4d2bf0a)
- scraper: skip re-analysis of already analyzed invoices during auto-scrape (bb89af9)
- scraper: skip re-analysis of already analyzed invoices during auto-scrape (74dbf38)
- scraper: skip re-analysis of already analyzed invoices during auto-scrape (394bb73)
- webapp: exempt internal API routes from rate limiting (b886845)
- webapp: exempt internal API routes from rate limiting (d056d76)
- webapp: prevent cron failure on partial scrape errors (59fc775)
- webapp: prevent cron failure on partial scrape errors (43660be)
Miscellaneous Chores
- add decrypt-password skill (f6c3c50)
7.33.6 (2026-02-20)
Bug Fixes
- scraper: skip re-analysis of already analyzed invoices during auto-scrape (5dfbfa4)
7.33.5 (2026-02-20)
Bug Fixes
- scraper: correct error count calculation in session reconciliation (d476d1e)
- scraper: fix same error count bug in operations.py reconciliation (b8aa4d0)
Tests
- scraper: update reconciliation tests for preserved errors_count (7a27c76)
7.33.4 (2026-02-18)
Bug Fixes
- scraper: increase job timeout to handle multi-batch Kiss-Web scrapes (3a84d4f)
7.33.3 (2026-02-18)
Bug Fixes
- scraper: reauthenticate for each Kiss-Web batch to prevent token expiration (508e2be)
7.33.2 (2026-02-18)
Bug Fixes
- scraper,webapp: recover orphaned invoices with metadata preservation (2670ffa)
7.33.1 (2026-02-17)
Bug Fixes
- scraper: implement Kiss-Web batching to handle token expiration (bf728d8)
7.33.0 (2026-02-17)
Features
- webapp: add "Échouées" filter on /invoices to isolate failed analyses (a05e0a6)
Bug Fixes
- scraper,webapp: show real error cause in analysis session timeline (691aa42)
- scraper: CEGEDIM Kiss-Web F5 TSPD rate-limiting with sequential PDF downloads (3c42754)
- webapp: correct invoice filter for "failed" analysis status (fe58c62)
- webapp: ensure error logs always appear in scraping session timeline (2f0932b)
7.32.2 (2026-02-15)
Bug Fixes
- webapp: correct invoice filter for "failed" analysis status (3c73467)
7.32.1 (2026-02-15)
Bug Fixes
- scraper,webapp: show real error cause in analysis session timeline (334f029)
- webapp: ensure error logs always appear in scraping session timeline (a2e5790)
7.32.0 (2026-02-12)
Features
- webapp: add "Échouées" filter on /invoices to isolate failed analyses (c1710e9)
7.31.4 (2026-02-12)
Bug Fixes
- scraper,webapp: add session logs for analysis sessions and improve error details (eb8470d)
- scraper,webapp: fix analyze worker blocking and add explicit error logs (08dbd7a)
- scraper,webapp: fix analyze worker blocking and add explicit error logs (da1d171)
- scraper: prevent ARQ analyze worker crash on WebappClientError (7e15826)
- scraper: prevent ARQ analyze worker crash on WebappClientError (e46df48)
- scraper: prevent ARQ analyze worker crash on WebappClientError (25a1eaf)
- webapp: bulk reanalyze now triggers actual analysis jobs (8d087d2)
- webapp: use ODD Pharma branding and generic contact email in invitation emails (b5ad1f8)
7.31.3 (2026-02-12)
Bug Fixes
- scraper,webapp: add session logs for analysis sessions and improve error details (b600963)
- scraper,webapp: fix analyze worker blocking and add explicit error logs (3677c97)
7.31.2 (2026-02-11)
Bug Fixes
- scraper: prevent ARQ analyze worker crash on WebappClientError (f5ca951)
- scraper: prevent ARQ analyze worker crash on WebappClientError (9bc0b47)
7.31.1 (2026-02-11)
Bug Fixes
- webapp: use ODD Pharma branding and generic contact email in invitation emails (6e6c7d3)
7.31.0 (2026-02-11)
Features
- connector: add connector test connection (8f8424c)
- webapp: auto-analyze uploaded invoices with provider hint and display fixes (774f24c)
- webapp: extend session reconciliation for SCRAPE_WEBSITE type (759ca59)
Bug Fixes
Miscellaneous Chores
- sync uv.lock versions (d6da2ce)
7.30.0 (2026-02-08)
Features
- connector: add connector test connection (09d43fa)
- webapp: auto-analyze uploaded invoices with provider hint and display fixes (1fd3260)
- webapp: extend session reconciliation for SCRAPE_WEBSITE type (2510365)
Miscellaneous Chores
- sync uv.lock versions (0dd8f96)
7.29.0 (2026-02-08)
Features
7.28.0 (2026-02-08)
Features
- connector: add connector test connection (5bcc418)
7.27.1 (2026-02-08)
Bug Fixes
7.27.0 (2026-02-07)
Features
- scraper,webapp: alert and deactivate connector on credential failure (#3) (1fab134)
- webapp: improve dashboard chart readability (#4) (c3dd800)
7.26.1 (2026-02-06)
Bug Fixes
- scraper: robust overlay dismissal for CEGEDIM Selenium login (9e4f712)
7.26.0 (2026-02-06)
Features
- scraper: migrate CEGEDIM to Kiss-Web API with auth error propagation and seller filtering (5e07c00)
Bug Fixes
- webapp: use pharmacy name as search subtitle and remove sample credentials (e2fee1c)
7.25.0 (2026-02-06)
Features
7.24.0 (2026-02-06)
Features
7.23.7 (2026-02-05)
Documentation
- add minimal README at monorepo root (a7f97f2)
Miscellaneous Chores
- remove obsolete files from subdirectories (50f7914)
- remove obsolete pre-commit config (using husky now) (ba2e711)
7.23.6 (2026-02-05)
Miscellaneous Chores
- add .claude/.gitignore (b98ab69)
- add debug-invoice-analysis and refresh-local-db skills (83217e1)
- remove obsolete husky directories from subdirectories (87a3c48)
- setup husky at monorepo root (e492bb6)
7.23.5 (2026-02-04)
Bug Fixes
- scraper,webapp: correct unit_price calculation in Phoenix invoice aggregation (e0f5fc3)
7.23.4 (2026-02-04)
Bug Fixes
- ci: use tag-based diff for base image change detection (65f3dc7)
7.23.3 (2026-02-04)
Bug Fixes
- docker: add OCI source labels and fix base image trigger (978579c)
7.23.2 (2026-02-04)
Bug Fixes
- ci: replace wait-on-check-action with GitHub API polling (e89c942)
Miscellaneous Chores
- consolidate monorepo with unified CI/CD (9fe4966)