copilot-swe-agent[bot]
f737f2903a
feat(i18n): add missing Polish translations to pl.json
...
Translated 285 keys that had English values in pl.json. All sections
now have proper Polish translations including auth, error pages, files
UI, help center, index/landing page, integrations, navigation, search,
status, and upload pages. Language names are now in Polish (e.g.,
Angielski for English, Francuski for French).
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 22:12:02 +00:00
copilot-swe-agent[bot]
fd23c49f20
Initial plan
2026-03-12 21:51:27 +00:00
github-actions[bot]
77f392b29b
chore(release): update build metadata files [skip ci]
2026-03-12 21:44:46 +00:00
semantic-release
4c81b1bd1f
0.125.0
...
Automatically generated by python-semantic-release
2026-03-12 21:44:42 +00:00
Christian Krakau-Louis
4345d5128f
Merge pull request #607 from christianlouis/copilot/add-user-settings-management
...
fix(tests): update whoami_handler call sites to pass required db argument
2026-03-12 22:44:13 +01:00
copilot-swe-agent[bot]
270e1a56b5
fix(tests): pass mock db to whoami_handler in test_api_auth_enabled.py
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 17:03:30 +00:00
copilot-swe-agent[bot]
9583d6d96f
fix(profile): address code review feedback - early size check, CSRF helper, test constants
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 13:10:46 +00:00
github-actions[bot]
01e27ac905
chore(release): update build metadata files [skip ci]
2026-03-12 13:08:52 +00:00
semantic-release
709964b207
0.124.0
...
Automatically generated by python-semantic-release
2026-03-12 13:08:48 +00:00
Christian Krakau-Louis
028f592817
Merge pull request #596 from christianlouis/copilot/refactor-template-localization
...
fix(i18n): wire _ into all Jinja2 instances, sync translation files, fix pipelines.html orphan tag
2026-03-12 14:08:26 +01:00
copilot-swe-agent[bot]
b0d6f1ab60
feat(profile): add user self-service profile settings page and API
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 13:00:19 +00:00
copilot-swe-agent[bot]
b483ed16fc
fix(i18n): register _ in all Jinja2 template instances, sync translation files, fix pipelines.html
...
- Register _() translation function in app/auth.py, app/api/local_auth.py, and
app/api/billing.py template env globals to fix jinja2.exceptions.UndefinedError
- Update test_settings_template_has_db_wizard_link to assert i18n key instead of
literal "DB Wizard" (template now uses {{ _("settings.db_wizard_btn") }})
- Add 418 missing en.json keys to all 30 non-English translation files as English
fallbacks to fix test_all_languages_have_same_keys
- Fix orphan </template> tag in pipelines.html by adding missing
<template x-if="pipelineModal.saving"> opening tag (fixes djlint H025)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 12:46:11 +00:00
copilot-swe-agent[bot]
13161994da
Initial plan
2026-03-12 12:45:32 +00:00
Christian Krakau-Louis
dd7f7dfd97
Merge branch 'main' into copilot/refactor-template-localization
2026-03-12 12:44:33 +01:00
github-actions[bot]
5a546dc0f1
chore(release): update build metadata files [skip ci]
2026-03-12 11:43:33 +00:00
semantic-release
75b522e36c
0.123.1
...
Automatically generated by python-semantic-release
2026-03-12 11:43:30 +00:00
Christian Krakau-Louis
5d239e904b
Merge pull request #606 from christianlouis/copilot/fix-ruff-not-clearing-main
...
fix(tests): repair two broken tests — missing DB table and MagicMock ip_address
2026-03-12 12:43:08 +01:00
copilot-swe-agent[bot]
cdd1524def
fix(i18n): restore social providers block in login.html, fix escaped quotes
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 11:39:13 +00:00
copilot-swe-agent[bot]
be6b49c872
fix(tests): fix two failing tests - missing DB table and MagicMock IP address
...
- tests/test_database.py: add user_imap_accounts table to the regression
test's initial DB setup (migration 022 creates it before rev 026, so it
must exist for migration 032's ALTER TABLE to succeed)
- tests/test_local_auth.py: configure mock_request.headers.get to return
None and client=None so get_client_ip() returns "unknown" instead of an
un-serialisable MagicMock that broke the audit_logs INSERT in
test_local_login_success and test_local_login_by_email
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 10:49:49 +00:00
copilot-swe-agent[bot]
6de11e25bf
feat(i18n): localize 404, 500, billing_success, about, verify_email_sent templates
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 10:25:34 +00:00
copilot-swe-agent[bot]
8060a79b9c
style: fix ruff formatting in tests/test_imap_profiles.py
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 10:25:32 +00:00
copilot-swe-agent[bot]
bc94825877
Initial plan
2026-03-12 10:24:27 +00:00
github-actions[bot]
d7d0413bc8
chore(release): update build metadata files [skip ci]
2026-03-12 07:54:06 +00:00
semantic-release
d3443b034a
0.123.0
...
Automatically generated by python-semantic-release
2026-03-12 07:54:04 +00:00
Christian Krakau-Louis
7f644a2388
Merge pull request #604 from christianlouis/copilot/configure-attachment-ingestion
...
feat(imap): fine-grained attachment ingestion profiles with per-category selection
2026-03-12 08:53:45 +01:00
github-actions[bot]
338f4fa9bd
chore(release): update build metadata files [skip ci]
2026-03-12 07:51:39 +00:00
semantic-release
44cebeab2a
0.122.0
...
Automatically generated by python-semantic-release
2026-03-12 07:51:35 +00:00
Christian Krakau-Louis
87fca21c7f
Merge pull request #605 from christianlouis/copilot/enable-disable-storage-locations
...
feat(storage): explicit enable/disable flag per global storage destination
2026-03-12 08:51:14 +01:00
copilot-swe-agent[bot]
2e087731b9
fix(imap): address code review feedback on ingestion profiles
...
- Improve warning log in _resolve_categories_for_profile() to include
exception type name for better troubleshooting
- Add SQLAlchemy IS NULL comment to imap_profiles.py filter
- Pass default_categories from server to template to avoid hardcoded
category list in JS (now uses {{ default_categories | tojson }})
- Simplify view profiles query (remove redundant unauthenticated path)
- Update docs: ConfigurationGuide.md and EmailIngestion.md with
full profiles documentation including category table and API reference
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 01:19:32 +00:00
copilot-swe-agent[bot]
c9f554465d
feat(imap): add ImapIngestionProfile model, API, migration and UI
...
Replaces the simple binary attachment_filter string with a full
ingestion profiles system:
- Add FILE_TYPE_CATEGORIES dict to allowed_types.py (6 categories:
pdf, office, opendocument, text, web, images) + DEFAULT_CATEGORIES
/ ALL_CATEGORIES + get_allowed_types_for_categories() helper
- Add ImapIngestionProfile model (id, name, description, owner_id,
allowed_categories JSON, is_builtin)
- Update UserImapAccount: replace attachment_filter string with
profile_id FK to imap_ingestion_profiles
- Migration 033: creates profiles table, seeds 2 built-in profiles
(Documents Only, All Files), migrates attachment_filter → profile_id
- New /api/imap-profiles/ CRUD endpoints (list, create, get, update,
delete) with category validation
- Register imap_profiles router in app/api/__init__.py
- Update imap_tasks.py: replace attachment_filter string param with
profile-based allowed_categories; add _resolve_categories_for_profile()
- Update imap_accounts.py API to use profile_id instead of attachment_filter
- Update imap_accounts view to pass profiles + categories to template
- Full UI overhaul: profiles panel + profile create/edit modal with
category checkboxes; profile selector in account modal
- 17 new tests (141 total), all passing
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 01:14:19 +00:00
copilot-swe-agent[bot]
fd75961580
docs(storage): document explicit enable/disable flags in ConfigurationGuide and .env.demo
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 01:10:31 +00:00
copilot-swe-agent[bot]
b72ab3b318
feat(storage): add explicit enable/disable flag for each global storage destination
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 01:04:28 +00:00
copilot-swe-agent[bot]
554bb21d32
feat(imap): add attachment type filter for IMAP ingestion
...
Add a configurable switch to control which attachment types are ingested
via IMAP. Images are excluded by default; office files and PDFs are ingested.
- Add global `IMAP_ATTACHMENT_FILTER` config setting (default: `documents_only`)
- Add `attachment_filter` column to `UserImapAccount` model for per-user override
- Migration 032 adds the column to `user_imap_accounts` table
- Update `fetch_attachments_and_enqueue()` to respect filter (documents_only/all)
- Update `pull_inbox()`, `_pull_user_imap_accounts()`, and
`_pull_user_integration_imap()` to pass the resolved filter
- Update IMAP accounts API (schemas, create/update handlers, response serializer)
- Update IMAP accounts UI to show attachment filter dropdown in modal and
display filter badges on account cards
- Add 6 new tests covering attachment filter behaviour
- Update ConfigurationGuide.md, EmailIngestion.md, and .env.demo
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 00:59:54 +00:00
github-actions[bot]
8898d3ccc8
chore(release): update build metadata files [skip ci]
2026-03-12 00:56:46 +00:00
semantic-release
2c53d1cd4f
0.121.1
...
Automatically generated by python-semantic-release
2026-03-12 00:56:42 +00:00
Christian Krakau-Louis
d8957263ee
Merge pull request #603 from christianlouis/copilot/fix-duplicate-audit-log-menu
...
fix: remove duplicate Audit Logs nav entry and record login/logout events in audit log
2026-03-12 01:56:21 +01:00
github-actions[bot]
50ef607293
docs(changelog): update changelog [skip ci]
2026-03-12 00:56:10 +00:00
Christian Krakau-Louis
14b892b6d4
Merge pull request #601 from christianlouis/copilot/improve-code-test-coverage
...
test: improve coverage for app/utils/user_notification.py from ~50% to 100%
2026-03-12 01:55:49 +01:00
copilot-swe-agent[bot]
78204c2490
test(notifications): improve coverage for user_notification.py to 100%
...
Add 22 new unit tests in tests/test_user_notification_service.py covering
all previously-uncovered branches in app/utils/user_notification.py:
- create_in_app_notification: exception/rollback path
- _send_email_notification: SMTP success (TLS+creds, no-TLS, no-creds),
SMTP exception, sender_email fallbacks
- _send_webhook_notification: success with/without secret, HTTP errors
- dispatch_user_notification: email/webhook pref dispatch, no target_id
skip, inactive target skip, invalid JSON config, null config, outer
exception handling, push notification sent/exception, unknown channel_type
Combined coverage: 49.52% → 100%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 00:44:59 +00:00
github-actions[bot]
7fb534954e
chore(release): update build metadata files [skip ci]
2026-03-12 00:40:23 +00:00
semantic-release
6bc5b19da2
0.121.0
...
Automatically generated by python-semantic-release
2026-03-12 00:40:20 +00:00
Christian Krakau-Louis
0aa1df3920
Merge pull request #588 from christianlouis/copilot/add-social-logins-configuration
...
feat(auth): add social login support for Google, Microsoft, Apple, and Dropbox
2026-03-12 01:40:04 +01:00
copilot-swe-agent[bot]
1e8f433419
fix: remove duplicate Audit Logs nav entry and add login/logout audit log events
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 00:39:15 +00:00
copilot-swe-agent[bot]
2dfb96ee44
Initial plan
2026-03-12 00:36:28 +00:00
github-actions[bot]
04cde33d01
docs(changelog): update changelog [skip ci]
2026-03-12 00:32:36 +00:00
Christian Krakau-Louis
3a68eeebba
Merge pull request #602 from christianlouis/copilot/improve-test-coverage-audit-service
...
test: raise audit_service.py coverage from 59% to 100%
2026-03-12 01:32:18 +01:00
copilot-swe-agent[bot]
5e45b68cc1
Initial plan
2026-03-12 00:31:45 +00:00
copilot-swe-agent[bot]
10d415ae0c
Initial plan
2026-03-12 00:29:46 +00:00
copilot-swe-agent[bot]
7438551080
test: improve coverage for app/utils/audit_service.py from 59% to 100%
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-12 00:28:42 +00:00
copilot-swe-agent[bot]
1edb342e57
Initial plan
2026-03-12 00:19:33 +00:00