Skip to content

Merge v0.14.8: Structured error categorization for all 19 reputation services - #44

Merged
overwrite00 merged 2 commits into
mainfrom
develop
May 21, 2026
Merged

Merge v0.14.8: Structured error categorization for all 19 reputation services#44
overwrite00 merged 2 commits into
mainfrom
develop

Conversation

@overwrite00

Copy link
Copy Markdown
Owner

Summary

Complete implementation of structured error categorization for all 19 reputation services.

  • Add error_type field to ReputationResult for categorized error handling
  • Create _categorize_error() helper mapping HTTP codes to error types
  • Update ALL 25 check functions with service-specific error messages
  • Fix URLScan.io error handling for timeout/HTTP errors
  • Update frontend to display error_type alongside messages

Changes

  • Backend: 223 lines modified in connectors.py
  • Frontend: 4 lines modified in TabReputation.jsx

Testing

✅ All 119 tests passing
✅ No breaking changes

v0.14.8 complete and ready for release.

overwrite00 and others added 2 commits May 21, 2026 22:34
BACKEND CHANGES (connectors.py):
- Add error_type field to ReputationResult dataclass for structured error categorization
- Create _categorize_error() helper to map HTTP codes and exceptions to error types:
  * timeout, rate_limit_exceeded, invalid_api_key, malformed_response
  * service_unavailable, connection_error, unknown_error, not_configured
- Update ALL 25 check functions to use categorized error handling with service-specific messages:
  * AbuseIPDB, VirusTotal (3 functions), OpenPhish, PhishTank, MalwareBazaar
  * Spamhaus DROP, ASN Lookup, crt.sh, CIRCL Passive DNS (2), GreyNoise
  * URLScan.io, Pulsedive (2), CriminalIP, SecurityTrails, Hybrid Analysis
  * Redirect Chain, Shodan InternetDB, URLhaus, ThreatFox (3)
- Each service now provides helpful error messages (e.g., "URLScan.io rate limit exceeded (1000/day)")
- Analyst can programmatically identify error types for proper frontend handling

FRONTEND CHANGES (TabReputation.jsx):
- Display error_type category along with error message in results
- Format: "⚠ [error_type] error_message" for better analyst understanding
- Example: "⚠ [rate_limit_exceeded] URLScan.io quota exceeded (1000/day)"

VERIFICATION:
- All 119 tests still passing
- No breaking changes to API responses (error_type defaults to empty string)
- Service-specific error messages improve analyst diagnosis of issues

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
- URLScan.io now properly categorizes timeout and HTTP errors with error_type
- Changes from skipped=True to error= format for better clarity
- Timeout errors now show '[timeout]' instead of generic 'Errore: Timeout'
- HTTP 403 errors show specific service messages with action items
- All 119 tests passing

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
@overwrite00
overwrite00 merged commit 767f000 into main May 21, 2026
1 check passed
overwrite00 added a commit that referenced this pull request Jun 22, 2026
Resolve 2 Dependabot security alerts by enforcing secure versions via npm overrides:
- Alert #44: @babel/core 7.29.0 → 7.29.6 (fixes sourceMappingURL arbitrary read)
- Alert #45: js-yaml 4.1.1 → 4.2.0 (fixes quadratic DoS in merge key handling)

Also upgraded form-data from 4.0.5 → 4.0.6 to fix CRLF injection vulnerability.

All 119 backend tests passing, frontend build successful, ESLint checks passed.
overwrite00 added a commit that referenced this pull request Jun 22, 2026
)

* chore(deps-frontend): bump axios from 1.17.0 to 1.18.0

Bumps the minor-and-patch group in /frontend with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.17.0 to 1.18.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend): bump eslint-plugin-react-refresh from 0.5.2 to 0.5.3

Bumps the development-updates group in /frontend with 1 update: [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh).


Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](ArnaudBarre/eslint-plugin-react-refresh@v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-backend): update dependencies and fix pydantic-core conflict

Updates:
- fastapi 0.136.3 → 0.137.0
- pydantic 2.13.4 → 2.14.3 (compatible with pydantic-core 2.47.x)
- pydantic-settings 2.13.1 → 2.14.1
- uvicorn 0.42.0 → 0.49.0
- mail-parser 4.1.4 → 4.4.0
- beautifulsoup4 4.13.5 → 4.15.0
- sqlalchemy 2.0.48 → 2.0.50
- pytest 9.0.3 → 9.1.0
- pytest-asyncio 1.3.0 → 1.4.0

Removed explicit pydantic-core pinning (transitive dependency, resolved by pip).
All 119 tests passing.

* chore(deps-backend): update dependencies with verified compatibility

Updates (all tested and verified):
- fastapi: 0.137.0 → 0.138.0
- pydantic-settings: 2.14.1 → 2.14.2 (SECURITY PATCH)
- sqlalchemy: 2.0.50 → 2.0.51
- pytest: 9.1.0 → 9.1.1

Maintained:
- beautifulsoup4: 4.13.5 (for extract-msg 0.55.0 compatibility)

All 119 tests passing. Zero regressions detected.

* chore(deps-frontend)(deps): bump the minor-and-patch group (#110)

Bumps the minor-and-patch group in /frontend with 2 updates: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).


Updates `lucide-react` from 1.18.0 to 1.21.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.21.0/packages/lucide-react)

Updates `react-router-dom` from 7.17.0 to 7.18.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.0/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: react-router-dom
  dependency-version: 7.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci)(deps): bump actions/checkout from 6 to 7 (#109)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps-frontend): resolve Dependabot security alerts via npm overrides

Resolve 2 Dependabot security alerts by enforcing secure versions via npm overrides:
- Alert #44: @babel/core 7.29.0 → 7.29.6 (fixes sourceMappingURL arbitrary read)
- Alert #45: js-yaml 4.1.1 → 4.2.0 (fixes quadratic DoS in merge key handling)

Also upgraded form-data from 4.0.5 → 4.0.6 to fix CRLF injection vulnerability.

All 119 backend tests passing, frontend build successful, ESLint checks passed.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
overwrite00 added a commit that referenced this pull request Jun 22, 2026
* chore(deps-frontend): bump axios from 1.17.0 to 1.18.0

Bumps the minor-and-patch group in /frontend with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.17.0 to 1.18.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend): bump eslint-plugin-react-refresh from 0.5.2 to 0.5.3

Bumps the development-updates group in /frontend with 1 update: [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh).


Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](ArnaudBarre/eslint-plugin-react-refresh@v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-backend): update dependencies and fix pydantic-core conflict

Updates:
- fastapi 0.136.3 → 0.137.0
- pydantic 2.13.4 → 2.14.3 (compatible with pydantic-core 2.47.x)
- pydantic-settings 2.13.1 → 2.14.1
- uvicorn 0.42.0 → 0.49.0
- mail-parser 4.1.4 → 4.4.0
- beautifulsoup4 4.13.5 → 4.15.0
- sqlalchemy 2.0.48 → 2.0.50
- pytest 9.0.3 → 9.1.0
- pytest-asyncio 1.3.0 → 1.4.0

Removed explicit pydantic-core pinning (transitive dependency, resolved by pip).
All 119 tests passing.

* chore(deps-backend): update dependencies with verified compatibility

Updates (all tested and verified):
- fastapi: 0.137.0 → 0.138.0
- pydantic-settings: 2.14.1 → 2.14.2 (SECURITY PATCH)
- sqlalchemy: 2.0.50 → 2.0.51
- pytest: 9.1.0 → 9.1.1

Maintained:
- beautifulsoup4: 4.13.5 (for extract-msg 0.55.0 compatibility)

All 119 tests passing. Zero regressions detected.

* chore(deps-frontend)(deps): bump the minor-and-patch group (#110)

Bumps the minor-and-patch group in /frontend with 2 updates: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).


Updates `lucide-react` from 1.18.0 to 1.21.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.21.0/packages/lucide-react)

Updates `react-router-dom` from 7.17.0 to 7.18.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.0/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: react-router-dom
  dependency-version: 7.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci)(deps): bump actions/checkout from 6 to 7 (#109)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps-frontend): resolve Dependabot security alerts via npm overrides

Resolve 2 Dependabot security alerts by enforcing secure versions via npm overrides:
- Alert #44: @babel/core 7.29.0 → 7.29.6 (fixes sourceMappingURL arbitrary read)
- Alert #45: js-yaml 4.1.1 → 4.2.0 (fixes quadratic DoS in merge key handling)

Also upgraded form-data from 4.0.5 → 4.0.6 to fix CRLF injection vulnerability.

All 119 backend tests passing, frontend build successful, ESLint checks passed.

* chore(ci): optimize GitHub Actions workflows

Removed and optimized workflows:
- Remove claude.yml: Not necessary for automated CI/CD, causes log noise
- Optimize codeql.yml:
  * Remove weekly schedule (redundant with PR/push analysis)
  * Set fail-fast: true (stop early on errors)
- Optimize tests.yml:
  * Add node_modules caching for faster frontend test runs
  * Cache key based on package-lock.json hash

Impact:
- Reduced unnecessary workflow runs
- Improved test execution time
- Cleaner log history

* chore(ci): add test coverage reporting

Added coverage tracking and reporting:
- Add coverage.py (7.6.1) to dev dependencies
- Track code coverage during pytest runs
- Generate coverage.xml report (standard format)
- Display coverage summary in build logs
- Upload coverage artifact for download (30 day retention)

Coverage reports:
- Uploaded to: Artifacts → coverage-report → coverage.xml
- Shows which code lines are/aren't tested
- Helps identify untested code paths
- Baseline: monitor coverage trends over time

Note: Coverage tracking runs on all Python versions,
but artifact upload only happens on Python 3.13 (once per run)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
overwrite00 added a commit that referenced this pull request Jun 29, 2026
* chore(deps-frontend): bump axios from 1.17.0 to 1.18.0

Bumps the minor-and-patch group in /frontend with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.17.0 to 1.18.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend): bump eslint-plugin-react-refresh from 0.5.2 to 0.5.3

Bumps the development-updates group in /frontend with 1 update: [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh).


Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](ArnaudBarre/eslint-plugin-react-refresh@v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-backend): update dependencies and fix pydantic-core conflict

Updates:
- fastapi 0.136.3 → 0.137.0
- pydantic 2.13.4 → 2.14.3 (compatible with pydantic-core 2.47.x)
- pydantic-settings 2.13.1 → 2.14.1
- uvicorn 0.42.0 → 0.49.0
- mail-parser 4.1.4 → 4.4.0
- beautifulsoup4 4.13.5 → 4.15.0
- sqlalchemy 2.0.48 → 2.0.50
- pytest 9.0.3 → 9.1.0
- pytest-asyncio 1.3.0 → 1.4.0

Removed explicit pydantic-core pinning (transitive dependency, resolved by pip).
All 119 tests passing.

* chore(deps-backend): update dependencies with verified compatibility

Updates (all tested and verified):
- fastapi: 0.137.0 → 0.138.0
- pydantic-settings: 2.14.1 → 2.14.2 (SECURITY PATCH)
- sqlalchemy: 2.0.50 → 2.0.51
- pytest: 9.1.0 → 9.1.1

Maintained:
- beautifulsoup4: 4.13.5 (for extract-msg 0.55.0 compatibility)

All 119 tests passing. Zero regressions detected.

* chore(deps-frontend)(deps): bump the minor-and-patch group (#110)

Bumps the minor-and-patch group in /frontend with 2 updates: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).


Updates `lucide-react` from 1.18.0 to 1.21.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.21.0/packages/lucide-react)

Updates `react-router-dom` from 7.17.0 to 7.18.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.0/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: react-router-dom
  dependency-version: 7.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci)(deps): bump actions/checkout from 6 to 7 (#109)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps-frontend): resolve Dependabot security alerts via npm overrides

Resolve 2 Dependabot security alerts by enforcing secure versions via npm overrides:
- Alert #44: @babel/core 7.29.0 → 7.29.6 (fixes sourceMappingURL arbitrary read)
- Alert #45: js-yaml 4.1.1 → 4.2.0 (fixes quadratic DoS in merge key handling)

Also upgraded form-data from 4.0.5 → 4.0.6 to fix CRLF injection vulnerability.

All 119 backend tests passing, frontend build successful, ESLint checks passed.

* chore(ci): optimize GitHub Actions workflows

Removed and optimized workflows:
- Remove claude.yml: Not necessary for automated CI/CD, causes log noise
- Optimize codeql.yml:
  * Remove weekly schedule (redundant with PR/push analysis)
  * Set fail-fast: true (stop early on errors)
- Optimize tests.yml:
  * Add node_modules caching for faster frontend test runs
  * Cache key based on package-lock.json hash

Impact:
- Reduced unnecessary workflow runs
- Improved test execution time
- Cleaner log history

* chore(ci): add test coverage reporting

Added coverage tracking and reporting:
- Add coverage.py (7.6.1) to dev dependencies
- Track code coverage during pytest runs
- Generate coverage.xml report (standard format)
- Display coverage summary in build logs
- Upload coverage artifact for download (30 day retention)

Coverage reports:
- Uploaded to: Artifacts → coverage-report → coverage.xml
- Shows which code lines are/aren't tested
- Helps identify untested code paths
- Baseline: monitor coverage trends over time

Note: Coverage tracking runs on all Python versions,
but artifact upload only happens on Python 3.13 (once per run)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
overwrite00 added a commit that referenced this pull request Jun 29, 2026
* chore(deps-frontend): bump axios from 1.17.0 to 1.18.0

Bumps the minor-and-patch group in /frontend with 1 update: [axios](https://github.com/axios/axios).


Updates `axios` from 1.17.0 to 1.18.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.17.0...v1.18.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend): bump eslint-plugin-react-refresh from 0.5.2 to 0.5.3

Bumps the development-updates group in /frontend with 1 update: [eslint-plugin-react-refresh](https://github.com/ArnaudBarre/eslint-plugin-react-refresh).


Updates `eslint-plugin-react-refresh` from 0.5.2 to 0.5.3
- [Release notes](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/releases)
- [Changelog](https://github.com/ArnaudBarre/eslint-plugin-react-refresh/blob/main/CHANGELOG.md)
- [Commits](ArnaudBarre/eslint-plugin-react-refresh@v0.5.2...v0.5.3)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-refresh
  dependency-version: 0.5.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-backend): update dependencies and fix pydantic-core conflict

Updates:
- fastapi 0.136.3 → 0.137.0
- pydantic 2.13.4 → 2.14.3 (compatible with pydantic-core 2.47.x)
- pydantic-settings 2.13.1 → 2.14.1
- uvicorn 0.42.0 → 0.49.0
- mail-parser 4.1.4 → 4.4.0
- beautifulsoup4 4.13.5 → 4.15.0
- sqlalchemy 2.0.48 → 2.0.50
- pytest 9.0.3 → 9.1.0
- pytest-asyncio 1.3.0 → 1.4.0

Removed explicit pydantic-core pinning (transitive dependency, resolved by pip).
All 119 tests passing.

* chore(deps-backend): update dependencies with verified compatibility

Updates (all tested and verified):
- fastapi: 0.137.0 → 0.138.0
- pydantic-settings: 2.14.1 → 2.14.2 (SECURITY PATCH)
- sqlalchemy: 2.0.50 → 2.0.51
- pytest: 9.1.0 → 9.1.1

Maintained:
- beautifulsoup4: 4.13.5 (for extract-msg 0.55.0 compatibility)

All 119 tests passing. Zero regressions detected.

* chore(deps-frontend)(deps): bump the minor-and-patch group (#110)

Bumps the minor-and-patch group in /frontend with 2 updates: [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) and [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom).


Updates `lucide-react` from 1.18.0 to 1.21.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.21.0/packages/lucide-react)

Updates `react-router-dom` from 7.17.0 to 7.18.0
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/react-router-dom@7.18.0/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@7.18.0/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: lucide-react
  dependency-version: 1.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
- dependency-name: react-router-dom
  dependency-version: 7.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(ci)(deps): bump actions/checkout from 6 to 7 (#109)

Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* fix(deps-frontend): resolve Dependabot security alerts via npm overrides

Resolve 2 Dependabot security alerts by enforcing secure versions via npm overrides:
- Alert #44: @babel/core 7.29.0 → 7.29.6 (fixes sourceMappingURL arbitrary read)
- Alert #45: js-yaml 4.1.1 → 4.2.0 (fixes quadratic DoS in merge key handling)

Also upgraded form-data from 4.0.5 → 4.0.6 to fix CRLF injection vulnerability.

All 119 backend tests passing, frontend build successful, ESLint checks passed.

* chore(ci): optimize GitHub Actions workflows

Removed and optimized workflows:
- Remove claude.yml: Not necessary for automated CI/CD, causes log noise
- Optimize codeql.yml:
  * Remove weekly schedule (redundant with PR/push analysis)
  * Set fail-fast: true (stop early on errors)
- Optimize tests.yml:
  * Add node_modules caching for faster frontend test runs
  * Cache key based on package-lock.json hash

Impact:
- Reduced unnecessary workflow runs
- Improved test execution time
- Cleaner log history

* chore(ci): add test coverage reporting

Added coverage tracking and reporting:
- Add coverage.py (7.6.1) to dev dependencies
- Track code coverage during pytest runs
- Generate coverage.xml report (standard format)
- Display coverage summary in build logs
- Upload coverage artifact for download (30 day retention)

Coverage reports:
- Uploaded to: Artifacts → coverage-report → coverage.xml
- Shows which code lines are/aren't tested
- Helps identify untested code paths
- Baseline: monitor coverage trends over time

Note: Coverage tracking runs on all Python versions,
but artifact upload only happens on Python 3.13 (once per run)

* chore(ci)(deps): bump actions/cache from 4 to 6 (#116)

Bumps [actions/cache](https://github.com/actions/cache) from 4 to 6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](actions/cache@v4...v6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend)(deps): bump the minor-and-patch group (#117)

Bumps the minor-and-patch group in /frontend with 2 updates: [axios](https://github.com/axios/axios) and [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react).


Updates `axios` from 1.18.0 to 1.18.1
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.18.0...v1.18.1)

Updates `lucide-react` from 1.21.0 to 1.22.0
- [Release notes](https://github.com/lucide-icons/lucide/releases)
- [Commits](https://github.com/lucide-icons/lucide/commits/1.22.0/packages/lucide-react)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.18.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: minor-and-patch
- dependency-name: lucide-react
  dependency-version: 1.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor-and-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps-frontend)(deps-dev): bump the development-updates group (#118)

Bumps the development-updates group in /frontend with 3 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react), [globals](https://github.com/sindresorhus/globals) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@6.0.3/packages/plugin-react)

Updates `globals` from 17.6.0 to 17.7.0
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](sindresorhus/globals@v17.6.0...v17.7.0)

Updates `vite` from 8.0.16 to 8.1.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@8.1.0/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 6.0.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: development-updates
- dependency-name: globals
  dependency-version: 17.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-updates
- dependency-name: vite
  dependency-version: 8.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: development-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore: remove duplicate .env.example from root

Keep only backend/.env.example as the primary template (documented in CONFIGURATION.md).
The root .env.example was redundant and created confusion.

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant