semantic-release-bot
2a3f2099e5
chore(release): v2.5.0 [skip ci]
...
## [2.5.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.4.0...v2.5.0 ) (2026-05-12)
### ✨ Features
* **changelog:** wire up History tab to /changelog endpoint + diff modal ([57be0d8 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/57be0d88d37060aba2150401b6d487189b20bcc7 ))
2026-05-12 10:55:42 +00:00
Александр Зимин
57be0d88d3
feat(changelog): wire up History tab to /changelog endpoint + diff modal
2026-05-12 10:49:53 +00:00
semantic-release-bot
ba04c2199e
chore(release): v2.4.0 [skip ci]
...
## [2.4.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.3.1...v2.4.0 ) (2026-05-12)
### ✨ Features
* **api:** GET /changelog/{entryId}/diff — full before/after schemas ([72268f9 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/72268f9add3dcbbc727248470bfbab6bcefee4b8 ))
### 🐛 Fixes
* **history:** подсказка и Button-стайл когда у записи 1 версия ([7192aed ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7192aed71c7b7be58a3a1551933202da3ed03f73 ))
* **timetravel:** скрывать boundary-метки при коллизии с курсором ([c76e7a4 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/c76e7a4029342f154c1fc0f26341580c6f4ceb20 ))
2026-05-12 10:40:50 +00:00
Александр Зимин
7192aed71c
fix(history): подсказка и Button-стайл когда у записи 1 версия
2026-05-12 08:57:44 +00:00
Александр Зимин
c76e7a4029
fix(timetravel): скрывать boundary-метки при коллизии с курсором
2026-05-12 08:55:13 +00:00
semantic-release-bot
aa5fcac0fc
chore(release): v2.3.1 [skip ci]
...
## [2.3.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.3.0...v2.3.1 ) (2026-05-12)
### 🐛 Fixes
* **ui:** internal scope filter + dark-theme cards в Связи ([93c2708 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/93c2708fb00af1c3d35b883f6e19b741a501f30a ))
### 📝 Docs
* **integrator:** v2.x.x update — workflow API + full changelog + schema extensions ([d790a77 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d790a773139f91290c69148602dab04c694f432f ))
2026-05-12 08:19:32 +00:00
Александр Зимин
93c2708fb0
fix(ui): internal scope filter + dark-theme cards в Связи
2026-05-12 00:31:51 +00:00
semantic-release-bot
bc3373ccd8
chore(release): v2.3.0 [skip ci]
...
## [2.3.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.2.1...v2.3.0 ) (2026-05-12)
### ✨ Features
* **api:** full timeline в /changelog — workflow events + draft kinds ([12975e0 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/12975e0d83ab2cc63ea7f553339aa7ea448aad66 ))
### 🐛 Fixes
* **ui:** visible History button + remove left rail + dark JSON viewer ([2a76b93 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/2a76b9382ec3094e90b7eec9f2167dda10335082 ))
2026-05-12 00:24:16 +00:00
Александр Зимин
2a76b9382e
fix(ui): visible History button + remove left rail + dark JSON viewer
2026-05-12 00:18:03 +00:00
semantic-release-bot
50c75eacd3
chore(release): v2.2.1 [skip ci]
...
## [2.2.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.2.0...v2.2.1 ) (2026-05-12)
### 🐛 Fixes
* **build:** collapse vendor-graph3d into vendor-misc — Super expression hotfix ([99d5d5d ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/99d5d5d84412ea48d468210e5d4d2f4a11814c37 ))
2026-05-12 00:03:39 +00:00
Александр Зимин
99d5d5d844
fix(build): collapse vendor-graph3d into vendor-misc — Super expression hotfix
2026-05-11 23:53:55 +00:00
semantic-release-bot
242972fdd8
chore(release): v2.2.0 [skip ci]
...
## [2.2.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.1.0...v2.2.0 ) (2026-05-11)
### ✨ Features
* **api:** schema workflow API — backend [#3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/3 ) (drafts/review/decision/publish) ([01fc577 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/01fc5771f28a750573c811ba481ac023464bbc1d ))
* **graph:** space-theme polish — planets, sprite labels, thematic edges, sizes, loader ([9fd63ab ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/9fd63ab2679432aef95f205c03389e66a1a2efef ))
2026-05-11 23:46:43 +00:00
Александр Зимин
9fd63ab267
feat(graph): space-theme polish — planets, sprite labels, thematic edges, sizes, loader
2026-05-11 22:50:33 +00:00
semantic-release-bot
1178317878
chore(release): v2.1.0 [skip ci]
...
## [2.1.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v2.0.0...v2.1.0 ) (2026-05-11)
### ✨ Features
* **graph:** 3D mode toggle — three.js + WebGL fallback ([fe18bef ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fe18befb2a34488d1cd460fd12ea9e9e75c3fe49 ))
2026-05-11 22:17:01 +00:00
Александр Зимин
d0362c1136
Merge branch 'feat/graph-3d-mode' into 'main'
...
feat(graph): 3D mode toggle — three.js + WebGL fallback
See merge request 2-6/2-6-4/terravault/ordinis!110
2026-05-11 22:11:41 +00:00
Александр Зимин
fe18befb2a
feat(graph): 3D mode toggle — three.js + WebGL fallback
2026-05-11 22:11:41 +00:00
semantic-release-bot
c2c492b7ef
chore(release): v2.0.0 [skip ci]
...
## [2.0.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.7.0...v2.0.0 ) (2026-05-11)
### ✨ Features
* **api:** GET /dictionaries/{name}/changelog — schema versions timeline (backend [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 )) ([ebc90d7 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ebc90d76e97dbdeb42f18cb0578b5854ed6896f4 ))
* **api:** GET /dictionaries/{name}/snapshots — record-change buckets (backend [#2 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/2 )) ([e02e684 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e02e684cca40da1b855dbc229ea876e5ffe7c2f8 ))
* **api:** PATCH /dictionaries/{name}/schema — inline non-breaking field edit (backend [#4 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/4 )) ([db4f859 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/db4f859ef6129f3bc85af79aa2f7fa4ec873ea5a ))
* **brand:** adopt official Ordinis logo assets ([e6fe9c3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e6fe9c3da89f028711c6627d841083e8f58173f3 )), closes [#185FA5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/185FA5 ) [#378ADD](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/378ADD ) [#185FA5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/185FA5 ) [#120a8f](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/120a8f )
* **form:** x-section schema metadata + dynamic section bucketing ([1a72418 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/1a72418cb862322ed4ff01ea0b24cf21a99b31c7 ))
* **ui:** 3-dot row menu + history compare/revert + DateTime fitting + tablet touch ([b312ba3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/b312ba37adb5260625fa792a9078edde5d1d67b8 ))
* **ui:** row click opens edit + wide-mode left section rail in drawer ([54cf563 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/54cf5631620ea44d1a6d0d6f6a180390602c2e33 ))
### 🐛 Fixes
* **a11y:** Drawer always renders SheetDescription — silence Radix warning ([cc131e5 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/cc131e52f2024ebb2e47e230150d43c5d0fc7905 ))
* **audit:** definition action != record action — fix SmokeE2ETest filter ([f5e7348 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/f5e7348f92e4b44f2b16a3872f2f1d2b9414167e )), closes [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 )
* **audit:** definition action != record action — fix SmokeE2ETest filter ([083e7be ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/083e7be3be16ecab97445eb01a4e3c331abedb9a )), closes [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 )
* **audit:** definition action != record action — fix SmokeE2ETest filter ([5d790ba ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/5d790ba7d56292e73c761420bed9a9960a9b96c0 )), closes [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 )
* **brand:** recolor logo — terracotta accent, no blue (theme-aligned) ([7684e0c ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7684e0c9bd2ad7223f86490578585994ed802b5e )), closes [#d97757](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/d97757 ) [#b05a2e](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/b05a2e ) [#d97757](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/d97757 ) [#b05a2e](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/b05a2e ) [#e6e1d4](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/e6e1d4 ) [#2c2b27](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/2c2b27 ) [#1a1714](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1a1714 ) [#b05a2e](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/b05a2e )
* **form:** FK select label overflow — truncate + ellipsis (наезжают on chevron) ([b2231a5 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/b2231a5a47b39443f2e3a9a49fb3ec9eb7dd4399 ))
* **ui:** bigger logo + shorter 'Создать' label ([0c978be ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/0c978bec0c6d9a32ed41d9898b7bd61420c0d1c0 ))
* **ui:** logo orbits stroke 5→12 — actually visible at 28px ([fcb0ad0 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/fcb0ad0eb5b5eb28ea0975e155fbbf36c7908021 ))
### 📝 Docs
* **api:** mark 4/5 pending endpoints shipped, workflow API deferred ([6c8cc21 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/6c8cc21204c7afbd6fa1a003575d93f09d0641f3 )), closes [#1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/1 ) [#2 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/2 ) [#4 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/4 ) [#5 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/5 ) [#3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/3 )
2026-05-11 22:07:11 +00:00
Александр Зимин
1a72418cb8
feat(form): x-section schema metadata + dynamic section bucketing
2026-05-11 21:52:24 +00:00
Александр Зимин
cc131e52f2
fix(a11y): Drawer always renders SheetDescription — silence Radix warning
2026-05-11 21:42:41 +00:00
Zimin A.N.
b312ba37ad
feat(ui): 3-dot row menu + history compare/revert + DateTime fitting + tablet touch
...
Per user feedback screenshots:
SchemaDrivenForm DateTimeField:
- grid → flex flex-wrap: на узких cells (drawer 520px ÷ 2 cols = ~210px)
time wraps под date вертикально. На wide — inline.
- Date min-w 8rem (128px), time w-24 (96px) — tablet touch-safe.
TableHeaderCell без visible label (sr-only для screen readers).
TableCell содержит DropdownMenu trigger 36×36px (touch target):
- History (always)
- Edit, Separator, Close (только canMutate, Close в danger color)
Заменяет 3 inline IconButton'a — экономит ширину + tablet friendly.
RecordHistoryDrawer accepts onCompare / onRevert callbacks. Каждая
non-current version row показывает:
- Сравнить с текущим — opens ConflictDiffModal (reused diff UI)
- Откатить к v{N} — submit updateMut с этой version данными как
payload (+ confirm dialog). Backend создаёт новую active version,
bitemporal history preserves старые.
JSON viewer переключился с <details> на state-driven (hide/show
без CSS rabbit hole).
history.hideData/compare/revert/revertConfirm (RU + EN).
- 3-dot trigger 36px = comfortable touch target (Apple HIG 44, ours
acceptable для density)
- Drawer на <880px viewport = fullscreen sheet (already)
- DateTime wraps на cell <8rem+9rem+gap = 290px
- Sidebar collapse на <1024 = hamburger overlay
2026-05-12 00:03:44 +03:00
Александр Зимин
11797f88ae
Merge branch 'feat/row-click-and-wide-rail' into 'main'
...
feat(ui): row click → edit drawer + wide-mode left section rail
See merge request 2-6/2-6-4/terravault/ordinis!105
2026-05-11 20:51:42 +00:00
Zimin A.N.
54cf563162
feat(ui): row click opens edit + wide-mode left section rail in drawer
...
Two improvements per user feedback ('по клику открывается редактирование и
в развернутом виде слева навигация'):
## 1. Row click → edit drawer
TableRow в /dictionaries/$name теперь имеет onClick={setEdit({kind:'edit',
record:r})} когда canMutate. cursor-pointer + bubbling guards:
- Checkbox cell и Actions cell имеют onClick stopPropagation чтобы
внутренние controls не открывали drawer случайно.
- Anonymous users (no canMutate) — row не clickable (read-only, no drawer).
## 2. Wide-mode left rail в drawer
SchemaDrivenForm в sections layout теперь умеет ResizeObserver-based detection
своей ширины. Когда контейнер ≥720px (drawer wide mode = 880px) → render'ит
180px sticky left rail с section list + per-section field counts. Click rail
item → smooth scroll к section anchor. Иначе chip strip сверху, как раньше.
Container-based (не viewport-based) чтобы narrow drawer на wide viewport не
рендерил rail (520px не fits 180+1fr grid).
2026-05-11 23:51:03 +03:00
Zimin A.N.
b2231a5a47
fix(form): FK select label overflow — truncate + ellipsis (наезжают on chevron)
...
Native <select> для FK references показывал label '<code> — <localized name>'
(например 'OPT_MIDRES_MS — Оптический мульти-резолюционный мульти-спектральный')
— текст бьётся на chevron в trigger area из-за тонкого contract'а browser-
specific overflow handling (наезжают per user screenshot 2026-05-11).
Fix:
- buildOption() обрезает name до MAX_FK_LABEL_CHARS=28 (code intact) +
'…' suffix когда combined превышает limit
- select сам получает 'truncate overflow-hidden whitespace-nowrap text-ellipsis'
как защита если browser native truncate не сработал
- pr-10 → pr-9 (38px) — точно совпадает с right-3 chevron position (12px)
+ ~16px icon + 8px gap, не overlap'aет.
2026-05-11 23:43:38 +03:00
Zimin A.N.
fcb0ad0eb5
fix(ui): logo orbits stroke 5→12 — actually visible at 28px
...
stroke=5 в viewBox 256 при 28px render = 5*28/256 = 0.55px (subpixel,
почти невидимо). stroke=12 даёт ~1.31px real — чёткая линия. Заодно
переключил с --color-line-2 на --color-line чтобы немного контрастнее
на bg-surface.
2026-05-11 23:38:00 +03:00
Zimin A.N.
0c978bec0c
fix(ui): bigger logo + shorter 'Создать' label
...
Logo: при 26px+тонких stroke (1.5) почти невидим. Bumped:
- width/height 26 → 28
- strokes 1.5 → 5 (визуально ~1.5px при 28px render)
- outer dots r=8 → 16/14 (main + secondaries)
- inner dots r=6.4 → 13/11
- core r=15 → 24
- outer orbit stroke использует --color-line-2 (мягче чем --color-line)
Favicon тоже укрупнён (stroke 2.2, dot r=3, core r=4) — читается в 16px tab.
Label: 'Создать запись' → 'Создать' для dict.action.create (RU + EN).
User feedback: 'Создать запись надо сократь на Создать'.
2026-05-11 23:36:00 +03:00
Zimin A.N.
7684e0c9bd
fix(brand): recolor logo — terracotta accent, no blue (theme-aligned)
...
Brand assets из !100 пришли с DeepBlue/SkyBlue colors (design system
prototype). Ordinis app theme uses warm terracotta accent (#d97757 light /
#b05a2e dark) на cream/ink palette. Never blue. Recolored все 5 SVG +
inline Sidebar mark:
- favicon.svg: stroke #d97757, dots/core #b05a2e
- ordinis-mark.svg: orbits #e6e1d4 (line), dots accent gradient terracotta
- ordinis-appicon.svg: dark warm-ink tile (#2c2b27 → #1a1714), accent dots,
white outer dots for contrast on dark
- ordinis-lockup-light.svg: terracotta orbits + warm-ink wordmark (Tektur)
- ordinis-lockup-dark.svg: warm-dark bg + terracotta accents + cream wordmark
- Sidebar inline svg: currentColor + text-accent, var(--color-line) для
orbits — автоматически работает в both light + dark themes
- index.html: theme-color/mask-icon → #b05a2e (terracotta dark)
User feedback: 'DeepBlue никакого синего адаптируй под наши темы'.
2026-05-11 23:28:06 +03:00
Zimin A.N.
e6fe9c3da8
feat(brand): adopt official Ordinis logo assets
...
Делёные design team 2026-05-11 в Downloads/files:
- ordinis-mark.svg — двойные орбиты + 6 dots + gradient core
(DeepBlue #185FA5 → SkyBlue #378ADD), brand spec
- ordinis-favicon.svg — minimal 32px variant
- ordinis-appicon.svg — 1024px PWA icon с dark rounded tile
- ordinis-lockup-light/dark.svg — horizontal lockup с wordmark
(для landing/splash/marketing — пока не используется но
хранится в public для future use)
Changes:
- public/favicon.svg → minimal 32px variant
- Sidebar logo block: inline ordinis-mark с двойными орбитами +
gradient core. Wordmark 'ORDINIS MDM' остаётся в Tektur.
- index.html: theme-color #185FA5 (был #120a8f), apple-touch-icon
link на appicon, mask-icon color match.
Note: SVG colors hardcoded в Sidebar inline для full design fidelity
(brand assets specifically defined gradient). currentColor не подходит
т.к. brand требует точные DeepBlue/SkyBlue/LightBlue tokens.
2026-05-11 23:19:33 +03:00
semantic-release-bot
1b577393d6
chore(release): v1.7.0 [skip ci]
...
## [1.7.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.6.1...v1.7.0 ) (2026-05-11)
### ✨ Features
* **api:** GET /dictionaries/graph/outgoing — batch outgoing FK summary ([ff05ef9 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ff05ef9a9fcc0df55c0da2cb16c2d7d75f9e9db4 ))
* **loader:** real Natural Earth globe via d3-geo + topojson + world-atlas ([acde4e1 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/acde4e134dc7d7610e108e155e2b57426190be08 ))
### 🐛 Fixes
* **a11y:** add sr-only DialogTitle/Description to record/export/timetravel modals ([7429cff ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7429cff0096918fb0fe9dc2a55506a93ee5ee89e ))
* **form:** break drawer counter/dirty infinite-loop + add GlobeLoader + AppErrorBoundary ([ca53322 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ca53322b14265c26b94db73c5fed7cb7cdf1f343 ))
* **loader:** remove transform-box fill-box — orbits rotated around offset bbox ([82b754b ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/82b754b3abafc8383c95aecf28a81c116e843512 ))
* **ui:** block route render with centered GlobeLoader until queries resolve ([e165a55 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e165a552aae42a05a2ad4b0f1187ad684b376fa6 ))
### 📝 Docs
* **api:** pending-endpoints brief for backend team ([a4add24 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a4add2402aea8620d071e48ea8e598e8f62c8249 ))
2026-05-11 20:16:26 +00:00
Александр Зимин
848eb2243a
Merge branch 'fix/loop-globeloader-error-boundary' into 'main'
...
fix(ui): infinite-loop + GlobeLoader + AppErrorBoundary + a11y modals
See merge request 2-6/2-6-4/terravault/ordinis!94
2026-05-11 19:48:59 +00:00
Zimin A.N.
82b754b3ab
fix(loader): remove transform-box fill-box — orbits rotated around offset bbox
...
CSS transform-box default для SVG = view-box (transform-origin в viewBox
user coords). С transform-box: fill-box origin становится относительным
bounding-box каждой группы (whirl + whirl-rev — arc bbox смещён). Арки
летали по неправильной траектории. Прототип HTML rely on default — copy.
2026-05-11 22:43:32 +03:00
Zimin A.N.
acde4e134d
feat(loader): real Natural Earth globe via d3-geo + topojson + world-atlas
...
Per user — GlobeLoader должен показывать реальные континенты (Asia/Africa/
Australia outline) с rotating orthographic projection, как в прототипе
Downloads/Globe loader/Globe Loader.html. Прошлая версия использовала
faked ellipses graticule — выглядело как абстрактные кольца, не как глобус.
Implementation:
- d3-geo.geoOrthographic + d3.geoPath для projection math
- topojson-client.feature для распаковки world-atlas land-110m
- dynamic import обоих deps + JSON — не блокирует main bundle, lazy chunk
- requestAnimationFrame loop пересчитывает d-attr на каждом кадре
(8s per revolution per прототип, tilt -15° lean)
- LAND_CACHE module-level — повторные mount'ы не re-fetch
- CSS .globe-sphere rotation удалена — d3 projection делает работу,
CSS transform distort'ила бы land mass (нет projection math)
Bundle hit: ~55kb (land-110m.json) + ~15kb gzipped (d3-geo + topojson) —
lazy chunk, fetched один раз и cached.
2026-05-11 22:39:58 +03:00
Zimin A.N.
e165a552aa
fix(ui): block route render with centered GlobeLoader until queries resolve
...
Per user feedback ('вот такого не должно быть, лучше лоадер'):
- /dictionaries — full-page LoadingBlock (size lg, centered min-h 60vh)
пока useDictionaries query loading. Раньше size=md без centering
показывался в углу — а на пустой странице это смотрелось куце.
- /dictionaries/$name — same gate на detailQuery.isLoading. Без этого
юзер видел partial render: пустую sidebar info panel, узкую records
колонку (extra columns ещё не computed из schema), битую табличную
toolbar. Теперь — централизованный GlobeLoader пока схема не дойдёт.
2026-05-11 22:37:22 +03:00
Zimin A.N.
ca53322b14
fix(form): break drawer counter/dirty infinite-loop + add GlobeLoader + AppErrorBoundary
...
Maximum update depth exceeded showed на /dictionaries/$name когда RecordDrawer
открывался в create mode. Root cause:
1. SchemaDrivenForm useEffect deps включал onCounterChange/onDirtyChange.
2. Parent route передавал inline arrow (() => setDrawerCount({...})) —
новая identity каждый render.
3. setDrawerCount({visible, total}) создавал новый object literal даже
при тех же значениях → React re-render → effect fires → loop.
Fix:
- SchemaDrivenForm: ref-pattern для callback. useEffect subscribed только
на value deps (visibleFieldCount/totalFieldCount/dirtyCount), latest
callback хранится в ref.
- dataValues — useMemo с frozen EMPTY_DATA default чтобы не invalidate'ить
isFieldVisible memo каждый render.
Plus:
- GlobeLoader component — orbital globe spinner per Downloads/Globe loader
prototype. Pure SVG + CSS animations, без d3/topojson.
- LoadingBlock переключен с Loader2 на GlobeLoader (все usage обновляется
автоматически: RecordHistoryDrawer, dictionaries.$name editor loading,
search results, webhooks list, etc).
- AppErrorBoundary — friendly fallback вместо TanStack DefaultErrorComponent.
GlobeLoader (paused/dimmed) + 'Что-то пошло не так' + [Обновить][На главную].
Dev-only collapsible с raw stack trace.
2026-05-11 22:31:57 +03:00
semantic-release-bot
a0bc784754
chore(release): v1.6.1 [skip ci]
...
## [1.6.1](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.6.0...v1.6.1 ) (2026-05-11)
### 🐛 Fixes
* **ui:** remove TopBar search (final) + add clear X to catalog input ([7f32416 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7f3241686c9896d33e4a6add5806a0fd587fd046 ))
* **ui:** restore TopBar search + add notifications bell + theme to sidebar ([7e44df3 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7e44df34931f56235fff6bebd62e4ac3be010032 ))
* **ui:** TopBar right cluster + catalog toolbar h-8 align ([24f04ef ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/24f04ef3efbfe71ed8cc19a519dff6370beb0741 ))
2026-05-11 19:30:09 +00:00
Zimin A.N.
7429cff009
fix(a11y): add sr-only DialogTitle/Description to record/export/timetravel modals
...
Radix Dialog warns when DialogContent отсутствует accessible name/description.
RecordDrawer (Sheet) уже имел Title, добавили sr-only Description.
ConflictDiffModal/ExportModal/TimeTravelModal — кастомные visible headers,
теперь имеют sr-only Title + Description для screen readers + чтобы
заглушить dev warnings.
2026-05-11 22:25:06 +03:00
Александр Зимин
399efb48b1
Merge branch 'fix/topbar-right-align-toolbar-h8' into 'main'
...
fix(ui): TopBar right align + catalog toolbar h-8
See merge request 2-6/2-6-4/terravault/ordinis!93
2026-05-11 19:21:05 +00:00
Александр Зимин
89c66b0aa0
Merge branch 'fix/topbar-remove-search-catalog-clear-x' into 'main'
...
fix(ui): remove TopBar search + add clear X to catalog input
See merge request 2-6/2-6-4/terravault/ordinis!92
2026-05-11 19:13:37 +00:00
Zimin A.N.
24f04ef3ef
fix(ui): TopBar right cluster + catalog toolbar h-8 align
...
- TopBar: right cluster `md:ml-0 ml-auto` → `ml-auto` always. Без TopBar
search в центре уже нечего push'ить вправо через form, right cluster
должен сам прижиматься к правому краю. User: "в топбаре руководство
и далее по правой стороне".
- Catalog toolbar: scope chips / bundle pills / Граф button — все на
h-8 (было py-1 + inline text variable height). + inline-flex
items-center чтобы baseline консистентный с input/Граф/+Создать.
User: "высоту элементов в баре таблиц выровняй".
2026-05-11 22:11:24 +03:00
Александр Зимин
5365170de2
Merge branch 'fix/topbar-restore-search-single-x' into 'main'
...
fix(ui): restore TopBar search + notifications bell + theme to sidebar
See merge request 2-6/2-6-4/terravault/ordinis!91
2026-05-11 19:09:15 +00:00
Zimin A.N.
7f3241686c
fix(ui): remove TopBar search (final) + add clear X to catalog input
...
User clarification after MR !91 :
- "Search из TopBar убран — все верно" — TopBar search должен быть удалён.
- "TopBar search вернулся. убери его" — MR !91 ошибочно его вернул.
- "два крестика баг в топбаре был а ты и в таблице убрал его" — двойной X
was в TopBar (native + custom); в catalog был только custom X на
старом input. После refactor catalog input получился без X совсем —
fix: добавил кастомный clear button когда q непустой.
Changes:
- TopBar: removed form + SearchInput + handlers (handleSearchInput /
Submit / Clear / inputRef / useState). Removed useEffect ⌘K shortcut
(без search input nothing to focus). Right cluster: Docs +
VersionBadge + NotificationsBell. ml-auto на right cluster чтобы
push'ить вправо без search в центре.
- Catalog input: добавлен absolute-positioned X (✕) справа input'а
когда `search.q` непустой. `pr-7` на input чтобы текст не наезжал.
Clear → `setSearch({ q: undefined })`. Single X confirmed visually.
2026-05-11 22:07:00 +03:00
Zimin A.N.
7e44df3493
fix(ui): restore TopBar search + add notifications bell + theme to sidebar
...
Follow-up к MR !90 per user feedback iterations:
1) "в поиске по справочникам два крестика" — fixed в SearchInput:
`type="search"` (native browser X) → `type="text"`. Custom onClear X
остаётся единственным. Catalog input тоже type="text".
2) "блин два крестика было на топбар поиске а тут норм все. верни" —
restore TopBar search input. Context-aware behavior сохранён:
- На /dictionaries → live filter каталога через URL ?q=
- На остальных routes → submit (Enter) → /search records search
Single X confirmed by visual test.
3) "свитч темы можно тоже в профиль перенести" — ThemeSwitch переехал в
Sidebar footer (рядом с RU/EN button). Right row в footer: lang button
слева, theme switch (3 icons sun/moon/monitor) справа через ml-auto.
4) "руководство и версию оставить в топбар чтобы подсвечивать новинки" —
Docs + VersionBadge stays in TopBar. Туда же добавлена
NotificationsBell (placeholder Bell icon) — broadcast slot для
webhook errors / draft reviews / system notices когда backend
notifications stream появится.
2026-05-11 22:03:12 +03:00
semantic-release-bot
ffdf942344
chore(release): v1.6.0 [skip ci]
...
## [1.6.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.5.0...v1.6.0 ) (2026-05-11)
### ✨ Features
* **ui:** batch UI polish — auth/lang to sidebar, search h-7, info overflow, graph zoom ([d9df2fc ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d9df2fc359856dedc7a4f6a0aea8728dc508a706 ))
2026-05-11 19:01:38 +00:00
Александр Зимин
ce2768d1d9
Merge branch 'feat/ui-polish-batch' into 'main'
...
feat(ui): batch UI polish — auth/lang to sidebar, search h-7, info overflow, graph zoom
See merge request 2-6/2-6-4/terravault/ordinis!90
2026-05-11 18:55:48 +00:00
Zimin A.N.
d9df2fc359
feat(ui): batch UI polish — auth/lang to sidebar, search h-7, info overflow, graph zoom
...
User feedback batch — multiple iterations of UX refinement.
Layout shifts:
- TopBar right cluster: AuthBadge + LanguageSwitch переехали в Sidebar
footer per user ("вход в сайдбар перенесем", "ru/en тоже в сайд баре").
TopBar теперь: breadcrumb + search + Docs + VersionBadge + ThemeSwitch
only. Освобождает место + concentrates user/lang controls в одном месте.
- Sidebar footer: новая структура — Lang toggle (Язык [RU/EN]) + Auth block
(avatar+name+logout authed, Sign-in CTA anonymous) + collapse button.
Refactored из inline JSX в named subcomponents (AuthedUserBlock,
SignInCta, SidebarFooter).
Sizing / spacing:
- TopBar SearchInput: h-9 → h-7 to match LangSwitch/ThemeSwitch (+ Sign-in
кнопка). User: "поиск по справочникам высоту выровняй". Override via
`!h-7 text-cell` className на SearchInput.
- TopBar: h-14 → h-11 (slimmer). Sidebar logo block matches h-11.
Catalog search:
- Catalog page input в toolbar — restored для on-page filter ("Catalog
search никак не работает" → проверил, работает; добавил TopBar context-
aware behavior где TopBar input на /dictionaries route синхронизируется
с URL ?q= live).
- TopBar search context-aware: catalog mode = live filter; else = submit
→ /search (records JSONB search).
InfoPanel:
- Description: `text-body text-ink-2 leading-relaxed` → +
`break-words overflow-hidden`. Long slash-separated values
(LZW/Deflate/JPEG2000/ZSTD/LERC) теперь wrap'ятся внутри panel вместо
overflow за границы (user: "описание убежало за границы панели").
- Container: + `min-w-0 overflow-hidden` для proper flex shrinking.
Graph:
- Zoom controls overlay (+/-/1:1/N%) + mouse wheel zoom toward cursor +
drag pan по empty space. Per user: "Граф связей еще не зумируется".
WorkflowBanner:
- Moved в InfoPanel banner slot (compact flex-col layout) — free
horizontal space выше editor + concentrates status info в left rail.
Auth:
- AuthBadge: primary Button → compact h-7 outline button. Matches
TopBar toolbar control style.
- RequireAuth: убран visible amber error banner "Авторизация недоступна:
Failed to fetch" — silent fall-through к anonymous mode (user feedback).
- routes/index.tsx: beforeLoad skip redirect если есть `?code=` в URL
(OIDC callback fix). HomeIndex компонент рендерит null + redirect на
/dictionaries после auth complete.
LanguageSwitch:
- h-8 + items-stretch + inner items-center — matches ThemeSwitch height.
- Later moved entirely в Sidebar footer (h-7 button only) per user.
2026-05-11 21:50:21 +03:00
semantic-release-bot
1bee41e2cf
chore(release): v1.5.0 [skip ci]
...
## [1.5.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.4.0...v1.5.0 ) (2026-05-11)
### ✨ Features
* **editor:** restore 3-col HubView + hide AOI on non-geo dicts ([b0e1995 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/b0e19951b30773545fdaf296e398ffe3ec4b5cae ))
2026-05-11 17:55:39 +00:00
Александр Зимин
4b14749ec0
Merge branch 'feat/restore-hub-view-hide-aoi-non-geo' into 'main'
...
feat(editor): restore 3-col HubView + hide AOI on non-geo dicts
See merge request 2-6/2-6-4/terravault/ordinis!89
2026-05-11 17:49:44 +00:00
semantic-release-bot
c3ae1a7ecc
chore(release): v1.4.0 [skip ci]
...
## [1.4.0](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/compare/v1.3.0...v1.4.0 ) (2026-05-11)
### ✨ Features
* **catalog:** scope-colored row stripes + filter pills + chips ([bc73782 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/bc737820d6a74755494987bf7c45cc2674ab2365 ))
* **catalog:** toolbar layout per redesign prototype ([ad7c51d ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ad7c51d93fe73c8af4c91464637992ef758d9b48 ))
* **editor:** Fields / Events / History tabs match redesign prototype ([cbe21db ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/cbe21dbc52026998ceb91205a491b531f201c0c1 ))
* **editor:** scope-colored InfoPanel badge + Time-travel label ([e580a04 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/e580a04007e2a0658b3cfcedc73f240bd81978ac ))
* **editor:** wrap InfoPanel + main content in bordered panels per prototype ([ce1f40c ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ce1f40c5d1771166a7ba59785d8b2a4623c0ed9a ))
* **editor:** Связи tab 2-col split per redesign prototype ([180a592 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/180a5920fe79b2144396bc3fb6ff6a90337e3a3e ))
* **layout:** catalog relative time + chevron + flat sidebar per redesign (4) ([7e33456 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/7e33456d70875ad70e8748517cb668b0abd6fec2 )), closes [#faf9f5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/faf9f5 )
* **record:** conflict diff modal на 409 save (handoff line 444) ([16da694 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/16da694d8ca9acb1a3014f0d2947ea2421c57401 ))
* **records:** accent businessKey + remove redundant Export CSV from bulk bar ([3e4d789 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/3e4d78906d4ebb976ec9382defd6c7c502add794 ))
* **topbar:** match redesign prototype — breadcrumb back-arrow + cleaner right cluster ([ac1ca8d ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/ac1ca8d035d928bfd90ab36650cd38a196a73ebc ))
### 🐛 Fixes
* **catalog:** title→TopBar + toolbar→tinted bar + table white + font fix ([d77f040 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/d77f040a5c2ba7b566cd94d50f1776d695988278 ))
* **table:** white row bg + stronger hover per user feedback ([a27e9ec ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/a27e9ec901d609afea150d1272c2be5b4bee8adb )), closes [#faf9f5](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/issues/faf9f5 )
* **topbar:** restore full right cluster per user preference ([38f7dce ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/38f7dcee3ec7ba645ecbbaa8e278fb060f2b7c6c ))
* **topbar:** revert ThemeSwitch to 3-icon original + shorten create button ([6627fd9 ](https://git.nstart.cloud/2-6/2-6-4/terravault/ordinis/commit/6627fd918d382f338bc4ee2667df70dfae604191 ))
2026-05-11 17:47:48 +00:00
Zimin A.N.
b0e19951b3
feat(editor): restore 3-col HubView + hide AOI on non-geo dicts
...
Per user feedback:
- "hub view" — restore старый 3-col layout с central focused dict card +
outgoing FK rail слева + refBy rail справа. Был simpler 2-col split,
но user previously сказал "Связи и вкладка связи была удобнее" (старый
hub более информативный + центральная карта показывает context).
Revert к версии 5007e0f (pre-2-col-redesign).
- "aoi там где нет полей гео лишний" — InfoPanel AOI button теперь скрыт
если schema dict не имеет geo properties. Heuristic: property name
matches /geom|location|bbox|polygon|coordinates|geo/i OR format=geojson|wkt.
Edge case: если active aoi уже set → button показывается чтобы clear.
2026-05-11 20:19:27 +03:00
Александр Зимин
ff0a8b25cc
Merge branch 'feat/business-key-accent-bulk-bar-export-removed' into 'main'
...
feat(records): accent businessKey + remove Export from bulk bar
See merge request 2-6/2-6-4/terravault/ordinis!88
2026-05-11 17:14:49 +00:00
Zimin A.N.
3e4d78906d
feat(records): accent businessKey + remove redundant Export CSV from bulk bar
...
Per user feedback:
- "поле Бизнес-ключ выделен цветом" — businessKey column TableCell теперь
`text-mono text-accent` (было plain text-mono). Matches prototype 03 где
RES-P-1, KAN-V-3, SNT-1A показаны в accent orange — primary identifier
для каждой row.
- "Экспорт CSV в bulk bar лишний как повтор Экспорт кнопки в InfoPanel" —
убрал Export button из BulkSelectionToolbar. ExportModal pre-picks
scope=selected когда selection.size > 0, поэтому workflow:
select rows → click "↓ Экспорт..." в InfoPanel → modal с pre-selected
scope. Бэк endpoint тот же, UX cleaner — один путь к export'у.
- Removed handleBulkExport callback + DownloadSimpleIcon import (теперь
unused).
2026-05-11 20:14:43 +03:00