Kirill
a84045a68d
feat: add EventSource factory for SSE
2026-05-22 18:39:10 +05:00
Kirill
4381121f25
feat: register SSE routes in server
2026-05-22 18:38:48 +05:00
Kirill
e2a04d04a3
fix: add safeWrite guard and error handler for SSE socket
2026-05-22 18:37:55 +05:00
Kirill
5127d4a093
feat: add SSE route with EventBus bridge and tests
2026-05-22 18:33:49 +05:00
Kirill
55dc58cff8
fix: gate ADMIN_EMAIL test with explicit skip
2026-05-22 18:25:22 +05:00
Kirill
6b89f42269
test: add SSE route tests (TDD red)
2026-05-22 18:23:11 +05:00
Kirill
3212d6c185
docs: SSE realtime implementation plan
2026-05-22 18:18:54 +05:00
Kirill
76c8564e77
docs: SSE realtime design spec
2026-05-22 18:08:24 +05:00
Kirill
8fb01126b8
пва
2026-05-22 17:47:22 +05:00
Kirill
bc85fa8e84
пва
2026-05-22 17:44:42 +05:00
Kirill
b38b24f158
fix(auth): add missing onRegisterChange prop to test
2026-05-22 16:04:50 +05:00
Kirill
c903db439d
fix(auth): enable register tab switching
2026-05-22 15:59:38 +05:00
Kirill
237106f2a4
fix(client): parse error message properly in ProfileSection
2026-05-22 15:41:50 +05:00
Kirill
955368d898
Merge branch 'refac2'
2026-05-22 15:36:48 +05:00
Kirill
f39d4e82ff
пва
2026-05-22 15:36:39 +05:00
Kirill
2b5c7fff5e
fix(server): remove duplicate registerAuthRoutes call
2026-05-22 15:31:35 +05:00
Kirill
b3b539b6fb
fix(api): register auth routes
...
Add missing registerAuthRoutes call in registerApiRoutes to enable
POST /api/auth/request-code, /verify-code, /register, /login,
/forgot-password, /reset-password, and PATCH /api/me/profile routes
2026-05-22 15:21:55 +05:00
Kirill
49f24d7482
split auth.js into focused modules (Task 3)
...
- auth-session.js: GET /api/me, GET /api/me/auth-methods
- auth-password.js: POST /api/me/password, POST /api/me/change-password
- auth-oauth.js: DELETE /api/me/oauth/:provider
- auth.js: kept only /api/auth/* routes + /api/me/profile
- api.js: registers new auth route modules
- tests split to separate files per module
2026-05-22 15:19:30 +05:00
Kirill
be9a9bad8e
fix(Task 2): add error handling and sync state with user
...
- AuthMethodsSection: show Alert on fetchAuthMethodsFx failure
- AvatarSection: sync selectedStyle with user.avatarStyle via Select key
- ProfileSection: reset form defaultValues when user.displayName changes
2026-05-22 15:15:50 +05:00
Kirill
fa276eb7f3
fix(settings): use $updateProfileError and changePasswordFx per spec
2026-05-22 15:10:20 +05:00
Kirill
e273c29c36
refactor(SettingsPage): split into ProfileSection, AvatarSection, AuthMethodsSection
...
- Extract ProfileSection (45 lines): display name form with save button
- Extract AvatarSection (114 lines): avatar preview, style selector, generate/save/cancel
- Extract AuthMethodsSection (204 lines): auth methods list, set/change password forms
- Rewrite SettingsPage as composer (41 lines): composes 3 sections with dividers
- Add tests for all 3 sections
2026-05-22 15:04:49 +05:00
Kirill
03e60e46f3
fix(auth): defer setState in OAuth error effect to avoid cascading renders
2026-05-22 14:50:38 +05:00
Kirill
b1530ef705
fix(auth): add forgot password flow and fix OAuth URL clearing
2026-05-22 14:47:06 +05:00
Kirill
68bbbf8895
refactor(auth): extract AuthPasswordForm and AuthCodeForm to features
...
- Create auth-password feature with login/register form
- Create auth-code feature with email+code verification form
- Extract getApiErrorMessage to shared lib
- Simplify AuthPage to pure UI composer with tabs
- Update tests for new component structure
- All 40 tests passing
2026-05-22 14:36:19 +05:00
Kirill
da13ce2848
Merge branch 'autorizayion'
2026-05-22 14:22:28 +05:00
Kirill
c9fb9cc8fc
test commit
2026-05-22 14:22:24 +05:00
Kirill
d79d02d5d1
refactor: remove email change functionality
2026-05-22 14:20:11 +05:00
Kirill
ad43ff98b6
feat: add password change and reset via email code
2026-05-22 14:12:29 +05:00
Kirill
22282c5f4e
fix: accept token as query param in authenticate, pass token to oauth link URL
2026-05-22 13:52:48 +05:00
Kirill
d51266446f
fix(client): remove global borderWidth change on outlined button hover
2026-05-22 13:49:31 +05:00
Kirill
b7c11fbce6
test commit
2026-05-22 13:46:37 +05:00
Kirill
f02c615dd9
fix(client): remove hover shift on pill tabs and OAuth buttons
2026-05-22 13:45:05 +05:00
Kirill
cf61a5c44f
fix(client): remove OAuth tab, show VK/Yandex always with separator, fix pill hover offset
2026-05-22 13:41:52 +05:00
Kirill
e468625cfc
chore: fix type errors, move textAlign/fontWeight to sx
2026-05-22 13:28:45 +05:00
Kirill
9696a4dcc3
feat(client): redesign auth page with minimal style, BearLogo, pill buttons
2026-05-22 13:24:35 +05:00
Kirill
eb30640b49
feat: load Outfit font from static files
2026-05-22 13:18:21 +05:00
Kirill
669b9aa45d
test commit
2026-05-22 12:51:41 +05:00
Kirill
b2ccc2a256
chore: fix lint issues, remove unused hasAvatar
2026-05-22 12:27:20 +05:00
Kirill
5651403d2e
test(client): add auth page tab tests
2026-05-22 12:21:50 +05:00
Kirill
39d6a1604c
fix(client): remove avatarType and OAuth avatar from admin settings
2026-05-22 12:18:45 +05:00
Kirill
6d23aafcc1
feat(client): add auth methods section to settings page
2026-05-22 12:16:58 +05:00
Kirill
afc763c522
feat(client): auth page with 3 tabs (password/code/oauth)
2026-05-22 12:11:36 +05:00
Kirill
be65f2330e
refactor(client): remove avatarType, add auth effects, simplify UserAvatar
2026-05-22 12:08:41 +05:00
Kirill
6bedf0b28a
test(server): add password auth and account methods tests
2026-05-22 11:57:11 +05:00
Kirill
abb14a49e0
feat(server): add auth-methods, set-password, unlink-oauth endpoints
2026-05-22 11:47:46 +05:00
Kirill
c9fa05b7bf
feat(server): add oauth link routes for account binding
2026-05-22 11:45:12 +05:00
Kirill
5f180fffaf
refactor(server): oauth only email, remove profile requests, support account linking state
2026-05-22 11:41:40 +05:00
Kirill
bb7b40ac45
fix(server): remove all avatarType references after DB column drop
2026-05-22 11:36:11 +05:00
Kirill
c3e4f5bdd2
feat(server): add POST /api/auth/register and /api/auth/login
...
- Add register endpoint with email/password validation, bcrypt hashing
- Add login endpoint with rate limiting per IP (5 attempts/min)
- Add helper functions: validatePassword, hashPassword, comparePassword, isAdminEmail
- Add checkLoginRateLimit for brute-force protection
- Add bcrypt dependency
- Remove avatarType column from User (migration)
2026-05-22 11:26:00 +05:00
Kirill
924d7b7b77
test commit
2026-05-21 21:58:49 +05:00