semantic-release
97fe83fba2
0.149.0
...
Automatically generated by python-semantic-release
2026-03-16 12:55:49 +00:00
Christian Krakau-Louis
c81914f78d
Merge pull request #729 from christianlouis/copilot/add-default-language-version-support
...
feat(translation): automatic document translation to configurable default language
2026-03-16 13:55:25 +01:00
copilot-swe-agent[bot]
0c10fcbafc
fix: register translate task in celery_worker and add setting metadata
...
- Import translate_to_default_language in celery_worker.py
- Add default_document_language to SETTING_METADATA in settings_service.py
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 12:32:03 +00:00
copilot-swe-agent[bot]
075a505085
feat(profile): expose default_document_language in profile API and UI
...
- Add default_document_language to ProfileResponse and ProfileUpdateRequest
- Handle validation in PATCH /api/profile endpoint
- Add dropdown in profile.html template with Alpine.js binding
- Add translation keys for profile UI labels
- Add comprehensive tests for profile default language feature
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 12:13:54 +00:00
copilot-swe-agent[bot]
3a221a62cd
feat(translation): add model, config, task, API, and UI for default document language translation
...
- Add detected_language, default_language_text, default_language_code columns to FileRecord
- Add default_document_language column to UserProfile
- Add DEFAULT_DOCUMENT_LANGUAGE config setting (defaults to "en")
- Create translate_to_default_language Celery task
- Integrate translation trigger into embed_metadata_into_pdf pipeline
- Add /api/files/{id}/translate and /api/files/{id}/translation/default API endpoints
- Add /files/{id}/text/default-language view endpoint
- Update file_view.html with translation sections (default language, on-the-fly)
- Add translation keys to en.json
- Create Alembic migration 036
- Update .env.demo
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 11:54:13 +00:00
github-actions[bot]
0e72a965d5
chore(release): update build metadata files [skip ci]
2026-03-16 11:41:52 +00:00
semantic-release
491aface29
0.148.0
...
Automatically generated by python-semantic-release
2026-03-16 11:41:49 +00:00
Christian Krakau-Louis
1b1cbfce39
Merge pull request #732 from christianlouis/copilot/implement-extract-pdf-metadata
...
feat(tasks): map embedded PDF metadata to app-specific keys in upload_to_email
2026-03-16 12:41:28 +01:00
copilot-swe-agent[bot]
f2255f9a1c
docs: improve docstring and comment clarity in extract_metadata_from_file
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 11:29:53 +00:00
copilot-swe-agent[bot]
9d6bfde288
feat(tasks): extract and map embedded PDF metadata in upload_to_email
...
Implement extraction of embedded PDF metadata using pypdf, mapping
/Title, /Author, /Subject, /Keywords to filename, absender,
document_type, and tags respectively. JSON metadata takes precedence;
PDF metadata fills missing fields only.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 11:27:34 +00:00
copilot-swe-agent[bot]
8125a01f11
Initial plan
2026-03-16 11:16:38 +00:00
github-actions[bot]
3beb243b31
chore(release): update build metadata files [skip ci]
2026-03-16 11:16:27 +00:00
semantic-release
ddea132b68
0.147.3
...
Automatically generated by python-semantic-release
2026-03-16 11:16:25 +00:00
Christian Krakau-Louis
3447a408db
Merge pull request #714 from christianlouis/perf/async-onedrive-token-refresh-7215258063318287629
...
⚡ Async OneDrive token validation using httpx
2026-03-16 12:15:39 +01:00
Christian Krakau-Louis
cf2ffc97f6
Merge pull request #692 from christianlouis/refactor-audit-logs-annotated-b008-6104828608171783200
...
🧹 Fix Annotated pattern in audit_logs.py (Ruff B008)
2026-03-16 12:15:17 +01:00
Christian Krakau-Louis
40cc10c6e2
Merge branch 'main' into refactor-audit-logs-annotated-b008-6104828608171783200
2026-03-16 12:15:06 +01:00
Christian Krakau-Louis
1f1157e86f
Merge pull request #696 from christianlouis/code-health/simplify-ui-upload-12009112042086709661
...
🧹 [Code Health] Simplify complex endpoint `ui_upload`
2026-03-16 12:14:20 +01:00
Christian Krakau-Louis
2a8a4b7471
Merge branch 'main' into code-health/simplify-ui-upload-12009112042086709661
2026-03-16 12:14:11 +01:00
github-actions[bot]
cd7322d989
chore(release): update build metadata files [skip ci]
2026-03-16 11:12:59 +00:00
semantic-release
9dc2ec3a7a
0.147.2
...
Automatically generated by python-semantic-release
2026-03-16 11:12:55 +00:00
Christian Krakau-Louis
6bb695b2ae
Merge pull request #720 from christianlouis/perf/async-url-upload-7099409897484162483
...
⚡ Optimize URL upload with asynchronous I/O
2026-03-16 12:12:32 +01:00
Christian Krakau-Louis
b8a1ac52b3
Merge branch 'main' into perf/async-url-upload-7099409897484162483
2026-03-16 12:12:21 +01:00
github-actions[bot]
66fdb11e39
docs(changelog): update changelog [skip ci]
2026-03-16 11:11:05 +00:00
Christian Krakau-Louis
6837198409
Merge pull request #724 from christianlouis/refactor/audit-logs-annotated-b008-6104828608171783200
...
style: resolve conflicts and use Annotated pattern in audit_logs.py
2026-03-16 12:10:42 +01:00
Christian Krakau-Louis
e10f0bff42
Merge branch 'main' into refactor/audit-logs-annotated-b008-6104828608171783200
2026-03-16 12:10:32 +01:00
github-actions[bot]
0f312160bc
docs(changelog): update changelog [skip ci]
2026-03-16 11:08:52 +00:00
Christian Krakau-Louis
cb1e81355d
Merge pull request #726 from christianlouis/add-tests-saved-searches-4325714364005279059
...
🧪 Add tests for saved searches API
2026-03-16 12:08:31 +01:00
github-actions[bot]
5734df2d50
docs(changelog): update changelog [skip ci]
2026-03-16 10:57:47 +00:00
Christian Krakau-Louis
1bba4899ba
Merge pull request #730 from christianlouis/perf-upload-15584535240168516797
...
Fix mypy type checking error by adding types-aiofiles to dev requirem…
2026-03-16 11:57:29 +01:00
github-actions[bot]
275f706c87
chore(release): update build metadata files [skip ci]
2026-03-16 10:45:17 +00:00
semantic-release
d30ac49c85
0.147.1
...
Automatically generated by python-semantic-release
2026-03-16 10:45:13 +00:00
Christian Krakau-Louis
fd15c36665
Merge pull request #727 from christianlouis/copilot/fix-mypy-errors-main
...
fix: resolve 8 test failures and mypy error on main
2026-03-16 11:44:51 +01:00
copilot-swe-agent[bot]
ff1fde5e48
Initial plan
2026-03-16 10:43:17 +00:00
google-labs-jules[bot]
4f7f33cf1e
🧪 Add tests for saved searches API endpoints
...
Added a new test file `tests/test_api_saved_searches.py` containing a comprehensive test suite for the CRUD operations provided in `app/api/saved_searches.py`. The suite validates happy paths, error conditions (like missing filters, name limits, duplicates), and user isolation using an in-memory SQLite database. Fixed Ruff formatting error that caused the CI pipeline to fail in the previous commit.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:34:01 +00:00
copilot-swe-agent[bot]
c7ff177e17
fix: resolve test failures and mypy errors on main
...
- Fix Dropbox tests: patch httpx.AsyncClient instead of non-existent requests.post
- Add SETTING_METADATA entries for 6 logging settings (log_level, log_format, log_syslog_*)
- Add types-aiofiles to dev dependencies to fix mypy import-untyped error
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:32:20 +00:00
github-actions[bot]
46c4031276
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-16 10:23:16 +00:00
copilot-swe-agent[bot]
012be0dffb
Initial plan
2026-03-16 10:22:54 +00:00
google-labs-jules[bot]
7798ac3b57
🧪 Add tests for saved searches API endpoints
...
Added a new test file `tests/test_api_saved_searches.py` containing a comprehensive test suite for the CRUD operations provided in `app/api/saved_searches.py`. The suite validates happy paths, error conditions (like missing filters, name limits, duplicates), and user isolation using an in-memory SQLite database.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:22:18 +00:00
github-actions[bot]
dd7c8f0342
docs(changelog): update changelog [skip ci]
2026-03-16 10:22:03 +00:00
Christian Krakau-Louis
70c46c8ec0
Merge pull request #721 from christianlouis/copilot/sub-pr-692
...
Fix audit_logs.py: proper Annotated/Depends pattern, remove debug artifacts
2026-03-16 11:21:51 +01:00
Christian Krakau-Louis
6e497aadca
Merge pull request #725 from christianlouis/fix-db-migrate-sqli-17066903272609783485
...
🔒 Fix potential SQL injection in db_migrate preview
2026-03-16 11:21:32 +01:00
github-actions[bot]
4d4706e078
docs(changelog): update changelog [skip ci]
2026-03-16 10:20:48 +00:00
Christian Krakau-Louis
b64c8b9d34
Merge pull request #723 from christianlouis/copilot/fix-mypy-errors-dropbox
...
[WIP] Fix mypy errors related to dropbox module
2026-03-16 11:20:23 +01:00
google-labs-jules[bot]
8ce41d723e
perf: optimize url upload with async i/o
...
Replaced synchronous `requests.get` and `open().write` in the `process_url` endpoint with `httpx.AsyncClient` and `aiofiles.open`. This prevents the FastAPI event loop from blocking during large file downloads.
Updated test suite in `tests/test_url_upload.py` to use `AsyncMock` to mock `httpx.AsyncClient.stream` contexts and async generators properly, covering all original conditions and HTTP error handling paths.
Added dependencies `aiofiles` and `types-aiofiles` to resolve MyPy typing CI failures, and mitigated CodeQL security alerts regarding user-provided path extensions by deriving the extension from original_filename and filtering out all non-alphanumerics.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:19:56 +00:00
copilot-swe-agent[bot]
f68f8d8e31
Initial plan
2026-03-16 10:19:53 +00:00
google-labs-jules[bot]
683af42fe8
perf: optimize url upload with async i/o
...
Replaced synchronous `requests.get` and `open().write` in the `process_url` endpoint with `httpx.AsyncClient` and `aiofiles.open`. This prevents the FastAPI event loop from blocking during large file downloads.
Updated test suite in `tests/test_url_upload.py` to use `AsyncMock` to mock `httpx.AsyncClient.stream` contexts and async generators properly, covering all original conditions and HTTP error handling paths.
Added dependencies `aiofiles` and `types-aiofiles` to resolve MyPy typing CI failures, and mitigated CodeQL security alerts regarding user-provided path extensions by deriving the extension from original_filename and filtering out all non-alphanumerics.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:07:43 +00:00
copilot-swe-agent[bot]
b5ac98889c
fix(api): use proper Annotated pattern in audit_logs.py, remove experimental root test files
...
- Remove _db_dep singleton and its use as default value in function signatures
- Use DbSession = Annotated[Session, Depends(get_db)] directly (matches files.py pattern)
- Declare db: DbSession without a default (FastAPI DI provides the session)
- Delete 10 experimental test_*.py files left at repo root from B008 debugging
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:05:41 +00:00
google-labs-jules[bot]
8ad90d7da9
style: resolve conflicts and use Annotated pattern in audit_logs.py
...
- Resolves merge conflicts with main.
- Implements Annotated pattern for FastAPI dependencies and query parameters.
- Maintains compatibility with decorators by using module-level dependency singletons.
- Fixes Ruff B008 issues.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 10:01:19 +00:00
github-actions[bot]
ff369a2ac1
chore(release): update build metadata files [skip ci]
2026-03-16 10:01:11 +00:00
semantic-release
92996bc2f5
0.147.0
...
Automatically generated by python-semantic-release
2026-03-16 10:01:08 +00:00