Commit Graph

2868 Commits

Author SHA1 Message Date
copilot-swe-agent[bot] bcf2d00c33 fix(test): add missing _should_upload_to_sharepoint mock to send_to_all tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 11:32:48 +00:00
github-actions[bot] c79dc4abef chore(release): update build metadata files [skip ci] 2026-03-17 11:23:09 +00:00
semantic-release 264089cce4 0.155.0
Automatically generated by python-semantic-release
2026-03-17 11:23:06 +00:00
Christian Krakau-Louis 30c2e9afef Merge pull request #749 from christianlouis/copilot/implement-log-off-everywhere-functionality
Add dedicated Devices page, separate mobile tokens from API Tokens
2026-03-17 12:22:07 +01:00
Christian Krakau-Louis 8905031d16 Merge branch 'main' into copilot/implement-log-off-everywhere-functionality 2026-03-17 12:12:50 +01:00
copilot-swe-agent[bot] 7e1ed14ee6 fix: address code review feedback - remove extra blank lines from merge
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 11:12:21 +00:00
copilot-swe-agent[bot] c7d67031d4 fix: resolve merge conflicts with main branch
Merge origin/main into feature branch, resolving 18 conflicts:
- app/api/__init__.py: add classification_rules_router alongside system_reset_router
- app/config.py: keep system reset settings from main
- app/models.py: keep ClassificationRuleModel alongside main's models
- app/utils/settings_service.py: keep factory reset settings from main
- app/views/__init__.py: keep system_reset_router from main
- tests/conftest.py: add ClassificationRuleModel import
- migrations/env.py: add ClassificationRuleModel import
- .env.demo, docs/*, frontend/*, mobile/*: keep additions from main
- BUILD_DATE, GIT_SHA, RUNTIME_INFO, VERSION, CHANGELOG.md: accept main's version

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 11:09:39 +00:00
copilot-swe-agent[bot] 581adf0e26 refactor(ui): simplify formatDeviceName with regex in devices template
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 11:05:26 +00:00
copilot-swe-agent[bot] 03712cfb08 feat(ui): add dedicated Devices page for mobile tokens and registered devices
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 11:00:36 +00:00
copilot-swe-agent[bot] bd03d1971b refactor(auth): extract _ensure_tz_aware helper, use validate_session in logout
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 10:17:19 +00:00
copilot-swe-agent[bot] a022dec9c2 fix(auth): resolve timezone-naive datetime comparisons in QR challenge functions and update docs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 10:13:19 +00:00
github-actions[bot] b8075b6821 chore(release): update build metadata files [skip ci] 2026-03-17 09:55:46 +00:00
semantic-release a0dace75a3 0.154.0
Automatically generated by python-semantic-release
2026-03-17 09:55:43 +00:00
Christian Krakau-Louis 7b7554decf Merge pull request #751 from christianlouis/copilot/improve-database-migration-handling
feat(db): Add migration chain validation to CI, pre-commit, and developer docs
2026-03-17 10:55:10 +01:00
copilot-swe-agent[bot] a007b4fd98 fix(db): address code review feedback - fix comment stripping, type hints, test skip, and docs
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 09:21:11 +00:00
copilot-swe-agent[bot] aa49fa3ae6 feat(db): add migration chain CI validation, pre-commit hook, script template, docs, and tests
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 09:18:11 +00:00
copilot-swe-agent[bot] 4d019d53d9 docs: update scaling, health probe, and beat scheduler documentation
- Update DeploymentGuide.md with scaling instructions and beat service info
- Update KubernetesDeployment.md with unauthenticated probe paths and beat note
- Update ProductionReadiness.md with new health endpoints table and beat guidance
- Update API.md with new healthz/live and healthz/ready endpoint docs

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-17 00:08:17 +00:00
copilot-swe-agent[bot] f75b125992 feat(scaling): enable horizontal scaling for API and worker pods
- Add unauthenticated /api/diagnostic/healthz/live and /healthz/ready
  probe endpoints for Kubernetes liveness/readiness checks
- Separate Celery Beat into dedicated beat service in docker-compose.yaml
- Remove container_name from api and worker services to allow scaling
- Create Helm beat-deployment.yaml for standalone Beat scheduler pod
- Remove -B flag from worker-deployment.yaml so workers can scale safely
- Add beat section and fix probe paths in Helm values.yaml
- Add tests for the new probe endpoints

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 23:52:56 +00:00
copilot-swe-agent[bot] 935e8a626e Changes before error encountered
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 23:25:53 +00:00
copilot-swe-agent[bot] b3dce16838 Initial plan 2026-03-16 23:17:10 +00:00
github-actions[bot] 0b0f43fa99 chore(release): update build metadata files [skip ci] 2026-03-16 23:08:10 +00:00
semantic-release 0e472d3515 0.153.1
Automatically generated by python-semantic-release
2026-03-16 23:08:07 +00:00
Christian Krakau-Louis 15fc90f240 Merge pull request #752 from christianlouis/copilot/fix-ios-hello-world-screen-issue
fix(mobile): add root index.tsx redirect to prevent stale Hello World screen
2026-03-17 00:07:45 +01:00
copilot-swe-agent[bot] 1350aa6a5e fix(mobile): add root index.tsx redirect to prevent stale Hello World screen
Without a root app/index.tsx in the repo, a stale default Expo Router
scaffold file (showing "Hello World") could be picked up from a previous
build or CLI scaffolding and displayed instead of the real app.

The new index.tsx immediately redirects to /(auth)/, and the existing
AuthGuard in _layout.tsx forwards authenticated users to /(tabs)/.

Also registers the index screen in the root Stack and updates
docs/MobileApp.md with an expanded project structure and a new
troubleshooting entry.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 23:01:43 +00:00
copilot-swe-agent[bot] d5e1d92d6f Changes before error encountered
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:54:13 +00:00
copilot-swe-agent[bot] d1ebac74a1 Changes before error encountered
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:54:09 +00:00
github-actions[bot] 475c41d375 chore(release): update build metadata files [skip ci] 2026-03-16 22:50:45 +00:00
semantic-release fef74450c7 0.153.0
Automatically generated by python-semantic-release
2026-03-16 22:50:42 +00:00
Christian Krakau-Louis 8d366f3b1e Merge pull request #750 from christianlouis/copilot/add-cleanup-button-functionality
feat(system-reset): add factory reset and wipe-and-reimport capabilities
2026-03-16 23:50:21 +01:00
copilot-swe-agent[bot] 204000aabc fix: merge main branch and renumber migration 027→037
Resolve 3 merge conflicts and renumber the automation_hooks migration
to follow main's migration chain (036_add_document_translation_fields).

Conflicts resolved:
- app/api/__init__.py: add automation_router alongside main's new routers
- app/utils/settings_service.py: add automation_hooks_enabled alongside compliance_enabled
- tests/conftest.py: add AutomationHook alongside AuditLog/ComplianceTemplate imports

Migration renumbered:
- 027_add_automation_hooks → 037_add_automation_hooks
- down_revision: 026_add_scheduled_jobs → 036_add_document_translation_fields

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:40:15 +00:00
copilot-swe-agent[bot] 7dffdc0554 fix(system-reset): address code review feedback
- Add path traversal guard in reimport file copy loop
- Improve error log message context for table wipe failures
- Use conditional role=alert/status on result banner for accessibility
- Make test assertions more specific (exact status codes)
- Rename ambiguous view test

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-16 22:38:24 +00:00
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