diff --git a/docker-relay-config.toml b/docker-relay-config.toml index ca9c3e4a..b321f21f 100644 --- a/docker-relay-config.toml +++ b/docker-relay-config.toml @@ -23,5 +23,6 @@ level = "info" # Explicitly allow these event kinds # 0: Metadata, 1: Text Note, 5: Event Deletion, 30000: Categorized People List # 30301: Kanban Board, 30302: Kanban Card, 30303: Kanban Snapshot, 20001: Ephemeral Soft Lock -event_kind_allowlist = [0, 1, 5, 30000, 30301, 30302, 30303, 20001] +# 30023: Long Text +event_kind_allowlist = [0, 1, 5, 30000, 30301, 30302, 30303, 30023, 20001] diff --git a/e2e/test-helpers.ts b/e2e/test-helpers.ts index 813a6363..9b61c2b4 100644 --- a/e2e/test-helpers.ts +++ b/e2e/test-helpers.ts @@ -260,9 +260,9 @@ export async function loginWithTestUser(page: Page, user: TestUser) { // Development-Login (wenn verfügbar) await page.evaluate((userData) => { - // @ts-ignore + // @ts-expect-error if (window.authStore && window.authStore.loginWithDummy) { - // @ts-ignore + // @ts-expect-error window.authStore.loginWithDummy(userData.name, userData.pubkey); } }, user); @@ -290,7 +290,7 @@ export async function loginWithTestUser(page: Page, user: TestUser) { await page.locator('button:has-text("Anmelden")').click(); } } - } catch (e) { + } catch { console.log('UI-Login fehlgeschlagen, nutze Development-API'); } @@ -337,13 +337,12 @@ export async function shareTestBoard( const { pubkey, role } = args; try { - // @ts-ignore if (window.boardStore) { if (role === 'editor') { - // @ts-ignore + // @ts-expect-error await window.boardStore.addEditor(pubkey); } else { - // @ts-ignore + // @ts-expect-error await window.boardStore.addViewer(pubkey); } return true; @@ -448,7 +447,7 @@ export async function attemptBoardAction( ): Promise<{ success: boolean; error?: string; data?: any }> { try { switch (action) { - case 'createCard': + case 'createCard': { const addButton = page.locator('button:has-text("Neue Karte")').first(); if (!(await addButton.isVisible())) { return { success: false, error: 'Add Card button not visible' }; @@ -460,8 +459,8 @@ export async function attemptBoardAction( await expect(page.locator(`text="${options?.title || 'Test Karte'}"`)).toBeVisible({ timeout: 3000 }); return { success: true, data: { title: options?.title || 'Test Karte' } }; - - case 'createColumn': + } + case 'createColumn': { const columnButton = page.locator('button:has-text("Neue Spalte")').first(); if (!(await columnButton.isVisible())) { return { success: false, error: 'Add Column button not visible' }; @@ -473,8 +472,8 @@ export async function attemptBoardAction( await expect(page.locator(`text="${options?.name || 'Test Spalte'}"`)).toBeVisible({ timeout: 3000 }); return { success: true, data: { name: options?.name || 'Test Spalte' } }; - - case 'deleteBoard': + } + case 'deleteBoard': { const settingsButton = page.locator('button:has-text("Einstellungen")').first(); if (!(await settingsButton.isVisible())) { return { success: false, error: 'Settings button not visible' }; @@ -492,8 +491,8 @@ export async function attemptBoardAction( // Prüfe ob zur Board-Liste umgeleitet await expect(page.locator('text="Boards"')).toBeVisible({ timeout: 5000 }); return { success: true }; - - case 'editCard': + } + case 'editCard': { const card = page.locator('[data-testid="card"]').or( page.locator('text="Test Karte"') ).first(); @@ -509,7 +508,7 @@ export async function attemptBoardAction( await expect(page.locator(`text="${options?.newTitle || 'Edited Card'}"`)).toBeVisible({ timeout: 3000 }); return { success: true, data: { newTitle: options?.newTitle || 'Edited Card' } }; - + } default: return { success: false, error: `Unknown action: ${action}` }; } diff --git a/eslint.config.js b/eslint.config.js index 134b1b29..3ade6cbd 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -18,9 +18,14 @@ export default defineConfig( languageOptions: { globals: { ...globals.browser, ...globals.node } }, - rules: { // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. - // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors - "no-undef": 'off' } + rules: { + // typescript-eslint strongly recommend that you do not use the no-undef lint rule on TypeScript projects. + // see: https://typescript-eslint.io/troubleshooting/faqs/eslint/#i-get-errors-from-the-no-undef-rule-about-global-variables-not-being-defined-even-though-there-are-no-typescript-errors + 'no-undef': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + '@typescript-eslint/no-explicit-any': 'off', + 'svelte/require-each-key': 'off' + } }, { files: [ diff --git a/src/lib/agent/llmRequest.ts b/src/lib/agent/llmRequest.ts index 448e5643..3ad8bc20 100644 --- a/src/lib/agent/llmRequest.ts +++ b/src/lib/agent/llmRequest.ts @@ -143,7 +143,7 @@ export async function llmRequest( try { return JSON.parse(content) as T; } catch (err) { - console.error('❌ JSON Parse Error:', content); + console.error('❌ JSON Parse Error:', (err as Error).message); throw new Error(`LLM returned invalid JSON: ${content.substring(0, 100)}`); } } diff --git a/src/lib/classes/BoardModel.card-operations.spec.ts b/src/lib/classes/BoardModel.card-operations.spec.ts index 9fb93510..91f7efba 100644 --- a/src/lib/classes/BoardModel.card-operations.spec.ts +++ b/src/lib/classes/BoardModel.card-operations.spec.ts @@ -13,9 +13,9 @@ * Für Integration Tests mit echtem Relay siehe: BoardModel.card-integration.spec.ts */ -import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'; -import { Board, Column, Card } from './BoardModel'; -import type { BoardProps, CardProps } from './BoardModel'; +import { describe, it, expect, vi } from 'vitest'; +import { Board, Card } from './BoardModel'; +import type { CardProps } from './BoardModel'; // ============================================================================ // TEST HELPERS diff --git a/src/lib/components/CardEditModal.svelte b/src/lib/components/CardEditModal.svelte index e04f4430..dd1e3897 100644 --- a/src/lib/components/CardEditModal.svelte +++ b/src/lib/components/CardEditModal.svelte @@ -1,4 +1,5 @@