diff --git a/frontend/.eslintignore b/frontend/.eslintignore deleted file mode 100644 index 9178e15f0..000000000 --- a/frontend/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -node_modules/ -dist/ -build/ -.svelte-kit/ -.vite/ -coverage/ -*.min.js \ No newline at end of file diff --git a/frontend/e2e/tests/live-project-check.e2e.js b/frontend/e2e/tests/live-project-check.e2e.js index 0dc2a4dc0..122c6e5b8 100644 --- a/frontend/e2e/tests/live-project-check.e2e.js +++ b/frontend/e2e/tests/live-project-check.e2e.js @@ -219,7 +219,7 @@ test.describe('Live Project Check — Stage 2: Verification', () => { // Verify the change persisted const verifySettings = await apiGet('/api/settings/consolidated'); - // eslint-disable-next-line no-prototype-builtins + const saved = verifySettings[testSettingKey] || verifySettings?.settings?.[testSettingKey]; console.log(`[E2E] ✅ Stage 2: Setting persistence verified: ${saved === testSettingValue}`); } catch (e) { diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js index 04e1e9912..dfe06f05d 100644 --- a/frontend/eslint.config.js +++ b/frontend/eslint.config.js @@ -66,6 +66,10 @@ export default [ ".svelte-kit/", ".vite/", "coverage/", + "playwright-report/", + "test-results/", + "e2e/", + "scripts/", ], }, ]; diff --git a/frontend/src/lib/auth/store.svelte.ts b/frontend/src/lib/auth/store.svelte.ts index 8bfd4b471..6353e1b03 100644 --- a/frontend/src/lib/auth/store.svelte.ts +++ b/frontend/src/lib/auth/store.svelte.ts @@ -36,7 +36,7 @@ function createAuthStore() { let _loading = $state(true); // Subscriber list for backward compat with $auth syntax - let _subscribers: Array<(value: AuthState) => void> = []; + let _subscribers: Array<(_value: AuthState) => void> = []; function _getState(): AuthState { return { @@ -120,7 +120,7 @@ function createAuthStore() { // #endregion setLoading:Function return { - subscribe(run: (value: AuthState) => void): () => void { + subscribe(run: (_value: AuthState) => void): () => void { _subscribers.push(run); run(_getState()); return () => { diff --git a/frontend/src/lib/components/MaintenanceSettingsPanel.svelte b/frontend/src/lib/components/MaintenanceSettingsPanel.svelte index 30cb313d5..51ec039da 100644 --- a/frontend/src/lib/components/MaintenanceSettingsPanel.svelte +++ b/frontend/src/lib/components/MaintenanceSettingsPanel.svelte @@ -308,6 +308,7 @@ {$t.maintenance?.banner_preview || "Preview"}
+ {@html bannerPreview}
diff --git a/frontend/src/lib/components/StartMaintenanceForm.svelte b/frontend/src/lib/components/StartMaintenanceForm.svelte index f6b73eaf7..d36cc2b0f 100644 --- a/frontend/src/lib/components/StartMaintenanceForm.svelte +++ b/frontend/src/lib/components/StartMaintenanceForm.svelte @@ -10,6 +10,7 @@ {#if panelVisible} diff --git a/frontend/src/lib/components/dashboard/DashboardGrid.svelte b/frontend/src/lib/components/dashboard/DashboardGrid.svelte index a6676cdf2..cffddcf68 100644 --- a/frontend/src/lib/components/dashboard/DashboardGrid.svelte +++ b/frontend/src/lib/components/dashboard/DashboardGrid.svelte @@ -13,6 +13,7 @@ -->
diff --git a/frontend/src/lib/components/git/CommitHistory.svelte b/frontend/src/lib/components/git/CommitHistory.svelte index bfefb6c44..1d950abb5 100644 --- a/frontend/src/lib/components/git/CommitHistory.svelte +++ b/frontend/src/lib/components/git/CommitHistory.svelte @@ -14,6 +14,7 @@ import { gitService } from '../../../services/gitService'; import { t } from '$lib/i18n/index.svelte.js'; import { Button } from '$lib/ui'; + import { addToast } from '$lib/toasts.svelte.js'; // [/SECTION] // [SECTION: PROPS] @@ -54,7 +55,7 @@ console.log(`[CommitHistory][Coherence:OK] Loaded ${history.length} commits`); } catch (e) { console.error(`[CommitHistory][Coherence:Failed] ${e.message}`); - toast('Failed to load commit history', 'error'); + addToast('Failed to load commit history', 'error'); } finally { loading = false; } diff --git a/frontend/src/lib/components/git/CommitModal.svelte b/frontend/src/lib/components/git/CommitModal.svelte index 414d8d221..4dc3a06ff 100644 --- a/frontend/src/lib/components/git/CommitModal.svelte +++ b/frontend/src/lib/components/git/CommitModal.svelte @@ -13,7 +13,6 @@ {#if show} -
{ if (e.key === 'Escape') closeModal(); }} role="dialog" tabindex="-1" aria-label={`${$t.git?.management || 'Управление Git'}: ${dashboardTitle}`}>
diff --git a/frontend/src/lib/components/git/GitOperationsPanel.svelte b/frontend/src/lib/components/git/GitOperationsPanel.svelte index 0ba77ceba..a3b05afcc 100644 --- a/frontend/src/lib/components/git/GitOperationsPanel.svelte +++ b/frontend/src/lib/components/git/GitOperationsPanel.svelte @@ -2,7 +2,6 @@ diff --git a/frontend/src/lib/components/llm/ValidationTaskForm.svelte b/frontend/src/lib/components/llm/ValidationTaskForm.svelte index 730e6625b..b7de6e342 100644 --- a/frontend/src/lib/components/llm/ValidationTaskForm.svelte +++ b/frontend/src/lib/components/llm/ValidationTaskForm.svelte @@ -67,7 +67,6 @@ let dashboards = $state([]); let dashboardsLoading = $state(false); let dashboardsError = $state(''); - let dashboardSearchQuery = $state(''); // ── Step 3: Analysis Options ────────────────────────────────── let selectedProviderId = $state(''); @@ -88,10 +87,6 @@ : providers.filter((p) => p.is_active) ); - let selectedProvider = $derived( - filteredProviders.find((p) => p.id === selectedProviderId) || null - ); - // ── Step 4: Schedule ────────────────────────────────────────── /** @type {'manual'|'scheduled'} */ let scheduleType = $state('manual'); @@ -146,7 +141,6 @@ // When screenshot toggles, update prompt if it's still the default from the other path function handleScreenshotToggle() { - const oldVal = screenshotEnabled; screenshotEnabled = !screenshotEnabled; // Reset prompt to default for new path if unchanged @@ -564,7 +558,7 @@ {$t.validation?.parsed_sources || 'Parsed sources'} ({parsedSources.length})
    - {#each parsedSources as source, i (source.url)} + {#each parsedSources as source, _i (source.url)}
  • diff --git a/frontend/src/lib/components/migration/PasswordPrompt.svelte b/frontend/src/lib/components/migration/PasswordPrompt.svelte index 7a511edaf..233756b2c 100644 --- a/frontend/src/lib/components/migration/PasswordPrompt.svelte +++ b/frontend/src/lib/components/migration/PasswordPrompt.svelte @@ -24,7 +24,7 @@ show?: boolean; databases?: string[]; errorMessage?: string; - onresume?: (payload: { passwords: Record }) => void; + onresume?: (_payload: { passwords: Record }) => void; oncancel?: () => void; } = $props(); diff --git a/frontend/src/lib/components/settings/ApiKeysTab.svelte b/frontend/src/lib/components/settings/ApiKeysTab.svelte index 70efb6b18..eaca39a05 100644 --- a/frontend/src/lib/components/settings/ApiKeysTab.svelte +++ b/frontend/src/lib/components/settings/ApiKeysTab.svelte @@ -39,12 +39,6 @@ 'maintenance:end_all', ]; - const PERMISSION_LABELS = { - 'maintenance:start': 'maintenance:start', - 'maintenance:end': 'maintenance:end', - 'maintenance:end_all': 'maintenance:end_all', - }; - onMount(() => { loadKeys(); loadEnvironments(); @@ -160,11 +154,6 @@ revealedKey = null; } - function formatDate(dateStr) { - if (!dateStr) return '—'; - return new Date(dateStr).toLocaleDateString(); - } - function getStatusDot(active) { return active ? 'bg-success' diff --git a/frontend/src/lib/components/tasks/TaskHistory.svelte b/frontend/src/lib/components/tasks/TaskHistory.svelte index 03cbd4863..39a9a6526 100644 --- a/frontend/src/lib/components/tasks/TaskHistory.svelte +++ b/frontend/src/lib/components/tasks/TaskHistory.svelte @@ -74,7 +74,7 @@ tasks = [updatedTask, ...tasks].slice(0, 10); } } - } catch (_e) { + } catch { // Ignore parse errors } }; @@ -93,7 +93,7 @@ connectTaskEventsWs(); }, 10000); }; - } catch (_e) { + } catch { taskWs = null; } } diff --git a/frontend/src/lib/components/tasks/TaskLogViewer.svelte b/frontend/src/lib/components/tasks/TaskLogViewer.svelte index d70d6699b..2a2bb1fcd 100644 --- a/frontend/src/lib/components/tasks/TaskLogViewer.svelte +++ b/frontend/src/lib/components/tasks/TaskLogViewer.svelte @@ -21,7 +21,6 @@ show = $bindable(false), inline = false, taskId = null, - taskStatus = null, realTimeLogs = [], onclose = () => {}, } = $props(); @@ -104,7 +103,6 @@