Zimin A.N.
c86ce8c8d5
fix(nginx): route /api/v1/ai/* к writer (был fall-through к read-api → 500)
...
После !234 ship'нул AiSchemaController на writer, frontend hit /api/v1/ai/info
получает 500 — generic /api/v1/ location route к read-api который не имеет
этих handlers. Тот же pattern fix что для /drafts/, /me/, /admin/ — explicit
location к writer перед generic /api/v1/ fallback.
Без этого AI feature unusable в staging (даже если backend healthy).
2026-05-16 19:51:04 +03:00
semantic-release-bot
4b1293b845
chore(release): v2.34.0
...
## [2.34.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.33.0...v2.34.0 ) (2026-05-16)
### ✨ Features
* **ai:** Phase 1 step 3-6 — LLM adapter + per-field AI suggest endpoint + UI ([e4cd7b9 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e4cd7b9709da01c55cfba7f82107eec55f346b1d ))
2026-05-16 16:32:52 +00:00
Zimin A.N.
e4cd7b9709
feat(ai): Phase 1 step 3-6 — LLM adapter + per-field AI suggest endpoint + UI
...
Approach C upgrade на templates foundation (!233 ). Admin может попросить AI
предложить новое поле — system prompt force'ит structural JSON Schema
fragment, admin review через accept/edit/reject. Bitemporal draft workflow
unchanged downstream.
## Backend
- `LlmAdapter` — OpenAI-compatible /v1/chat/completions client (Ollama,
vLLM, OpenAI). Bean conditional на ordinis.ai.enabled=true.
- `AiSchemaService` — system prompt + 3 few-shot examples, JSON output
parsing (с markdown fence stripping), validation (fieldName snake_case).
In-memory circuit breaker: 10 fails в 60s → open 5 min.
- `AiSchemaController`:
- GET /api/v1/ai/info → 200 (enabled) / 404 (disabled). Frontend probe.
- POST /api/v1/ai/suggest-field → suggestion. Per-IP rate limit 30/min.
- All bean-conditional: ordinis.ai.enabled=false → controllers нет →
endpoints 404 → frontend hides AI buttons automatically.
## Frontend
- `useAiFeatureAvailable` query — probes /ai/info, cache 5 min
- `useAiSuggestField` mutation — 30s timeout (LLM может быть slow)
- `AiFieldSuggestPanel` component — inline expandable: prompt → preview →
accept/retry/reject. Error handling per HTTP status (503/429/422/502/404).
- DictionaryEditorDialog: AI toggle visible на schema tab когда
aiAvailable=true. Accept wraps suggestion в mini-schema → parseSchemaJson
(reuse existing kind-inference) → push в properties (overwrite если
duplicate fieldName).
- i18n RU + EN
## Config
- application.yml: ordinis.ai.{enabled,endpoint,model,bearer-token,
timeout-seconds}
- Helm writer.yaml: ORDINIS_AI_* env vars, optional secretRef для bearer
- values.yaml: ai.{enabled,endpoint,model,timeoutSeconds,bearerTokenSecretRef}
defaults disabled
Pair с infra MR — values-staging enables AI с vortex.nstart.cloud Ollama
serving qwen2.5:7b.
2026-05-16 13:55:16 +03:00
semantic-release-bot
db5d5c19e2
chore(release): v2.33.0
...
## [2.33.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.32.0...v2.33.0 ) (2026-05-16)
### ✨ Features
* **schema:** Phase 1 schema templates + Nexus DevOps runbook ([c8dd5aa ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c8dd5aad4e66e0181a7ff4192fc338be94467231 ))
2026-05-16 10:32:53 +00:00
Zimin A.N.
c8dd5aad4e
feat(schema): Phase 1 schema templates + Nexus DevOps runbook
...
## AI Schema Assist Phase 1 (steps 1-2)
Approach A core (templates only, no LLM) — admin начинает создание нового
справочника с curated skeleton вместо пустого Monaco. Approach C (per-field
LLM suggest) — Phase 2 на этом фундаменте.
### Backend
- `templates/*.template.json` в ordinis-cuod-bundle resources — 6 шаблонов
(blank/spacecraft/ground-station/antenna/frequency-band/operator)
- `SchemaTemplateRegistry` (rest-api) — classpath scan at startup, strip
x-template-* metadata, expose canonical JSON Schema
- `SchemaTemplatesController` — GET /api/v1/dictionaries/templates (list)
+ /{id} (detail с schemaJson)
- Cross-bundle support: scanner matches classpath*:templates/*.template.json
— другие bundles могут shippит свои templates через те же conventions
### Frontend
- types: SchemaTemplateSummary + SchemaTemplateDetail
- queries: schemaTemplatesQuery + lazy detail query
- TemplatePicker.tsx — grid of cards (icon + name + description + tags),
click → fetch detail → fire onPick(detail)
- Integrated в DictionaryEditorDialog (create mode, properties.length===0
visible — после первой property picker исчезает чтобы не перезатереть)
## Nexus DevOps handoff
`docs-internal/ops/nexus-alpine-mirror.md` — runbook про APKINDEX vs file
inventory drift на v3.23 mirror. Includes:
- Verification commands
- 3 fix options (invalidate cache / scheduled refresh / self-host)
- Prometheus alert proposal
- Current workaround (node:22-alpine3.20 pin) reference
Active issue paired с CI saga !227/!229/!230 — нужен DevOps action.
2026-05-16 13:20:43 +03:00
semantic-release-bot
5821baa0f1
chore(release): v2.32.0
...
## [2.32.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.5...v2.32.0 ) (2026-05-16)
### ✨ Features
* **records:** «Запланировано» badge per row для scheduled future versions ([e5a07fc ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e5a07fc3919104cc73ab4519105360710d1f9992 ))
2026-05-16 09:59:28 +00:00
Zimin A.N.
e5a07fc391
feat(records): «Запланировано» badge per row для scheduled future versions
...
Last item из QA report backlog'а. Banner + empty-state hint показывают
aggregate count, но не помогают find конкретные записи которые скоро
изменятся. Badge per row даёт O(1) visual scan.
Backend (read-api):
- ScheduledRecordsSummary.scheduledBusinessKeys: List<String> (capped 500)
- Repo method findScheduledBusinessKeys (DISTINCT subquery)
- Single fetch вместо N+1 per-row queries
Frontend:
- scheduledByKey Set<string> построен из summary
- Badge variant=info «Запланировано» рядом с businessKey badge'ом
- Title attribute с full RU/EN tooltip
- Не блокирует layout — gap-1.5 с pendingReview badge'ем (могут быть оба)
i18n keys для ru/en — short label «Запланировано» / «Scheduled».
2026-05-16 12:49:42 +03:00
semantic-release-bot
dbbefe0510
chore(release): v2.31.5
...
## [2.31.5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.4...v2.31.5 ) (2026-05-15)
### 🐛 Fixes
* **ui:** QA report P3/P4 batch — 7 cosmetic/UX bugs ([cb8a229 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/cb8a229adfaedcbf48466c0793a6c6e5c244d9df ))
2026-05-15 21:15:32 +00:00
Zimin A.N.
cb8a229adf
fix(ui): QA report P3/P4 batch — 7 cosmetic/UX bugs
...
QA report cleanup (после P1/P2 ship'нутых в v2.31.4):
- **BUG-009**: Excel/SQL export форматы получили явный «скоро» badge поверх
opacity-only disabled state. Title attribute оставлен.
- **BUG-010**: «Доступ актора» (audit scope column) переименован в «Scope» —
компактнее, не переносится на 2 строки.
- **BUG-011**: Все audit table headers получили title attribute → hover
tooltip когда text truncate'ится («ИЗМЕНЕН…» → full «Изменения»).
- **UX-001**: Scope chips в /dictionaries теперь показывают ✓ glyph когда
selected → визуально clear что multi-select. Aria-label расширен:
«Фильтр по области (можно выбрать несколько)».
- **UX-002**: Breadcrumb segments получили title attribute → hover показывает
full label когда truncate'ится в narrow viewport.
- **UX-003**: При смене вкладки в редакторе справочника (records → relations
и т.п.) URL params q/scopes сбрасываются — раньше search фильтр оставался
применённым после возврата на records.
- **UX-004**: TimeTravel slider boundary метки получили 2-digit year:
«05.05.26» вместо «05.05» — disambiguates конец декабря / начало января.
Title attribute exposes full локальную дату.
- **UX-009**: «Удалить» button в RecordDrawer переименован в «Закрыть запись»
— same action как row context menu «Закрыть» (bitemporal close, не truly
delete). Consistent labeling across UI.
2026-05-16 00:09:41 +03:00
semantic-release-bot
55ac362a11
chore(release): v2.31.4
...
## [2.31.4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.3...v2.31.4 ) (2026-05-15)
### 🐛 Fixes
* **ci:** apk update before add — picks current package versions from mirror ([fc31963 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fc3196349c80357d16a5761e64087a4ea92c9372 ))
* **ci:** apk использует internal Nexus mirror вместо public Alpine CDN ([1e0c49f ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/1e0c49fd6936c175811c5f11c4e0130122b889de ))
* **ci:** pin release job к node:22-alpine3.20 — bypass v3.23 mirror APKINDEX bug ([ca48ff7 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ca48ff7f421eadd0cd3c740307f446a51a73ecf7 ))
* **search:** scope filter uppercase — fixes Smart Search 0 results bug ([35147df ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/35147df68336b872ea65151c913e70baba646a9c ))
2026-05-15 20:21:08 +00:00
semantic-release-bot
38761947a2
chore(release): v2.31.3
...
## [2.31.3](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.2...v2.31.3 ) (2026-05-15)
### 🐛 Fixes
* **qa-report:** version tag, /drafts redirect, audit filter complete, i18n cleanup ([ff7e72e ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ff7e72e0fd3df32f96a39965a4832efa6602b080 ))
2026-05-15 19:13:22 +00:00
Zimin A.N.
ff7e72e0fd
fix(qa-report): version tag, /drafts redirect, audit filter complete, i18n cleanup
...
QA report v2.31.x batch:
- **VersionController.tag**: было 'none' (maven build на main без git tag) → UI
показывал «dev · 6077d4df». Helm передаёт image.tag через env
ORDINIS_BUILD_IMAGE_TAG, controller парсит «v2-31-2-e3c82775» → «v2.31.2».
Helm chart change в ordinis-infra (separate MR).
- **/drafts redirect** (BUG-003): пустой 404 «Not Found» plain text → теперь
static redirect на /my-drafts.
- **Audit action filter** (BUG-004): дропдаун содержал только 3 значения
(CREATE/UPDATE/CLOSE), но в таблице 11 типов (DRAFT_*, DEFINITION_*).
Frontend AuditAction enum + ACTIONS list синхронизированы с backend
AuditLogger/SchemaDraftService/DraftService.
- **i18n cleanup** (BUG-006/007/UX-005):
- myDrafts.description: «Все ваши submissions с pending/approved...» →
«Все ваши черновики с историей: ожидает рассмотрения, одобрен...»
- reviews.description: «Pending drafts от makers, ждут approve/reject» →
«Черновики от авторов, ждут одобрения или отклонения. Общая очередь...»
- reviews.queueTotal: «N pending drafts» → «N черновиков в очереди»
- myDrafts.col.reviewer: «Reviewer» → «Рецензент» (RU only)
- notifications chip labels: 'submit/approved/rejected' → 'отправлен/
одобрен/отклонён'
- audit.action.* expanded к 13 entries для каждого backend action
type, с понятными лейблами «Черновик одобрен» вместо «DRAFT_APPROVE»
- **WhatsNewModal markdown** (UX-006): тексты вроде «**График доставки
webhook'ов**» рендерились с буквальными звёздочками. Mini inline renderer
для **bold**, *italic*, `code` — без full markdown library.
2026-05-15 22:02:29 +03:00
semantic-release-bot
e3c827752e
chore(release): v2.31.2
...
## [2.31.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.1...v2.31.2 ) (2026-05-15)
### 🐛 Fixes
* **record-form:** prefill validFrom=now в create mode тоже ([a740ab3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a740ab32bffe17c13e394534ac1860bf5b68be1d ))
* **records:** scheduled marks on time-travel + non-empty banner + editor validFrom prefill ([9199f38 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9199f380e1c52ab49384bb5813b38108e34a4ac8 ))
* **timetravel:** drop arbitrary +30d max — use real marks only ([d0ef822 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d0ef822b9e2efb35dc8f63496a8e3da9521d0a4b ))
2026-05-15 18:41:53 +00:00
Zimin A.N.
a740ab32bf
fix(record-form): prefill validFrom=now в create mode тоже
...
Form review после !224 показал что create mode имеет тот же баг что и edit:
SchemaDrivenForm без переданного defaultValues fallback'ит на '' для
validFrom, и пользователь видит пустое поле «Действует с».
Добавлен defaultValues={{ validFrom: nowIsoLocal() }} для create — consistent
UX с edit mode (!224 fix). Other formы (drafts, reviews, schema workflow) —
либо read-only либо без validFrom, clean.
2026-05-15 21:32:41 +03:00
Александр Зимин
a996b1d4e8
Merge branch 'fix/scheduled-marks-banner-prefill' into 'main'
...
fix(records): scheduled marks + non-empty banner + editor validFrom prefill
See merge request 2-6/2-6-4/terravault/ordinis!224
2026-05-15 18:30:30 +00:00
Zimin A.N.
d0ef822b9e
fix(timetravel): drop arbitrary +30d max — use real marks only
...
User feedback: «крайняя дата должна быть исходя из реальной в этом
словаре». Раньше slider всегда extended до now + 30d даже без причины —
если нет scheduled записей на 18.05, slider всё равно тянулся туда,
пользователь блуждал по пустоте.
Теперь max = max(marks) — last real change point (record validFrom включая
upcoming scheduled, которые backend возвращает в /scheduled-summary).
Если все marks в прошлом — max=now (always reachable). Если есть future
scheduled на 18.05 — slider тянется ровно туда, не дальше.
Touches: TimeTravelPicker.tsx (inline editor) + TimeTravelModal.tsx (modal).
2026-05-15 21:30:08 +03:00
Zimin A.N.
9199f380e1
fix(records): scheduled marks on time-travel + non-empty banner + editor validFrom prefill
...
Три связанных UX бага после v2.31.0 release:
1. **TimeTravel marks**: после !220 slider extended до now+30d, но отметок в
future window не было → blind drag. Backend теперь возвращает
upcomingValidFroms (top 50) в /scheduled-summary; frontend merges как marks.
2. **Non-empty banner**: empty-state hint работает только когда список пуст.
Если currently active записи есть AND ещё запланированы — пользователь
не видит. Добавлен info banner над таблицей с тем же текстом + CTA.
3. **Editor "Действует с"**: edit mode оставлял поле пустым (bitemporal
policy «новая версия с now»). User feedback: «показывает ничего, а даты
заданы» — выглядит как баг. Prefill nowIsoLocal() — теперь юзер видит
конкретную дату как точку отсчёта.
2026-05-15 21:28:29 +03:00
semantic-release-bot
a800d56afa
chore(release): v2.31.1
...
## [2.31.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.31.0...v2.31.1 ) (2026-05-15)
### 🐛 Fixes
* **timetravel:** extend modal slider max до now + 30 days (paired с !220 ) ([1713951 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/1713951f76f02df46a3b470e525d2ec9d79f9545 ))
2026-05-15 18:13:46 +00:00
Александр Зимин
24ac9fd33a
Merge branch 'fix/timetravel-modal-future-window' into 'main'
...
fix(timetravel): extend modal slider max до now + 30 days (paired с !220 )
See merge request 2-6/2-6-4/terravault/ordinis!223
2026-05-15 18:08:45 +00:00
Zimin A.N.
1713951f76
fix(timetravel): extend modal slider max до now + 30 days (paired с !220 )
...
MR !220 расширил range у TimeTravelPicker.tsx, но юзер видит другой компонент —
TimeTravelModal.tsx (fullscreen modal с компарисоном now vs picked moment).
У него своя range logic с max = now + pad (1 day), и фикс !220 туда не дотянулся.
User feedback: создал запись с validFrom=18.05, открыл time-travel modal — слайдер
14.05 → 16.05, не дотянуть до 18-го.
Apply same 30-day future window logic к TimeTravelModal так чтобы оба компонента
вели себя одинаково.
2026-05-15 21:08:02 +03:00
semantic-release-bot
d728d4f2fd
chore(release): v2.31.0
...
## [2.31.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.30.1...v2.31.0 ) (2026-05-15)
### ✨ Features
* **records:** scheduled records empty-state hint ([2341846 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/234184645f235680e43b49d8a6cb5e41946db088 ))
2026-05-15 17:54:56 +00:00
Александр Зимин
fd98ce9d8e
Merge branch 'feat/scheduled-records-hint' into 'main'
...
feat(records): scheduled records empty-state hint
See merge request 2-6/2-6-4/terravault/ordinis!222
2026-05-15 17:20:53 +00:00
Zimin A.N.
234184645f
feat(records): scheduled records empty-state hint
...
Fixes UX bug: пользователь создаёт запись с validFrom на будущую дату
(e.g. 18.05), открывает catalog 15.05 — пустая таблица, никаких хинтов
о том что запись существует.
Backend (read-api):
- New endpoint GET /api/v1/{dict}/records/scheduled-summary
- Returns {count, nearestValidFrom} для записей с validFrom > now AND
validTo > now в текущем scope view
- Single-aggregate JPA query (COUNT + MIN), respect scope filter same way
as listActive — INTERNAL scheduled не учитывается для PUBLIC consumer'а
Frontend:
- New useScheduledSummary hook + ScheduledRecordsSummary type
- Empty-state в dictionaries.$name now shows: "Запланировано N, ближайшая
на DD.MM [Перейти к этой дате]" с CTA который set'ает time-travel на
nearestValidFrom
- i18n keys для ru/en plural forms
Связан с MR !219 (TimeTravelPicker 30-day future window) — теперь slider
позволяет дойти до даты записи, и empty-state hint позволяет узнать что
запись существует.
2026-05-15 20:17:07 +03:00
semantic-release-bot
8cc78e95b7
chore(release): v2.30.1
...
## [2.30.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.30.0...v2.30.1 ) (2026-05-15)
### 🐛 Fixes
* **sidebar:** hide outbox/audit/webhooks для PUBLIC users ([df704c2 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/df704c28a66b63d97de1f6003263c21a0e97d850 ))
* **timetravel:** extend slider max до now + 30 days (или future marks) ([4dd67af ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/4dd67af50392cea3ce3b97d5acd2fa0e4f32264a ))
2026-05-15 17:14:26 +00:00
Александр Зимин
1d359beb8e
Merge branch 'fix/sidebar-admin-nav-internal-only' into 'main'
...
fix(sidebar): hide outbox/audit/webhooks для PUBLIC users
See merge request 2-6/2-6-4/terravault/ordinis!221
2026-05-15 17:05:51 +00:00
Александр Зимин
df704c28a6
fix(sidebar): hide outbox/audit/webhooks для PUBLIC users
2026-05-15 17:05:51 +00:00
Александр Зимин
4c3327b05c
Merge branch 'fix/timetravel-future-window' into 'main'
...
fix(timetravel): extend slider max до now + 30 days (или future marks)
See merge request 2-6/2-6-4/terravault/ordinis!220
2026-05-15 17:03:00 +00:00
Александр Зимин
4dd67af503
fix(timetravel): extend slider max до now + 30 days (или future marks)
2026-05-15 17:03:00 +00:00
semantic-release-bot
836bc6a4e0
chore(release): v2.30.0
...
## [2.30.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.29.1...v2.30.0 ) (2026-05-15)
### ✨ Features
* **notifications:** Phase B-2 — per-event-type granular preferences ([f04b1be ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/f04b1be1f6a75ad13d2b7a43e71273a3599f0691 ))
2026-05-15 17:00:49 +00:00
Александр Зимин
4f1a02de2a
Merge branch 'feat/phase-b2-per-event-prefs' into 'main'
...
feat(notifications): Phase B-2 — per-event-type granular preferences
See merge request 2-6/2-6-4/terravault/ordinis!219
2026-05-15 16:53:32 +00:00
Александр Зимин
f04b1be1f6
feat(notifications): Phase B-2 — per-event-type granular preferences
2026-05-15 16:53:32 +00:00
semantic-release-bot
0790abf1d0
chore(release): v2.29.1
...
## [2.29.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.29.0...v2.29.1 ) (2026-05-15)
### 🐛 Fixes
* **reviews:** reset drawer state когда reviewer переключает draft ([641a9a6 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/641a9a64f8b337587b609d9a55d85c834737f298 ))
2026-05-15 16:45:31 +00:00
Александр Зимин
4bc947b88b
Merge branch 'fix/review-drawer-state-leak-between-drafts' into 'main'
...
fix(reviews): reset drawer state когда reviewer переключает draft
See merge request 2-6/2-6-4/terravault/ordinis!218
2026-05-15 16:40:34 +00:00
Александр Зимин
641a9a64f8
fix(reviews): reset drawer state когда reviewer переключает draft
2026-05-15 16:40:33 +00:00
semantic-release-bot
b5c9d07403
chore(release): v2.29.0
...
## [2.29.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.28.2...v2.29.0 ) (2026-05-15)
### ✨ Features
* **webhook:** text-wrap payload для chat-bot receivers (stellix pattern) ([2c24d24 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/2c24d249beaa11f5cab65bfb5aa429bc4f292571 ))
### 🐛 Fixes
* **topbar:** notification bell badge — fix glyph clip ([597e05d ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/597e05db4cca46cfda36fcf6982bb72e43777a89 ))
2026-05-15 16:35:13 +00:00
Александр Зимин
597e05db4c
fix(topbar): notification bell badge — fix glyph clip
2026-05-15 16:28:49 +00:00
semantic-release-bot
80ae31dc9b
chore(release): v2.28.2
...
## [2.28.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.28.1...v2.28.2 ) (2026-05-15)
### 🐛 Fixes
* **notifications:** tryClaim drop @Modifying — unblocks ALL dispatch ([c41c561 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c41c561ee616a47dbfce524833fb490f0bd3c7ed ))
2026-05-15 16:09:42 +00:00
semantic-release-bot
1eed8be700
chore(release): v2.28.1
...
## [2.28.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.28.0...v2.28.1 ) (2026-05-15)
### 🐛 Fixes
* **actuator:** disable Redis health indicator in writer ([a1989da ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a1989da1be71a76a243799480bbc04f961abc4aa ))
* **notifications:** dispatcher race с OutboxPoller — emails never sent ([9f885e5 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9f885e50c24dd0e418b6d0f69e9a69b071545cfa ))
* **rest-api:** preserve status code from ResponseStatusException ([fd35e71 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fd35e71fe89ddcb3889f28f8373f269fbbf4d432 ))
* **webhook:** User-Agent 'ordinis-alerts' (matches Webhook Bot subscription) ([0269542 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/0269542ebeb561c53c6b753026aa3e5766691ec3 ))
2026-05-15 15:42:31 +00:00
semantic-release-bot
51b45836de
chore(release): v2.28.0
...
## [2.28.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.13...v2.28.0 ) (2026-05-15)
### ✨ Features
* **admin-ui:** Phase B frontend — notifications preferences route + UI ([e2fc3bc ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e2fc3bcbe0b398c15fca20b5603db1152fb2089c ))
* **notifications:** Phase B backend — per-user channel preferences ([9452ada ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9452adaf551e019acfc3b282c3cd0cdf19c7f119 ))
2026-05-15 15:07:09 +00:00
Александр Зимин
e2fc3bcbe0
feat(admin-ui): Phase B frontend — notifications preferences route + UI
2026-05-15 14:56:48 +00:00
semantic-release-bot
300fd12d6c
chore(release): v2.27.13
...
## [2.27.13](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.12...v2.27.13 ) (2026-05-15)
### 🐛 Fixes
* **reviews:** anonymous Mine tab — dedicated empty state с sign-in CTA ([e80d31a ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e80d31a3400b4c5a79cfe0105c67fa60a950bd19 ))
2026-05-15 13:33:58 +00:00
Александр Зимин
e80d31a340
fix(reviews): anonymous Mine tab — dedicated empty state с sign-in CTA
2026-05-15 13:29:11 +00:00
semantic-release-bot
d31d16a9a6
chore(release): v2.27.12
...
## [2.27.12](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.11...v2.27.12 ) (2026-05-15)
### 🐛 Fixes
* **ci:** propose-prod-image-bump needs retag-* (регрессия из !205 ) ([a8c2432 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a8c24324a15907b4617d09323473deddf89dbf4f ))
2026-05-15 13:03:39 +00:00
semantic-release-bot
f25c8299ee
chore(release): v2.27.11
...
## [2.27.11](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.10...v2.27.11 ) (2026-05-15)
### 🐛 Fixes
* **notifications:** EmailChannel @Bean registration вместо @Component (race fix) ([fb7fd51 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fb7fd51c49ac529dae89ae3023009179f20fe44d ))
2026-05-15 12:47:08 +00:00
semantic-release-bot
421f6bae3b
chore(release): v2.27.10
...
## [2.27.10](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.9...v2.27.10 ) (2026-05-15)
### 🐛 Fixes
* **actuator:** expose loggers endpoint + force release trigger ([fdf3213 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fdf321316f43707f63ac42c4e9116c9cdf35d4b4 ))
2026-05-15 09:42:38 +00:00
semantic-release-bot
14a5feaebb
chore(release): v2.27.9
...
## [2.27.9](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.8...v2.27.9 ) (2026-05-15)
### 🐛 Fixes
* **admin-ui:** em-dash fallback в UserCell + sidebar.collapse i18n ([5c4b9c9 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5c4b9c9f2104635560810fff33144c05035d127b ))
2026-05-15 09:07:31 +00:00
Александр Зимин
5c4b9c9f21
fix(admin-ui): em-dash fallback в UserCell + sidebar.collapse i18n
2026-05-15 09:02:39 +00:00
semantic-release-bot
9ab0e7526a
chore(release): v2.27.8
...
## [2.27.8](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.7...v2.27.8 ) (2026-05-15)
### 🐛 Fixes
* **notifications:** WARN when dispatcher init с zero channels ([844cab7 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/844cab78ae9e20d167fd31309afa7ba76518b6b7 ))
2026-05-15 07:07:37 +00:00
semantic-release-bot
ca341b1d79
chore(release): v2.27.7
...
## [2.27.7](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.6...v2.27.7 ) (2026-05-14)
### 🐛 Fixes
* **a11y:** add hidden SheetTitle к MobileSidebar (Radix warning) ([dfae205 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/dfae205c95edb8d7ff430a8719d18a6aff7a552e ))
* **schema-drafts:** /drafts/active returns 200+null instead of 404 (no console spam) ([e43e3f6 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e43e3f617f3efb7d8057f3ac4f762635f14b2086 ))
* **sidebar:** gate outbox+webhook badge polls on INTERNAL scope (no more 403 spam) ([ac74a8f ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ac74a8fbd9c86065f4755e0ff4ff62c15c59f4c8 ))
2026-05-14 22:53:06 +00:00
Александр Зимин
4078c60bee
Merge branch 'fix/mobile-sidebar-a11y-title' into 'main'
...
fix(a11y): add hidden SheetTitle к MobileSidebar (Radix warning)
See merge request 2-6/2-6-4/terravault/ordinis!200
2026-05-14 22:42:00 +00:00