Kirill
51cc5832c3
fix: normalize IPv6-mapped IPv4 addresses in IP gate
2026-05-23 11:04:32 +05:00
Kirill
8ed2f0e9ba
fix: simplify title and status message in 403 page
2026-05-23 11:01:37 +05:00
Kirill
e22f084940
feat: add IP gate plugin with SITE_ACCESS_IPS env var support
2026-05-23 11:00:02 +05:00
Kirill
54022d72ff
docs: add IP-gate access control implementation plan
2026-05-23 10:58:36 +05:00
Kirill
1b9cc8ac57
docs: add IP-gate access control spec
2026-05-23 10:56:08 +05:00
Kirill
b58ad6cc45
Merge branch 'new-fixes'
2026-05-23 10:32:50 +05:00
Kirill
7e5ed9cefa
пва
2026-05-22 23:44:48 +05:00
Kirill
bb78782b39
пва
2026-05-22 23:22:29 +05:00
Kirill
e85ebc203c
Merge branch 'sitefixws'
2026-05-22 23:09:44 +05:00
Kirill
d60270336e
пва
2026-05-22 23:03:03 +05:00
Kirill
13cc1fa2b8
docs: add VK no-email fix design spec
2026-05-22 22:51:03 +05:00
Kirill
f0af519ec1
fix: VK OAuth uses short UUID state + in-memory PKCE store instead of JWT
2026-05-22 21:02:33 +05:00
Kirill
9d7e7949b9
feat: migrate VK OAuth to VK ID flow with PKCE
2026-05-22 20:54:48 +05:00
Kirill
bead725036
fix: strip trailing slash from SERVER_PUBLIC_URL to prevent double-slash in OAuth redirect_uri
2026-05-22 20:31:02 +05:00
Kirill
caa9b926e3
пва
2026-05-22 20:20:08 +05:00
Kirill
0f2ac862de
feat: add WB_PVZ (Wildberries pickup) delivery carrier
2026-05-22 19:51:34 +05:00
Kirill
cc94917c5f
feat: add email, phone, VK contacts to About page
2026-05-22 19:43:31 +05:00
Kirill
3d0dbdd0a5
пва
2026-05-22 19:41:47 +05:00
Kirill
5644a2ede2
feat: replace footer VK inline icon with SVG logo
2026-05-22 19:41:04 +05:00
Kirill
20e4b1e0ab
feat: latin-only slugs, server-side avatar generation, remove unused User fields
2026-05-22 19:32:30 +05:00
Kirill
02c7d7ba36
fix: review avatar uses authorId instead of displayName, show reviews for hidden products
2026-05-22 19:14:22 +05:00
Kirill
a96944328d
style: prettier format SseProvider test
2026-05-22 18:46:42 +05:00
Kirill
3b627e8e2f
feat: mount SseProvider, remove polling from layouts
2026-05-22 18:45:00 +05:00
Kirill
86523cda71
feat: add SseProvider — SSE to ReactQuery bridge with tests
2026-05-22 18:43:02 +05:00
Kirill
a5e875292d
test: add SseProvider tests (TDD red)
2026-05-22 18:40:57 +05:00
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