Aller au contenu principal

Dashboard

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

  • webapp: remove dead is-not-None guard on constat_odr accumulator (#45) (8893f23)

7.51.1 (2026-04-16)

Bug Fixes

  • webapp: cast Decimal to float in tracking annual accumulators (#44) (99b24e3)

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

  • schemas: use date instead of datetime for scraping dates (#43) (bd3b04d)

7.49.7 (2026-04-07)

Bug Fixes

  • changelog: copy CHANGELOG.md into Docker build context and fix path resolution (#42) (95bff2f)

7.49.6 (2026-04-07)

Miscellaneous Chores

  • analytics: add umami script for event tracking (#41) (dd5a30f)

7.49.5 (2026-04-07)

Bug Fixes

  • resolve glitchtip errors — quantity overflow, oauth2 logging, escaping (#40) (fb6b855)

7.49.4 (2026-04-06)

Code Refactoring

  • optimize database queries and error handling (#38) (ad86366)

7.49.3 (2026-04-06)

Code Refactoring

  • webapp: clean code improvements — extract helpers and fix anti-patterns (#37) (9f59048)

7.49.2 (2026-04-06)

Bug Fixes

  • api: explicit password decryption handling and edge case coverage (#36) (e27214b)

7.49.1 (2026-04-06)

Bug Fixes

  • api: handle plaintext passwords in reveal-password endpoint (#35) (5268780)

7.49.0 (2026-03-26)

Features

  • webapp: modernize UI design across all pages (#34) (0911229)

7.48.4 (2026-03-26)

Miscellaneous Chores

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

  • monitoring: fix Sentry environment config and optimize frontend loading (#32) (e5a6531)

7.48.0 (2026-03-19)

Features

  • monitoring: add Sentry/GlitchTip integration to both services (#31) (0cc75a2)

7.47.4 (2026-03-19)

Bug Fixes

  • webapp: protect float(objectif_contrat) from non-numeric string values (#30) (ad64e3e)

7.47.3 (2026-03-19)

Bug Fixes

  • webapp: catch InvalidOperation in focus yearly metrics decimal conversion (#29) (e3b17b7)

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

  • webapp: escape provider names with quotes in JS templates (#28) (de203c2)

7.47.0 (2026-03-10)

Features

  • webapp: redesign stats factures dashboard (#27) (42ed53d)

7.46.2 (2026-03-10)

Bug Fixes

  • scraper: prevent false positive CERP RRM detection as Mylan (#26) (f12b2f5)

7.46.1 (2026-03-09)

Bug Fixes

  • scraper: prevent false positive relevé detection from invoice footers (#25) (2902b3f)

7.46.0 (2026-03-08)

Features

  • scraper: auto-detect provider and invoice type from PDF (#24) (f677326)

7.45.0 (2026-03-08)

Features

  • scraper: deactivate connectors with invalid credentials in auth-worker (a364ef6)

7.44.0 (2026-03-07)

Features

  • scraper: skip empty OCP recap invoices before Azure DI analysis (#23) (82f6164)

7.43.0 (2026-03-07)

Features

  • scraper: skip empty Phoenix invoices before Azure DI analysis (#22) (39aa5c1)

7.42.0 (2026-03-07)

Features

  • scraper: add Mylan/Viatris invoice provider (#21) (bb1fa45)

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

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

  • webapp: improve SEO on public pages and add legal pages (#19) (77a05da)

7.38.0 (2026-03-04)

Features

Bug Fixes

  • upgrade uv from 0.5.11 to 0.10.8 (#18) (7e40536)

7.37.0 (2026-03-04)

Features

  • webapp: proxy PDF access through app with auth checks (#16) (a2ea0e0)

7.36.0 (2026-03-02)

Features

  • webapp: add delete pending invitation (#15) (89e4797)

7.35.1 (2026-03-02)

Bug Fixes

  • webapp: display percentage decimals in tracking tables (#14) (38bfe6e)

7.35.0 (2026-03-02)

Features

  • webapp: super admin decrypt & reveal connector passwords (#12) (b493bd6)

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

  • webapp: restrict credential alert recipients to assigned pharmacy admins (#9) (09d784d)

Miscellaneous Chores

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

7.29.0 (2026-02-08)

Features

  • webapp,scraper: log PDF analysis errors to scraping session (#8) (fd1661f)

7.28.0 (2026-02-08)

Features

  • connector: add connector test connection (5bcc418)

7.27.1 (2026-02-08)

Bug Fixes

  • scraper: prevent scraping sessions stuck in RUNNING state (#5) (85472c7)

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

  • webapp: add inline provider update on invoice details (#2) (524a551)

7.24.0 (2026-02-06)

Features

  • webapp: add bulk provider update for invoices (#1) (8173db4)

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)