- Add parapharmacy-api and pip-platform to detect-changes outputs (was defined in filter but never exposed)
- Fix parapharmacy-api: correct workspace name, remove sqlite3/bcrypt rebuild, add MongoDB service
- Fix pip-platform: trigger on pip-platform changes instead of backend, rewrite from Node.js to Python (uv + pytest) with PostgreSQL and Redis services
The CIMA search API returns {results: [...]} but the admin panel
was treating it as an array, causing CIMA products to be lost.
Now handles both formats:
- Array: [...]
- Object: {results: [...]}
- Lazy-load tesseract.js only in OCR route (skips 30MB WASM download)
- Conditional tracing.js import (skip OTel gRPC in test mode)
- Remove unused barcode-detector import
- Add testTimeout/openHandlesTimeout to jest.config.js
- Add --forceExitTimeout=30000 to test script
- Split CI test jobs into parallel workflows (backend/frontend/mobile)
- Add timeout-minutes: 15 to all test jobs
- Use npm ci --ignore-scripts + selective native rebuild
- Merge 3 parallel test jobs (backend/frontend/mobile) into one sequential job
- Remove dependency on dorny/paths-filter@v3 (replaced with git diff script)
- Add npm cache via setup-node to speed up dependency installation
- Downgrade Node.js from 24 to 22 LTS for stability
- Reduce checkout fetch-depth from full history to 2 commits
- Add dorny/paths-filter to detect changes per component
- Run only relevant tests (backend/frontend/frontend-mobile)
- Build only changed Docker images
- Fix Docker container removal error with --remove-orphans
- Add conditional deploy based on actual changes