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]
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
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]
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
copilot-swe-agent[bot]
615882adf4
Initial plan
2026-03-12 00:18:59 +00:00
github-actions[bot]
7970c1f518
chore(release): update build metadata files [skip ci]
2026-03-12 00:14:59 +00:00
semantic-release
bb8f324e90
0.120.0
...
Automatically generated by python-semantic-release
2026-03-12 00:14:55 +00:00
Christian Krakau-Louis
80dd117ebf
Merge pull request #587 from christianlouis/copilot/add-apple-drive-icloud-support
...
feat(storage): add Apple iCloud Drive storage provider
2026-03-12 01:14:37 +01:00
github-actions[bot]
3a4f7452c0
chore(release): update build metadata files [skip ci]
2026-03-12 00:13:30 +00:00
semantic-release
09c485cede
0.119.0
...
Automatically generated by python-semantic-release
2026-03-12 00:13:27 +00:00
Christian Krakau-Louis
83e83fff73
Merge pull request #583 from christianlouis/copilot/add-compliance-templates
...
fix(migrations): merge main and rechain compliance migration as 031
2026-03-12 01:13:08 +01:00
copilot-swe-agent[bot]
e94844a55e
Merge: prefer rebased local over stale remote
2026-03-12 00:00:52 +00:00
copilot-swe-agent[bot]
054af636e3
fix(migrations): merge main and rechain compliance migration as 031 after 030_add_mobile_devices
...
Merge main branch into compliance templates feature branch.
Main had advanced with migrations 027-030 (ensure_shared_links,
audit_logs, user_language_preference, mobile_devices) since this
branch forked. Our compliance migration was 027 with down_revision
026, which conflicted with main's 027_ensure_shared_links_table.
Changes:
- Merge main (including i18n, audit logs, mobile, GraphQL features)
- Resolve conflicts in app/api/__init__.py, app/models.py, tests/conftest.py
- Rename 027_add_compliance_templates → 031_add_compliance_templates
- Rechain: down_revision 026_add_scheduled_jobs → 030_add_mobile_devices
- Add ComplianceTemplate to migrations/env.py imports
- Alembic now has single head: 031_add_compliance_templates
2026-03-12 00:00:29 +00:00
copilot-swe-agent[bot]
50af0ea679
fix(tests): add iCloud mocks to all test files and address code review feedback
...
- Add _should_upload_to_icloud mock to test_coverage_uploads_notification.py
(_all_should_upload_false helper + 3 inline patch blocks)
- Add cfg.icloud_username/password = None to all onboarding test mocks
- Add iCloud creds to fully-configured onboarding test
- Fix noqa comment accuracy (unofficial third-party, not first-party)
- Replace generic Exception with RuntimeError in upload error handler
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 23:59:19 +00:00
github-actions[bot]
78a245d3a5
chore(release): update build metadata files [skip ci]
2026-03-11 23:43:31 +00:00
semantic-release
8b07f7201f
0.118.0
...
Automatically generated by python-semantic-release
2026-03-11 23:43:28 +00:00
Christian Krakau-Louis
39db5fc564
Merge pull request #600 from christianlouis/copilot/add-graphql-api
...
feat: add GraphQL API alongside REST at /graphql
2026-03-12 00:43:10 +01:00
copilot-swe-agent[bot]
528f0a624d
fix: remove accidental pip artifact file and update docs for iCloud Drive
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 23:38:35 +00:00
copilot-swe-agent[bot]
30f06e0b32
feat(storage): add Apple iCloud Drive storage provider
...
Add iCloud Drive as a new storage destination using the pyicloud library.
Includes upload task, configuration, user integration handler, provider
status, onboarding support, and comprehensive tests.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 23:38:35 +00:00
copilot-swe-agent[bot]
9bc23aa40b
test(tasks): add _should_upload_to_icloud mock to send_to_all tests
...
Add icloud upload check mock alongside existing _should_upload_to_*
function mocks in all TestSendToAllDestinations test methods.
Changes:
- Import _should_upload_to_icloud from app.tasks.send_to_all
- Add @patch decorator for _should_upload_to_icloud in 9 test methods
- Add mock_icloud parameter to each test method signature
- Set mock_icloud.return_value = False where other mocks are set to False
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com >
2026-03-11 23:38:34 +00:00
copilot-swe-agent[bot]
9c71e9aabf
Initial plan
2026-03-11 23:38:34 +00:00
github-actions[bot]
40d976ed82
chore(release): update build metadata files [skip ci]
2026-03-11 23:34:40 +00:00
semantic-release
39671ad3b9
0.117.1
...
Automatically generated by python-semantic-release
2026-03-11 23:34:37 +00:00
Christian Krakau-Louis
1c4a261f01
Merge pull request #599 from christianlouis/copilot/fix-main-test-failures
...
fix: resolve 47 failing CI tests across i18n, templates, and migrations
2026-03-12 00:34:18 +01:00
copilot-swe-agent[bot]
df4c91a586
fix: resolve all 47 failing tests in main
...
- Fix detect_language() to safely handle unhashable session values and
requests missing cookies/headers attributes (TypeError + AttributeError)
- Add default English `_()` translation function to Jinja2 template
environment globals so error pages always have it available
- Fix app/main.py exception handlers to use a dedicated error templates
instance with `_` registered, keeping it separate from view templates
to avoid test patches breaking error rendering
- Fix app/views/plans.py to import shared templates from app.views.base
instead of creating its own Jinja2Templates instance
- Make migration 029_add_user_language_preference idempotent: skip
ALTER TABLE if user_profiles table does not exist
- Update test_i18n.py expectations to reflect 31 supported languages
- Create 21 missing translation files (nb, da, sv, fi, is, ga, lb, ca,
cs, sk, hu, sl, hr, ro, bg, el, et, lv, lt, tr, uk) with English
placeholder translations
- Update de.json with 117 missing translation keys including proper
German translations
- Update es, fr, it, nl, pl, pt, ru, zh translation files with missing
keys using English fallbacks
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 22:28:01 +00:00
copilot-swe-agent[bot]
a41ded535f
feat(api): add GraphQL endpoint at /graphql with Strawberry
...
- Add strawberry-graphql[fastapi] dependency
- Implement GraphQL schema covering documents, pipelines, settings, users
- Enable GraphiQL playground at /graphql
- Mount GraphQL router in main.py
- Add 24 tests for all query types and auth enforcement
- Update docs/API.md with GraphQL documentation section
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 22:17:25 +00:00
copilot-swe-agent[bot]
2b834d1405
Initial plan
2026-03-11 22:06:22 +00:00
github-actions[bot]
26a6eb81a1
chore(release): update build metadata files [skip ci]
2026-03-11 21:57:57 +00:00
semantic-release
acd1572b53
0.117.0
...
Automatically generated by python-semantic-release
2026-03-11 21:57:54 +00:00
Christian Krakau-Louis
4389e64269
Merge pull request #590 from christianlouis/copilot/build-mobile-apps
...
feat(mobile): add iOS/Android app with re-chained migrations and main merge
2026-03-11 22:57:19 +01:00
copilot-swe-agent[bot]
00f5e5bc1a
Initial plan
2026-03-11 21:54:05 +00:00
copilot-swe-agent[bot]
6bcabfef77
fix(merge): resolve conflicts in app/api/__init__.py and migrations/env.py against main
...
Merge main into branch to pull in translation files, audit log templates,
CI workflow updates, and other changes from PRs #595 , #597 , #598 .
Keep mobile_router and MobileDevice additions from this branch.
2026-03-11 21:53:00 +00:00
copilot-swe-agent[bot]
1d5eee4281
fix(migrations): re-chain mobile devices migration against main and restore merge conflicts
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 20:43:29 +00:00
github-actions[bot]
ab19ae5706
docs(changelog): update changelog [skip ci]
2026-03-11 19:07:04 +00:00
Christian Krakau-Louis
38452a51ae
Merge pull request #598 from christianlouis/copilot/update-translation-files-and-languages
...
Add 21 new translation files and expand 8 existing ones to full 483-key coverage
2026-03-11 20:06:44 +01:00