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
github-actions[bot]
c5b67fe364
docs(changelog): update changelog [skip ci]
2026-03-11 16:39:29 +00:00
Christian Krakau-Louis
06c728cd21
Merge pull request #595 from christianlouis/copilot/test-docs-updates-language-support
...
feat(i18n): expand test and documentation coverage from 10 to 31 languages
2026-03-11 17:39:06 +01:00
copilot-swe-agent[bot]
bc1c644eec
Initial plan
2026-03-11 16:35:37 +00:00
github-actions[bot]
eb22a58065
docs(changelog): update changelog [skip ci]
2026-03-11 14:28:17 +00:00
Christian Krakau-Louis
ebf1fdb2a6
Merge pull request #597 from christianlouis/copilot/fix-ci-actions-annotations
...
ci: opt into Node.js 24 for all GitHub Actions workflows
2026-03-11 15:27:50 +01:00
copilot-swe-agent[bot]
c306d80755
ci: opt into Node.js 24 for all GitHub Actions workflows
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-11 11:52:35 +00:00
copilot-swe-agent[bot]
50a4f76f9c
Initial plan
2026-03-11 11:50:11 +00:00
copilot-swe-agent[bot]
e58706e97f
Initial plan
2026-03-11 11:47:35 +00:00
github-actions[bot]
6b31ddac8e
chore(release): update build metadata files [skip ci]
2026-03-11 11:44:23 +00:00
semantic-release
691ed13074
0.116.0
...
Automatically generated by python-semantic-release
2026-03-11 11:44:20 +00:00
Christian Krakau-Louis
9f7d6c8548
Merge pull request #578 from christianlouis/copilot/implement-ui-i18n-support
...
feat(i18n): expand to 31 European languages, localize all in-product copy, merge with main
2026-03-11 12:43:59 +01:00
Christian Krakau-Louis
cbc04977ed
Merge branch 'main' into copilot/implement-ui-i18n-support
2026-03-11 12:39:39 +01:00
copilot-swe-agent[bot]
652fad758f
feat(i18n): expand to 31 European languages, localize all in-product copy, merge with main
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 22:50:23 +00:00
copilot-swe-agent[bot]
a66eb4b2a2
fix: merge main into i18n branch and relink migration to 029
...
- Resolve conflict in app/api/__init__.py (keep both audit_logs_router and i18n_router)
- Incorporate AuditLog model, audit_service, audit_logs API/views from main
- Relink migration from 026→027 to 028→029 (chain after 028_add_audit_logs)
- Update migrations/env.py with full model import list from main
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 21:59:58 +00:00
github-actions[bot]
d6fb78715a
docs(changelog): update changelog [skip ci]
2026-03-10 21:51:54 +00:00
Christian Krakau-Louis
40274f00d5
Merge pull request #582 from christianlouis/copilot/enhance-code-coverage-100
...
test(views): boost view module coverage — 27/29 files at 100%
2026-03-10 22:51:33 +01:00
github-actions[bot]
2375758a39
chore(release): update build metadata files [skip ci]
2026-03-10 21:51:21 +00:00
semantic-release
12c70b802a
0.115.0
...
Automatically generated by python-semantic-release
2026-03-10 21:51:18 +00:00
Christian Krakau-Louis
086793c05a
Merge pull request #579 from christianlouis/copilot/add-audit-logging-with-tamper-detection
...
fix(migrations): rebase audit_logs migration onto current main
2026-03-10 22:51:00 +01:00
Christian Krakau-Louis
f7dface365
Merge branch 'main' into copilot/add-audit-logging-with-tamper-detection
2026-03-10 22:41:26 +01:00
copilot-swe-agent[bot]
6e2e4a830f
fix(migrations): rebase audit_logs migration onto main's 027_ensure_shared_links_table
...
- Add 027_ensure_shared_links_table.py from main branch
- Renumber 027_add_audit_logs → 028_add_audit_logs
- Update down_revision to chain from 027_ensure_shared_links_table
- Restore all model imports in migrations/env.py (were dropped in previous PR)
- Restore shared_links in db_migrate.py _TABLE_ORDER
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 21:34:15 +00:00
copilot-swe-agent[bot]
4eb04bd7f6
fix(mobile): address code review findings in mobile app config and tests
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 09:57:58 +00:00
copilot-swe-agent[bot]
d538c0879d
feat(mobile): add iOS/Android mobile app with SSO login, camera upload, and push notifications
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 09:52:02 +00:00
github-actions[bot]
ba17067012
chore(release): update build metadata files [skip ci]
2026-03-10 09:28:50 +00:00
semantic-release
45713f2de9
0.114.1
...
Automatically generated by python-semantic-release
2026-03-10 09:28:47 +00:00
Christian Krakau-Louis
70e5391649
Merge pull request #589 from christianlouis/copilot/fix-expire-stale-shared-links
2026-03-10 10:28:28 +01:00
copilot-swe-agent[bot]
a50c3aadf5
Initial plan
2026-03-10 09:27:31 +00:00
copilot-swe-agent[bot]
6fb1df1aad
test(views): boost coverage for 11 view modules toward 100%
...
Adds tests/test_views_coverage_boost.py with 37 tests covering:
- api_tokens, notifications, shared_links, share, plans views (template rendering)
- imap_accounts view (helper functions + route with mocked owner)
- integrations view (DB queries, tier logic, HTTP/generic exception handling)
- general view (multi-user subscription branch with signed session cookie)
- filemanager view (PB formatting, broken symlink stat errors in scan/walk)
- files view (pipeline step filtering, dedup toggle, ValueError in commonpath)
- help view (no-session branch, logged-in user Zammad widget population)
Coverage improvements (full suite):
- 27 of 29 view modules now at 100% (was 18 of 29)
- imap_accounts: 30.95% → 100%
- integrations: 82.09% → 100%
- filemanager: 96.63% → 100%
- help: 96% → 100%
- plans: 86.67% → 100%
- api_tokens/notifications/shared_links/share: 88-90% → 100%
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 00:31:28 +00:00
copilot-swe-agent[bot]
c8987d966b
test(views): add comprehensive coverage tests for 11 view modules
...
Adds tests/test_views_coverage_boost.py with 35 tests covering:
- api_tokens, notifications, shared_links, share, plans (template render)
- imap_accounts (helper functions + route with owner)
- integrations (DB queries, tier logic, error handling)
- general (multi-user subscription branch)
- filemanager (PB formatting, broken symlink stat errors)
- files (pipeline step filtering, dedup, ValueError in commonpath)
- help (no-session branch)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 00:11:30 +00:00
copilot-swe-agent[bot]
289dcc375c
fix(db): add migration to create shared_links table for databases that skipped 025
...
Migration 025_add_shared_links was inserted into the Alembic chain
(between 024_add_api_tokens and 025_add_user_notifications) after some
databases had already been migrated past that point. Those databases
never had the shared_links table created, causing OperationalError when
the expire-shared-links scheduled task runs or when users try to create
shared links.
This commit:
- Adds migration 027_ensure_shared_links_table that idempotently creates
the table if it doesn't exist
- Updates migrations/env.py to import all models for autogenerate support
- Adds shared_links to db_migrate.py _TABLE_ORDER for proper migration
ordering
- Adds a regression test verifying the fix
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-10 00:01:33 +00:00
copilot-swe-agent[bot]
c286e1b394
test(i18n): add comprehensive tests and documentation for i18n system
...
- Add 45 tests covering translation files, translate(), Accept-Language
parsing, language detection, l10n formatters, and API endpoints
- Create InternationalizationGuide.md documentation
- Fix linting issues (E741, PLW2901)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 23:35:32 +00:00
copilot-swe-agent[bot]
653c137222
fix(audit): address code review - header validation, touch targets, env.demo cleanup
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 23:33:43 +00:00
copilot-swe-agent[bot]
3b491ea84c
docs(audit): add SIEM configuration to docs, .env.demo, and settings metadata
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 23:29:12 +00:00
copilot-swe-agent[bot]
ff76855f29
feat(i18n): add internationalization framework with 10 languages
...
- Create i18n utility module (app/utils/i18n.py) with translation loading,
browser language detection, AI fallback, and l10n helpers
- Add JSON translation files for EN, DE, FR, ES, IT, PT, NL, PL, ZH, RU
- Add preferred_language column to UserProfile model with migration
- Register _() translation function as Jinja2 global
- Update base.html with translated navigation, footer, cookie notice
- Add language selector dropdown in nav bar (desktop + mobile)
- Create API endpoints for language preference (POST/GET /api/i18n/)
- Support language detection: user profile > cookie > Accept-Language > default
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 23:28:02 +00:00
copilot-swe-agent[bot]
35db9f88de
feat(audit): add comprehensive audit logging with SIEM integration
...
- Add AuditLog model with append-only design (timestamp, user, action, resource, IP, details, severity)
- Add audit_service.py with record/query helpers and SIEM forwarding (Syslog RFC 5424, HTTP/webhook)
- Add /api/audit-logs REST endpoints with filtering and pagination
- Add /admin/audit-logs viewer UI with real-time filters
- Add SIEM config settings (syslog, HTTP for Splunk HEC/Logstash/Grafana Loki)
- Add Alembic migration 027_add_audit_logs
- Add navigation link in admin menu
- Add comprehensive tests (20 tests covering model, service, SIEM, API, view)
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 23:18:18 +00:00
copilot-swe-agent[bot]
73295cad33
Initial plan
2026-03-09 23:15:51 +00:00
copilot-swe-agent[bot]
9ee3249146
Initial plan
2026-03-09 23:06:22 +00:00
copilot-swe-agent[bot]
7685b787f2
Initial plan
2026-03-09 23:04:32 +00:00
copilot-swe-agent[bot]
95f1798908
Initial plan
2026-03-09 23:04:14 +00:00
github-actions[bot]
e709f2646c
chore(release): update build metadata files [skip ci]
2026-03-09 23:01:00 +00:00
semantic-release
d5ed512612
0.114.0
...
Automatically generated by python-semantic-release
2026-03-09 23:00:57 +00:00
Christian Krakau-Louis
5fd3f0661b
Merge pull request #577 from christianlouis/copilot/create-user-auth-workflow
...
fix(templates): remove orphan `</div>` in google_drive.html breaking HTML accessibility lint
2026-03-10 00:00:39 +01:00
copilot-swe-agent[bot]
256d9cb674
fix(templates): remove orphan </div> in google_drive.html causing HTML accessibility lint failure
...
The extra </div> at line 260 (before the {% endif %} closing the admin
auth-method block) was introduced when the per-user OAuth wizard PR
restructured the admin section. Removing it balances the div tree so
that the outer container div is properly closed by line 427.
djlint frontend/templates/ --lint now reports 0 errors across 58 files.
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-09 21:46:38 +00:00
github-actions[bot]
5d5784f069
chore(release): update build metadata files [skip ci]
2026-03-09 21:30:44 +00:00
semantic-release
91549c8f5e
0.113.0
...
Automatically generated by python-semantic-release
2026-03-09 21:30:41 +00:00
Christian Krakau-Louis
4555cdb7df
Merge pull request #576 from christianlouis/copilot/add-scheduled-batch-processing
...
feat: scheduled batch processing — 8 admin-managed jobs, DB-driven beat schedule, 100% coverage
2026-03-09 22:30:20 +01:00