Commit Graph

2987 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] 51821092f4 feat(auth): add session management UI, QR login page, mobile QR support, translations
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:38:13 +00:00
copilot-swe-agent[bot] bdc26846bd refactor: address code review feedback - simplify dispatch, add warning log
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:36:24 +00:00
copilot-swe-agent[bot] 651b48658c fix: resolve merge conflicts with main branch
Merge origin/main into feature branch, resolving 3 conflicts:
- app/api/__init__.py: add classification_rules_router alongside new
  routers from main (audit_logs, i18n, mobile, compliance, translation)
- app/models.py: keep ClassificationRuleModel alongside new models from
  main (MobileDevice, ComplianceTemplate, PipelineRoutingRule)
- tests/conftest.py: import both ClassificationRuleModel and new models
  from main (AuditLog, ComplianceTemplate)

Also renumber migration from 027 to 037 to chain from the latest
migration on main (036_add_document_translation_fields).

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:33:59 +00:00
copilot-swe-agent[bot] 96bfba8057 test(system-reset): add comprehensive tests and documentation
- 21 tests covering unit, integration, API, and view layers
- Update ConfigurationGuide.md with System Reset section
- Update API.md with system reset endpoint docs
- All tests pass, ruff clean

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:32:31 +00:00
copilot-swe-agent[bot] 421744865f Initial plan 2026-03-16 22:31:32 +00:00
copilot-swe-agent[bot] a4588a57cb feat(auth): add server-side session management and QR code login backend
- Add UserSession and QRLoginChallenge models for session tracking
  and mobile QR authentication
- Add session_manager utility with create/validate/revoke/cleanup
  functions and QR challenge helpers
- Add /api/sessions endpoints for listing, revoking, and
  'log off everywhere' functionality
- Add /api/qr-auth endpoints for challenge creation, polling, and
  claiming with API token issuance
- Add session config fields (lifetime, custom override, QR TTL)
- Update get_current_user to validate server-side sessions
- Create server-side sessions on all login paths (local, OAuth,
  social, admin)
- Revoke server-side session on logout
- Configure SessionMiddleware max_age from session lifetime settings
- Graceful degradation: old sessions without _session_token continue
  to work

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-03-16 22:29:04 +00:00
copilot-swe-agent[bot] a88d790445 feat(system-reset): add system reset and factory reset feature
- Add FACTORY_RESET_ON_STARTUP and ENABLE_FACTORY_RESET config settings
- Create app/utils/system_reset.py with core reset logic (wipe DB + files, reimport)
- Create app/api/system_reset.py with admin-only API endpoints
- Create app/views/system_reset.py with admin-only UI view
- Create frontend/templates/system_reset.html with confirmation dialogs
- Auto-reset on startup when FACTORY_RESET_ON_STARTUP=true
- Re-import uses watch folder mechanism for re-ingestion
- Register routers in API and views init files
- Add i18n keys and SETTING_METADATA entries
- Add nav links in base.html (desktop + mobile)

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:26:17 +00:00
copilot-swe-agent[bot] 8a3ae8652e Initial plan 2026-03-16 22:26:07 +00:00
copilot-swe-agent[bot] 20e61db050 merge: resolve conflicts with main branch (keep both SharePoint + iCloud integrations)
Merge origin/main into copilot/add-sharepoint-integration.
All four conflicts were resolved by keeping both the SharePoint
additions (from this branch) and the iCloud additions (from main):
- app/models.py: added both SHAREPOINT and ICLOUD to IntegrationType
- app/tasks/send_to_all.py: added both to service_map and services list
- app/tasks/upload_to_user_integration.py: kept both upload handlers
- frontend/templates/files.html: added both filter options

No database migration conflicts — SharePoint does not require schema changes.
2026-03-16 22:25:51 +00:00
copilot-swe-agent[bot] 4d302b495c Initial plan 2026-03-16 22:13:29 +00:00
copilot-swe-agent[bot] 6d03d107fd Initial plan 2026-03-16 22:00:21 +00:00
github-actions[bot] b48ed0b2ac chore(release): update build metadata files [skip ci] 2026-03-16 21:40:06 +00:00
semantic-release 64403f17f1 0.152.0
Automatically generated by python-semantic-release
2026-03-16 21:40:03 +00:00
Christian Krakau-Louis 793b6d3e25 Merge pull request #748 from christianlouis/copilot/add-retry-option-for-uploads
feat(mobile): add retry for failed uploads via tap and long-press
2026-03-16 22:39:40 +01:00
copilot-swe-agent[bot] d322ec6dc7 feat(mobile): add retry for failed uploads via tap and long-press
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 20:35:13 +00:00
copilot-swe-agent[bot] 84b9461cfe Initial plan 2026-03-16 20:29:47 +00:00
github-actions[bot] 75a6379aad chore(release): update build metadata files [skip ci] 2026-03-16 20:28:52 +00:00
semantic-release 1bd9840c81 0.151.1
Automatically generated by python-semantic-release
2026-03-16 20:28:49 +00:00
Christian Krakau-Louis 1caebdded0 Merge pull request #747 from christianlouis/copilot/fix-merge-conflict-in-json
Fix merge conflict markers in mobile/app.json
2026-03-16 21:28:25 +01:00
copilot-swe-agent[bot] a7b993ad42 fix: resolve merge conflict markers in mobile/app.json
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 18:28:15 +00:00
copilot-swe-agent[bot] 5b09b7b9ae Initial plan 2026-03-16 18:26:12 +00:00
github-actions[bot] 0f449abe17 chore(release): update build metadata files [skip ci] 2026-03-16 18:25:25 +00:00
semantic-release 480591fcee 0.151.0
Automatically generated by python-semantic-release
2026-03-16 18:25:21 +00:00
Christian Krakau-Louis 242ef587e1 Merge pull request #746 from christianlouis/copilot/localize-view-links
feat(i18n): localize /files/ view
2026-03-16 19:24:56 +01:00
copilot-swe-agent[bot] afb168d3e8 feat(i18n): localize remaining image zoom controls in files view
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 18:15:35 +00:00
copilot-swe-agent[bot] 45c2cd7c6e feat(i18n): localize files view - replace all hardcoded strings with translation keys
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 18:05:59 +00:00
copilot-swe-agent[bot] 9b21872007 Initial plan 2026-03-16 17:55:30 +00:00
github-actions[bot] da6b337a8b chore(release): update build metadata files [skip ci] 2026-03-16 17:48:20 +00:00
semantic-release b2492b497c 0.150.7
Automatically generated by python-semantic-release
2026-03-16 17:48:16 +00:00
Christian Krakau-Louis 89b3a6a3c0 fix: resolve conflicts in mobile app config 2026-03-16 17:47:16 +00:00
Christian Krakau-Louis 3cd895d57c chore(i18n): auto-update translations via LLM 2026-03-16 17:47:16 +00:00
Christian Krakau-Louis 872ff6c53b chore(i18n): auto-update translations via LLM 2026-03-16 17:47:16 +00:00
github-actions[bot] dca5ee2ef3 chore(release): update build metadata files [skip ci] 2026-03-16 17:36:34 +00:00
semantic-release a764e52f77 0.150.6
Automatically generated by python-semantic-release
2026-03-16 17:36:31 +00:00
Christian Krakau-Louis 134e05b5a3 Merge pull request #745 from christianlouis/copilot/fix-unmatched-route-error
fix(mobile): handle iOS share sheet custom scheme URLs and add photo library picker
2026-03-16 18:36:10 +01:00
copilot-swe-agent[bot] b6af39c567 refactor(mobile): address code review feedback
Extract APP_SCHEME_PREFIX constant for the custom URL scheme string,
and derive the photo library fallback filename extension from the
asset's MIME type instead of always using .jpg.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 17:26:28 +00:00
copilot-swe-agent[bot] acfba4b58c fix(mobile): handle iOS share sheet custom scheme URLs and add photo library picker
On iOS the Share Sheet / "Open In" action may deliver the file path
under the app's custom docuelevate:// scheme instead of a file:// URL,
causing an "Unmatched Route" error.  The URL handler now detects this
and rewrites the URL to file:// before processing.

Also adds a Photo Library button to the Upload screen so users can
select existing photos from their device library, not just capture
new ones with the camera.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 17:25:03 +00:00
copilot-swe-agent[bot] daf236b270 Initial plan 2026-03-16 17:17:51 +00:00
github-actions[bot] b5438f4265 chore(release): update build metadata files [skip ci] 2026-03-16 17:00:14 +00:00
semantic-release a579233710 0.150.5
Automatically generated by python-semantic-release
2026-03-16 17:00:10 +00:00
Christian Krakau-Louis 5054ec8a93 Merge pull request #744 from christianlouis/copilot/increment-version-eas-or-app-json
fix(mobile): switch to remote appVersionSource for auto-incrementing build numbers
2026-03-16 17:59:46 +01:00
copilot-swe-agent[bot] 4c8926a1fa fix(mobile): switch to remote appVersionSource for auto-incrementing build numbers
Change `appVersionSource` from `"local"` to `"remote"` in `eas.json` so EAS
tracks build numbers on its servers. This ensures every CI build gets a
unique, ever-increasing version without needing to commit bumps back to
the repo — fixing the App Store Connect "bundle version already used"
rejection.

Also bump `ios.buildNumber` to "7" and `android.versionCode` to 7 in
`app.json` (above the previously uploaded version "6") so the remote
version initializes correctly.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 16:57:52 +00:00
copilot-swe-agent[bot] 84ce65f532 Initial plan 2026-03-16 16:53:38 +00:00
github-actions[bot] c6e4cc22b2 chore(release): update build metadata files [skip ci] 2026-03-16 16:44:33 +00:00
semantic-release fee5a09954 0.150.4
Automatically generated by python-semantic-release
2026-03-16 16:44:30 +00:00
Christian Krakau-Louis 4db4df8621 Merge pull request #743 from christianlouis/copilot/fix-npm-ci-lock-file-issues
fix(mobile): sync package-lock.json with package.json
2026-03-16 17:44:05 +01:00
copilot-swe-agent[bot] 0e144710b5 fix(mobile): sync package-lock.json with package.json to fix npm ci failure
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 16:40:37 +00:00
copilot-swe-agent[bot] 95a1a8eaea Initial plan 2026-03-16 16:37:37 +00:00
github-actions[bot] 1ff9b44a54 chore(release): update build metadata files [skip ci] 2026-03-16 16:35:39 +00:00
semantic-release 5131635d44 0.150.3
Automatically generated by python-semantic-release
2026-03-16 16:35:36 +00:00