1. 20 Jul, 2026 1 commit
  2. 18 Jul, 2026 4 commits
  3. 17 Jul, 2026 3 commits
    • fix(data-table): update table body immediately when toggling columns (#6253) · dc9aeab9
      DataTableRow's React.memo did not depend on columnVisibility.
      TanStack row references stay stable when visible columns change, so the
      table body did not refresh after View -> Toggle columns until another
      action rebuilt the column definitions.
      
      Capture a visible column id signature (visibleColumnIds) outside the
      memo and compare it, matching the existing isSelected snapshot pattern.
      All tables that use DataTableRow pick up the fix.
      DawnMoon1542 committed
    • fix: add server-side sorting to user list, prevent client-side sort on paged data (#6194) · 506e41c1
      * fix: add server-side sorting to user list, prevent client-side sort on paged data
      
      The user management table applied client-side sorting to the current
      page slice while pagination was handled server-side, causing ID-asc
      views to show pages out of order (e.g. 23-42, 3-22, 1-2).
      
      Backend: add sort_by/sort_order query params to GetAllUsers and
      SearchUsers with a column whitelist for safe ORDER BY generation.
      Frontend: pass sorting state to the API and reset to page 1 on sort
      change. Generic useDataTable hook now disables client-side sorted row
      model and sort UI for tables with manual pagination but no server-side
      sort handler.
      
      * fix: add id tie-breaker to non-unique sort columns, remove side effect from state updater
      
      Append secondary ORDER BY id DESC when sorting by non-unique columns
      (quota, created_at, etc.) to prevent row duplication/skipping across
      OFFSET pages.
      
      Move onPaginationChange out of setSorting updater to avoid side effects
      inside a pure function (React Strict Mode double-invocation safety).
      DawnMoon1542 committed
  4. 14 Jul, 2026 3 commits
  5. 11 Jul, 2026 23 commits
  6. 10 Jul, 2026 6 commits
    • ️ refactor(web): refine data-table cards and pricing page layout · 9d1ca545
      Replace collapsible card details with always-visible label/value rows, add badge-list full display for cards, and polish pricing/channel toolbars and mobile cards.
      t0ng7u committed
    • style(web): unify design system across default frontend · 262ab931
      🔤 Typography
      - Fix --font-sans stack: 'Public Sans Variable' was never applied (wrong family name), add CJK fallbacks (PingFang SC / Microsoft YaHei UI / Noto Sans SC)
      - Sync <html lang> with i18n language for correct CJK glyph selection
      - Remove dead fake font system (font-provider.tsx, config/fonts.ts, --font-inter/--font-manrope)
      - Typography contract: 3-tier headings, arbitrary text-[10px]/[11px] → text-xs (46 files), no uppercase table headers, font-bold → font-semibold
      - Numbers use tabular-nums only; font-mono reserved for keys/IDs/code (29 files)
      
      🎨 Color discipline
      - Retire StatusBadge string-hash rainbow (autoColor → neutral); all variants resolve to 5 semantic voices
      - Add tintedBadgeClassMap as the single tinted-pill recipe
      - Replace hardcoded emerald/amber/rose/sky classes with semantic tokens across ~30 files (timing badges, progress bars, system panels, pricing, rankings, log row tints)
      - Drop all !important text overrides and [font-family:var(--font-body)] hacks
      
      🧘 Motion restraint
      - Remove admin entrance animations: table row stagger, card hover lift/shadow, button press scale, dashboard shimmer line
      - Neuter page-transition stagger components into plain wrappers; page transitions reduced to pure opacity fade
      - Decorative motion stays landing-only
      
      📐 Shape
      - Single radius source: --radius 1rem → 0.625rem
      - Sparklines use solid chart tokens instead of decorative gradients
      - PanelWrapper: border-only (no shadow), align radius with Card
      
      📏 Guardrails
      - Add "Design System Discipline" section (3.10.1) to web/default/AGENTS.md
      
       Verified: tsgo typecheck clean, rsbuild production build passes
      t0ng7u committed
    • perf(model-pricing): optimize upstream price sync tables (#6092) · 0cb741d8
      Merge pull request #6092 from QuantumNous/perf/model-pricing-sync-table
      同語 committed
    • perf(web): align table badge spacing · 6869cd94
      - remove built-in horizontal padding from status badges so table columns align with headers.
      - drop legacy negative-margin compensation from badge cells and affected table renderers.
      - clean touched table components to satisfy lint rules around type imports, keys, and JSX flow.
      QuentinHsu committed
    • fix(model-pricing): polish sync channel dialog layout · 43783286
      - keep input focus and invalid rings inside the shared Input component to avoid clipping in constrained containers.
      - make the sync channel selector table use a fixed header, internal body scrolling, and fixed pagination inside the dialog.
      - align status cells with their header and translate channel status labels through existing i18n keys.
      QuentinHsu committed