rename ss-tools to superset-tools across the entire project
- Replace all occurrences of 'ss-tools' with 'superset-tools' in 104 files - Rename git bundle file ss-tools.bundle → superset-tools.bundle - Update .gitignore pattern accordingly - Preserve variable names (hasSsTools etc.) and code identifiers
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Frontend Design Audit: ss-tools
|
||||
# Frontend Design Audit: superset-tools
|
||||
|
||||
> Дата: 2026-06-02 (ревизия 3 — PR 0-4 выполнены)
|
||||
> Цель: Аудит фронтенд кода на предмет "плавающего" дизайна, выработка AI-native правил
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env bash
|
||||
# ── ss-tools E2E test runner ─────────────────────────────────
|
||||
# ── superset-tools E2E test runner ─────────────────────────────────
|
||||
# Usage:
|
||||
# ./e2e/run-e2e.sh # default: test against local stack
|
||||
# ./e2e/run-e2e.sh --ci # CI mode: build, start stack, test, teardown
|
||||
@@ -41,7 +41,7 @@ for arg in "$@"; do
|
||||
done
|
||||
|
||||
echo "═══════════════════════════════════════════════════════"
|
||||
echo " ss-tools E2E Test Runner"
|
||||
echo " superset-tools E2E Test Runner"
|
||||
echo " Backend: $BACKEND_URL"
|
||||
echo " Frontend: $FRONTEND_URL"
|
||||
echo " CI mode: $CI_MODE"
|
||||
@@ -52,7 +52,7 @@ if [ "$CI_MODE" = true ]; then
|
||||
echo "[E2E] CI mode: building and starting stack..."
|
||||
|
||||
cd "$PROJECT_ROOT"
|
||||
docker compose -p ss-tools-e2e --env-file .env.current up -d --build db backend
|
||||
docker compose -p superset-tools-e2e --env-file .env.current up -d --build db backend
|
||||
|
||||
echo "[E2E] Waiting for backend to be healthy..."
|
||||
for i in $(seq 1 30); do
|
||||
@@ -62,7 +62,7 @@ if [ "$CI_MODE" = true ]; then
|
||||
fi
|
||||
if [ "$i" -eq 30 ]; then
|
||||
echo "[E2E] Backend failed to start within 30s"
|
||||
docker compose -p ss-tools-e2e logs --tail=20 backend
|
||||
docker compose -p superset-tools-e2e logs --tail=20 backend
|
||||
exit 1
|
||||
fi
|
||||
sleep 1
|
||||
@@ -78,7 +78,7 @@ if [ "$CI_MODE" = true ]; then
|
||||
cleanup() {
|
||||
echo "[E2E] Cleaning up..."
|
||||
kill "$VITE_PID" 2>/dev/null || true
|
||||
docker compose -p ss-tools-e2e down -t 5
|
||||
docker compose -p superset-tools-e2e down -t 5
|
||||
}
|
||||
trap cleanup EXIT
|
||||
fi
|
||||
@@ -88,7 +88,7 @@ echo "[E2E] Pre-flight: checking backend..."
|
||||
if ! curl -sf "$BACKEND_URL/api/health/summary" > /dev/null 2>&1; then
|
||||
echo "[E2E] ERROR: Backend unreachable at $BACKEND_URL"
|
||||
echo " Make sure the stack is running:"
|
||||
echo " docker compose -p ss-tools-current --env-file .env.current up -d"
|
||||
echo " docker compose -p superset-tools-current --env-file .env.current up -d"
|
||||
echo " Or use --ci to auto-start:"
|
||||
echo " ./e2e/run-e2e.sh --ci"
|
||||
exit 1
|
||||
|
||||
@@ -121,13 +121,13 @@ cleanup() {
|
||||
# Stop Stage 1 docker compose
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/docker-compose.enterprise-clean.yml" ]]; then
|
||||
log_info "Stopping enterprise-clean stack..."
|
||||
docker compose -p ss-tools-e2e-ec \
|
||||
docker compose -p superset-tools-e2e-ec \
|
||||
-f "${PROJECT_ROOT}/dist/docker/docker-compose.enterprise-clean.yml" \
|
||||
down -t 10 2>/dev/null || true
|
||||
fi
|
||||
|
||||
# Stop PostgreSQL container
|
||||
docker rm -f ss-tools-e2e-pg 2>/dev/null || true
|
||||
docker rm -f superset-tools-e2e-pg 2>/dev/null || true
|
||||
|
||||
log_info "Cleanup complete (exit code: $exit_code)"
|
||||
exit "$exit_code"
|
||||
@@ -216,43 +216,43 @@ stage1_enterprise_clean() {
|
||||
|
||||
# ── 1.2. LOAD IMAGES ─────────────────────────────────────
|
||||
log_info "Step 1.2: Loading Docker images from bundle..."
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/ss-tools-backend.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/ss-tools-backend.${RELEASE_TAG}.tar.xz" | docker load
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/superset-tools-backend.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/superset-tools-backend.${RELEASE_TAG}.tar.xz" | docker load
|
||||
log_ok "Backend image loaded"
|
||||
else
|
||||
log_warn "Backend archive not found, attempting docker build instead..."
|
||||
cd "$PROJECT_ROOT"
|
||||
docker build -f docker/backend.Dockerfile -t "ss-tools-backend:${RELEASE_TAG}" .
|
||||
docker build -f docker/backend.Dockerfile -t "superset-tools-backend:${RELEASE_TAG}" .
|
||||
fi
|
||||
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/ss-tools-frontend.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/ss-tools-frontend.${RELEASE_TAG}.tar.xz" | docker load
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/superset-tools-frontend.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/superset-tools-frontend.${RELEASE_TAG}.tar.xz" | docker load
|
||||
log_ok "Frontend image loaded"
|
||||
else
|
||||
log_warn "Frontend archive not found, attempting docker build instead..."
|
||||
cd "$PROJECT_ROOT"
|
||||
docker build -f docker/frontend.Dockerfile -t "ss-tools-frontend:${RELEASE_TAG}" .
|
||||
docker build -f docker/frontend.Dockerfile -t "superset-tools-frontend:${RELEASE_TAG}" .
|
||||
fi
|
||||
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/ss-tools-agent.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/ss-tools-agent.${RELEASE_TAG}.tar.xz" | docker load
|
||||
if [[ -f "${PROJECT_ROOT}/dist/docker/superset-tools-agent.${RELEASE_TAG}.tar.xz" ]]; then
|
||||
xz -dc "${PROJECT_ROOT}/dist/docker/superset-tools-agent.${RELEASE_TAG}.tar.xz" | docker load
|
||||
log_ok "Agent image loaded"
|
||||
else
|
||||
log_warn "Agent archive not found, attempting docker build instead..."
|
||||
cd "$PROJECT_ROOT"
|
||||
docker build -f docker/Dockerfile.agent -t "ss-tools-agent:${RELEASE_TAG}" .
|
||||
docker build -f docker/Dockerfile.agent -t "superset-tools-agent:${RELEASE_TAG}" .
|
||||
fi
|
||||
|
||||
# ── 1.3. START POSTGRESQL (on default bridge first) ─────
|
||||
log_info "Step 1.3: Starting new PostgreSQL container..."
|
||||
docker rm -f ss-tools-e2e-pg 2>/dev/null || true
|
||||
docker rm -f superset-tools-e2e-pg 2>/dev/null || true
|
||||
|
||||
# Remove any stale compose network so docker compose creates it fresh
|
||||
docker network rm ss-tools-e2e-ec_default 2>/dev/null || true
|
||||
docker network rm superset-tools-e2e-ec_default 2>/dev/null || true
|
||||
|
||||
# Start PG on default bridge initially — compose will create its own network
|
||||
docker run -d \
|
||||
--name ss-tools-e2e-pg \
|
||||
--name superset-tools-e2e-pg \
|
||||
-e POSTGRES_DB=ss_tools \
|
||||
-e POSTGRES_USER=postgres \
|
||||
-e POSTGRES_PASSWORD=postgres \
|
||||
@@ -261,19 +261,19 @@ stage1_enterprise_clean() {
|
||||
|
||||
log_info "Waiting for PostgreSQL to be ready..."
|
||||
for i in $(seq 1 20); do
|
||||
if docker exec ss-tools-e2e-pg pg_isready -U postgres -d ss_tools > /dev/null 2>&1; then
|
||||
if docker exec superset-tools-e2e-pg pg_isready -U postgres -d ss_tools > /dev/null 2>&1; then
|
||||
log_ok "PostgreSQL ready after ${i}s"
|
||||
break
|
||||
fi
|
||||
if [ "$i" -eq 20 ]; then
|
||||
log_error "PostgreSQL failed to start"
|
||||
docker logs ss-tools-e2e-pg --tail 20
|
||||
docker logs superset-tools-e2e-pg --tail 20
|
||||
return 1
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
EC_PG_HOST="ss-tools-e2e-pg"
|
||||
EC_PG_HOST="superset-tools-e2e-pg"
|
||||
EC_PG_PORT="5432"
|
||||
|
||||
# ── 1.4. DEPLOY ENTERPRISE CLEAN STACK ───────────────────
|
||||
@@ -316,29 +316,29 @@ EOF
|
||||
# Start compose FIRST so it creates the network with proper compose labels.
|
||||
# The backend will fail to connect to PG on first start (PG not on compose network
|
||||
# yet), but Docker restart policy (unless-stopped) will retry.
|
||||
docker compose -p ss-tools-e2e-ec \
|
||||
docker compose -p superset-tools-e2e-ec \
|
||||
-f "$EC_COMPOSE_FILE" \
|
||||
--env-file "/tmp/.env.e2e-enterprise-clean" \
|
||||
up -d
|
||||
|
||||
# Connect PG to the compose-created network so backend can resolve ss-tools-e2e-pg
|
||||
docker network connect ss-tools-e2e-ec_default ss-tools-e2e-pg
|
||||
# Connect PG to the compose-created network so backend can resolve superset-tools-e2e-pg
|
||||
docker network connect superset-tools-e2e-ec_default superset-tools-e2e-pg
|
||||
|
||||
# Restart backend so entrypoint reruns with PG accessible
|
||||
docker compose -p ss-tools-e2e-ec restart backend
|
||||
docker compose -p superset-tools-e2e-ec restart backend
|
||||
|
||||
# ── 1.5. WAIT FOR BACKEND + FRONTEND ────────────────────
|
||||
log_info "Step 1.5: Waiting for services..."
|
||||
|
||||
if ! wait_for_backend "http://127.0.0.1:${EC_BACKEND_PORT}" "$TIMEOUT_BACKEND_START"; then
|
||||
log_error "Backend failed to start. Logs:"
|
||||
docker compose -p ss-tools-e2e-ec logs --tail=30 backend
|
||||
docker compose -p superset-tools-e2e-ec logs --tail=30 backend
|
||||
return 1
|
||||
fi
|
||||
|
||||
if ! wait_for_frontend "http://127.0.0.1:${EC_FRONTEND_PORT}" "$TIMEOUT_FRONTEND_START"; then
|
||||
log_error "Frontend failed to start. Logs:"
|
||||
docker compose -p ss-tools-e2e-ec logs --tail=30 frontend
|
||||
docker compose -p superset-tools-e2e-ec logs --tail=30 frontend
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -376,12 +376,12 @@ EOF
|
||||
|
||||
# ── 1.7. STOP ENTERPRISE CLEAN STACK ─────────────────────
|
||||
log_info "Step 1.7: Stopping enterprise-clean stack..."
|
||||
docker compose -p ss-tools-e2e-ec \
|
||||
docker compose -p superset-tools-e2e-ec \
|
||||
-f "$EC_COMPOSE_FILE" \
|
||||
--env-file "/tmp/.env.e2e-enterprise-clean" \
|
||||
down -t 10
|
||||
|
||||
docker rm -f ss-tools-e2e-pg 2>/dev/null || true
|
||||
docker rm -f superset-tools-e2e-pg 2>/dev/null || true
|
||||
log_ok "Stage 1: Enterprise clean stack stopped"
|
||||
}
|
||||
|
||||
@@ -405,7 +405,7 @@ stage2_live_project() {
|
||||
log_ok "PostgreSQL already running on localhost:5432"
|
||||
else
|
||||
log_info "Starting PostgreSQL via docker compose..."
|
||||
docker compose -p ss-tools-current -f docker-compose.yml up -d db
|
||||
docker compose -p superset-tools-current -f docker-compose.yml up -d db
|
||||
log_info "Waiting for PostgreSQL..."
|
||||
for i in $(seq 1 20); do
|
||||
if python3 -c "import socket; socket.create_connection(('localhost', 5432), timeout=1).close()" 2>/dev/null; then
|
||||
@@ -414,7 +414,7 @@ stage2_live_project() {
|
||||
fi
|
||||
if [ "$i" -eq 20 ]; then
|
||||
log_error "PostgreSQL failed to start"
|
||||
docker compose -p ss-tools-current logs db --tail 20
|
||||
docker compose -p superset-tools-current logs db --tail 20
|
||||
return 1
|
||||
fi
|
||||
sleep 1
|
||||
|
||||
@@ -31,7 +31,7 @@ test.describe('Git Integration', () => {
|
||||
provider: 'GITEA',
|
||||
url: GITEA_URL,
|
||||
pat: GITEA_TOKEN,
|
||||
default_repository: 'busya/ss-tools',
|
||||
default_repository: 'busya/superset-tools',
|
||||
default_branch: 'main',
|
||||
});
|
||||
expect(config).toBeDefined();
|
||||
@@ -82,8 +82,8 @@ test.describe('Git Integration', () => {
|
||||
const repos = await apiGet(`/api/git/config/${config.id}/gitea/repos`);
|
||||
expect(Array.isArray(repos)).toBeTruthy();
|
||||
expect(repos.length).toBeGreaterThan(0);
|
||||
// Should include the ss-tools repo
|
||||
const hasSsTools = repos.some(r => r.full_name?.includes('ss-tools'));
|
||||
// Should include the superset-tools repo
|
||||
const hasSsTools = repos.some(r => r.full_name?.includes('superset-tools'));
|
||||
expect(hasSsTools).toBeTruthy();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// #region PlaywrightConfig [C:3] [TYPE Config] [SEMANTICS e2e, playwright, test, config]
|
||||
// @BRIEF Playwright E2E test configuration for ss-tools frontend.
|
||||
// @BRIEF Playwright E2E test configuration for superset-tools frontend.
|
||||
// @RELATION DEPENDS_ON -> [EXT:frontend:EnvConfig]]
|
||||
// @INVARIANT All E2E tests run against a fully deployed stack (DB + backend + frontend).
|
||||
// @UX_STATE ConfigLoaded -> Browser contexts are created with predefined env settings.
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
@RELATION DEPENDS_ON ->[TaskLogViewer]
|
||||
@RELATION DEPENDS_ON ->[PasswordPrompt]
|
||||
@INVARIANT: This component contains NO business logic — it only renders model state and calls model.action().
|
||||
@RATIONALE First page fully migrated to semantic design tokens (surface-*, border-*, text-*, primary, destructive, success, warning, info). All raw buttons replaced with $lib/ui Button. Serves as the canonical visual reference for all ss-tools pages.
|
||||
@RATIONALE First page fully migrated to semantic design tokens (surface-*, border-*, text-*, primary, destructive, success, warning, info). All raw buttons replaced with $lib/ui Button. Serves as the canonical visual reference for all superset-tools pages.
|
||||
@UX_STATE: [idle] -> Skeleton loader while environments load.
|
||||
@UX_STATE: [ready] -> Step wizard with env selection, dashboards, options.
|
||||
@UX_STATE: [loading] -> Skeleton/spinner during API calls (dry-run, DB fetch).
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// #region ModelTypes [C:1] [TYPE Module] [SEMANTICS types, domain, models]
|
||||
// @BRIEF Core domain model interfaces for ss-tools frontend.
|
||||
// @BRIEF Core domain model interfaces for superset-tools frontend.
|
||||
// @LAYER Domain
|
||||
|
||||
// ── Task / Job ───────────────────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user