• Joined on 2026-04-23
nns pushed to main at nns/food-market 2026-05-29 16:57:50 +05:00
4e15359378 fix(docs): EF8 nav-collection bug в Enters/Losses/Transfers/SupplierReturns/Inventories.Update
nns pushed to main at nns/food-market 2026-05-29 16:46:35 +05:00
4c2841db5b docs(stage): пункт 2 done — каталог CRUD + multi-tenant зелёный, 2 фикса
nns pushed to main at nns/food-market 2026-05-29 16:46:16 +05:00
d54e1cb968 fix(catalog): EF8 nav-collection bug в Products.Update + unique IX на Article
nns pushed to main at nns/food-market 2026-05-29 16:29:10 +05:00
0511cfacfd test(stage): smoke + signup на test.admin.food-market.kz
nns pushed to main at nns/food-market 2026-05-29 14:29:09 +05:00
4675f38a0f docs(sprint6): P2-4 done — все 5 пунктов выполнены, итог
7b7a7091b9 feat(auth): TOTP 2FA для админов через AuthenticatorTokenProvider (P2-4)
971c9b29a5 docs(sprint6): TD-1 done
ef8c4a3222 feat(cqrs): MediatR partial — 3 handler-образца (TD-1)
77c7bb52d1 docs(sprint6): TD-4 done
Compare 98 commits »
nns pushed to main at nns/food-market 2026-05-18 12:56:14 +05:00
05c70f0368 fix(docker): обновить node:20-alpine → 22-alpine (pnpm 11 требует Node ≥22)
nns pushed to main at nns/food-market 2026-05-18 12:53:01 +05:00
fc2cbee3d7 fix(validation): validatePassword проверяет заглавную и цифру (соответствует хинту)
nns pushed to main at nns/food-market 2026-05-18 12:43:55 +05:00
259706e21f fix(signup): onBlur валидация через e.target.value, ре-валидация вместо сброса ошибки в onChange
nns pushed to main at nns/food-market 2026-05-18 12:12:19 +05:00
ff44afc202 feat(ux): onBlur валидация полей во всех формах
nns pushed to main at nns/food-market 2026-05-08 12:16:25 +05:00
42645174e0 e2e: bugs-fixed отчёт — все 12 шагов зелёные после fix HIGH+MEDIUM+2 gap'а
nns pushed to main at nns/food-market 2026-05-08 12:09:46 +05:00
bac527d3a8 fix(retail-sale): блок пустого Draft на UI + бэк уже отказывает
319a91ff10 feat(bootstrap): системная ProductGroup «Все товары» при создании org
57168299ac fix(validation): обязательные FK-Guid проверяются на 400 + DbUpdateException → 400
9eb1a6c69a fix(retail-sale): блок overselling в Post — 409 если qty>остатка
Compare 4 commits »
nns pushed to main at nns/food-market 2026-05-08 11:02:16 +05:00
bf53629092 refactor(units): drop Description, hide Code from non-SuperAdmin UI
37cd9aa94b test(e2e): починка контрактов supply/sale + EAN-13 + bug-hunt + full-pass отчёт
Compare 2 commits »
nns pushed to main at nns/food-market 2026-05-08 01:35:00 +05:00
dd3ee58502 e2e: full-cycle отчёт после fix 1+2+3 (Cashier 403/Identity-role + phone ФЛК + units global)
nns pushed to main at nns/food-market 2026-05-08 01:29:57 +05:00
ee127b2785 fix(migrations): добавить [Migration] атрибут для Phase5c — без него Migrate() не находит миграцию
nns pushed to main at nns/food-market 2026-05-08 01:21:38 +05:00
493ed33fd0 phase5c: единицы измерения — глобальный справочник + junction для орг
46877cc134 fix(phone): серверная KZ-ФЛК на всех endpoint'ах принимающих phone
bcf81c57ee fix(auth): Cashier/Storekeeper больше не видят /api/organization/employees + Identity-роль маппится из orgRole
Compare 3 commits »
nns pushed to main at nns/food-market 2026-05-08 00:05:55 +05:00
7bb941259a feat(e2e): infrastructure + first full-cycle scenario + baseline report
nns pushed to main at nns/food-market 2026-05-06 12:45:47 +05:00
e38a360e54 feat(auth): forgot/reset password — endpoints + UI + IP rate-limit
ab13a89617 feat(platform): UI /super-admin/platform-settings + тестовая отправка
76e956ea6c feat(platform): IEmailSender + MailKit + PlatformSettingsController
1456f170eb feat(platform): PlatformSettings entity + миграция (singleton SMTP-конфиг)
Compare 4 commits »
nns pushed to main at nns/food-market 2026-05-06 11:32:59 +05:00
fc9f7c9ee4 docs(audit): полный аудит цепочки авторизации — 2026-05-06
f824e38959 feat(roles): фильтр sidebar и route-guard по ролям пользователя
e8a28ba1f6 feat(employees): двухступенчатое удаление — «уволить» → «удалить»
0e4b7868c9 feat(forms): TextInput с type=email — авто-pattern для TLD-проверки
a6ecc65b97 feat(forms): MoneyInput для поля «Оклад» в карточке сотрудника
Compare 8 commits »
nns pushed to main at nns/food-market 2026-05-03 18:25:59 +05:00
8eceff0bb5 fix(phone): сохранять позицию курсора после нормализации
nns pushed to main at nns/food-market 2026-05-03 17:21:54 +05:00
1264a91e2c fix(phone): нативное редактирование, фильтр не-цифр через onBeforeInput