Skip to content

chore(release): v1.2.1 - #26

Merged
perkinson1251 merged 5 commits into
mainfrom
dev
Sep 2, 2026
Merged

perkinson1251 merged 5 commits into
mainfrom
dev

Conversation

@perkinson1251

Copy link
Copy Markdown
Contributor

Release v1.2.1

Promotes dev → main.

Highlights

  • feat(dash): complete /dash redesign — accordion runs, TanStack Query, 4-tab layout
  • fix(dash): horizontal scroll eliminated; tables replaced with expandable rows
  • fix(dash): all status/trigger enums now displayed in Ukrainian
  • fix(dash): live polling via TanStack Query refetchInterval (adaptive 5s/60s)
  • fix(dash): add column headers to all list views; a11y labels on all icon buttons

Release notes

New features
  • Dashboard (internal): full redesign of /dash page — hero status block, expandable run rows with step timelines, Groups tab with 1058-row virtual list and run selector, Провали and База даних tabs
Design & UX
  • Replaced wide horizontal tables with mobile-first expandable rows
  • Tabs (Прогони / Провали / Групи / База даних) replace stacked sections
  • Hero card shows sync status, live progress bar, and key metrics
  • Status and trigger labels translated to Ukrainian (Успіх, Розклад, etc.)
  • Column headers added to all list views so numbers have context
Accessibility
  • aria-label and aria-expanded added to all icon-only and toggle buttons on the dash page
Fixes
  • Horizontal page scroll eliminated on mobile (no more overflowing tables)
  • Error banner no longer sticks after a transient fetch failure (TanStack Query handles reset)
  • Step info (Аудиторії/Групи/Викладачі counts) now visible on touch devices (expanded section instead of title= tooltip)
  • Full error text reachable via pre block + copy button (no more max-w-xs truncation)
Under the hood
  • Data layer migrated from hand-rolled $fetch + recursive setTimeout polling to TanStack Query (gcTime:0 so ops data never hits IndexedDB)
  • 501-line dash.vue split into page + composable + query factories + 5 dash/* components
  • Dash components auto-registered via nuxt.config components[] entry

…, Ukrainian UI

- Replace monolithic 501-line dash.vue with thin page + 5 dash/* components
- Migrate all data fetching to TanStack Query (dashSummaryOptions,
  dashRunsOptions, dashRunGroupsOptions, dashFailuresOptions,
  dashTableSizesOptions) with gcTime:0 so ops data is never persisted
  to IndexedDB; polling via refetchInterval replaces recursive setTimeout
- New IA: Hero status card with live pulse dot + progress bar (running only),
  metrics strip (runs/failures/events), UiTabs splitting runs/failures/db
- Runs tab: status filter (UiSelect), accordion list (DashRunItem) with
  duration sparkbar, step timeline (✓/✗ Аудиторії/Групи/Викладачі),
  lazy group loading on expand — failed groups expanded by default, success
  groups collapsed with search input; errors as full monospace blocks with copy
- Failures tab: always rendered, AppEmptyState when empty, full error blocks
  with per-entry copy button; groupName field added to SyncRunGroup and
  FailedGroupEntry (nullable, falls back to '#id')
- DB tab: table sizes sorted by bytes with relative size bar
- composables/useDash.ts: fmt, fmtRelative, duration, durationMs, deltaLabel,
  deltaClass, isRemovedSpike, groupLabel, statusVariant, STATUS_LABELS,
  TRIGGER_LABELS, STEP_LABELS — all Ukrainian
- Add UiCard and UiProgress components (npx ui-thing@latest add card progress)
- Fixes: error banner never reset (gone), horizontal scroll (no min-w tables),
  title= tooltips on touch (gone, replaced by expanded content), truncated
  errors (full blocks), raw English enums (Ukrainian labels)
@perkinson1251
perkinson1251 merged commit 65dbd07 into main Sep 2, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant