Александр Зимин
c59724125e
Merge branch 'fix/no-resource-found-returns-404' into 'main'
...
fix(restapi): NoResource/NoHandler exceptions → 404, не 500
See merge request 2-6/2-6-4/terravault/ordinis!153
2026-05-12 21:10:20 +00:00
Zimin A.N.
000322d6ee
test(restapi): drop /swagger-ui from 404 test (env-dependent)
...
Failed pipeline 6805: /swagger-ui/index.html в test profile вернул 200
(springdoc enabled по умолчанию через ORDINIS_SWAGGER_UI_ENABLED default
true). Это валидно — Swagger render'ит реальную UI page.
Замена: проверяем generic non-API typo path который точно не имеет
controller'а и не SPA-route'д. Покрывает тот же NoResourceFoundException
branch handler'а независимо от springdoc env config.
2026-05-13 00:07:17 +03:00
Александр Зимин
3021bd7e3c
Merge branch 'feat/whats-new-modal-from-banner' into 'main'
...
feat(updateBanner): «Что нового» button открывает modal с changelog
See merge request 2-6/2-6-4/terravault/ordinis!152
2026-05-12 21:04:56 +00:00
Zimin A.N.
f2adc37e2e
fix(restapi): NoResource/NoHandler → 404, не 500
...
GlobalExceptionHandler catch-all Exception → 500 ловил NoResourceFoundException
и NoHandlerFoundException. Симптомы на prod:
- /swagger-ui/index.html при disabled springdoc возвращал 500 (UI всё равно
не рендерился, но spring логировал 'Unhandled exception' на каждый запрос —
спамил alerting и затруднял поиск настоящих ошибок).
- GET /api/v1/typo от integrator'ов давал 500 вместо 404, осложняло
debugging без traceId-correlation.
- Любой stale frontend bundle с переименованным endpoint мог триггерить
false-positive incident alerts.
Fix: explicit @ExceptionHandler для обоих exception типов → 404 not_found.
Логирование DEBUG (не WARN/ERROR) — это ожидаемый 404, не аномалия.
Test: SmokeE2ETest.unknownPath_returns404WithNotFoundCode покрывает оба пути
(/api/v1/* и /swagger-ui/*) → 404 + body.code='not_found'.
2026-05-13 00:00:36 +03:00
Zimin A.N.
e46598c47d
feat(updateBanner): «Что нового» button открывает modal с changelog
...
Per user feedback: «по кнопке что нового должно открываться модальное
окно с изменениями».
UpdateBanner кнопка «Что нового» (т9n key `updateBanner.docs`) ранее
открывала `/docs/` в новой вкладке — generic documentation page, не
contextual для «что именно в этом обновлении».
Теперь — открывает `WhatsNewModal` (тот же modal что показывает 🎁
button в TopBar) — public changelog с release notes сразу.
## Refactor
- **`WhatsNewModal.tsx` (NEW)** — extracted controlled-mode modal с
release notes. Props: `open`, `onClose`. Internal logic читает
changelog, tracks lastSeen в localStorage, на open mark'ает latest
как seen.
- **`WhatsNewButton.tsx`** — refactored: trigger button + use
`WhatsNewModal`. Поведение unchanged (🎁 icon с unread badge → click → modal).
- **`UpdateBanner.tsx`** — replaced `window.open(DOCS_URL)` на
`setWhatsNewOpen(true)` + render `<WhatsNewModal>`. DOCS_URL constant
removed (больше не используется).
## UX intent
Когда update detected:
1. User видит orange banner «Доступна новая версия v2.16.0»
2. Hover «Что нового» button → opens modal
3. User читает release notes (что добавлено, исправлено) ДО reload
4. Click «Обновить» → reload
Раньше «Что нового» вёл к generic docs page — user не знал ЧТО
изменилось, только что update есть. Modal даёт structured answer.
## Test plan
- [x] `pnpm tsc --noEmit` clean
- [x] `pnpm build` clean
- [x] `pnpm vitest run useChangelog.test` — 11/11 pass (parser logic
unchanged)
- [ ] Manual: симулировать update banner (mock useAppVersion
`updateAvailable=true`), click «Что нового» → modal opens
- [ ] Manual: 🎁 button в TopBar также opens same modal
- [ ] Manual: close modal → red dot disappears на 🎁 button
(localStorage updated)
2026-05-12 23:28:12 +03:00
semantic-release-bot
6c48cfac46
chore(release): v2.15.0 [skip ci]
...
## [2.15.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.14.0...v2.15.0 ) (2026-05-12)
### ✨ Features
* **topbar:** «Что нового» button + 2026-05-12 state.md update ([a34c6d4 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a34c6d4c8248040f90fc24597317d748195468b5 ))
### 🐛 Fixes
* **admin-ui:** changelog build context — copy script + CI before_script ([5103ed6 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5103ed6d9cd8e5ba742f66ea72fa8f35e1dcf60a ))
* **docs,security:** Swagger UI — staging для exploration, prod env-flagged ([e2080d8 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e2080d899153f78eb35cf7fab7ea59d52fdc151d ))
* **docs:** copy operator/reviewer/changelog dirs to docker image ([82e481a ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/82e481a418f278a566bf6cc3ab7345c99e363902 ))
### 📝 Docs
* **design:** AI schema assist + dictionary marketplace v1 proposals ([cef5f49 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/cef5f49bf70d5abf857e4d40bfb5550a751fe2ec ))
* **design:** ai-schema-assist v2 — /office-hours, Approach C hybrid ([a3eb5f0 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a3eb5f0c86196acf3fbbad0e5ac74eb058eaa7e3 ))
* **design:** marketplace v2 — bundle hygiene, hard cap 2-3d ([89c6e04 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/89c6e049657db808ff7c7fa70c58c3311360673a ))
* **design:** Redis FK projection v2 — eng review applied ([d9fc49f ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d9fc49fe72cfcf4cbb7b7568aba560a5a3e1dc84 ))
2026-05-12 18:54:51 +00:00
Александр Зимин
013749e0e8
Merge branch 'fix/changelog-build-context' into 'main'
...
fix(admin-ui): changelog build context — copy script + CI before_script
See merge request 2-6/2-6-4/terravault/ordinis!151
2026-05-12 18:48:04 +00:00
Александр Зимин
5103ed6d9c
fix(admin-ui): changelog build context — copy script + CI before_script
2026-05-12 18:48:04 +00:00
Александр Зимин
9cc079ba68
Merge branch 'fix/docs-swagger-staging-not-prod' into 'main'
...
fix(docs,security): Swagger UI — staging для exploration, prod env-flagged
See merge request 2-6/2-6-4/terravault/ordinis!150
2026-05-12 17:43:12 +00:00
Александр Зимин
e2080d8991
fix(docs,security): Swagger UI — staging для exploration, prod env-flagged
2026-05-12 17:43:12 +00:00
Александр Зимин
ba7b36326d
Merge branch 'fix/docs-dockerfile-copy-new-dirs' into 'main'
...
fix(docs): copy operator/reviewer/changelog dirs to docker image
See merge request 2-6/2-6-4/terravault/ordinis!149
2026-05-12 17:37:08 +00:00
Александр Зимин
82e481a418
fix(docs): copy operator/reviewer/changelog dirs to docker image
2026-05-12 17:37:08 +00:00
Александр Зимин
1a3d41fcf6
Merge branch 'feat/whats-new-button' into 'main'
...
feat(topbar): «Что нового» button + 2026-05-12 state.md update
See merge request 2-6/2-6-4/terravault/ordinis!148
2026-05-12 17:05:24 +00:00
Александр Зимин
a34c6d4c82
feat(topbar): «Что нового» button + 2026-05-12 state.md update
2026-05-12 17:05:24 +00:00
Александр Зимин
58dd871808
Merge branch 'docs/marketplace-v2-bundle-hygiene' into 'main'
...
docs(design): marketplace v2 — bundle hygiene, hard cap 2-3d
See merge request 2-6/2-6-4/terravault/ordinis!147
2026-05-12 17:03:54 +00:00
Александр Зимин
89c6e04965
docs(design): marketplace v2 — bundle hygiene, hard cap 2-3d
2026-05-12 17:03:54 +00:00
Александр Зимин
d1c6043117
Merge branch 'docs/ai-schema-assist-v2' into 'main'
...
docs(design): ai-schema-assist v2 — /office-hours, Approach C hybrid
See merge request 2-6/2-6-4/terravault/ordinis!146
2026-05-12 17:03:52 +00:00
Александр Зимин
a3eb5f0c86
docs(design): ai-schema-assist v2 — /office-hours, Approach C hybrid
2026-05-12 17:03:52 +00:00
Александр Зимин
d04e24c314
Merge branch 'docs/ai-marketplace-design' into 'main'
...
docs(design): AI schema assist + dictionary marketplace v1 proposals
See merge request 2-6/2-6-4/terravault/ordinis!145
2026-05-12 15:10:22 +00:00
Александр Зимин
cef5f49bf7
docs(design): AI schema assist + dictionary marketplace v1 proposals
2026-05-12 15:10:22 +00:00
Александр Зимин
4aa5fd97d1
Merge branch 'docs/redis-fk-projection-design-v2' into 'main'
...
docs(design): Redis FK projection v2 — eng review applied
See merge request 2-6/2-6-4/terravault/ordinis!144
2026-05-12 14:44:55 +00:00
Александр Зимин
d9fc49fe72
docs(design): Redis FK projection v2 — eng review applied
2026-05-12 14:44:55 +00:00
semantic-release-bot
08c9262727
chore(release): v2.14.0 [skip ci]
...
## [2.14.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.13.0...v2.14.0 ) (2026-05-12)
### ✨ Features
* **webhook:** time-series histogram stats endpoint + frontend chart ([5479142 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5479142093e428d081fbb548685f7559ddb1fb08 ))
2026-05-12 14:39:08 +00:00
Александр Зимин
49734211c1
Merge branch 'feat/webhook-stats-histogram' into 'main'
...
feat(webhook): time-series histogram stats endpoint + frontend chart
See merge request 2-6/2-6-4/terravault/ordinis!143
2026-05-12 14:30:22 +00:00
Александр Зимин
5479142093
feat(webhook): time-series histogram stats endpoint + frontend chart
2026-05-12 14:30:22 +00:00
semantic-release-bot
91f4310a77
chore(release): v2.13.0 [skip ci]
...
## [2.13.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.12.0...v2.13.0 ) (2026-05-12)
### ✨ Features
* **ui:** searchable MultiSelect (cmdk) + DateRangePicker (react-day-picker) ([21d9561 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/21d95613fc26e298684c1f225896f96fd3bea750 ))
2026-05-12 14:01:58 +00:00
Александр Зимин
09c248de4f
Merge branch 'feat/searchable-multiselect-and-date-range' into 'main'
...
feat(ui): searchable MultiSelect (cmdk) + DateRangePicker (react-day-picker)
See merge request 2-6/2-6-4/terravault/ordinis!142
2026-05-12 13:55:35 +00:00
Александр Зимин
21d95613fc
feat(ui): searchable MultiSelect (cmdk) + DateRangePicker (react-day-picker)
2026-05-12 13:55:35 +00:00
semantic-release-bot
680866bcee
chore(release): v2.12.0 [skip ci]
...
## [2.12.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.11.0...v2.12.0 ) (2026-05-12)
### ✨ Features
* **drawer:** section chip strip scroll-spy via IntersectionObserver ([da04b86 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/da04b862ab5642b33913ae83e6e6429b7ebcbc22 ))
2026-05-12 13:35:45 +00:00
Александр Зимин
79a56c4aa8
Merge branch 'feat/sections-chip-strip-scroll-spy' into 'main'
...
feat(drawer): section chip strip scroll-spy via IntersectionObserver
See merge request 2-6/2-6-4/terravault/ordinis!141
2026-05-12 13:29:53 +00:00
Александр Зимин
da04b862ab
feat(drawer): section chip strip scroll-spy via IntersectionObserver
2026-05-12 13:29:52 +00:00
semantic-release-bot
9073229c0e
chore(release): v2.11.0 [skip ci]
...
## [2.11.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.10.0...v2.11.0 ) (2026-05-12)
### ✨ Features
* **timetravel:** Records + Schema tabs wired with real data ([775b834 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/775b8345e346747029b2bd2f59488df595652a39 ))
2026-05-12 13:06:12 +00:00
Александр Зимин
748d0da4dd
Merge branch 'feat/timetravel-records-schema-tabs' into 'main'
...
feat(timetravel): Records + Schema tabs wired with real data
See merge request 2-6/2-6-4/terravault/ordinis!140
2026-05-12 13:00:03 +00:00
Александр Зимин
775b8345e3
feat(timetravel): Records + Schema tabs wired with real data
2026-05-12 13:00:03 +00:00
semantic-release-bot
8878b3f0b6
chore(release): v2.10.0 [skip ci]
...
## [2.10.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.9.0...v2.10.0 ) (2026-05-12)
### ✨ Features
* **timetravel:** «Что изменилось» tab — закрывает «backend pending» placeholder ([3dbad1e ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/3dbad1e16ce63cdd1a26e12bcedfcf67b54891cd ))
### 🐛 Fixes
* **ux:** friendly error UI вместо raw AxiosError ([3984d99 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/3984d99004ce4a1e7de09cfc0a1d3b6de45f5bad ))
2026-05-12 12:51:35 +00:00
Александр Зимин
c412424586
Merge branch 'feat/timetravel-changes-tab-wireup' into 'main'
...
feat(timetravel): «Что изменилось» tab — закрывает «backend pending» placeholder
See merge request 2-6/2-6-4/terravault/ordinis!139
2026-05-12 12:45:55 +00:00
Александр Зимин
3dbad1e16c
feat(timetravel): «Что изменилось» tab — закрывает «backend pending» placeholder
2026-05-12 12:45:55 +00:00
Александр Зимин
735cc955fc
Merge branch 'fix/friendly-error-ui-5xx' into 'main'
...
fix(ux): friendly error UI вместо raw AxiosError
See merge request 2-6/2-6-4/terravault/ordinis!138
2026-05-12 12:41:48 +00:00
Александр Зимин
3984d99004
fix(ux): friendly error UI вместо raw AxiosError
2026-05-12 12:41:48 +00:00
semantic-release-bot
db0986d235
chore(release): v2.9.0 [skip ci]
...
## [2.9.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.8.0...v2.9.0 ) (2026-05-12)
### ✨ Features
* **webhooks:** stats cards dashboard на subscription detail ([d864a85 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d864a8561a3f34440d2ef2e0413037bd40c1c73c ))
2026-05-12 12:31:16 +00:00
Александр Зимин
aa91057f8f
Merge branch 'feat/webhook-delivery-dashboard' into 'main'
...
feat(webhooks): stats cards dashboard на subscription detail
See merge request 2-6/2-6-4/terravault/ordinis!137
2026-05-12 12:25:15 +00:00
Александр Зимин
d864a8561a
feat(webhooks): stats cards dashboard на subscription detail
2026-05-12 12:25:15 +00:00
Александр Зимин
59a5c65606
Merge branch 'chore/semantic-release-changelog-cleanup' into 'main'
...
chore(release): remove bare 'BREAKING' noteKeyword + lesson doc
See merge request 2-6/2-6-4/terravault/ordinis!136
2026-05-12 12:18:46 +00:00
Александр Зимин
56e3e3d1be
chore(release): remove bare 'BREAKING' noteKeyword + lesson doc
2026-05-12 12:18:46 +00:00
Александр Зимин
1b68721afa
Merge branch 'chore/font-audit-text-tokens' into 'main'
...
chore(theme): font audit — arbitrary px → semantic tokens (1/6 Stage 3.x)
See merge request 2-6/2-6-4/terravault/ordinis!135
2026-05-12 12:09:53 +00:00
Александр Зимин
8360c39a45
chore(theme): font audit — arbitrary px → semantic tokens (1/6 Stage 3.x)
2026-05-12 12:09:52 +00:00
semantic-release-bot
9fc2ed5b35
chore(release): v2.8.0 [skip ci]
...
## [2.8.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.7.0...v2.8.0 ) (2026-05-12)
### ✨ Features
* **reviews:** tabs UX — Записи / Схемы (D) ([a49e01b ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a49e01b6c965279cc6a6e534245f73285f7271ae ))
* **schema-workflow:** PATCH /drafts/{id} — edit без recreate (A) ([b3a9104 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/b3a9104d5469bb2e9c57360ff9fbbee64f29a779 ))
* **webhooks:** event-type multi-select + schema draft events (E) ([27ffd36 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/27ffd36dcaf204424fb24fdddf2b6cd5c1d215ab ))
* **workflow:** Monaco editor для proposed schema (C) ([ef5bd69 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ef5bd69c40dc272f8d0910b5a277034e68e013ab ))
2026-05-12 11:53:59 +00:00
Александр Зимин
9129bf08e7
Merge branch 'feat/webhook-schema-draft-events' into 'main'
...
feat(webhooks): event-type multi-select + schema draft events (E)
See merge request 2-6/2-6-4/terravault/ordinis!134
2026-05-12 11:48:34 +00:00
Александр Зимин
27ffd36dca
feat(webhooks): event-type multi-select + schema draft events (E)
2026-05-12 11:48:34 +00:00
Александр Зимин
53ebfc3f9d
Merge branch 'feat/reviews-tabs-records-schemas' into 'main'
...
feat(reviews): tabs UX — Записи / Схемы (D)
See merge request 2-6/2-6-4/terravault/ordinis!133
2026-05-12 11:44:46 +00:00