Commit Graph

2506 Commits

Author SHA1 Message Date
github-actions[bot] 1bec4e02e2 chore(release): update build metadata files [skip ci] 2026-03-16 15:50:41 +00:00
semantic-release 21e2f89827 0.150.0
Automatically generated by python-semantic-release
2026-03-16 15:50:38 +00:00
Christian Krakau-Louis 905d128dd8 Merge pull request #738 from christianlouis/copilot/fix-link-from-file-detail-to-file
Add "View Document" link from file detail page back to document view
2026-03-16 16:50:17 +01:00
github-actions[bot] b8df5ba253 docs(changelog): update changelog [skip ci] 2026-03-16 15:39:08 +00:00
Christian Krakau-Louis 16f89433da Merge pull request #735 from christianlouis/copilot/optimize-docker-image-size
chore(docker): shrink image size with venv, slim builder, and .dockerignore
2026-03-16 16:38:38 +01:00
copilot-swe-agent[bot] 036210dd45 feat(ui): add View Document link from file detail page back to file view page
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 15:36:37 +00:00
github-actions[bot] df89bbf79b chore(release): update build metadata files [skip ci] 2026-03-16 15:35:43 +00:00
semantic-release b13e2a6049 0.149.4
Automatically generated by python-semantic-release
2026-03-16 15:35:40 +00:00
Christian Krakau-Louis 6c532627f1 Merge pull request #736 from christianlouis/copilot/fix-internal-server-error
fix(translation): TypeError in apply_owner_filter call crashes translation endpoints
2026-03-16 16:35:16 +01:00
copilot-swe-agent[bot] af788a8ea1 Initial plan 2026-03-16 15:29:26 +00:00
copilot-swe-agent[bot] 718d82c815 chore(docker): optimize image size with venv, slim builder, and dockerignore
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 15:28:31 +00:00
copilot-swe-agent[bot] 825f3cc3a8 fix(translation): fix apply_owner_filter called with wrong arguments
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 15:25:29 +00:00
copilot-swe-agent[bot] 98a4d7a72c Initial plan 2026-03-16 15:19:32 +00:00
copilot-swe-agent[bot] bb39bc1ccd Initial plan 2026-03-16 15:14:18 +00:00
github-actions[bot] f5a5d1f2f4 chore(release): update build metadata files [skip ci] 2026-03-16 15:01:20 +00:00
semantic-release 82f9ca35cd 0.149.3
Automatically generated by python-semantic-release
2026-03-16 15:01:17 +00:00
Christian Krakau-Louis 9bc505d2f2 Merge pull request #734 from christianlouis/copilot/fix-user-profiles-table-error
fix(migrations): make migration 036 idempotent against missing user_profiles table
2026-03-16 16:00:54 +01:00
copilot-swe-agent[bot] 77df9628c3 fix(migrations): guard migration 036 against missing user_profiles table
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 14:56:09 +00:00
copilot-swe-agent[bot] 5a7095495b Initial plan 2026-03-16 14:46:56 +00:00
github-actions[bot] 280d508425 chore(release): update build metadata files [skip ci] 2026-03-16 14:30:21 +00:00
semantic-release 438b79ae04 0.149.2
Automatically generated by python-semantic-release
2026-03-16 14:30:17 +00:00
Christian Krakau-Louis 3e541ea655 Merge pull request #733 from christianlouis/copilot/debug-login-functionality
fix(ui): replace emoji flags with cross-platform CSS flag sprites
2026-03-16 15:29:49 +01:00
github-actions[bot] cd65ae4343 chore(release): update build metadata files [skip ci] 2026-03-16 14:29:40 +00:00
semantic-release b78a328626 0.149.1
Automatically generated by python-semantic-release
2026-03-16 14:29:37 +00:00
Christian Krakau-Louis ebbbd3d62e Merge pull request #731 from christianlouis/copilot/fix-mobile-app-login
fix: resolve CI failures from stale request mocks, Annotated+Depends pattern, and CodeQL sensitive data logging
2026-03-16 15:29:15 +01:00
copilot-swe-agent[bot] 4619e6b8a6 fix(ui): replace emoji flags with cross-platform flag-icons CSS library
Windows does not render regional indicator emoji as graphical flags,
showing raw text (DE, GB) instead. Replace all emoji flag values in
SUPPORTED_LANGUAGES with lowercase ISO 3166-1 alpha-2 country codes,
add the flag-icons@7.3.2 CSS library via CDN, and update templates to
render <span class="fi fi-{code}"> instead of emoji text.

Special cases:
- Welsh (cy): uses flag-icons region code "gb-wls"
- Catalan (ca): falls back to "es" (no dedicated ISO flag)
- Esperanto (eo): uses "un" (UN flag for international language)

<option> elements in profile.html no longer display flags since CSS
icon classes cannot be applied inside native <option> tags.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 14:25:28 +00:00
copilot-swe-agent[bot] 62f246df9c Initial plan 2026-03-16 14:12:30 +00:00
copilot-swe-agent[bot] 0444b14d87 fix(test): update url_upload test mocks from requests to httpx
The tests were patching `app.api.url_upload.requests.get` but the module
uses `httpx.AsyncClient`. Updated 4 tests across 2 files to use the
correct `httpx.AsyncClient.stream` mock pattern with `AsyncMock`,
matching the existing working tests in test_url_upload.py.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 13:03:18 +00:00
github-actions[bot] e8d60006c2 chore(release): update build metadata files [skip ci] 2026-03-16 12:55:53 +00:00
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] 7bd667e271 fix(security): clarify billing log message wording
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 12:23:07 +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] b7a3b301a3 fix(security): remove clear-text logging of sensitive data and fix Annotated+Depends pattern
- audit_logs.py: Remove _db_dep pattern that fails with latest FastAPI on
  Python 3.11. Use clean DbSession = Annotated[Session, Depends(get_db)]
  without default values.
- billing.py: Remove owner_id from log messages to fix CodeQL clear-text
  logging of sensitive information alerts.
- files.py: Remove owner_id from log messages to fix CodeQL clear-text
  logging of sensitive information alerts.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 12:07:04 +00:00
copilot-swe-agent[bot] 8cc817930d Merge remote-tracking branch 'origin/main' into copilot/fix-mobile-app-login 2026-03-16 11:58:14 +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] 9a256741d5 fix(auth): address review comments - improve debug logging, use SimpleNamespace, fix session cleanup
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 11:26:52 +00:00
copilot-swe-agent[bot] 15a9ed9435 fix(auth): resolve Bearer token in get_current_owner_id for mobile API auth
get_current_owner_id() only checked the session for authenticated users.
When the mobile app sends Authorization: Bearer <token>, there is no
session cookie, so the Depends(_get_owner_id) dependency raised HTTP 401
before the @require_login wrapper could resolve the Bearer token.

The function now checks three sources in order:
1. Session user dict (existing behavior)
2. request.state.api_token_user (cached by require_login or prior call)
3. Direct Bearer token resolution via _resolve_bearer_user (new)

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 11:25:02 +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