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]
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
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
copilot-swe-agent[bot]
7ff91af2cb
Initial plan
2026-03-16 11:05:13 +00:00