This website requires JavaScript.
dc885f36b4
docs(s28): incident 1780985101 — patch v2 watchdog run-level suppression
main
nns
2026-06-09 11:24:33 +0500
b3ed6796ce
docs(s28): incident 1780974301 — false-positive из-за external network
nns
2026-06-09 08:26:08 +0500
b52cfc0f79
docs(s27): финальные результаты 4h-soak — 718k iter, 0 mem leak
nns
2026-06-09 07:25:06 +0500
ce7c5b2474
test(s28): acceptance script verify-sprint28.sh (5 checks)
nns
2026-06-09 03:49:44 +0500
f6b50baa50
docs(s28): сводка interim soak (31min, 91k iter, 0 fail) + overnight work
nns
2026-06-09 03:47:03 +0500
05a34a7dd8
perf(s28): integration suite workers=2 (46% speedup 66→36s)
nns
2026-06-09 03:45:41 +0500
439301b92d
docs: ONBOARDING sprint-history до 28 + quality marathon summary
nns
2026-06-09 03:42:51 +0500
99b84132ba
fix(s28): api-reference handle ~/path ASP.NET convention
nns
2026-06-09 03:41:15 +0500
5b87b5d599
docs: README counts up to date (240 endpoints, 58 controllers, 13 jobs)
nns
2026-06-09 03:39:35 +0500
ffb8456514
test: ApiReferenceDocsJob regex lock-down (Sprint 28)
nns
2026-06-09 03:38:29 +0500
4534f8e36c
docs: update README sprint-history до Sprint 28
nns
2026-06-09 03:37:39 +0500
a80471d0f9
fix(security): add HSTS header on stage + integration test
nns
2026-06-09 03:35:38 +0500
ed140cb819
docs(s28): api-reference 195→240 + observability + integration #7 + CI
nns
2026-06-09 03:26:39 +0500
e30861fb57
feat(s27): cross-feature integration + soak + crash recovery (8/8 ✓)
nns
2026-06-09 03:09:17 +0500
cf760fab10
feat(s26): flaky-test detection + observability dashboards (8/8 ✓ 10/10 cert)
nns
2026-06-08 14:44:19 +0500
019c57ae3b
feat(s25): autonomous continuous quality monitoring (8/8)
nns
2026-06-08 12:50:35 +0500
4cc4922463
docs(s24): итог — 8/8 ✓ + coverage delta estimate +6-9%
nns
2026-06-08 02:21:16 +0500
72d0a71307
docs(s24): docs cross-check + auto-gen + onboarding + test gap-fill (8/8 ✓)
nns
2026-06-08 02:15:56 +0500
2bbd078659
docs(s23): итог — 4 bugs found, 4 fixed, all retested ✓
nns
2026-06-08 01:42:28 +0500
284ad095c1
fix(s23): adversarial bug-hunt — 4 bugs found, all fixed
nns
2026-06-08 01:35:50 +0500
b6f3c55d81
docs(s22): итог — 7/7 ✓ + 10/10 endpoint smoke + ARCHITECTURE финал
nns
2026-06-07 23:14:42 +0500
1af4290313
fix(s22): 1C-CSV detect charset из Content-Type + UpdatedAt в migration
nns
2026-06-07 23:09:09 +0500
4c1ac37a08
fix(s22): OrgExportJob.WriteCollection<T> — where T : class
nns
2026-06-07 23:03:17 +0500
aa83f82dc5
feat(s22): data tooling — export/import + schema docs + anon dump (7 пунктов)
nns
2026-06-07 23:00:54 +0500
843fc4bd03
feat(s21): stage→prod migration toolchain (7 скриптов + workflow)
nns
2026-06-07 22:31:10 +0500
fe87049be5
docs(s20): итог — 7/7 ✓ + 6/6 endpoint smoke + 10 recurring jobs зарегистрировано
nns
2026-06-07 22:00:50 +0500
346b7bfd48
feat(s20): Mapster + SSO scaffold + maintenance automation (7 пунктов)
nns
2026-06-07 21:54:12 +0500
7c57d0691b
docs(s19): итог — 7/7 ✓ + 13/13 endpoint smoke + 14 UI specs
nns
2026-06-07 21:23:02 +0500
83793fd6dd
fix(s19): SaleExportRow.Payment — string (enum), не decimal
nns
2026-06-07 21:11:43 +0500
6940aa40df
feat(s19): bulk-операции + presets + power-user UX (7 пунктов)
nns
2026-06-07 21:08:48 +0500
00f248a460
docs(s18): итог — 7/7 ✓ + retest 5 stage scenarios + 44 UI specs
nns
2026-06-07 19:10:08 +0500
3c731ba532
fix(s18): audit-log employee filter — правильный endpoint и DTO
nns
2026-06-07 19:01:13 +0500
9bd4375ae4
feat(s18): TODO cleanup — P0 race fix + helpTooltip + whats-new + contrast + currency + audit filters + notifications
nns
2026-06-07 18:50:35 +0500
f56c6efab1
feat(s17): onboarding wizard + help kb + feedback + diagnostic + whats-new
nns
2026-06-07 17:04:26 +0500
1989db32bb
test(s16): regression suite 35 flows + visual 60 snapshots + nightly + CI badges
nns
2026-06-07 16:14:02 +0500
9588d03bf4
test(s15): axe a11y + focus traps + unit coverage 80% + property tests + backup drill
nns
2026-06-07 14:53:38 +0500
e13dd6937f
perf(s14): индексы + N+1 fix + bundle -50% + WebP variants + pool + Hangfire timing
nns
2026-06-07 13:21:39 +0500
8e54e2e0d6
feat(s13): security headers + rate-limits + sensitive-ops audit + session revoke + Grafana
nns
2026-06-07 12:30:10 +0500
97e26a65d5
docs(s12): ARCHITECTURE/MULTI-TENANCY/RUNBOOK/DEVELOPER-GUIDE + k6 baseline + stage-verify CI
nns
2026-06-07 03:19:25 +0500
0d3ef81f72
feat(s11): ОФД-scaffolding — IFiscalProvider + 4 провайдера + UI/тесты
nns
2026-06-07 02:27:17 +0500
786dacb081
feat(s10-4): dark mode полировка + Cmd+K палитра + аудит-spec
nns
2026-06-06 01:30:41 +0500
f9fa028fe5
feat(s10-3): глобальная Cmd+K палитра + GET /api/search/global
nns
2026-06-06 01:20:05 +0500
1044818fbb
feat(s10): year-demo seeder + 4 dashboard виджета + week-stats
nns
2026-06-06 01:03:36 +0500
fd4d435658
test(verify-sprint): итог 78/78 stage-ui specs + V-13/14/15 verify specs + smtp4dev manual check
nns
2026-06-04 22:25:41 +0500
43a5552772
fix(stage-tests): IP-limit 60/min, locale ru-RU в playwright, исправлены payload'ы verify-spec'ов
nns
2026-06-04 17:38:36 +0500
9d48ca6483
fix(rate-limit): per-username 5/мин + per-IP 30/мин — brute-force на конкретный аккаунт ловится, CI/NAT не страдают
nns
2026-06-04 17:20:28 +0500
ba54155225
fix(stage): rate-limit 5/min на /connect/token, nginx route /metrics+/swagger, Swagger в Production через IncludeSwagger
nns
2026-06-04 01:36:42 +0500
a1cccdeef5
docs(sprint9): итог — все 4 пункта ✓, stage 8/8 e2e зелёные
nns
2026-05-31 21:38:26 +0500
12d833f035
fix(pwa): bump cache version + filter SignalR-race errors in PWA test
nns
2026-05-31 21:33:02 +0500
6f9dd11b0a
fix(pwa): SW не вмешивается в /hubs/* — SignalR negotiate сломался
nns
2026-05-31 21:28:06 +0500
76a175f491
feat(pwa+mobile+s9): PWA owner read-only + mobile tweaks + S9 stage specs
nns
2026-05-31 21:22:30 +0500
dc68c997c9
fix(loyalty): убрать unused imports (TS6133)
nns
2026-05-31 21:10:44 +0500
91128a7ed0
feat(loyalty+promotions): P2-12 + P2-13 — лояльность и промокоды (Sprint 9 п.1-2)
nns
2026-05-31 21:06:10 +0500
a5314b5be9
test(s8-4): MinIO stage e2e + final progress
nns
2026-05-31 20:25:19 +0500
7de159d5f2
feat(storage): IObjectStorage abstraction (Local + MinIO) — P2-15
nns
2026-05-31 20:17:10 +0500
d451e77642
test(s8-3): i18n stage e2e
nns
2026-05-31 20:09:40 +0500
301bf15924
feat(i18n): react-i18next ru/en + language switcher (P2-6a — базовая)
nns
2026-05-31 20:03:33 +0500
749829c12f
test(s8-2): telegram stage e2e
nns
2026-05-31 19:57:03 +0500
3088237ea7
feat(telegram): OwnerDailySummaryJob + bot binding (P2-14)
nns
2026-05-31 19:50:33 +0500
abace49a45
test(s8-1): SignalR stage e2e + progress
nns
2026-05-31 19:42:33 +0500
2ea30bb30a
deploy(nginx): /hubs/ → API с upgrade-хедерами для WebSocket
nns
2026-05-31 19:38:04 +0500
dd2e1e7af2
feat(realtime): SignalR hub /hubs/notifications per-org + dashboard live
nns
2026-05-31 19:29:59 +0500
51aae4482f
test(ui-deep): items 10-14 — все 59/59 ✓ на стейдже
nns
2026-05-30 13:53:57 +0500
8b6d139e3e
test(ui-deep): items 6-9 — Supply/RetailSale/InventoryDocs/Reports
nns
2026-05-30 13:37:01 +0500
b9d9174a61
test(ui-deep): items 4-5 specs + docs
nns
2026-05-30 13:11:47 +0500
f36fb146b6
fix(employees): после create — invalidate list query (не показывался сразу)
nns
2026-05-30 13:06:57 +0500
87e60e7309
fix(employees): error display через humanizeError, не «Request failed»
nns
2026-05-30 12:59:37 +0500
64cc5b0d10
test(ui-deep): items 2-3 — navigation + Products CRUD
nns
2026-05-30 12:52:10 +0500
3cdb819331
fix(catalog): уберём cache-touch после Delete — просто navigate
nns
2026-05-30 12:45:56 +0500
61ca7fee90
fix(catalog): после Delete не refetch'аем удалённый товар
nns
2026-05-30 12:39:39 +0500
eb867697d0
test(ui-deep): setup + Item 1 — signup flow (5 specs)
nns
2026-05-30 12:33:10 +0500
cee92d86ce
fix(catalog): ProductEditPage — race на currencies.data + читаемая ошибка
nns
2026-05-30 12:27:07 +0500
1418c79b04
fix(a11y): Modal — role=dialog + aria-modal + aria-label на крестике
nns
2026-05-30 12:18:16 +0500
64af42167b
docs(sprint7): пункты 6-7 ✓ + итог по спринту
nns
2026-05-30 11:52:00 +0500
c2ebbcc1bd
fix(web): useShortcuts — бэр-клавиши не зависят от Shift
nns
2026-05-30 11:47:09 +0500
76cbe78257
feat(web): keyboard shortcuts на edit + list страницах + «?» overlay
nns
2026-05-30 11:41:54 +0500
821bc4ed8d
feat(web): Breadcrumbs на edit-страницах (Каталог / Товары / Молоко 3.2%)
nns
2026-05-30 11:25:32 +0500
6fc74f8db6
docs(sprint7): пункт 5 ✓ + empty-state screenshot
nns
2026-05-30 11:21:30 +0500
8d532927e2
feat(web): Empty states с CTA на list-страницах
nns
2026-05-30 11:16:11 +0500
cd83269d3a
docs(sprint7): пункт 4 ✓ + skeleton screenshot
nns
2026-05-30 11:07:54 +0500
faa13521e8
feat(web): loading skeletons вместо «Загрузка…» в DataTable + edit-pages
nns
2026-05-30 11:03:08 +0500
56dd9fb639
docs(sprint7): пункт 3 ✓ + toast screenshot script
nns
2026-05-30 10:59:06 +0500
27ce8dddfc
feat(web): toast-система — error на 4xx/5xx + success на мутации (через meta)
nns
2026-05-30 10:54:14 +0500
c201625b2b
docs(sprint7): пункт 2 ✓ + screenshot script
nns
2026-05-30 10:46:52 +0500
17a6da2f8b
feat(web): ConfirmDialog компонент + useConfirm hook вместо window.confirm()
nns
2026-05-30 10:38:31 +0500
26959d56d1
docs(sprint7): пункт 1 ✓ (demo-seeder)
nns
2026-05-30 10:22:06 +0500
ad09b56013
feat(stage): demo-data seeder для test.admin.food-market.kz
nns
2026-05-30 10:17:49 +0500
d89d6bf1dc
docs(stage): итоговый отчёт — все 14 пунктов ✓ (94/94 шагов зелёные)
nns
2026-05-29 17:59:04 +0500
a0b985178b
test(stage): пункт 14 — POS Sync API 7/7 ✓ (sync + sales с idempotency)
nns
2026-05-29 17:53:08 +0500
466595b4d5
fix(swagger): operationId + schemaId — генерация OpenAPI работает
nns
2026-05-29 17:51:23 +0500
6b6f27d238
test(stage): пункт 12 — 2FA TOTP 6/6 ✓ (enroll+verify+login flow+disable)
nns
2026-05-29 17:41:22 +0500
6a5bb52b13
test(stage): пункт 11 — OrgAuditLog 7/7 ✓ + UTC fix
nns
2026-05-29 17:39:54 +0500
97d5ae5eb0
fix(reports): 3 фикса по итогам stage-тестирования
nns
2026-05-29 17:35:31 +0500
475c5ca674
test(stage): пункт 9 — Demand 8/8 ✓ (Cash + Credit + post + multi-tenant)
nns
2026-05-29 17:23:03 +0500
74e14ebeb5
test(stage): пункт 8 — SupplierReturn 8/8 ✓ (CRUD+Post+Unpost+ref validation+multi-tenant)
nns
2026-05-29 17:21:30 +0500
9df8e0123e
test(stage): пункт 7 — CustomerReturn 6/6 ✓ (создание из чека+walk-in+overreturn+multi-tenant)
nns
2026-05-29 17:10:08 +0500
7d69006a94
test(stage): пункт 6 — Inventory 8/8 ✓ + logic gap по CSV-импорту
nns
2026-05-29 17:05:28 +0500
24c3ff1635
test(stage): пункт 5 — Transfer 7/7 ✓ (CRUD+atomic post+unpost+multi-tenant)
nns
2026-05-29 17:01:48 +0500
d246354c20
test(stage): пункт 4 — Loss 8/8 ✓ (CRUD+Post+Unpost+multi-tenant)
nns
2026-05-29 16:59:56 +0500
96e0d84f86
docs(stage): пункт 3 done — Enter зелёный, EF8 фикс на 5 контроллеров
nns
2026-05-29 16:57:59 +0500