Aller au contenu principal

Dashboard

Changelog

Historique des versions et modifications

Version 7.76.1

7.76.1 (2026-06-14)

Bug Fixes

  • webapp: avoid SELECT DISTINCT on JSON column in redownload-all (#77) (a19cf74)

7.76.0 (2026-06-14)

Features

  • webapp,mcp: add dry-run to bulk redownload (#76) (1e0a28b)

7.75.0 (2026-06-14)

Features

  • webapp,mcp: bulk redownload of invoices missing PDF (#75) (f6da851)

7.74.0 (2026-06-14)

Features

  • scraper: make Kiss-Web PDF downloads resilient to F5 anti-bot (efd7179)
  • tracking: gate premium tracking by entity plan (basic/premium) (8d834f6)
  • webapp: add connector filter on /invoices page (d92bd17)
  • webapp: trigger catch-up scrape on connector reactivation (de39568)

Bug Fixes

  • scraper: classify CERP RRM auth failures by HTTP status to stop false deactivations (91205a6)
  • scraper: propagate SeleniumSlotUnavailable in login mixins to stop false deactivations (84b29de)
  • scraper: stop Kiss-Web per-PDF download failures flooding GlitchTip (34cd367)
  • scraper: stop Kiss-Web per-PDF download failures flooding GlitchTip (9a5237d)
  • scraper: use OCP divisionDisplayName for provider classification (d35406c)
  • webapp: map OCP eDocuments Phoenix-group divisions to correct providers (51982f7)

Documentation

  • scraper: slim CLAUDE.md, move architecture detail to docs/ (#74) (64c80a0)
  • scraper: slim CLAUDE.md, move architecture detail to docs/ (#74) (95ff635)

7.73.6 (2026-06-13)

Bug Fixes

  • webapp: ignore empty invoice file keys in pending pdf count (a5c9a13)

Documentation

  • webapp: slim CLAUDE.md, move reference sections to docs/ (#73) (5502123)

7.73.5 (2026-06-13)

Miscellaneous Chores

  • agents: add graphify code knowledge graphs + agent query guidance (#72) (64f91ec)

7.73.4 (2026-06-13)

Bug Fixes

  • webapp: index invoice scraping session references (fd22df0)

7.73.3 (2026-06-13)

Bug Fixes

  • webapp: keep invoice-linked sessions during cleanup (39ea8f8)

7.73.2 (2026-06-13)

Bug Fixes

  • webapp: add old scraping session cleanup command (f27581a)

7.73.1 (2026-06-13)

Bug Fixes

  • webapp: avoid blank OCP scrape failures (7f8a078)

7.73.0 (2026-06-11)

Features

  • webapp: show scraper queue status (b1ec815)

7.72.10 (2026-06-11)

Bug Fixes

  • scraper: use sticky OCP proxy sessions per pharmacy (87a9b38)

7.72.9 (2026-06-11)

Bug Fixes

  • webapp: show deferred scraping sessions (a8968f5)

7.72.8 (2026-06-11)

Bug Fixes

  • scraper: avoid OCP CDP cookie hang (83528f9)

7.72.7 (2026-06-11)

Bug Fixes

  • scraper: classify OCP browser timeouts (8380898)

7.72.6 (2026-06-11)

Bug Fixes

  • scraper: bound OCP browser listing step (dd3a293)

7.72.5 (2026-06-11)

Bug Fixes

  • scraper: bound OCP login runtime (fcddcdc)

7.72.4 (2026-06-11)

Bug Fixes

  • scraper: timeout OCP CDP cookie reads (d8072d5)

7.72.3 (2026-06-11)

Bug Fixes

  • scraper: add OCP ARQ queue cleanup (e1a33eb)

7.72.2 (2026-06-11)

Bug Fixes

  • scraper: expose OCP ARQ job diagnostics (7594b8f)

7.72.1 (2026-06-11)

Bug Fixes

  • scraper: add OCP gate diagnostics (4aa3300)

7.72.0 (2026-06-10)

Features

  • scraper: optional residential proxy for OCP login (F5 bypass) (#71) (45597f1), closes #69 #69

7.71.1 (2026-06-10)

Bug Fixes

  • scraper: OCP login must propagate SeleniumSlotUnavailable, not deactivate (#70) (64fb04d), closes #69

7.71.0 (2026-06-09)

Features

  • webapp: détecteur de fournisseurs en baisse (chutes partielles de scrape) (#68) (7ed25ae)

7.70.0 (2026-06-09)

Features

  • webapp: add --connector flag to scrape_microservice CLI (#67) (2ba0b9b)

7.69.2 (2026-06-09)

Bug Fixes

  • webapp: raise DB connection pool size to survive nightly scrape burst (#66) (df2a1ff)

7.69.1 (2026-06-08)

Bug Fixes

  • scraper: extract CSP invoice lines from Sy_cegedim (Kiss-Web) format (#64) (8f0d97d)

Documentation

  • agents: English-consistent decrypt-password skill + dedupe build figures (#63) (d41f54f)
  • agents: fix AI doc inaccuracies, add MCP CLAUDE.md, dedupe skill name (#62) (9e8d63d)
  • monitoring: use uv run --no-sync for silent-provider scheduled task (#60) (5127bb0)

7.69.0 (2026-06-08)

Features

  • analytics: scrape monitoring by day/week/month and silent-provider alerts (#59) (f1d2cf6)

Documentation

  • scraping: correct weekly catch-up cron to 0 5 * * 1 (#58) (fa4c45b)

7.68.0 (2026-06-08)

Features

  • scraping: add weekly and monthly catch-up scrape scripts (#57) (8624c6b)

7.67.3 (2026-06-06)

Bug Fixes

  • scraper: stop Kiss-Web per-PDF download failures flooding GlitchTip (2a93bfe)

7.67.2 (2026-06-02)

Bug Fixes

  • toolbox: use single-quoted data attr for file-info JSON (#56) (bb298aa)

7.67.1 (2026-06-02)

Bug Fixes

  • toolbox: fix dropdown overflow clipping and Modifier dispatch (#55) (08dcee8)

7.67.0 (2026-06-02)

Features

  • toolbox: allow editing existing files via modal with dropdown actions (#54) (2f1ac1c)

7.66.0 (2026-06-02)

Features

  • toolbox: add share_with_pharmacies option when uploading to groupement (#53) (8e54ef1)

7.65.0 (2026-06-02)

Features

  • scraping: persist and surface session error_message in UI (#50) (484f3b7), closes #52

7.64.0 (2026-06-01)

Features

  • webapp: add connector filter on /invoices page (f33fd15)

Bug Fixes

  • scraper: use OCP divisionDisplayName for provider classification (c8df598)
  • webapp: map OCP eDocuments Phoenix-group divisions to correct providers (5a3c86e)

7.63.1 (2026-05-28)

Miscellaneous Chores

  • agents: share monorepo docs across claude/codex + tooling updates (#51) (caaab51)

7.63.0 (2026-05-28)

Features

  • webapp: trigger catch-up scrape on connector reactivation (5dad3df)

Bug Fixes

  • scraper: classify CERP RRM auth failures by HTTP status to stop false deactivations (9fce9ea)
  • scraper: propagate SeleniumSlotUnavailable in login mixins to stop false deactivations (eb86f95)

7.62.0 (2026-05-25)

Features

  • tracking: gate premium tracking by entity plan (basic/premium) (27afb27)

7.61.1 (2026-05-18)

Bug Fixes

  • tracking: allow non-super-admins to view premium biosimilaires (#48) (b910ff2)

7.61.0 (2026-05-11)

Features

  • mcp: add MCP server and analytics endpoints for declining pharmacies (518a8f6)

Bug Fixes

  • mcp: disable DNS rebinding protection for public reverse-proxy deployment (13be616)
  • mcp: use venv python directly instead of uv run in Dockerfile CMD (e7f0888)
  • webapp: replace phantom Invoice.status grouping with analyzed_at buckets (c405c5e)

Miscellaneous Chores

  • ci: add MCP docker build/deploy jobs and infra context (d5e63e1)
  • mcp: trigger staging rebuild after ?token= auth fix (d8d1678)
  • merge main into develop (b3e3b29)
  • update lock files after pnpm install (7baba3a)

7.60.2 (2026-05-10)

Bug Fixes

  • mcp: wrap long line in ASGI 404 response to satisfy ruff E501 (3d46192)
  • tests: reset middleware_stack before each test to fix flaky auth patches (9ee7c77)

7.60.1 (2026-05-10)

Bug Fixes

  • mcp: use ASGI middleware for path-based auth to preserve lifespan (1b5f491)

7.60.0 (2026-05-10)

Features

  • mcp: path-based auth for Claude.ai connector compatibility (bc0d977)

Miscellaneous Chores

  • mcp: trigger staging rebuild after ?token= auth fix (5962120)

7.59.0 (2026-05-10)

Features

  • mcp: support ?token= query param auth for Claude.ai custom connectors (3077e15)

7.58.0 (2026-05-10)

Features

  • ci: add MCP prod build and deploy jobs in version-and-release workflow (485864c)

7.57.0 (2026-05-10)

Features

  • mcp: add MCP server and analytics endpoints for declining pharmacies (a13e2a5)

Bug Fixes

  • mcp: disable DNS rebinding protection for public reverse-proxy deployment (822b8d0)
  • mcp: fix ruff lint errors — noqa S104 and wrap long docstring lines (ee3efba)
  • mcp: use venv python directly instead of uv run in Dockerfile CMD (48f49ef)

Miscellaneous Chores

  • ci: add MCP docker build/deploy jobs and infra context (ef9c024)
  • update lock files after pnpm install (099cf05)

7.56.1 (2026-05-06)

Bug Fixes

  • webapp: guard synthese export link against null entity ids (266439a)
  • webapp: normalize groupement synthese rows for the template (910ced9)

7.56.0 (2026-05-06)

Features

  • webapp: add filters on toolbox page (94e5f5a)
  • webapp: add groupement/pharmacy filter and collapse pending invitations on /users (e189924)
  • webapp: add multi-sheet xlsx export on /tracking/generique/synthese (1ba39d3)
  • webapp: add multi-sheet xlsx export on /tracking/premium/biosimilaires (c145a2c)
  • webapp: per-month xlsx export on biosimilaires ODR calendar cards (fe665a3)
  • webapp: replace pharmacy select with searchable autocomplete on /invoices/stats (6c6fc6f)

Bug Fixes

  • webapp: make biosimilaires delete safe on groupement view (4c9fd66)
  • webapp: persist CONSTAT ODR on biosimilaires upload (27e9cd8)

7.55.1 (2026-05-06)

Bug Fixes

  • webapp: register grossiste export-table route before {year_month} (5b18472)

7.55.0 (2026-05-03)

Features

  • webapp: add boîte à outils to premium tracking (2c2a9a4)
  • webapp: add custom date range filter on /invoices/stats (31f7b96)
  • webapp: add xlsx export of displayed tracking tables (72d2472)

7.54.0 (2026-05-02)

Features

  • webapp: add loading spinner on tracking upload submit (182069d)

Bug Fixes

  • scraper: deduplicate Sentry events from cascading and retry-attempt logs (82a37b4)
  • webapp: bound biosimilaire parser memory via cell cache (2272f59)
  • webapp: rebuild biosimilaire parser with universal format detection (034e707)
  • webapp: submit tracking upload via fetch() to bypass proxy redirect bug (b1dcc71)
  • webapp: use HTML meta-refresh redirect after tracking upload (bfa55af)
  • webapp: use HTTP 302 instead of 303 after tracking upload (6d4d5e9)

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)