copilot-swe-agent[bot]
70b193e07d
fix(mobile): replace gap with marginLeft for React Native compatibility
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-17 12:05:39 +00:00
copilot-swe-agent[bot]
723b14e660
docs: update QR code login documentation with scanner and TTL details
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-17 12:04:53 +00:00
copilot-swe-agent[bot]
0f6a1ee1ec
fix(api): add ttl_seconds to QR challenge response and fix client-side countdown
...
The QR login page countdown timer compared the server's UTC expiration
timestamp against the client's local clock, causing the QR code to appear
immediately expired when the client clock was ahead of the server.
Changes:
- Add ttl_seconds field to CreateChallengeResponse (seconds until expiry)
- Frontend countdown now uses relative elapsed time since response was
received, eliminating clock-skew issues
- Mobile app: replace alert-only QR button with actual camera-based
QR code scanner using expo-camera
- Add QRScannerScreen with barcode scanning, permission handling, and
scan area overlay
- Update camera permission description to mention QR code scanning
- Add tests for ttl_seconds computation
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-17 12:02:33 +00:00
copilot-swe-agent[bot]
9fe50a87d1
Initial plan
2026-03-17 11:53:39 +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]
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]
935e8a626e
Changes before error encountered
...
Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com >
2026-03-16 23:25:53 +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
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]
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]
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]
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