diff --git a/CHANGELOG.md b/CHANGELOG.md index bf5b72b5..a47aecc4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,18 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Added + +* **auth:** Login and Setup pages redesigned with split-panel branding layout (dark branding panel + theme-aware form) +* **auth:** Optional admin email field on Setup for future license recovery +* **ui:** Mobile-responsive login/setup with compact logo header + +### Fixed + +* **e2e:** Use explicit `data-stacks-loaded` string values for reliable attribute selector matching + ## [0.3.1](https://github.com/AnsoCode/Sencho/compare/v0.3.0...v0.3.1) (2026-03-25) diff --git a/backend/src/index.ts b/backend/src/index.ts index 836e9004..8d59f877 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -277,7 +277,7 @@ app.post('/api/auth/setup', authRateLimiter, async (req: Request, res: Response) return; } - const { username, password, confirmPassword } = req.body; + const { username, password, confirmPassword, admin_email } = req.body; // Validation if (!username || !password || !confirmPassword) { @@ -307,6 +307,10 @@ app.post('/api/auth/setup', authRateLimiter, async (req: Request, res: Response) dbSvc.updateGlobalSetting('auth_password_hash', passwordHash); dbSvc.updateGlobalSetting('auth_jwt_secret', jwtSecret); + if (admin_email && typeof admin_email === 'string') { + dbSvc.updateGlobalSetting('admin_email', admin_email.trim()); + } + // Issue JWT and log user in const token = jwt.sign({ username }, jwtSecret, { expiresIn: '24h' }); res.cookie(COOKIE_NAME, token, getCookieOptions(req)); diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index fdd4f8ae..3bb1da70 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -17,19 +17,11 @@ function AppContent() { } if (needsSetup) { - return ( -
+ Docker Compose Management
+
+
+ Sencho
+ + Sign in to your Sencho instance +
+
+ Docker Compose Management
+
+
+ Sencho
+ + Set up the admin credentials for your Sencho instance +
+