Files
ss-tools/frontend
busya 15d47450a3 feat: add deduplicate + metrics to Run tab
Backend:
- deduplicate param in GET /runs/{id}/records — NOT EXISTS subquery
  with (created_at, id) tiebreaker for one row per source_hash
- source_data and source_hash added to records JSON response
- fix missing status import in _run_history_routes.py (NameError)
- fix tab/space mixup in orchestrator_aggregator.py
- remove duplicated @RELATION edges in metrics.py
- fix #region/#endregion style and @PURPOSE→@BRIEF in metrics.py

Frontend:
- RunTabContent: summary metrics bar (fetchJobMetrics) with HelpTooltips
- RunTabContent: trigger_type badge, duration, cache rate in run rows
- TranslationRunResult: deduplicate=true by default, paginated Load more
- TranslationRunResult: per-language token_count and estimated_cost
- TranslationRunResult: collapsible batch breakdown with timing
- TranslationRunResult: Bulk Replace button in header and records table
- TranslationRunResult: source_data key values shown under source text

i18n: all new keys in EN + RU (load_more_records, showing_records,
sum_*, help_sum_*, trigger_*, batch_*, duration_label, cost_label,
cache_rate, load_more_records)
2026-06-04 13:23:10 +03:00
..
2026-06-02 16:36:00 +03:00
2026-01-22 23:18:48 +03:00

Superset Tools Frontend (SvelteKit)

This is the frontend for the Superset Tools application, built with SvelteKit in SPA mode.

Development

  1. Install dependencies:

    npm install
    
  2. Run development server:

    npm run dev
    

    The frontend will be available at http://localhost:5173. It is configured to proxy API requests to http://localhost:8000.

Production Build

  1. Build the static SPA:

    npm run build
    

    This generates a static SPA in the build/ directory.

  2. Serve with Backend: The Python backend is configured to serve the files from frontend/build/. Ensure the backend is running:

    cd ../backend
    python src/app.py
    

Architecture

  • Routing: File-based routing in src/routes/.
  • Layouts: Shared UI in src/routes/+layout.svelte.
  • Data Loading: load functions in +page.ts for efficient data fetching.
  • API Client: Centralized API logic in src/lib/api.js.
  • Styling: Tailwind CSS.