Commit Graph

2983 Commits

Author SHA1 Message Date
github-actions[bot] 07bdee94b0 chore(release): update build metadata files [skip ci] 2026-03-23 23:06:26 +00:00
semantic-release b7e33af669 0.172.5
Automatically generated by python-semantic-release
2026-03-23 23:06:24 +00:00
Christian Krakau-Louis 965647940b Merge pull request #828 from christianlouis/copilot/fix-try-except-pass-issues
fix(main): suppress intentional S110 try-except-pass in shutdown lifespan
2026-03-24 00:06:05 +01:00
copilot-swe-agent[bot] 2f5e2a0fcd test(google_drive): fix exception handling test to expect non-fatal 200 like OneDrive equivalent
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/c07ba712-5bf3-4083-8234-53224a59f4ba
2026-03-23 22:56:54 +00:00
copilot-swe-agent[bot] c9bb2b6807 fix(settings): move os.path.exists inside try block in update_env_file so exceptions are non-fatal
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/1f6c42dc-d64b-4263-a83a-f2263d865692
2026-03-23 22:06:32 +00:00
copilot-swe-agent[bot] c03ce8cdb2 test(main,imap): fix failing IMAP tests and add coverage for shutdown exception paths
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/05be730d-fcbd-43a5-98be-26d853cf57d0
2026-03-23 21:32:44 +00:00
copilot-swe-agent[bot] 0b8f967eb5 fix(main): suppress S110 ruff warnings with noqa comments for intentional try-except-pass
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/da38721d-bd24-40e2-97a8-08edf261006e
2026-03-23 20:56:14 +00:00
copilot-swe-agent[bot] 315d85c443 Initial plan 2026-03-23 20:55:08 +00:00
github-actions[bot] f8f95085fc chore(release): update build metadata files [skip ci] 2026-03-23 19:01:45 +00:00
semantic-release 7bd9d20091 0.172.4
Automatically generated by python-semantic-release
2026-03-23 19:01:42 +00:00
Christian Krakau-Louis c61afb2c33 Merge pull request #825 from christianlouis/copilot/fix-failing-tests-in-main
fix: resolve multiple failing tests on main
2026-03-23 20:01:21 +01:00
Christian Krakau-Louis dd5603bdd0 Merge pull request #826 from christianlouis/refactor-filename-regex-constant-13933144971632372772
Refactor filename regex to shared constant (Final Fix)
2026-03-23 20:00:58 +01:00
Christian Krakau-Louis 0c3ee6f484 Merge branch 'main' into refactor-filename-regex-constant-13933144971632372772 2026-03-23 20:00:41 +01:00
google-labs-jules[bot] 6f510d5a2d refactor(tasks): extract filename regex to shared constant
Move the valid filename regex pattern to a shared constant in `app/utils/filename_utils.py` and update both the task logic and security tests to use it. This eliminates duplication and ensures consistency across the codebase.

Changes:
- Defined `VALID_FILENAME_PATTERN` and `VALID_FILENAME_RE` in `app/utils/filename_utils.py`.
- Updated `app/tasks/extract_metadata_with_gpt.py` to use `VALID_FILENAME_RE`.
- Updated `tests/test_path_traversal_security.py` to use `VALID_FILENAME_PATTERN`.

This refactoring addresses the duplication mentioned in the TODO in `tests/test_path_traversal_security.py`.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 18:58:29 +00:00
github-actions[bot] 2014a93c1b style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-23 18:55:47 +00:00
copilot-swe-agent[bot] 3be93be35a fix: resolve failing tests in main
- fix(api/dropbox): _require_admin bypasses auth when AUTH_ENABLED=False,
  fixing all 5 TestSaveDropboxSettings failures
- fix(api/onedrive): same AUTH_ENABLED bypass in _require_admin; fix one-arg
  update_env_file call using env_utils version for token rotation
- fix(auth): update login TemplateResponse to Starlette 1.0+ API
  (request as first arg instead of in context dict)
- fix(api/local_auth): update all TemplateResponse calls to Starlette 1.0+ API
- fix(views/share): update TemplateResponse call to Starlette 1.0+ API
- fix(api/billing): update TemplateResponse call to Starlette 1.0+ API
- fix(tests/test_imap_tasks): mock is_private_ip for tests using
  imap.example.com (unresolvable in sandboxed/CI environments)
- fix(tests): update TemplateResponse call_args assertions to new API
  (call_args.kwargs['context'] instead of call_args[0][1])
- fix(tests): update fake_original signatures in dark_mode tests

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/52d7b7b7-3a71-4a96-b2b1-b675b8a6d3b4
2026-03-23 18:51:28 +00:00
copilot-swe-agent[bot] 4cac9fbe9b Initial plan 2026-03-23 18:01:00 +00:00
github-actions[bot] bcdbf9d178 docs(changelog): update changelog [skip ci] 2026-03-23 18:00:07 +00:00
Christian Krakau-Louis fc1365dfec Merge pull request #815 from christianlouis/chore/refactor-save-settings-3579323758629064412
🧹 refactor: simplify save settings endpoints and fix naming
2026-03-23 18:59:47 +01:00
Christian Krakau-Louis 52e8e535ff Merge pull request #822 from christianlouis/copilot/sub-pr-815
refactor: fix save-settings naming, centralize .env updates, enforce admin-only access
2026-03-23 18:59:32 +01:00
copilot-swe-agent[bot] ef5528dcef fix: merge main, resolve conflicts, address review feedback
- Resolve merge conflicts in app/api/onedrive.py and tests/test_api_google_drive_final.py
- Fix legacy Dict[str, str] type hints in update_env_file functions to use dict[str, str]
- Add admin-only access (_require_admin dependency) to save-settings endpoints
  in google_drive.py, onedrive.py, and dropbox.py
- Fix in_memory_only response field to reflect actual env_write_success status
- Update tests to override _require_admin dependency for save-settings endpoint tests
2026-03-23 16:29:46 +00:00
github-actions[bot] ea2dad0c08 chore(release): update build metadata files [skip ci] 2026-03-23 16:27:36 +00:00
semantic-release 8e26e3aaa7 0.172.3
Automatically generated by python-semantic-release
2026-03-23 16:27:32 +00:00
Christian Krakau-Louis 2a5296d7e7 Merge pull request #808 from christianlouis/fix/double-slashes-join-url-12822045781097996485
Fix double slashes again
2026-03-23 17:27:08 +01:00
Christian Krakau-Louis a052b2fbe0 Merge pull request #817 from christianlouis/test-coverage-saved-searches-12781594145241099328
🧪 Extract and complete tests for saved searches API
2026-03-23 17:26:49 +01:00
Christian Krakau-Louis a384b222f1 Merge pull request #819 from christianlouis/copilot/sub-pr-808
Fix join_url sentinel hack, resolve merge conflicts, improve test isolation
2026-03-23 17:25:38 +01:00
github-actions[bot] 326adb1858 style: apply ruff auto-fix
- Auto-formatted code with ruff format
- Applied ruff linting fixes with --fix

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-23 16:25:37 +00:00
Christian Krakau-Louis e330a611d0 Merge pull request #820 from christianlouis/copilot/sub-pr-817
fix(tests): resolve merge conflicts and clean up saved searches test suite
2026-03-23 17:25:19 +01:00
copilot-swe-agent[bot] 15dd1a8471 fix: improve join_url - use walrus op, remove posixpath.normpath
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
Agent-Logs-Url: https://github.com/christianlouis/DocuElevate/sessions/54fd29b1-b600-4e60-aa0a-a069836ad129
2026-03-23 16:20:56 +00:00
google-labs-jules[bot] 2ee6bfc7ea Resolve merge conflicts with main
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 16:19:31 +00:00
github-actions[bot] 248619d91e docs(changelog): update changelog [skip ci] 2026-03-23 16:18:45 +00:00
copilot-swe-agent[bot] 8984d4da70 fix: resolve merge conflicts and refactor join_url to use urllib.parse
- Resolve merge conflicts in .jules/sentinel.md and app/utils/network.py
- Refactor join_url() to use urllib.parse.urlsplit/urlunsplit and posixpath
  instead of sentinel-string hack, preventing corruption for any input URL
- Fix test to use pytest tmp_path fixture instead of hard-coded /tmp/workdir
2026-03-23 16:17:01 +00:00
Christian Krakau-Louis 0596206e17 Merge pull request #823 from christianlouis/sentinel-fix-ssrf-dns-resolution-16520734505214840647
🛡️ Sentinel: [HIGH] Fix SSRF bypass on DNS resolution failure
2026-03-23 17:17:00 +01:00
github-actions[bot] 26963a8464 docs(changelog): update changelog [skip ci] 2026-03-23 16:16:55 +00:00
Christian Krakau-Louis 1e7f2275d3 Merge branch 'main' into sentinel-fix-ssrf-dns-resolution-16520734505214840647 2026-03-23 17:16:53 +01:00
Christian Krakau-Louis 88368f7f76 Merge pull request #809 from christianlouis/security/fix-sql-injection-db-migrate-320708476140781345
🔒 Fix SQL Injection Vulnerability in Database Migration Preview
2026-03-23 17:16:07 +01:00
Christian Krakau-Louis 7fbcf5c593 Merge pull request #810 from christianlouis/add-send-to-dropbox-tests-794836455840300562
🧪 Add explicit tests for send_to_dropbox_endpoint
2026-03-23 17:15:49 +01:00
copilot-swe-agent[bot] 01c04c20ce fix(tests): resolve merge conflicts and fix code review issues in saved searches tests
- Resolve add/add conflict in tests/test_api_saved_searches.py by keeping the improved HEAD version
- Resolve content conflict in tests/test_api_advanced_filters.py by keeping HEAD (no CRUD tests)
- Remove no-op test_get_user_id_branches (was just 'pass')
- Remove unused 'from fastapi import Request' import (fixes Ruff F401)
- Fix duplicate 'session = {}' assignment in MockRequest (fixes Ruff F811)
2026-03-23 16:15:47 +00:00
Christian Krakau-Louis cfcce57e35 Merge pull request #812 from christianlouis/refactor-filename-regex-constant-13933144971632372772
Refactor filename regex to shared constant (v2)
2026-03-23 17:15:34 +01:00
Christian Krakau-Louis 10297ede37 Merge branch 'main' into refactor-filename-regex-constant-13933144971632372772 2026-03-23 17:15:24 +01:00
github-actions[bot] 78bd5b5904 docs(changelog): update changelog [skip ci] 2026-03-23 16:15:23 +00:00
Christian Krakau-Louis 9153b1f7f0 Merge pull request #814 from christianlouis/sentinel-ssrf-imap-9566695902417221069
🛡️ Sentinel: [HIGH] Fix Server-Side Request Forgery in IMAP connections
2026-03-23 17:15:00 +01:00
Christian Krakau-Louis f9b4975093 Merge branch 'main' into sentinel-ssrf-imap-9566695902417221069 2026-03-23 17:14:50 +01:00
copilot-swe-agent[bot] 47595818b4 Initial plan 2026-03-23 16:14:14 +00:00
copilot-swe-agent[bot] bad369548b Initial plan 2026-03-23 16:12:11 +00:00
copilot-swe-agent[bot] 7ea8b17fd2 Initial plan 2026-03-23 16:11:48 +00:00
github-actions[bot] cc5e879ea9 docs(changelog): update changelog [skip ci] 2026-03-23 16:07:58 +00:00
Christian Krakau-Louis 7490462c67 Merge pull request #818 from christianlouis/sentinel/fix-path-traversal-3335474446649715249
🛡️ Sentinel: [CRITICAL] Fix path traversal vulnerability in file utilities
2026-03-23 17:07:36 +01:00
Christian Krakau-Louis c25e1b0e21 Merge branch 'main' into sentinel/fix-path-traversal-3335474446649715249 2026-03-23 17:07:30 +01:00
google-labs-jules[bot] a10f8e628e 🔒 Fix SQL injection in database migration and resolve merge conflicts
This commit safely handles the dynamic table names in database migration queries
by leveraging `sqlalchemy.select` and `sqlalchemy.table` in `app/utils/db_migrate.py`.
It addresses the `# noqa: S608` exception that was in place for string interpolation
SQL queries which are a known security anti-pattern.

Additionally, this commit includes the latest updates to `app/views/base.py`
from the `main` branch to handle backward compatibility across Starlette
versions (<1.0 vs 1.0+) when invoking `Jinja2Templates.TemplateResponse`,
resolving previous merge conflicts in the PR.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-23 15:56:34 +00:00