Commit Graph

326 Commits

Author SHA1 Message Date
Александр Зимин 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
Александр Зимин dfae205c95 fix(a11y): add hidden SheetTitle к MobileSidebar (Radix warning) 2026-05-14 22:42:00 +00:00
Александр Зимин ac74a8fbd9 fix(sidebar): gate outbox+webhook badge polls on INTERNAL scope (no more 403 spam) 2026-05-14 22:41:28 +00:00
semantic-release-bot 55a1171ac4 chore(release): v2.27.6
## [2.27.6](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.5...v2.27.6) (2026-05-14)

### 🐛 Fixes

* **nginx:** route /api/v1/me/* to writer (closes /me/notifications 500) ([d14d6cc](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d14d6cc8be7393d18358ed093dbf6fd88bf66a80))
2026-05-14 22:24:08 +00:00
Александр Зимин e0e1a2bd03 Merge branch 'fix/nginx-route-me-notifications-to-writer' into 'main'
fix(nginx): route /api/v1/me/* to writer (closes /me/notifications 500)

See merge request 2-6/2-6-4/terravault/ordinis!197
2026-05-14 22:19:34 +00:00
Александр Зимин d14d6cc8be fix(nginx): route /api/v1/me/* to writer (closes /me/notifications 500) 2026-05-14 22:19:34 +00:00
semantic-release-bot 7f032fad8f chore(release): v2.27.5
## [2.27.5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.4...v2.27.5) (2026-05-14)

### 🐛 Fixes

* **notifications:** panic-level defensive GET /me/notifications ([f028ec5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/f028ec5796d06ba89207bd15806dd4472f1d921b))
2026-05-14 21:57:43 +00:00
semantic-release-bot 1d8aab1560 chore(release): v2.27.4
## [2.27.4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.3...v2.27.4) (2026-05-14)

### 🐛 Fixes

* **notifications:** defensive /me/notifications — wrap DB ops in try/catch ([0cf76d2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/0cf76d23c167554deeb68750f92bd3be01b38970))
2026-05-14 21:07:27 +00:00
semantic-release-bot c6c16d4b65 chore(release): v2.27.3
## [2.27.3](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.2...v2.27.3) (2026-05-14)

### 🐛 Fixes

* **ui:** replace raw AxiosError dumps with QueryErrorState across routes ([9e6ddd1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9e6ddd1bcee459a5eedd688b6ba2f032966c5a57))
2026-05-14 20:47:24 +00:00
Александр Зимин 9e6ddd1bce fix(ui): replace raw AxiosError dumps with QueryErrorState across routes 2026-05-14 20:42:45 +00:00
semantic-release-bot 1a5049aac4 chore(release): v2.27.2
## [2.27.2](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.1...v2.27.2) (2026-05-14)

### ♻️ Refactoring

* **a11y:** 44×44 touch targets + normalize accent-bg alpha ([35c69fd](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/35c69fd010039097c474aefd4c8ce9204a860404))
2026-05-14 17:37:00 +00:00
Александр Зимин 35c69fd010 refactor(a11y): 44×44 touch targets + normalize accent-bg alpha 2026-05-14 17:32:10 +00:00
semantic-release-bot c866a68f06 chore(release): v2.27.1
## [2.27.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.27.0...v2.27.1) (2026-05-14)

### 🐛 Fixes

* **e2e:** disable notifications dispatcher in test profile ([5e10bbb](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5e10bbb6bb08ab6a6015efe8c66acbbdcc5cdaa4))

### 📝 Docs

* **design:** DESIGN.md v1 — resolve Section 12 open items ([7bd4b0a](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7bd4b0ad7e002c63637288abf8830f4a61acd2e2))
2026-05-14 15:28:10 +00:00
semantic-release-bot 2b7a758e68 chore(release): v2.27.0
## [2.27.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.26.1...v2.27.0) (2026-05-14)

###  Features

* **notifications:** TODO 7 — draft decision toast + email + bell badge ([9050e24](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9050e2427e0fe85f84ca38f1bbe67f1cd9344acf))

### 📝 Docs

* **todos:** mark all session TODOs shipped + summary table ([14f58b4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/14f58b49276d7c97a545bca16f140fcf39d61990))
2026-05-14 14:50:58 +00:00
Александр Зимин 9050e2427e feat(notifications): TODO 7 — draft decision toast + email + bell badge 2026-05-14 14:40:35 +00:00
semantic-release-bot 50d263745a chore(release): v2.26.1
## [2.26.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.26.0...v2.26.1) (2026-05-14)

### ♻️ Refactoring

* **reviews:** interaction state polish — 5 UX fixes ([fb64ca4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fb64ca4350d2d7581a13e8453158ef80a4592d72))
2026-05-14 14:22:44 +00:00
Александр Зимин fb64ca4350 refactor(reviews): interaction state polish — 5 UX fixes 2026-05-14 14:13:57 +00:00
semantic-release-bot 513b57b6b5 chore(release): v2.26.0
## [2.26.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.25.1...v2.26.0) (2026-05-14)

###  Features

* **reviews:** "Мои" tab — maker self-tracking with status filter ([be58b61](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/be58b6191383e0cecd9c2a06ef99b1835ecd3dce))
2026-05-14 14:11:18 +00:00
Александр Зимин be58b61913 feat(reviews): "Мои" tab — maker self-tracking with status filter 2026-05-14 14:06:30 +00:00
semantic-release-bot a6a07428ed chore(release): v2.25.1
## [2.25.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.25.0...v2.25.1) (2026-05-14)

### ♻️ Refactoring

* **approval-ux:** eng-review fixes — extract helpers, add tests, register i18n ([4c29f4e](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/4c29f4e7cbab6be552603f7791f1de35a882cb71))
2026-05-14 13:57:00 +00:00
Александр Зимин 4c29f4e7cb refactor(approval-ux): eng-review fixes — extract helpers, add tests, register i18n 2026-05-14 13:52:12 +00:00
semantic-release-bot 31ad140a02 chore(release): v2.25.0
## [2.25.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.24.0...v2.25.0) (2026-05-14)

###  Features

* **approval-ux:** inline draft CTA + reviewer diff summary + tightened drawer ([fe7f9cd](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fe7f9cd01f8f2150ecffdc300e260fedb7f8a1cf))
2026-05-14 13:04:42 +00:00
Andrei Zimin fe7f9cd01f feat(approval-ux): inline draft CTA + reviewer diff summary + tightened drawer
Acts on the two "build now" items from the design review of the approval
workflow UX (other five went to TODOS.md). Plus the TODOS.md file itself,
authored during the same review.

1. **Inline "Создать черновик с моими изменениями" CTA**
   (DictionaryEditorDialog + CreateSchemaDraftModal)

   Was: when a maker edited an approval-required dict, Save disabled and a
   warning told them to "close the editor and click 'Создать черновик схемы'
   on the dict page." Three friction steps and a hunt for a button.

   Now: the warning Alert carries an action button — "Создать черновик с
   моими изменениями" — that opens CreateSchemaDraftModal in-place with the
   maker's in-progress schemaJson pre-loaded. They add a reason and submit.
   No retyping, no hunt.

   Implementation:
   - CreateSchemaDraftModal accepts optional `initialProposedSchema` prop.
     Seed order: edit-mode draft → caller pre-fill → live HEAD.
   - DictionaryEditorDialog mounts the modal inline and triggers it from the
     Alert action. Closes the editor on successful create.

2. **Diff summary chips in ReviewDrawer**

   Was: two raw JSON dumps side by side. Reviewer had to eyeball-diff long
   records to find the actual edit.

   Now: a row of summary chips above the panes — "+N added, −M removed,
   ~K changed" with the field names inline. Computed shallow client-side
   (shallowDiffSummary helper) — ordinis records are flat-ish at the top
   level, no need for a backend diff endpoint. Skipped for CLOSE op (no
   proposed) and when both sides are null.

3. **Tightened drawer header + trimmed empty-state copy**

   Was: single flex-wrap line with four spans (badge + bk + maker + ts) —
   visually busy. Plus a verbose empty-state description: "Когда maker
   отправит schema draft на ревью, он появится здесь."

   Now: two-row layout (identity row on top, provenance row below) so the
   eye lands on Badge + BK first. Empty-state copy shortened to "Очередь
   пуста" / "Схемы на ревью появятся здесь."

Other five gaps (Мои tab, full state-coverage pass, DESIGN.md, a11y audit,
maker notifications) recorded in TODOS.md.
2026-05-14 15:56:50 +03:00
semantic-release-bot bdae52ff28 chore(release): v2.24.0
## [2.24.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.23.1...v2.24.0) (2026-05-14)

###  Features

* **drafts:** audit + outbox для record-draft lifecycle (audit findings) ([0003fb6](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/0003fb68019a39a515f5046df3f039dc3a48f79c))

### 🐛 Fixes

* **approval:** allow non-breaking schema changes inline ([d338c52](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d338c52c63876d68fabdd5133d6b2e834829a9f9))
* **approval:** close 2 more bypass paths from security audit ([4e09027](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/4e0902706e73e3860eab2618676389aca230e64c))
* **ui:** DictionaryEditorDialog disables Save when draft workflow needed ([898cb34](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/898cb345ec462f2b322a96b3cf5cbc830e4cc079))
2026-05-14 12:52:02 +00:00
Александр Зимин 898cb345ec fix(ui): DictionaryEditorDialog disables Save when draft workflow needed 2026-05-14 12:33:43 +00:00
semantic-release-bot ce3b495561 chore(release): v2.23.1
## [2.23.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.23.0...v2.23.1) (2026-05-14)

### 🐛 Fixes

* **schema:** enforce approvalRequired on PUT /{name} + PATCH /{name}/schema ([018ebff](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/018ebff2072952828f6b5e7dbd6b19f204e0432a))
2026-05-14 12:15:02 +00:00
semantic-release-bot 7202265da1 chore(release): v2.23.0
## [2.23.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.22.1...v2.23.0) (2026-05-14)

###  Features

* **user-display:** KeycloakAdminUserResolver — Phase 2 on-demand lookup ([83caf9c](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/83caf9c3c80e947dc3ad4ff46a194903192ca1f3))
* **user-display:** persistent DB cache + Keycloak resolver hook (Phase 1+2 wiring) ([ec0c74a](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ec0c74afdf627eab43310c987f009a7a3a1a89d4))

### 🐛 Fixes

* **ui:** UserCell в changelog/events/history — ещё 6 мест ([455ca2f](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/455ca2ff264f4955b5c5b1259c11ce4c3fdd48ce))
2026-05-14 12:00:15 +00:00
Александр Зимин a73549d38d Merge branch 'feat/user-display-persistent-cache' into 'main'
feat(user-display): persistent DB cache + Keycloak Admin lookup (Phase 1+2)

See merge request 2-6/2-6-4/terravault/ordinis!180
2026-05-14 11:52:20 +00:00
Andrei Zimin 455ca2ff26 fix(ui): UserCell в changelog/events/history — ещё 6 мест
После !178 (record drawer + RecordHistoryDrawer + webhook detail) ещё
осталось 6 точек где раньше рендерился UUID. Все они в "истории
словаря" и tab "События":

1. ChangelogDiffModal:57 — header "автор: <name>" в diff modal.
   Было: `{data.publishedBy.name}` (тип ChangelogPublisher.name —
   docstring буквально говорит "Backend пока эхает sub").
   Стало: <UserCell uuid={data.publishedBy.sub} />.

2. TimeTravelModal:686 — список изменений, имя автора рядом с датой.
3. TimeTravelModal:898 — RIGHT panel "История этой версии", dt/dd
   pair с автором.
4. TimeTravelModal ComparePanel:414 — "· {author}" suffix,
   author там DictionaryDetail.updatedBy (тоже UUID).

5. dictionaries.$name.tsx:2263 (events tab, EventsTabContent row) —
   `{r.userId ?? 'anonymous'}` raw. Сменил на UserCell для не-null
   userId, anonymous-fallback оставил без UserCell (нечего lookup'ать).

6. dictionaries.$name.tsx:2399 (history tab, HistoryTabContent entry)
   — `{entry.publishedBy.name}` raw.

Всё через тот же useUserDisplay hook что и в !177 — backend
endpoint /admin/users/{sub}/display + JwtUserCaptureFilter cache.
Если sub нет в cache, UserCell fallback'ит на shortened UUID
(текущее поведение из !177).

ChangelogPublisher type comment в src/api/client.ts уже намекал что
.name это placeholder — useUserDisplay теперь реально резолвит.
2026-05-14 14:33:20 +03:00
semantic-release-bot b5920e4d5f chore(release): v2.22.1
## [2.22.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.22.0...v2.22.1) (2026-05-14)

### 🐛 Fixes

* **ui:** wrap remaining UUIDs into UserCell — 3 missed spots ([93b2676](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/93b267699435d36c3bac9c465f400b60d6fcaa65))
2026-05-14 11:13:36 +00:00
Andrei Zimin 93b2676994 fix(ui): wrap remaining UUIDs into UserCell — 3 missed spots
MR !177 added /admin/users/{sub}/display + UserCell + useUserDisplay,
but only some renderers were migrated. Three places still rendered
raw UUID strings:

1. reviews.tsx:466 — record draft drawer ("Согласование draft" header)
   showed `{draft.makerId}` raw. Tables on the same page already use
   <UserCell uuid={d.makerId} />. Verified via prod staging:
   soloviev.da approved a record draft today and the drawer header
   showed the maker as "77ec2cc8-98e3-4d70-8037-94038fcbde67" instead
   of the username.
2. RecordHistoryDrawer.tsx:110 — version history `updatedBy` raw.
3. webhooks.$id.tsx:235 — webhook subscription `createdBy` raw.

All three switched to <UserCell uuid={...} />, matching the existing
pattern. Added the import where missing. Wrapped each in
inline-flex so the UserCell sits next to the label cleanly.

No backend / API changes — same /admin/users/{sub}/display endpoint
populated by JwtUserCaptureFilter (MR !177).
2026-05-14 14:07:02 +03:00
semantic-release-bot 969395e00d chore(release): v2.22.0
## [2.22.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.21.0...v2.22.0) (2026-05-14)

###  Features

* **admin:** scope-gated audit и outbox endpoints ([da17930](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/da17930def89b2fea51be1b8e45b4e5fabe752d1))
* **approval:** enforce per-dictionary approvalMinRole (Phase 2) ([5187845](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5187845047ba20a6306f5dce8a65f1d4889811fa))
* **records:** close / bulk-close через draft когда approvalRequired ([d66db60](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d66db60b8496a218501ebade77ff68cc232849d4))
* **users:** /admin/users/{sub}/display endpoint + UserCell uses it ([be90077](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/be90077520607998078a3df5bb5fbe24f1a1bf6e))

### 🐛 Fixes

* **reviews:** friendly error в ReviewDrawer вместо AxiosError ([9436068](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/94360681b6d6412d9d0ae4c5dd4b69600274a034))

### 📝 Docs

* **rbac:** обновить RBAC sections после Phase 1d + Phase 2 ([c41e345](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c41e34545b7a23e24c24196c06a7889724f63338))
2026-05-14 10:37:30 +00:00
Александр Зимин 95c2b46dd3 Merge branch 'feat/user-display-endpoint' into 'main'
feat(users): /admin/users/{sub}/display endpoint + UserCell uses it

See merge request 2-6/2-6-4/terravault/ordinis!177
2026-05-13 16:42:46 +00:00