diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 181a31a..13367a2 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -48,7 +48,8 @@ "Bash(__NEW_LINE__ cp /app/data/taskmate.db.backup-20260103-201322 /app/data/taskmate.db)", "Bash(docker system prune:*)", "Bash(docker cp:*)", - "Bash(mv:*)" + "Bash(mv:*)", + "Bash(docker-compose up:*)" ] } } \ No newline at end of file diff --git a/CHANGELOG.txt b/CHANGELOG.txt index fe3e390..4ee181d 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1,6 +1,53 @@ TASKMATE - CHANGELOG ==================== +================================================================================ +04.01.2026 - KÜRZEL-SYSTEM KORRIGIERT +================================================================================ +✅ Datenbankschema: username Feld in initials umbenannt +✅ Login erfolgt jetzt über E-Mail-Adresse (Admin kann weiter mit "admin" einloggen) +✅ E-Mail ist jetzt UNIQUE und NOT NULL +✅ Kürzel (initials) kann in Admin-Benutzerverwaltung bearbeitet werden +✅ Initialen-Anzeige vereinheitlicht - verwendet immer das initials Feld +✅ Redundantes "Initialen" Feld aus Benutzerformular entfernt +✅ Login-Response korrigiert - sendet jetzt initials Feld +✅ Alle Frontend-Komponenten verwenden jetzt das initials Feld +✅ User-API sendet initials statt username +✅ Changelog-Einträge in Wissensdatenbank übertragen +✅ Git-Repository Erkennung im Coding-Tab repariert + +Wichtige Änderungen: +- Login nur noch über E-Mail (nicht mehr über Kürzel) +- Kürzel sind reine Anzeige-Elemente (2 Buchstaben) +- Admin-User hat spezielle E-Mail: admin@taskmate.local +- Initialen-Anzeige jetzt überall konsistent +- Changelog-System: Alle wichtigen Änderungen in Wissen > Changelog dokumentiert +- TaskMate-Kachel in "Gitea-Repo" umbenannt, Git-Repository wird wieder erkannt + +================================================================================ +04.01.2025 - NUTZER-INITIALEN IN ADMIN-BEREICH +================================================================================ +✅ Initialen-Anzeige in Nutzer-Kreisen implementiert +✅ Intelligente Initialen-Generierung aus E-Mail oder Namen +✅ CSS für bessere Darstellung angepasst +✅ Benutzerdefinierte Initialen-Eingabe hinzugefügt +✅ Datenbank-Migration für custom_initials Spalte + +Neue Features: +- Initialen werden jetzt aus dem Kürzel-Feld (username) angezeigt +- Kürzel können über die Admin-Einstellungen geändert werden +- Vereinfachte Logik: Kürzel = Initialen im Nutzerkreis + +Initialen-Logik: +1. Username/Kürzel wird als Initialen angezeigt (z.B. HG, MO) +2. Fallback → Erste zwei Buchstaben des Display Names + +Benutzer-Kürzel aktualisiert: +- hendrik_gebhardt@gmx.de → HG +- momohomma@googlemail.com → MO + +Cache-Version auf 194 erhöht. + ================================================================================ 03.01.2025 - GIT-INTEGRATION CODING-KACHELN ================================================================================ diff --git a/SSH_CLAUDE_ANLEITUNG.txt b/SSH_CLAUDE_ANLEITUNG.txt new file mode 100644 index 0000000..984e7fe --- /dev/null +++ b/SSH_CLAUDE_ANLEITUNG.txt @@ -0,0 +1,105 @@ +# Anleitung: Claude über SSH aus TaskMate starten + +## Voraussetzungen +- SSH-Client auf dem eigenen Computer +- Zugang zu TaskMate + +## Schritt 1: SSH-Schlüsselpaar erstellen + +### Windows (PowerShell/Terminal): +``` +ssh-keygen -t rsa -b 4096 -f %USERPROFILE%\.ssh\taskmate_claude +``` + +### Mac/Linux: +``` +ssh-keygen -t rsa -b 4096 -f ~/.ssh/taskmate_claude +``` + +**Wichtig:** +- Bei der Frage nach einem Passwort ein sicheres Passwort vergeben und merken +- Es werden zwei Dateien erstellt: + - `taskmate_claude` (privater Schlüssel - GEHEIM HALTEN!) + - `taskmate_claude.pub` (öffentlicher Schlüssel) + +## Schritt 2: Öffentlichen Schlüssel übermitteln + +Den Inhalt der Datei `taskmate_claude.pub` an den Administrator senden: + +### Windows: +``` +type %USERPROFILE%\.ssh\taskmate_claude.pub +``` + +### Mac/Linux: +``` +cat ~/.ssh/taskmate_claude.pub +``` + +Der Administrator muss diesen öffentlichen Schlüssel auf dem Server hinterlegen. + +## Schritt 3: SSH-Konfiguration einrichten + +Eine Konfigurationsdatei erstellen für einfacheren Zugriff: + +### Windows: +Datei `%USERPROFILE%\.ssh\config` bearbeiten + +### Mac/Linux: +Datei `~/.ssh/config` bearbeiten + +Folgenden Inhalt hinzufügen: +``` +Host taskmate-claude + HostName [SERVER-IP oder DOMAIN] + User [BENUTZERNAME] + Port [SSH-PORT, standard 22] + IdentityFile ~/.ssh/taskmate_claude +``` + +**Hinweis:** Die Werte in eckigen Klammern müssen vom Administrator bereitgestellt werden. + +## Schritt 4: Verbindung testen + +``` +ssh taskmate-claude +``` + +Bei der ersten Verbindung: +1. Die Fingerprint-Warnung mit "yes" bestätigen +2. Das beim Erstellen des Schlüssels vergebene Passwort eingeben + +## Schritt 5: Integration in TaskMate + +Nach erfolgreicher SSH-Konfiguration: +1. In TaskMate einloggen +2. Zur Kachel "TaskMate -> Claude starten" navigieren +3. Die Funktion sollte nun verfügbar sein + +## Sicherheitshinweise + +- **Privaten Schlüssel niemals weitergeben!** (Datei ohne .pub Endung) +- Das Passwort für den SSH-Schlüssel sicher aufbewahren +- Bei Verlust des privaten Schlüssels muss ein neues Schlüsselpaar erstellt werden + +## Fehlerbehebung + +### "Permission denied" +- Prüfen ob der richtige Schlüssel verwendet wird +- Prüfen ob das Passwort korrekt ist + +### "Connection refused" +- Server-IP/Domain und Port prüfen +- Firewall-Einstellungen prüfen + +### "Host key verification failed" +- Die Datei `~/.ssh/known_hosts` prüfen +- Ggf. alten Eintrag für den Server entfernen + +## Benötigte Informationen vom Administrator + +Der Administrator muss folgende Daten bereitstellen: +1. Server-IP oder Domain +2. SSH-Port (falls nicht Standard 22) +3. Benutzername für SSH-Zugang +4. Bestätigung dass der öffentliche Schlüssel hinterlegt wurde \ No newline at end of file diff --git a/backend/database.js b/backend/database.js index bdb6789..f27c246 100644 --- a/backend/database.js +++ b/backend/database.js @@ -170,6 +170,63 @@ function createTables() { logger.info('Migration: repositories_base_path Spalte zu users hinzugefuegt'); } + // Migration: Add custom_initials column to users + const hasCustomInitials = userColumns.some(col => col.name === 'custom_initials'); + if (!hasCustomInitials) { + db.exec("ALTER TABLE users ADD COLUMN custom_initials TEXT"); + logger.info('Migration: custom_initials Spalte zu users hinzugefuegt'); + } + + // Migration: Add initials column and prepare email + const hasInitials = userColumns.some(col => col.name === 'initials'); + if (!hasInitials && userColumns.some(col => col.name === 'username')) { + logger.info('Migration: Füge initials Spalte hinzu und bereite E-Mail vor'); + + // Zuerst Daten vorbereiten + const users = db.prepare('SELECT id, username, email, custom_initials FROM users').all(); + for (const user of users) { + // Stelle sicher dass jeder Benutzer eine E-Mail hat + if (!user.email || user.email === '') { + if (user.username === 'admin') { + // Admin bekommt eine spezielle E-Mail + db.prepare('UPDATE users SET email = ? WHERE id = ?').run('admin@taskmate.local', user.id); + } else if (user.username.includes('@')) { + // Username enthält bereits E-Mail (wie bei bestehenden Benutzern) + db.prepare('UPDATE users SET email = ? WHERE id = ?').run(user.username, user.id); + } + } + + // Initialen setzen (aus custom_initials oder generieren) + if (!user.custom_initials || user.custom_initials === '') { + let initials = 'XX'; + if (user.username === 'admin') { + initials = 'AD'; + } else if (user.email || user.username.includes('@')) { + // Generiere Initialen aus E-Mail + const emailPart = (user.email || user.username).split('@')[0]; + if (emailPart.includes('_')) { + const parts = emailPart.split('_'); + initials = (parts[0][0] + parts[1][0]).toUpperCase(); + } else if (emailPart.includes('.')) { + const parts = emailPart.split('.'); + initials = (parts[0][0] + parts[1][0]).toUpperCase(); + } else { + initials = emailPart.substring(0, 2).toUpperCase(); + } + } + db.prepare('UPDATE users SET custom_initials = ? WHERE id = ?').run(initials, user.id); + } + } + + // Neue initials Spalte hinzufügen + db.exec("ALTER TABLE users ADD COLUMN initials TEXT"); + + // Daten von custom_initials nach initials kopieren + db.exec("UPDATE users SET initials = custom_initials"); + + logger.info('Migration: initials Spalte hinzugefügt und E-Mail-Daten vorbereitet'); + } + // Proposals (Vorschlaege) db.exec(` CREATE TABLE IF NOT EXISTS proposals ( @@ -536,7 +593,7 @@ async function createDefaultUsers() { const existingUsers = db.prepare('SELECT COUNT(*) as count FROM users').get(); // Admin-Passwort korrigieren (falls aus .env verschieden) - const adminExists = db.prepare('SELECT id, password_hash FROM users WHERE username = ? AND role = ?').get('admin', 'admin'); + const adminExists = db.prepare('SELECT id, password_hash FROM users WHERE email = ? AND role = ?').get('admin@taskmate.local', 'admin'); if (adminExists) { const correctAdminPassword = process.env.ADMIN_PASSWORD || 'admin123'; const bcrypt = require('bcryptjs'); diff --git a/backend/routes/admin.js b/backend/routes/admin.js index aecf264..abdaee7 100644 --- a/backend/routes/admin.js +++ b/backend/routes/admin.js @@ -31,8 +31,8 @@ router.get('/users', (req, res) => { try { const db = getDb(); const users = db.prepare(` - SELECT id, username, display_name, color, role, permissions, email, - created_at, last_login, failed_attempts, locked_until + SELECT id, email, initials, display_name, color, role, permissions, + created_at, last_login, failed_attempts, locked_until, custom_initials FROM users ORDER BY id `).all(); @@ -55,10 +55,10 @@ router.get('/users', (req, res) => { */ router.post('/users', async (req, res) => { try { - const { username, password, displayName, email, role, permissions } = req.body; + const { initials, password, displayName, email, role, permissions } = req.body; // Validierung - if (!username || !password || !displayName || !email) { + if (!initials || !password || !displayName || !email) { return res.status(400).json({ error: 'Kürzel, Passwort, Anzeigename und E-Mail erforderlich' }); } @@ -69,8 +69,8 @@ router.post('/users', async (req, res) => { } // Kürzel muss genau 2 Buchstaben sein - const usernameUpper = username.toUpperCase(); - if (!/^[A-Z]{2}$/.test(usernameUpper)) { + const initialsUpper = initials.toUpperCase(); + if (!/^[A-Z]{2}$/.test(initialsUpper)) { return res.status(400).json({ error: 'Kürzel muss genau 2 Buchstaben sein (z.B. HG)' }); } @@ -80,18 +80,18 @@ router.post('/users', async (req, res) => { const db = getDb(); - // Prüfen ob Kürzel bereits existiert - const existing = db.prepare('SELECT id FROM users WHERE username = ?').get(usernameUpper); - if (existing) { - return res.status(400).json({ error: 'Kürzel bereits vergeben' }); - } - // Prüfen ob E-Mail bereits existiert const existingEmail = db.prepare('SELECT id FROM users WHERE email = ?').get(email.toLowerCase()); if (existingEmail) { return res.status(400).json({ error: 'E-Mail bereits vergeben' }); } + // Prüfen ob Kürzel bereits existiert + const existingInitials = db.prepare('SELECT id FROM users WHERE initials = ?').get(initialsUpper); + if (existingInitials) { + return res.status(400).json({ error: 'Kürzel bereits vergeben' }); + } + // Passwort hashen const passwordHash = await bcrypt.hash(password, 12); @@ -100,23 +100,24 @@ router.post('/users', async (req, res) => { // Benutzer erstellen const result = db.prepare(` - INSERT INTO users (username, password_hash, display_name, color, role, permissions, email) - VALUES (?, ?, ?, ?, ?, ?, ?) + INSERT INTO users (email, initials, password_hash, display_name, color, role, permissions, custom_initials) + VALUES (?, ?, ?, ?, ?, ?, ?, ?) `).run( - usernameUpper, + email.toLowerCase(), + initialsUpper, passwordHash, displayName, defaultColor, role || 'user', JSON.stringify(permissions || []), - email.toLowerCase() + initialsUpper ); - logger.info(`Admin ${req.user.username} hat Benutzer ${usernameUpper} erstellt`); + logger.info(`Admin ${req.user.email} hat Benutzer ${initialsUpper} erstellt`); res.status(201).json({ id: result.lastInsertRowid, - username: usernameUpper, + initials: initialsUpper, displayName, email: email.toLowerCase(), color: defaultColor, @@ -135,7 +136,7 @@ router.post('/users', async (req, res) => { router.put('/users/:id', async (req, res) => { try { const userId = parseInt(req.params.id); - const { displayName, color, role, permissions, password, unlockAccount, email } = req.body; + const { displayName, color, role, permissions, password, unlockAccount, email, initials } = req.body; const db = getDb(); @@ -206,6 +207,24 @@ router.put('/users/:id', async (req, res) => { params.push(email.toLowerCase()); } + if (initials !== undefined) { + // Validierung: Genau 2 Buchstaben + const initialsUpper = initials.toUpperCase(); + if (!/^[A-Z]{2}$/.test(initialsUpper)) { + return res.status(400).json({ error: 'Kürzel muss genau 2 Buchstaben sein (z.B. HG)' }); + } + // Prüfen ob Kürzel bereits von anderem Benutzer verwendet wird + const existingInitials = db.prepare('SELECT id FROM users WHERE initials = ? AND id != ?').get(initialsUpper, userId); + if (existingInitials) { + return res.status(400).json({ error: 'Kürzel bereits vergeben' }); + } + updates.push('initials = ?'); + params.push(initialsUpper); + // Auch custom_initials aktualisieren für Kompatibilität + updates.push('custom_initials = ?'); + params.push(initialsUpper); + } + if (updates.length === 0) { return res.status(400).json({ error: 'Keine Änderungen angegeben' }); } @@ -218,7 +237,7 @@ router.put('/users/:id', async (req, res) => { // Aktualisierten Benutzer zurueckgeben const updatedUser = db.prepare(` SELECT id, username, display_name, color, role, permissions, email, - created_at, last_login, failed_attempts, locked_until + created_at, last_login, failed_attempts, locked_until, custom_initials FROM users WHERE id = ? `).get(userId); diff --git a/backend/routes/auth.js b/backend/routes/auth.js index 6efc438..f77ba36 100644 --- a/backend/routes/auth.js +++ b/backend/routes/auth.js @@ -35,10 +35,15 @@ router.post('/login', async (req, res) => { const db = getDb(); - // Benutzer suchen: Zuerst nach Username "admin", dann nach E-Mail + // Benutzer suchen: Admin kann mit "admin" einloggen, alle anderen mit E-Mail let user; - // User per Username suchen (kann E-Mail-Adresse oder admin sein) - user = db.prepare('SELECT * FROM users WHERE username = ?').get(username); + if (username.toLowerCase() === 'admin') { + // Admin-Login über spezielle E-Mail + user = db.prepare('SELECT * FROM users WHERE email = ? AND role = ?').get('admin@taskmate.local', 'admin'); + } else { + // Normale User loggen sich mit E-Mail ein + user = db.prepare('SELECT * FROM users WHERE email = ?').get(username); + } // Audit-Log Eintrag vorbereiten const logAttempt = (userId, success) => { @@ -131,7 +136,8 @@ router.post('/login', async (req, res) => { csrfToken, user: { id: user.id, - username: user.username, + email: user.email, + initials: user.initials, displayName: user.display_name, color: user.color, role: user.role || 'user', @@ -345,14 +351,15 @@ router.get('/users', authenticateToken, (req, res) => { const db = getDb(); // Nur regulaere Benutzer (nicht Admins) fuer Aufgaben-Zuweisung const users = db.prepare(` - SELECT id, username, display_name, color + SELECT id, email, initials, display_name, color FROM users WHERE role != 'admin' OR role IS NULL `).all(); res.json(users.map(u => ({ id: u.id, - username: u.username, + email: u.email, + initials: u.initials, displayName: u.display_name, color: u.color }))); diff --git a/data/taskmate.db b/data/taskmate.db index 91dd894..c9b878d 100644 Binary files a/data/taskmate.db and b/data/taskmate.db differ diff --git a/data/taskmate.db-shm b/data/taskmate.db-shm index 2c6b23b..b29843b 100644 Binary files a/data/taskmate.db-shm and b/data/taskmate.db-shm differ diff --git a/data/taskmate.db-wal b/data/taskmate.db-wal index bf97269..5d968f5 100644 Binary files a/data/taskmate.db-wal and b/data/taskmate.db-wal differ diff --git a/frontend/css/admin.css b/frontend/css/admin.css index dedde1c..964efc5 100644 --- a/frontend/css/admin.css +++ b/frontend/css/admin.css @@ -108,6 +108,14 @@ font-weight: 600; font-size: 1rem; flex-shrink: 0; + position: relative; +} + +.admin-user-initials { + font-size: 0.875rem; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.05em; } .admin-user-info { diff --git a/frontend/js/admin.js b/frontend/js/admin.js index 33fba8c..8108ca0 100644 --- a/frontend/js/admin.js +++ b/frontend/js/admin.js @@ -150,15 +150,34 @@ class AdminManager { }); } + /** + * Holt die Initialen des Benutzers + */ + getInitials(user) { + // Verwende primär das initials Feld + if (user.initials) { + return user.initials.toUpperCase(); + } + + // Fallback auf custom_initials für Kompatibilität + if (user.custom_initials) { + return user.custom_initials.toUpperCase(); + } + + // Letzer Fallback + return 'XX'; + } + renderUserCard(user) { - const initial = (user.display_name || user.username).charAt(0).toUpperCase(); + const initials = this.getInitials(user); + console.log('Rendering user card for:', user.email || user.username, '- Initials:', initials); const isLocked = user.locked_until && new Date(user.locked_until) > new Date(); const permissions = user.permissions || []; return `
- ${initial} + ${initials}
${this.escapeHtml(user.display_name)}
@@ -236,8 +255,8 @@ class AdminManager { this.currentEditUser = user; this.userModalTitle.textContent = 'Benutzer bearbeiten'; this.editUserId.value = user.id; - this.usernameInput.value = user.username; - this.usernameInput.disabled = true; // Username cannot be changed + this.usernameInput.value = user.initials || ''; + this.usernameInput.disabled = false; // Initials can be changed this.displayNameInput.value = user.display_name; this.emailInput.value = user.email || ''; this.emailInput.disabled = false; @@ -285,9 +304,8 @@ class AdminManager { permissions: this.roleSelect.value === 'admin' ? [] : this.getSelectedPermissions() }; - if (!isEdit) { - data.username = this.usernameInput.value.trim().toUpperCase(); - } + // Kürzel immer mitschicken (bei Create und Update) + data.initials = this.usernameInput.value.trim().toUpperCase(); if (this.passwordInput.value) { data.password = this.passwordInput.value; diff --git a/frontend/js/auth.js b/frontend/js/auth.js index 5bf92f3..245f79c 100644 --- a/frontend/js/auth.js +++ b/frontend/js/auth.js @@ -135,12 +135,14 @@ class AuthManager { // Get user initials getUserInitials() { if (!this.user) return '?'; - - return this.user.username - .split(' ') - .map(part => part.charAt(0).toUpperCase()) - .slice(0, 2) - .join(''); + + // Verwende das initials Feld direkt + if (this.user.initials) { + return this.user.initials.toUpperCase(); + } + + // Fallback für alte Daten + return '??'; } // Get user color diff --git a/frontend/js/board.js b/frontend/js/board.js index 106e65f..f629502 100644 --- a/frontend/js/board.js +++ b/frontend/js/board.js @@ -372,6 +372,7 @@ class BoardManager { const currentUser = users.find(u => u.id === assignee.id); const color = currentUser?.color || assignee.color || '#888'; const name = currentUser?.display_name || assignee.display_name || assignee.username || 'Benutzer'; + const initials = currentUser?.initials || assignee.initials || getInitials(name); const avatar = createElement('span', { className: 'avatar task-assignee-avatar stacked', @@ -380,7 +381,7 @@ class BoardManager { zIndex: 10 - index }, title: name - }, [getInitials(name)]); + }, [initials]); assigneesContainer.appendChild(avatar); }); diff --git a/frontend/js/calendar.js b/frontend/js/calendar.js index 977634f..0b36147 100644 --- a/frontend/js/calendar.js +++ b/frontend/js/calendar.js @@ -868,7 +868,7 @@ class CalendarViewManager { if (task.assignees && task.assignees.length > 0) { task.assignees.forEach(assignee => { const currentUser = users.find(u => u.id === assignee.id); - const initials = currentUser?.username || assignee.username || '??'; + const initials = currentUser?.initials || assignee.initials || '??'; const color = currentUser?.color || assignee.color || '#6B7280'; badges.push({ initials, color }); }); @@ -879,7 +879,7 @@ class CalendarViewManager { if (task.assignedTo) { const user = users.find(u => u.id === task.assignedTo); if (user) { - const initials = user.username || '??'; + const initials = user.initials || '??'; badges.push({ initials, color: user.color || '#6B7280' }); return badges; } diff --git a/frontend/js/dashboard.js b/frontend/js/dashboard.js index a0a20e2..bc6de9a 100644 --- a/frontend/js/dashboard.js +++ b/frontend/js/dashboard.js @@ -251,7 +251,7 @@ class DashboardManager { createElement('span', { className: 'avatar avatar-sm', style: { backgroundColor: task.assignee.color || '#888' } - }, [getInitials(task.assignee.username)]) + }, [task.assignee.initials || getInitials(task.assignee.username || '??')]) ]) : null ].filter(Boolean)); diff --git a/frontend/js/list.js b/frontend/js/list.js index 87596f1..1456685 100644 --- a/frontend/js/list.js +++ b/frontend/js/list.js @@ -443,7 +443,7 @@ class ListViewManager { className: 'avatar', style: { backgroundColor: user.color || '#6366F1' }, title: user.displayName // Tooltip zeigt Name beim Hover - }, [getInitials(user.displayName)]); + }, [user.initials || getInitials(user.displayName)]); avatarContainer.appendChild(avatar); } }); diff --git a/frontend/js/task-modal.js b/frontend/js/task-modal.js index ee5c61d..7f5eb35 100644 --- a/frontend/js/task-modal.js +++ b/frontend/js/task-modal.js @@ -818,7 +818,7 @@ class TaskModalManager { const avatar = createElement('div', { class: 'multi-select-option-avatar', style: `background-color: ${user.color || '#6366F1'}` - }, [getInitials(user.display_name || user.username)]); + }, [user.initials || getInitials(user.display_name || user.username)]); const name = createElement('span', { class: 'multi-select-option-name' }, [user.display_name || user.username]); diff --git a/frontend/sw.js b/frontend/sw.js index 678056e..a1e29bc 100644 --- a/frontend/sw.js +++ b/frontend/sw.js @@ -4,7 +4,7 @@ * Offline support and caching */ -const CACHE_VERSION = '189'; +const CACHE_VERSION = '197'; const CACHE_NAME = 'taskmate-v' + CACHE_VERSION; const STATIC_CACHE_NAME = 'taskmate-static-v' + CACHE_VERSION; const DYNAMIC_CACHE_NAME = 'taskmate-dynamic-v' + CACHE_VERSION; diff --git a/logs/app.log b/logs/app.log index 3fefe9c..cc26bff 100644 --- a/logs/app.log +++ b/logs/app.log @@ -75361,3 +75361,5980 @@ hint: See the 'Note about fast-forwards' in 'git push --help' for details. [2026-01-04T00:23:45.341Z] [INFO] Git directory exists: true [2026-01-04T00:23:45.368Z] [INFO] GET /api/coding/directories/3/status 304 34ms [2026-01-04T00:23:46.231Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T00:24:10.929Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:10.930Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.127Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:11.128Z] [INFO] Commit mit Autor: hendrik_gebhardt@gmx.de +[2026-01-04T00:24:11.283Z] [INFO] Git commit ausgeführt für: TaskMate - "Datenbank bereinigt / Gitea-Integration gefixt" +[2026-01-04T00:24:11.285Z] [INFO] POST /api/coding/directories/3/commit 200 362ms +[2026-01-04T00:24:11.128Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.290Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:11.290Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.290Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:11.290Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.323Z] [INFO] GET /api/coding/directories/3/status 200 36ms +[2026-01-04T00:24:11.333Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:24:11.333Z] [INFO] Git directory exists: false +[2026-01-04T00:24:11.334Z] [INFO] GET /api/coding/directories/5/status 304 9ms +[2026-01-04T00:24:11.357Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:11.357Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.358Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:11.358Z] [INFO] Git directory exists: true +[2026-01-04T00:24:11.389Z] [INFO] GET /api/coding/directories/3/status 304 36ms +[2026-01-04T00:24:11.930Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:24:13.154Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:24:14.258Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:14.258Z] [INFO] Git directory exists: true +[2026-01-04T00:24:14.274Z] [INFO] Lokaler Branch: main +[2026-01-04T00:24:14.274Z] [INFO] Push: lokaler Branch 'main' → Remote Branch 'main' +[2026-01-04T00:24:16.843Z] [INFO] Git push ausgeführt für: TaskMate +[2026-01-04T00:24:16.844Z] [INFO] POST /api/coding/directories/3/push 200 2592ms +[2026-01-04T00:24:16.851Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T00:24:16.879Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:16.880Z] [INFO] Git directory exists: true +[2026-01-04T00:24:16.881Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:16.881Z] [INFO] Git directory exists: true +[2026-01-04T00:24:16.908Z] [INFO] GET /api/coding/directories/3/status 200 34ms +[2026-01-04T00:24:34.331Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T00:24:38.617Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:38.617Z] [INFO] Git directory exists: true +[2026-01-04T00:24:38.617Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:24:38.654Z] [INFO] GET /api/coding/directories/3/status 304 43ms +[2026-01-04T00:24:38.618Z] [INFO] Git directory exists: true +[2026-01-04T00:24:38.663Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:24:38.664Z] [INFO] Git directory exists: false +[2026-01-04T00:24:38.664Z] [INFO] GET /api/coding/directories/5/status 304 5ms +[2026-01-04T00:24:43.242Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:25:01.510Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:25:08.627Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:25:08.628Z] [INFO] Git directory exists: false +[2026-01-04T00:25:08.630Z] [INFO] GET /api/coding/directories/5/status 304 12ms +[2026-01-04T00:25:08.636Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:25:08.637Z] [INFO] Git directory exists: true +[2026-01-04T00:25:08.637Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:25:08.637Z] [INFO] Git directory exists: true +[2026-01-04T00:25:08.682Z] [INFO] GET /api/coding/directories/3/status 304 62ms +[2026-01-04T00:25:13.356Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:25:21.453Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T00:25:35.692Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T00:25:37.764Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:25:38.615Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:25:38.616Z] [INFO] Git directory exists: true +[2026-01-04T00:25:38.616Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:25:38.616Z] [INFO] Git directory exists: true +[2026-01-04T00:25:38.653Z] [INFO] GET /api/coding/directories/3/status 304 48ms +[2026-01-04T00:25:38.658Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:25:38.658Z] [INFO] Git directory exists: false +[2026-01-04T00:25:38.659Z] [INFO] GET /api/coding/directories/5/status 304 4ms +[2026-01-04T00:25:43.475Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:25:58.555Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T00:26:03.268Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:26:08.617Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:26:08.617Z] [INFO] Git directory exists: true +[2026-01-04T00:26:08.618Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:26:08.618Z] [INFO] Git directory exists: true +[2026-01-04T00:26:08.664Z] [INFO] GET /api/coding/directories/3/status 304 54ms +[2026-01-04T00:26:08.678Z] [INFO] Git directory exists: false +[2026-01-04T00:26:08.680Z] [INFO] GET /api/coding/directories/5/status 304 10ms +[2026-01-04T00:26:08.677Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:26:13.579Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:26:16.383Z] [INFO] POST /api/auth/refresh 200 16ms +[2026-01-04T00:26:38.624Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:26:38.624Z] [INFO] Git directory exists: true +[2026-01-04T00:26:38.625Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:26:38.625Z] [INFO] Git directory exists: true +[2026-01-04T00:26:38.667Z] [INFO] GET /api/coding/directories/3/status 304 49ms +[2026-01-04T00:26:38.672Z] [INFO] Git directory exists: false +[2026-01-04T00:26:38.672Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:26:38.673Z] [INFO] GET /api/coding/directories/5/status 304 5ms +[2026-01-04T00:26:43.690Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:27:08.624Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:27:08.625Z] [INFO] Git directory exists: false +[2026-01-04T00:27:08.630Z] [INFO] GET /api/coding/directories/5/status 304 12ms +[2026-01-04T00:27:08.646Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:27:08.647Z] [INFO] Git directory exists: true +[2026-01-04T00:27:08.647Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:27:08.648Z] [INFO] Git directory exists: true +[2026-01-04T00:27:08.681Z] [INFO] GET /api/coding/directories/3/status 304 62ms +[2026-01-04T00:27:13.807Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:27:39.189Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:27:39.190Z] [INFO] Git directory exists: true +[2026-01-04T00:27:39.190Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:27:39.191Z] [INFO] Git directory exists: true +[2026-01-04T00:27:39.218Z] [INFO] GET /api/coding/directories/3/status 304 35ms +[2026-01-04T00:27:39.223Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:27:39.223Z] [INFO] Git directory exists: false +[2026-01-04T00:27:39.226Z] [INFO] GET /api/coding/directories/5/status 304 6ms +[2026-01-04T00:27:43.904Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:27:49.077Z] [INFO] GET / 200 9ms +[2026-01-04T00:27:52.220Z] [INFO] GET / 200 2ms +[2026-01-04T00:28:09.178Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:28:09.178Z] [INFO] Git directory exists: true +[2026-01-04T00:28:09.178Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:28:09.179Z] [INFO] Git directory exists: true +[2026-01-04T00:28:09.204Z] [INFO] GET /api/coding/directories/3/status 200 30ms +[2026-01-04T00:28:09.209Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:28:09.210Z] [INFO] Git directory exists: false +[2026-01-04T00:28:09.211Z] [INFO] GET /api/coding/directories/5/status 304 5ms +[2026-01-04T00:28:13.989Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:28:34.764Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T00:28:38.617Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:28:38.617Z] [INFO] Git directory exists: false +[2026-01-04T00:28:38.620Z] [INFO] GET /api/coding/directories/5/status 304 10ms +[2026-01-04T00:28:38.623Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:28:38.624Z] [INFO] Git directory exists: true +[2026-01-04T00:28:38.624Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:28:38.624Z] [INFO] Git directory exists: true +[2026-01-04T00:28:38.653Z] [INFO] GET /api/coding/directories/3/status 200 42ms +[2026-01-04T00:28:44.096Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:29:05.715Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T00:29:19.322Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T00:29:19.443Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T00:29:19.459Z] [INFO] Datenbank initialisiert +[2026-01-04T00:29:19.466Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T00:29:19.467Z] [INFO] Umgebung: production +[2026-01-04T00:29:19.467Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T00:29:19.467Z] [INFO] Automatische Backups aktiviert +[2026-01-04T00:29:21.604Z] [INFO] GET /api/health 200 25ms +[2026-01-04T00:29:23.688Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (QSkYxSXVClCTZ6gAAAAB) +[2026-01-04T00:29:23.732Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:29:39.195Z] [INFO] Git directory exists: true +[2026-01-04T00:29:39.196Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:29:39.196Z] [INFO] Git directory exists: true +[2026-01-04T00:29:39.261Z] [INFO] GET /api/coding/directories/3/status 200 88ms +[2026-01-04T00:29:39.194Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:29:39.269Z] [INFO] Git directory exists: false +[2026-01-04T00:29:39.269Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:29:39.270Z] [INFO] GET /api/coding/directories/5/status 200 6ms +[2026-01-04T00:29:51.719Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:29:59.405Z] [INFO] GET / 200 19ms +[2026-01-04T00:29:59.473Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (QSkYxSXVClCTZ6gAAAAB) +[2026-01-04T00:29:59.483Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T00:29:59.485Z] [INFO] GET /css/base.css 200 5ms +[2026-01-04T00:29:59.524Z] [INFO] GET /css/components.css 200 7ms +[2026-01-04T00:29:59.525Z] [INFO] GET /css/board.css 200 6ms +[2026-01-04T00:29:59.564Z] [INFO] GET /css/modal.css 200 16ms +[2026-01-04T00:29:59.570Z] [INFO] GET /css/calendar.css 200 15ms +[2026-01-04T00:29:59.575Z] [INFO] GET /css/list.css 200 14ms +[2026-01-04T00:29:59.579Z] [INFO] GET /css/proposals.css 200 11ms +[2026-01-04T00:29:59.581Z] [INFO] GET /css/admin.css 200 7ms +[2026-01-04T00:29:59.585Z] [INFO] GET /css/notifications.css 200 3ms +[2026-01-04T00:29:59.613Z] [INFO] GET /css/gitea.css 200 8ms +[2026-01-04T00:29:59.622Z] [INFO] GET /css/coding.css 200 11ms +[2026-01-04T00:29:59.626Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T00:29:59.628Z] [INFO] GET /css/responsive.css 200 8ms +[2026-01-04T00:29:59.637Z] [INFO] GET /css/mobile.css 200 13ms +[2026-01-04T00:29:59.651Z] [INFO] GET /js/app.js 200 7ms +[2026-01-04T00:29:59.728Z] [INFO] GET /js/sync.js 200 10ms +[2026-01-04T00:29:59.730Z] [INFO] GET /js/auth.js 200 11ms +[2026-01-04T00:29:59.733Z] [INFO] GET /js/store.js 200 11ms +[2026-01-04T00:29:59.737Z] [INFO] GET /js/api.js 200 12ms +[2026-01-04T00:29:59.739Z] [INFO] GET /js/offline.js 200 7ms +[2026-01-04T00:29:59.741Z] [INFO] GET /js/board.js 200 6ms +[2026-01-04T00:29:59.773Z] [INFO] GET /js/calendar.js 200 10ms +[2026-01-04T00:29:59.777Z] [INFO] GET /js/task-modal.js 200 8ms +[2026-01-04T00:29:59.780Z] [INFO] GET /js/list.js 200 8ms +[2026-01-04T00:29:59.781Z] [INFO] GET /js/shortcuts.js 200 6ms +[2026-01-04T00:29:59.788Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T00:29:59.791Z] [INFO] GET /js/admin.js 200 1ms +[2026-01-04T00:29:59.805Z] [INFO] GET /js/proposals.js 200 2ms +[2026-01-04T00:29:59.811Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T00:29:59.814Z] [INFO] GET /js/gitea.js 200 5ms +[2026-01-04T00:29:59.816Z] [INFO] GET /js/knowledge.js 200 6ms +[2026-01-04T00:29:59.820Z] [INFO] GET /js/coding.js 200 2ms +[2026-01-04T00:29:59.823Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T00:29:59.838Z] [INFO] GET /js/utils.js 200 4ms +[2026-01-04T00:29:59.910Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T00:29:59.919Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T00:29:59.924Z] [INFO] GET /assets/icons/task.svg 304 4ms +[2026-01-04T00:29:59.967Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T00:29:59.996Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (ReNa3eVFQjztclALAAAD) +[2026-01-04T00:30:00.011Z] [INFO] GET /api/projects 304 12ms +[2026-01-04T00:30:00.046Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:00.065Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T00:30:00.088Z] [INFO] GET /api/tasks/project/2 304 21ms +[2026-01-04T00:30:00.095Z] [INFO] GET /api/labels/2 304 6ms +[2026-01-04T00:30:00.101Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T00:30:00.154Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T00:30:00.195Z] [INFO] GET /api/notifications 304 8ms +[2026-01-04T00:30:00.232Z] [INFO] GET /api/knowledge/categories 304 7ms +[2026-01-04T00:30:03.891Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:30:05.488Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T00:30:07.858Z] [INFO] GET / 200 5ms +[2026-01-04T00:30:07.918Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (ReNa3eVFQjztclALAAAD) +[2026-01-04T00:30:07.951Z] [INFO] GET /css/calendar.css 200 13ms +[2026-01-04T00:30:07.953Z] [INFO] GET /css/variables.css 200 13ms +[2026-01-04T00:30:07.960Z] [INFO] GET /css/components.css 200 16ms +[2026-01-04T00:30:07.965Z] [INFO] GET /css/base.css 200 17ms +[2026-01-04T00:30:07.967Z] [INFO] GET /css/board.css 200 12ms +[2026-01-04T00:30:07.970Z] [INFO] GET /css/modal.css 200 7ms +[2026-01-04T00:30:07.985Z] [INFO] GET /css/list.css 200 2ms +[2026-01-04T00:30:07.998Z] [INFO] GET /css/admin.css 200 3ms +[2026-01-04T00:30:08.010Z] [INFO] GET /css/notifications.css 200 2ms +[2026-01-04T00:30:08.015Z] [INFO] GET /css/gitea.css 200 3ms +[2026-01-04T00:30:08.017Z] [INFO] GET /css/proposals.css 200 4ms +[2026-01-04T00:30:08.023Z] [INFO] GET /css/coding.css 200 2ms +[2026-01-04T00:30:08.027Z] [INFO] GET /css/knowledge.css 200 5ms +[2026-01-04T00:30:08.031Z] [INFO] GET /css/responsive.css 200 3ms +[2026-01-04T00:30:08.039Z] [INFO] GET /css/mobile.css 200 1ms +[2026-01-04T00:30:08.045Z] [INFO] GET /js/app.js 200 1ms +[2026-01-04T00:30:08.111Z] [INFO] GET /js/api.js 200 7ms +[2026-01-04T00:30:08.112Z] [INFO] GET /js/board.js 200 7ms +[2026-01-04T00:30:08.114Z] [INFO] GET /js/offline.js 200 7ms +[2026-01-04T00:30:08.118Z] [INFO] GET /js/sync.js 200 9ms +[2026-01-04T00:30:08.120Z] [INFO] GET /js/auth.js 200 7ms +[2026-01-04T00:30:08.122Z] [INFO] GET /js/store.js 200 6ms +[2026-01-04T00:30:08.150Z] [INFO] GET /js/task-modal.js 200 7ms +[2026-01-04T00:30:08.152Z] [INFO] GET /js/calendar.js 200 8ms +[2026-01-04T00:30:08.158Z] [INFO] GET /js/shortcuts.js 200 5ms +[2026-01-04T00:30:08.161Z] [INFO] GET /js/list.js 200 6ms +[2026-01-04T00:30:08.164Z] [INFO] GET /js/undo.js 200 7ms +[2026-01-04T00:30:08.171Z] [INFO] GET /js/admin.js 200 3ms +[2026-01-04T00:30:08.180Z] [INFO] GET /js/proposals.js 200 2ms +[2026-01-04T00:30:08.187Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T00:30:08.189Z] [INFO] GET /js/gitea.js 200 4ms +[2026-01-04T00:30:08.193Z] [INFO] GET /js/knowledge.js 200 2ms +[2026-01-04T00:30:08.197Z] [INFO] GET /js/coding.js 200 1ms +[2026-01-04T00:30:08.200Z] [INFO] GET /js/mobile.js 200 1ms +[2026-01-04T00:30:08.209Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T00:30:08.264Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:30:08.266Z] [INFO] GET /assets/icons/task.svg 304 10ms +[2026-01-04T00:30:08.271Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T00:30:08.303Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T00:30:08.344Z] [INFO] GET /api/projects 304 10ms +[2026-01-04T00:30:08.353Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (cPnz5_p4BCmQqqQHAAAF) +[2026-01-04T00:30:08.380Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T00:30:08.387Z] [INFO] GET /api/stats/dashboard?projectId=2 304 12ms +[2026-01-04T00:30:08.392Z] [INFO] GET /api/labels/2 304 4ms +[2026-01-04T00:30:08.406Z] [INFO] GET /api/tasks/project/2 304 13ms +[2026-01-04T00:30:08.408Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:08.448Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 6ms +[2026-01-04T00:30:08.481Z] [INFO] GET /api/notifications 304 4ms +[2026-01-04T00:30:08.515Z] [INFO] GET /api/knowledge/categories 304 4ms +[2026-01-04T00:30:10.446Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:10.448Z] [INFO] POST /api/auth/logout 200 7ms +[2026-01-04T00:30:10.454Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:10.455Z] [INFO] POST /api/auth/logout 200 5ms +[2026-01-04T00:30:10.477Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (cPnz5_p4BCmQqqQHAAAF) +[2026-01-04T00:30:16.216Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:16.217Z] [INFO] POST /api/auth/login 200 522ms +[2026-01-04T00:30:16.259Z] [INFO] GET /api/auth/users 304 11ms +[2026-01-04T00:30:16.299Z] [INFO] GET /api/projects 304 10ms +[2026-01-04T00:30:16.306Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (4nV3LzHJsNnsrVgMAAAH) +[2026-01-04T00:30:16.342Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T00:30:16.348Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T00:30:16.364Z] [INFO] GET /api/tasks/project/2 304 15ms +[2026-01-04T00:30:16.371Z] [INFO] GET /api/labels/2 304 3ms +[2026-01-04T00:30:16.373Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:16.413Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 4ms +[2026-01-04T00:30:16.443Z] [INFO] GET /api/knowledge/categories 304 4ms +[2026-01-04T00:30:19.487Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T00-30-19-469Z.db.enc +[2026-01-04T00:30:19.488Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T00-30-19-469Z.db.enc +[2026-01-04T00:30:19.489Z] [INFO] Backup erstellt: backup_2026-01-04T00-30-19-469Z.db +[2026-01-04T00:30:19.492Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T00:30:20.046Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:30:21.817Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:30:31.242Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (4nV3LzHJsNnsrVgMAAAH) +[2026-01-04T00:30:34.211Z] [INFO] GET / 304 2ms +[2026-01-04T00:30:34.277Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T00:30:34.282Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T00:30:34.284Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T00:30:34.288Z] [INFO] GET /css/board.css 304 3ms +[2026-01-04T00:30:34.293Z] [INFO] GET /css/components.css 304 2ms +[2026-01-04T00:30:34.294Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T00:30:34.303Z] [INFO] GET /css/list.css 304 0ms +[2026-01-04T00:30:34.318Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T00:30:34.319Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T00:30:34.326Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T00:30:34.329Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T00:30:34.331Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T00:30:34.335Z] [INFO] GET /css/knowledge.css 304 2ms +[2026-01-04T00:30:34.349Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T00:30:34.350Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T00:30:34.360Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T00:30:34.460Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T00:30:34.463Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T00:30:34.466Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T00:30:34.470Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T00:30:34.473Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T00:30:34.475Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T00:30:34.490Z] [INFO] GET /js/calendar.js 304 0ms +[2026-01-04T00:30:34.492Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T00:30:34.496Z] [INFO] GET /js/list.js 304 0ms +[2026-01-04T00:30:34.503Z] [INFO] GET /js/shortcuts.js 304 0ms +[2026-01-04T00:30:34.505Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T00:30:34.512Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T00:30:34.521Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T00:30:34.522Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T00:30:34.525Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T00:30:34.534Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T00:30:34.541Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T00:30:34.548Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T00:30:34.557Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T00:30:34.614Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T00:30:34.616Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T00:30:34.624Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T00:30:34.667Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T00:30:34.697Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (ygirrg-GM27srTKWAAAJ) +[2026-01-04T00:30:34.706Z] [INFO] GET /api/projects 304 4ms +[2026-01-04T00:30:34.741Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:34.751Z] [INFO] GET /api/columns/2 304 12ms +[2026-01-04T00:30:34.771Z] [INFO] GET /api/tasks/project/2 304 18ms +[2026-01-04T00:30:34.779Z] [INFO] GET /api/stats/dashboard?projectId=2 304 6ms +[2026-01-04T00:30:34.784Z] [INFO] GET /api/labels/2 304 5ms +[2026-01-04T00:30:34.830Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 4ms +[2026-01-04T00:30:34.870Z] [INFO] GET /api/notifications 304 9ms +[2026-01-04T00:30:34.913Z] [INFO] GET /api/knowledge/categories 304 9ms +[2026-01-04T00:30:35.254Z] [INFO] GET / 200 5ms +[2026-01-04T00:30:35.318Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (ygirrg-GM27srTKWAAAJ) +[2026-01-04T00:30:35.334Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T00:30:35.337Z] [INFO] GET /css/components.css 200 7ms +[2026-01-04T00:30:35.340Z] [INFO] GET /css/board.css 200 9ms +[2026-01-04T00:30:35.344Z] [INFO] GET /css/base.css 200 11ms +[2026-01-04T00:30:35.348Z] [INFO] GET /css/modal.css 200 12ms +[2026-01-04T00:30:35.350Z] [INFO] GET /css/calendar.css 200 8ms +[2026-01-04T00:30:35.370Z] [INFO] GET /css/list.css 200 2ms +[2026-01-04T00:30:35.374Z] [INFO] GET /css/admin.css 200 2ms +[2026-01-04T00:30:35.402Z] [INFO] GET /css/notifications.css 200 3ms +[2026-01-04T00:30:35.403Z] [INFO] GET /css/proposals.css 200 3ms +[2026-01-04T00:30:35.404Z] [INFO] GET /css/coding.css 200 3ms +[2026-01-04T00:30:35.408Z] [INFO] GET /css/gitea.css 200 5ms +[2026-01-04T00:30:35.410Z] [INFO] GET /css/knowledge.css 200 5ms +[2026-01-04T00:30:35.411Z] [INFO] GET /css/responsive.css 200 2ms +[2026-01-04T00:30:35.431Z] [INFO] GET /css/mobile.css 200 2ms +[2026-01-04T00:30:35.436Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T00:30:35.500Z] [INFO] GET /js/sync.js 200 2ms +[2026-01-04T00:30:35.503Z] [INFO] GET /js/store.js 200 4ms +[2026-01-04T00:30:35.510Z] [INFO] GET /js/auth.js 200 6ms +[2026-01-04T00:30:35.511Z] [INFO] GET /js/offline.js 200 5ms +[2026-01-04T00:30:35.513Z] [INFO] GET /js/board.js 200 6ms +[2026-01-04T00:30:35.514Z] [INFO] GET /js/api.js 200 6ms +[2026-01-04T00:30:35.531Z] [INFO] GET /js/task-modal.js 200 2ms +[2026-01-04T00:30:35.540Z] [INFO] GET /js/shortcuts.js 200 2ms +[2026-01-04T00:30:35.543Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T00:30:35.549Z] [INFO] GET /js/undo.js 200 3ms +[2026-01-04T00:30:35.551Z] [INFO] GET /js/list.js 200 3ms +[2026-01-04T00:30:35.565Z] [INFO] GET /js/proposals.js 200 1ms +[2026-01-04T00:30:35.570Z] [INFO] GET /js/admin.js 200 1ms +[2026-01-04T00:30:35.579Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T00:30:35.580Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T00:30:35.582Z] [INFO] GET /js/knowledge.js 200 4ms +[2026-01-04T00:30:35.587Z] [INFO] GET /js/coding.js 200 1ms +[2026-01-04T00:30:35.596Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T00:30:35.601Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T00:30:35.652Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T00:30:35.656Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T00:30:35.661Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T00:30:35.704Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T00:30:35.732Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (utZmojEfEivu55laAAAL) +[2026-01-04T00:30:35.739Z] [INFO] GET /api/projects 304 4ms +[2026-01-04T00:30:35.774Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:35.785Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T00:30:35.792Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T00:30:35.810Z] [INFO] GET /api/tasks/project/2 304 23ms +[2026-01-04T00:30:35.812Z] [INFO] GET /api/labels/2 304 25ms +[2026-01-04T00:30:35.856Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 7ms +[2026-01-04T00:30:35.894Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T00:30:35.929Z] [INFO] GET /api/knowledge/categories 304 4ms +[2026-01-04T00:30:36.324Z] [INFO] GET /sw.js 304 3ms +[2026-01-04T00:30:37.091Z] [INFO] GET / 200 4ms +[2026-01-04T00:30:37.149Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (utZmojEfEivu55laAAAL) +[2026-01-04T00:30:37.173Z] [INFO] GET /css/board.css 200 11ms +[2026-01-04T00:30:37.176Z] [INFO] GET /css/modal.css 200 12ms +[2026-01-04T00:30:37.179Z] [INFO] GET /css/calendar.css 200 10ms +[2026-01-04T00:30:37.182Z] [INFO] GET /css/variables.css 200 11ms +[2026-01-04T00:30:37.184Z] [INFO] GET /css/base.css 200 6ms +[2026-01-04T00:30:37.186Z] [INFO] GET /css/components.css 200 5ms +[2026-01-04T00:30:37.214Z] [INFO] GET /css/list.css 200 2ms +[2026-01-04T00:30:37.220Z] [INFO] GET /css/admin.css 200 3ms +[2026-01-04T00:30:37.237Z] [INFO] GET /css/gitea.css 200 7ms +[2026-01-04T00:30:37.239Z] [INFO] GET /css/notifications.css 200 7ms +[2026-01-04T00:30:37.243Z] [INFO] GET /css/proposals.css 200 9ms +[2026-01-04T00:30:37.248Z] [INFO] GET /css/knowledge.css 200 3ms +[2026-01-04T00:30:37.251Z] [INFO] GET /css/coding.css 200 5ms +[2026-01-04T00:30:37.253Z] [INFO] GET /css/responsive.css 200 4ms +[2026-01-04T00:30:37.267Z] [INFO] GET /css/mobile.css 200 2ms +[2026-01-04T00:30:37.273Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T00:30:37.486Z] [INFO] GET /js/auth.js 200 4ms +[2026-01-04T00:30:37.487Z] [INFO] GET /js/api.js 200 4ms +[2026-01-04T00:30:37.490Z] [INFO] GET /js/store.js 200 4ms +[2026-01-04T00:30:37.491Z] [INFO] GET /js/offline.js 200 2ms +[2026-01-04T00:30:37.492Z] [INFO] GET /js/sync.js 200 6ms +[2026-01-04T00:30:37.498Z] [INFO] GET /js/board.js 200 3ms +[2026-01-04T00:30:37.517Z] [INFO] GET /js/calendar.js 200 2ms +[2026-01-04T00:30:37.517Z] [INFO] GET /js/task-modal.js 200 1ms +[2026-01-04T00:30:37.523Z] [INFO] GET /js/list.js 200 3ms +[2026-01-04T00:30:37.524Z] [INFO] GET /js/shortcuts.js 200 1ms +[2026-01-04T00:30:37.553Z] [INFO] GET /js/undo.js 200 5ms +[2026-01-04T00:30:37.557Z] [INFO] GET /js/admin.js 200 7ms +[2026-01-04T00:30:37.560Z] [INFO] GET /js/proposals.js 200 9ms +[2026-01-04T00:30:37.562Z] [INFO] GET /js/notifications.js 200 6ms +[2026-01-04T00:30:37.565Z] [INFO] GET /js/gitea.js 200 6ms +[2026-01-04T00:30:37.566Z] [INFO] GET /js/knowledge.js 200 5ms +[2026-01-04T00:30:37.583Z] [INFO] GET /js/coding.js 200 1ms +[2026-01-04T00:30:37.589Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T00:30:37.590Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T00:30:37.647Z] [INFO] GET /assets/icons/task.svg 304 17ms +[2026-01-04T00:30:37.646Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T00:30:37.654Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T00:30:37.695Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T00:30:37.729Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (5rsE1fykB3vcip-eAAAN) +[2026-01-04T00:30:37.734Z] [INFO] GET /api/projects 304 9ms +[2026-01-04T00:30:37.778Z] [INFO] GET /api/columns/2 304 11ms +[2026-01-04T00:30:37.784Z] [INFO] GET /api/stats/dashboard?projectId=2 304 14ms +[2026-01-04T00:30:37.789Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:37.788Z] [INFO] GET /api/labels/2 304 3ms +[2026-01-04T00:30:37.805Z] [INFO] GET /api/tasks/project/2 304 15ms +[2026-01-04T00:30:37.846Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 6ms +[2026-01-04T00:30:37.885Z] [INFO] GET /api/notifications 304 8ms +[2026-01-04T00:30:37.923Z] [INFO] GET /api/knowledge/categories 304 7ms +[2026-01-04T00:30:39.699Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:39.703Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:39.700Z] [INFO] POST /api/auth/logout 200 8ms +[2026-01-04T00:30:39.704Z] [INFO] POST /api/auth/logout 200 3ms +[2026-01-04T00:30:39.728Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (5rsE1fykB3vcip-eAAAN) +[2026-01-04T00:30:42.820Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T00:30:42.821Z] [INFO] POST /api/auth/login 200 480ms +[2026-01-04T00:30:42.859Z] [INFO] GET /api/auth/users 304 3ms +[2026-01-04T00:30:42.897Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (kwJ5bVATync7H-rxAAAP) +[2026-01-04T00:30:42.907Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T00:30:42.943Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:30:42.955Z] [INFO] GET /api/stats/dashboard?projectId=2 304 6ms +[2026-01-04T00:30:42.974Z] [INFO] GET /api/tasks/project/2 304 17ms +[2026-01-04T00:30:42.980Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T00:30:42.987Z] [INFO] GET /api/labels/2 304 5ms +[2026-01-04T00:30:43.030Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 8ms +[2026-01-04T00:30:43.069Z] [INFO] GET /api/knowledge/categories 304 8ms +[2026-01-04T00:30:46.883Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T00:30:51.895Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:31:20.069Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T00:31:33.722Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T00:31:33.795Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T00:31:33.809Z] [INFO] Datenbank initialisiert +[2026-01-04T00:31:33.816Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T00:31:33.817Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T00:31:33.817Z] [INFO] Umgebung: production +[2026-01-04T00:31:33.818Z] [INFO] Automatische Backups aktiviert +[2026-01-04T00:31:34.245Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (jLlodUXBQgVlNnCEAAAB) +[2026-01-04T00:31:34.292Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:31:35.903Z] [INFO] GET /api/health 200 13ms +[2026-01-04T00:32:06.010Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:32:33.846Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T00-32-33-823Z.db.enc +[2026-01-04T00:32:33.846Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T00-32-33-823Z.db.enc +[2026-01-04T00:32:33.847Z] [INFO] Backup erstellt: backup_2026-01-04T00-32-33-823Z.db +[2026-01-04T00:32:33.850Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T00:32:36.104Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:33:06.215Z] [INFO] GET /api/health 200 4ms +[2026-01-04T00:33:36.314Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:34:06.416Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:34:36.519Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:35:06.614Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:35:36.699Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:36:06.798Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:36:36.919Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:37:07.027Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:37:37.126Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:38:07.263Z] [INFO] GET /api/health 200 7ms +[2026-01-04T00:38:37.372Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:39:07.452Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:39:37.564Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:40:07.657Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:40:37.747Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:40:47.285Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T00:41:07.843Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:41:37.952Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:42:08.060Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:42:38.174Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:43:08.285Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:43:38.366Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:44:08.473Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:44:38.563Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:45:08.664Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:45:38.760Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:46:08.876Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:46:38.969Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:46:56.910Z] [INFO] GET / 200 21ms +[2026-01-04T00:46:56.988Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (jLlodUXBQgVlNnCEAAAB) +[2026-01-04T00:46:56.995Z] [INFO] GET /css/variables.css 200 3ms +[2026-01-04T00:46:57.035Z] [INFO] GET /css/base.css 200 10ms +[2026-01-04T00:46:57.051Z] [INFO] GET /css/components.css 200 5ms +[2026-01-04T00:46:57.055Z] [INFO] GET /css/board.css 200 6ms +[2026-01-04T00:46:57.062Z] [INFO] GET /css/modal.css 200 5ms +[2026-01-04T00:46:57.072Z] [INFO] GET /css/calendar.css 200 8ms +[2026-01-04T00:46:57.075Z] [INFO] GET /css/list.css 200 7ms +[2026-01-04T00:46:57.079Z] [INFO] GET /css/admin.css 200 9ms +[2026-01-04T00:46:57.115Z] [INFO] GET /css/proposals.css 200 7ms +[2026-01-04T00:46:57.118Z] [INFO] GET /css/notifications.css 200 7ms +[2026-01-04T00:46:57.122Z] [INFO] GET /css/gitea.css 200 9ms +[2026-01-04T00:46:57.125Z] [INFO] GET /css/coding.css 200 8ms +[2026-01-04T00:46:57.128Z] [INFO] GET /css/knowledge.css 200 8ms +[2026-01-04T00:46:57.138Z] [INFO] GET /css/responsive.css 200 4ms +[2026-01-04T00:46:57.146Z] [INFO] GET /css/mobile.css 200 3ms +[2026-01-04T00:46:57.169Z] [INFO] GET /js/app.js 200 5ms +[2026-01-04T00:46:57.243Z] [INFO] GET /js/auth.js 200 11ms +[2026-01-04T00:46:57.244Z] [INFO] GET /js/store.js 200 11ms +[2026-01-04T00:46:57.248Z] [INFO] GET /js/api.js 200 10ms +[2026-01-04T00:46:57.251Z] [INFO] GET /js/board.js 200 10ms +[2026-01-04T00:46:57.254Z] [INFO] GET /js/offline.js 200 8ms +[2026-01-04T00:46:57.254Z] [INFO] GET /js/sync.js 200 5ms +[2026-01-04T00:46:57.278Z] [INFO] GET /js/task-modal.js 200 5ms +[2026-01-04T00:46:57.279Z] [INFO] GET /js/calendar.js 200 3ms +[2026-01-04T00:46:57.285Z] [INFO] GET /js/list.js 200 3ms +[2026-01-04T00:46:57.286Z] [INFO] GET /js/shortcuts.js 200 4ms +[2026-01-04T00:46:57.288Z] [INFO] GET /js/undo.js 200 4ms +[2026-01-04T00:46:57.310Z] [INFO] GET /js/proposals.js 200 3ms +[2026-01-04T00:46:57.317Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T00:46:57.320Z] [INFO] GET /js/gitea.js 200 6ms +[2026-01-04T00:46:57.323Z] [INFO] GET /js/knowledge.js 200 7ms +[2026-01-04T00:46:57.333Z] [INFO] GET /js/admin.js 200 1ms +[2026-01-04T00:46:57.342Z] [INFO] GET /js/coding.js 200 5ms +[2026-01-04T00:46:57.345Z] [INFO] GET /js/mobile.js 200 5ms +[2026-01-04T00:46:57.350Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T00:46:57.396Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T00:46:57.405Z] [INFO] GET /assets/icons/task.svg 304 7ms +[2026-01-04T00:46:57.410Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T00:46:57.467Z] [INFO] GET /api/auth/users 304 9ms +[2026-01-04T00:46:57.497Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (3s2MzBjdXhOhZmtRAAAD) +[2026-01-04T00:46:57.508Z] [INFO] GET /api/projects 304 7ms +[2026-01-04T00:46:57.541Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:46:57.554Z] [INFO] GET /api/labels/2 304 11ms +[2026-01-04T00:46:57.567Z] [INFO] GET /api/columns/2 304 9ms +[2026-01-04T00:46:57.571Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T00:46:57.589Z] [INFO] GET /api/tasks/project/2 304 17ms +[2026-01-04T00:46:57.639Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 4ms +[2026-01-04T00:46:57.677Z] [INFO] GET /api/notifications 304 8ms +[2026-01-04T00:46:57.717Z] [INFO] GET /api/knowledge/categories 304 8ms +[2026-01-04T00:46:59.236Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T00:46:59.237Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T00:46:59.237Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T00:46:59.238Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T00:46:59.239Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T00:46:59.239Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T00:46:59.239Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T00:46:59.241Z] [INFO] GET /api/coding/directories 200 11ms +[2026-01-04T00:46:59.301Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:46:59.301Z] [INFO] Git directory exists: true +[2026-01-04T00:46:59.302Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:46:59.302Z] [INFO] Git directory exists: true +[2026-01-04T00:46:59.374Z] [INFO] GET /api/coding/directories/3/status 304 79ms +[2026-01-04T00:46:59.382Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:46:59.382Z] [INFO] Git directory exists: false +[2026-01-04T00:46:59.383Z] [INFO] GET /api/coding/directories/5/status 304 7ms +[2026-01-04T00:47:00.242Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T00:47:05.447Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:47:07.410Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T00:47:07.712Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (3s2MzBjdXhOhZmtRAAAD) +[2026-01-04T00:47:09.073Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:47:17.973Z] [INFO] GET / 200 5ms +[2026-01-04T00:47:18.051Z] [INFO] GET /css/variables.css 200 3ms +[2026-01-04T00:47:18.087Z] [INFO] GET /css/base.css 200 3ms +[2026-01-04T00:47:18.120Z] [INFO] GET /css/calendar.css 200 2ms +[2026-01-04T00:47:18.125Z] [INFO] GET /css/components.css 200 6ms +[2026-01-04T00:47:18.126Z] [INFO] GET /css/board.css 200 4ms +[2026-01-04T00:47:18.127Z] [INFO] GET /css/modal.css 200 5ms +[2026-01-04T00:47:18.143Z] [INFO] GET /css/admin.css 200 5ms +[2026-01-04T00:47:18.146Z] [INFO] GET /css/list.css 200 6ms +[2026-01-04T00:47:18.157Z] [INFO] GET /css/proposals.css 200 2ms +[2026-01-04T00:47:18.180Z] [INFO] GET /css/notifications.css 200 6ms +[2026-01-04T00:47:18.185Z] [INFO] GET /css/gitea.css 200 7ms +[2026-01-04T00:47:18.193Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T00:47:18.195Z] [INFO] GET /css/responsive.css 200 6ms +[2026-01-04T00:47:18.196Z] [INFO] GET /css/coding.css 200 5ms +[2026-01-04T00:47:18.198Z] [INFO] GET /css/mobile.css 200 4ms +[2026-01-04T00:47:18.218Z] [INFO] GET /js/app.js 200 4ms +[2026-01-04T00:47:18.307Z] [INFO] GET /js/auth.js 200 7ms +[2026-01-04T00:47:18.308Z] [INFO] GET /js/store.js 200 7ms +[2026-01-04T00:47:18.312Z] [INFO] GET /js/api.js 200 9ms +[2026-01-04T00:47:18.315Z] [INFO] GET /js/board.js 200 9ms +[2026-01-04T00:47:18.318Z] [INFO] GET /js/offline.js 200 8ms +[2026-01-04T00:47:18.320Z] [INFO] GET /js/sync.js 200 6ms +[2026-01-04T00:47:18.347Z] [INFO] GET /js/task-modal.js 200 4ms +[2026-01-04T00:47:18.349Z] [INFO] GET /js/list.js 200 5ms +[2026-01-04T00:47:18.356Z] [INFO] GET /js/admin.js 200 3ms +[2026-01-04T00:47:18.358Z] [INFO] GET /js/undo.js 200 4ms +[2026-01-04T00:47:18.360Z] [INFO] GET /js/shortcuts.js 200 5ms +[2026-01-04T00:47:18.362Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T00:47:18.380Z] [INFO] GET /js/proposals.js 200 3ms +[2026-01-04T00:47:18.382Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T00:47:18.389Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T00:47:18.391Z] [INFO] GET /js/coding.js 200 4ms +[2026-01-04T00:47:18.394Z] [INFO] GET /js/knowledge.js 200 6ms +[2026-01-04T00:47:18.396Z] [INFO] GET /js/mobile.js 200 4ms +[2026-01-04T00:47:18.410Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T00:47:18.469Z] [INFO] GET /sw.js 200 4ms +[2026-01-04T00:47:18.476Z] [INFO] GET /assets/icons/task.svg 200 5ms +[2026-01-04T00:47:18.509Z] [INFO] GET / 304 2ms +[2026-01-04T00:47:18.510Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T00:47:18.515Z] [INFO] GET /index.html 200 5ms +[2026-01-04T00:47:18.540Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T00:47:18.544Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T00:47:18.552Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T00:47:18.575Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T00:47:18.580Z] [INFO] GET /css/calendar.css 304 4ms +[2026-01-04T00:47:18.585Z] [INFO] GET /css/responsive.css 304 2ms +[2026-01-04T00:47:18.605Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T00:47:18.608Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T00:47:18.617Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T00:47:18.641Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T00:47:18.644Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T00:47:18.649Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T00:47:18.675Z] [INFO] GET /js/board.js 304 2ms +[2026-01-04T00:47:18.678Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T00:47:18.682Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T00:47:18.708Z] [INFO] GET /js/calendar.js 304 1ms +[2026-01-04T00:47:18.712Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T00:47:18.740Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T00:47:18.740Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T00:47:18.748Z] [INFO] GET /js/tour.js 200 6ms +[2026-01-04T00:47:18.770Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T00:47:18.774Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T00:47:18.778Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T00:47:18.804Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T00:47:18.808Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T00:47:18.822Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T00:47:18.835Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T00:47:18.842Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T00:47:18.853Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T00:47:18.864Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T00:47:18.874Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T00:47:18.888Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T00:47:18.894Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T00:47:18.904Z] [INFO] GET /css/knowledge.css 304 2ms +[2026-01-04T00:47:18.925Z] [INFO] GET /css/coding.css 304 4ms +[2026-01-04T00:47:22.927Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T00:47:22.929Z] [INFO] POST /api/auth/login 200 506ms +[2026-01-04T00:47:22.969Z] [INFO] GET /api/auth/users 200 4ms +[2026-01-04T00:47:23.003Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (-KfgZEo5fVuFkKB8AAAF) +[2026-01-04T00:47:23.012Z] [INFO] GET /api/projects 200 4ms +[2026-01-04T00:47:23.051Z] [INFO] GET /api/columns/2 200 4ms +[2026-01-04T00:47:23.060Z] [INFO] GET /api/stats/dashboard?projectId=2 200 7ms +[2026-01-04T00:47:23.076Z] [INFO] GET /api/tasks/project/2 200 15ms +[2026-01-04T00:47:23.077Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:47:23.081Z] [INFO] GET /api/labels/2 200 3ms +[2026-01-04T00:47:23.150Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 7ms +[2026-01-04T00:47:23.189Z] [INFO] GET /api/notifications 200 6ms +[2026-01-04T00:47:23.230Z] [INFO] GET /api/knowledge/categories 200 9ms +[2026-01-04T00:47:28.160Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T00:47:28.160Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T00:47:28.161Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T00:47:28.161Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T00:47:28.162Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T00:47:28.162Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T00:47:28.163Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T00:47:28.165Z] [INFO] GET /api/coding/directories 200 14ms +[2026-01-04T00:47:28.236Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:47:28.237Z] [INFO] Git directory exists: true +[2026-01-04T00:47:28.237Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T00:47:28.237Z] [INFO] Git directory exists: true +[2026-01-04T00:47:28.279Z] [INFO] GET /api/coding/directories/3/status 200 51ms +[2026-01-04T00:47:28.284Z] [INFO] Git-Repository Check: /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger -> /home/claude-dev/AccountForger/.git +[2026-01-04T00:47:28.285Z] [INFO] Git directory exists: false +[2026-01-04T00:47:28.285Z] [INFO] GET /api/coding/directories/5/status 200 5ms +[2026-01-04T00:47:29.166Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T00:47:32.062Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T00:47:33.491Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T00:47:35.995Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T00:47:37.873Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T00:47:39.170Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:47:42.040Z] [INFO] GET / 304 1ms +[2026-01-04T00:47:42.047Z] [INFO] GET /css/variables.css 304 3ms +[2026-01-04T00:47:42.049Z] [INFO] GET /css/base.css 304 4ms +[2026-01-04T00:47:42.053Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T00:47:42.055Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T00:47:42.057Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T00:47:42.068Z] [INFO] GET /css/calendar.css 304 0ms +[2026-01-04T00:47:42.078Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T00:47:42.082Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T00:47:42.088Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T00:47:42.090Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T00:47:42.092Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T00:47:42.095Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T00:47:42.103Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T00:47:42.111Z] [INFO] GET /css/responsive.css 304 0ms +[2026-01-04T00:47:42.117Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T00:47:42.847Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T00:47:45.291Z] [INFO] GET / 200 4ms +[2026-01-04T00:47:45.364Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (-KfgZEo5fVuFkKB8AAAF) +[2026-01-04T00:47:45.385Z] [INFO] GET /css/board.css 200 6ms +[2026-01-04T00:47:45.389Z] [INFO] GET /css/variables.css 200 8ms +[2026-01-04T00:47:45.392Z] [INFO] GET /css/calendar.css 200 9ms +[2026-01-04T00:47:45.396Z] [INFO] GET /css/components.css 200 8ms +[2026-01-04T00:47:45.398Z] [INFO] GET /css/base.css 200 7ms +[2026-01-04T00:47:45.399Z] [INFO] GET /css/modal.css 200 6ms +[2026-01-04T00:47:45.423Z] [INFO] GET /css/list.css 200 6ms +[2026-01-04T00:47:45.433Z] [INFO] GET /css/admin.css 200 1ms +[2026-01-04T00:47:45.438Z] [INFO] GET /css/proposals.css 200 2ms +[2026-01-04T00:47:45.442Z] [INFO] GET /css/notifications.css 200 1ms +[2026-01-04T00:47:45.447Z] [INFO] GET /css/gitea.css 200 1ms +[2026-01-04T00:47:45.456Z] [INFO] GET /css/coding.css 200 2ms +[2026-01-04T00:47:45.465Z] [INFO] GET /css/knowledge.css 200 2ms +[2026-01-04T00:47:45.479Z] [INFO] GET /css/responsive.css 200 6ms +[2026-01-04T00:47:45.485Z] [INFO] GET /css/mobile.css 200 8ms +[2026-01-04T00:47:45.490Z] [INFO] GET /js/app.js 200 2ms +[2026-01-04T00:47:45.552Z] [INFO] GET /js/api.js 200 5ms +[2026-01-04T00:47:45.562Z] [INFO] GET /js/sync.js 200 4ms +[2026-01-04T00:47:45.565Z] [INFO] GET /js/auth.js 200 8ms +[2026-01-04T00:47:45.568Z] [INFO] GET /js/offline.js 200 8ms +[2026-01-04T00:47:45.570Z] [INFO] GET /js/store.js 200 6ms +[2026-01-04T00:47:45.581Z] [INFO] GET /js/board.js 200 1ms +[2026-01-04T00:47:45.591Z] [INFO] GET /js/task-modal.js 200 2ms +[2026-01-04T00:47:45.597Z] [INFO] GET /js/list.js 200 3ms +[2026-01-04T00:47:45.599Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T00:47:45.602Z] [INFO] GET /js/shortcuts.js 200 2ms +[2026-01-04T00:47:45.614Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T00:47:45.616Z] [INFO] GET /js/admin.js 200 4ms +[2026-01-04T00:47:45.626Z] [INFO] GET /js/proposals.js 200 2ms +[2026-01-04T00:47:45.634Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T00:47:45.636Z] [INFO] GET /js/gitea.js 200 4ms +[2026-01-04T00:47:45.643Z] [INFO] GET /js/mobile.js 200 1ms +[2026-01-04T00:47:45.647Z] [INFO] GET /js/coding.js 200 1ms +[2026-01-04T00:47:45.648Z] [INFO] GET /js/knowledge.js 200 3ms +[2026-01-04T00:47:45.657Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T00:47:45.708Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:47:45.725Z] [INFO] GET /api/auth/users 200 7ms +[2026-01-04T00:47:45.730Z] [INFO] GET /assets/icons/task.svg 200 3ms +[2026-01-04T00:47:45.780Z] [INFO] GET /api/auth/users 200 6ms +[2026-01-04T00:47:45.815Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (vZi-Ok5y0A6LDgErAAAH) +[2026-01-04T00:47:45.826Z] [INFO] GET /api/projects 200 5ms +[2026-01-04T00:47:45.884Z] [INFO] GET /api/tasks/project/2 200 28ms +[2026-01-04T00:47:45.890Z] [INFO] GET /api/columns/2 200 4ms +[2026-01-04T00:47:45.901Z] [INFO] GET /api/labels/2 200 9ms +[2026-01-04T00:47:45.911Z] [INFO] GET /api/stats/dashboard?projectId=2 200 8ms +[2026-01-04T00:47:45.912Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:47:45.952Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 10ms +[2026-01-04T00:47:45.995Z] [INFO] GET /api/notifications 200 8ms +[2026-01-04T00:47:46.034Z] [INFO] GET /api/knowledge/categories 200 4ms +[2026-01-04T00:47:46.860Z] [INFO] GET / 200 3ms +[2026-01-04T00:47:46.913Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (vZi-Ok5y0A6LDgErAAAH) +[2026-01-04T00:47:46.942Z] [INFO] GET /css/calendar.css 200 6ms +[2026-01-04T00:47:46.947Z] [INFO] GET /css/variables.css 200 9ms +[2026-01-04T00:47:46.949Z] [INFO] GET /css/base.css 200 8ms +[2026-01-04T00:47:46.954Z] [INFO] GET /css/board.css 200 9ms +[2026-01-04T00:47:46.957Z] [INFO] GET /css/components.css 200 9ms +[2026-01-04T00:47:46.959Z] [INFO] GET /css/modal.css 200 8ms +[2026-01-04T00:47:46.982Z] [INFO] GET /css/list.css 200 4ms +[2026-01-04T00:47:46.985Z] [INFO] GET /css/admin.css 200 6ms +[2026-01-04T00:47:46.990Z] [INFO] GET /css/proposals.css 200 2ms +[2026-01-04T00:47:47.013Z] [INFO] GET /css/notifications.css 200 4ms +[2026-01-04T00:47:47.028Z] [INFO] GET /css/mobile.css 200 9ms +[2026-01-04T00:47:47.031Z] [INFO] GET /css/gitea.css 200 9ms +[2026-01-04T00:47:47.032Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T00:47:47.034Z] [INFO] GET /css/coding.css 200 9ms +[2026-01-04T00:47:47.036Z] [INFO] GET /css/responsive.css 200 4ms +[2026-01-04T00:47:47.060Z] [INFO] GET /js/app.js 200 5ms +[2026-01-04T00:47:47.121Z] [INFO] GET /js/store.js 200 2ms +[2026-01-04T00:47:47.131Z] [INFO] GET /js/sync.js 200 5ms +[2026-01-04T00:47:47.135Z] [INFO] GET /js/auth.js 200 7ms +[2026-01-04T00:47:47.143Z] [INFO] GET /js/api.js 200 13ms +[2026-01-04T00:47:47.144Z] [INFO] GET /js/offline.js 200 11ms +[2026-01-04T00:47:47.152Z] [INFO] GET /js/board.js 200 1ms +[2026-01-04T00:47:47.160Z] [INFO] GET /js/task-modal.js 200 1ms +[2026-01-04T00:47:47.165Z] [INFO] GET /js/calendar.js 200 1ms +[2026-01-04T00:47:47.178Z] [INFO] GET /js/list.js 200 2ms +[2026-01-04T00:47:47.183Z] [INFO] GET /js/shortcuts.js 200 2ms +[2026-01-04T00:47:47.192Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T00:47:47.199Z] [INFO] GET /js/proposals.js 200 3ms +[2026-01-04T00:47:47.202Z] [INFO] GET /js/admin.js 200 5ms +[2026-01-04T00:47:47.210Z] [INFO] GET /js/knowledge.js 200 3ms +[2026-01-04T00:47:47.216Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T00:47:47.222Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T00:47:47.225Z] [INFO] GET /js/coding.js 200 2ms +[2026-01-04T00:47:47.230Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T00:47:47.235Z] [INFO] GET /js/utils.js 200 1ms +[2026-01-04T00:47:47.289Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:47:47.295Z] [INFO] GET /api/auth/users 200 3ms +[2026-01-04T00:47:47.297Z] [INFO] GET /assets/icons/task.svg 200 7ms +[2026-01-04T00:47:47.341Z] [INFO] GET /api/auth/users 200 7ms +[2026-01-04T00:47:47.369Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (izcUeM5wYgdWn4vVAAAJ) +[2026-01-04T00:47:47.382Z] [INFO] GET /api/projects 200 8ms +[2026-01-04T00:47:47.419Z] [INFO] GET /api/labels/2 200 5ms +[2026-01-04T00:47:47.422Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:47:47.426Z] [INFO] GET /api/columns/2 200 6ms +[2026-01-04T00:47:47.437Z] [INFO] GET /api/stats/dashboard?projectId=2 200 10ms +[2026-01-04T00:47:47.458Z] [INFO] GET /api/tasks/project/2 200 20ms +[2026-01-04T00:47:47.492Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T00:47:47.503Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 4ms +[2026-01-04T00:47:47.547Z] [INFO] GET /api/notifications 200 8ms +[2026-01-04T00:47:47.592Z] [INFO] GET /api/knowledge/categories 200 8ms +[2026-01-04T00:48:09.261Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:48:23.956Z] [INFO] GET / 200 4ms +[2026-01-04T00:48:24.016Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (izcUeM5wYgdWn4vVAAAJ) +[2026-01-04T00:48:24.031Z] [INFO] GET /css/variables.css 200 2ms +[2026-01-04T00:48:24.038Z] [INFO] GET /css/base.css 200 4ms +[2026-01-04T00:48:24.040Z] [INFO] GET /css/components.css 200 5ms +[2026-01-04T00:48:24.049Z] [INFO] GET /css/board.css 200 6ms +[2026-01-04T00:48:24.051Z] [INFO] GET /css/calendar.css 200 4ms +[2026-01-04T00:48:24.054Z] [INFO] GET /css/modal.css 200 6ms +[2026-01-04T00:48:24.063Z] [INFO] GET /css/list.css 200 2ms +[2026-01-04T00:48:24.074Z] [INFO] GET /css/admin.css 200 2ms +[2026-01-04T00:48:24.091Z] [INFO] GET /css/proposals.css 200 2ms +[2026-01-04T00:48:24.097Z] [INFO] GET /css/notifications.css 200 4ms +[2026-01-04T00:48:24.110Z] [INFO] GET /css/gitea.css 200 6ms +[2026-01-04T00:48:24.113Z] [INFO] GET /css/coding.css 200 6ms +[2026-01-04T00:48:24.120Z] [INFO] GET /css/knowledge.css 200 4ms +[2026-01-04T00:48:24.126Z] [INFO] GET /css/responsive.css 200 5ms +[2026-01-04T00:48:24.133Z] [INFO] GET /css/mobile.css 200 8ms +[2026-01-04T00:48:24.140Z] [INFO] GET /js/app.js 200 2ms +[2026-01-04T00:48:24.219Z] [INFO] GET /js/api.js 200 14ms +[2026-01-04T00:48:24.228Z] [INFO] GET /js/store.js 200 18ms +[2026-01-04T00:48:24.230Z] [INFO] GET /js/sync.js 200 17ms +[2026-01-04T00:48:24.234Z] [INFO] GET /js/auth.js 200 12ms +[2026-01-04T00:48:24.236Z] [INFO] GET /js/offline.js 200 12ms +[2026-01-04T00:48:24.261Z] [INFO] GET /js/board.js 200 2ms +[2026-01-04T00:48:24.262Z] [INFO] GET /js/task-modal.js 200 2ms +[2026-01-04T00:48:24.264Z] [INFO] GET /js/calendar.js 200 1ms +[2026-01-04T00:48:24.268Z] [INFO] GET /js/list.js 200 1ms +[2026-01-04T00:48:24.272Z] [INFO] GET /js/shortcuts.js 200 1ms +[2026-01-04T00:48:24.294Z] [INFO] GET /js/undo.js 200 3ms +[2026-01-04T00:48:24.307Z] [INFO] GET /js/proposals.js 200 9ms +[2026-01-04T00:48:24.309Z] [INFO] GET /js/admin.js 200 6ms +[2026-01-04T00:48:24.310Z] [INFO] GET /js/notifications.js 200 6ms +[2026-01-04T00:48:24.313Z] [INFO] GET /js/gitea.js 200 7ms +[2026-01-04T00:48:24.317Z] [INFO] GET /js/knowledge.js 200 2ms +[2026-01-04T00:48:24.324Z] [INFO] GET /js/coding.js 200 1ms +[2026-01-04T00:48:24.340Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T00:48:24.341Z] [INFO] GET /js/mobile.js 200 3ms +[2026-01-04T00:48:24.386Z] [INFO] GET /assets/icons/task.svg 200 4ms +[2026-01-04T00:48:28.605Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T00:48:28.606Z] [INFO] POST /api/auth/login 200 438ms +[2026-01-04T00:48:28.642Z] [INFO] GET /api/auth/users 200 4ms +[2026-01-04T00:48:28.683Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (psY4iIc8M2ImL9CSAAAL) +[2026-01-04T00:48:28.692Z] [INFO] GET /api/projects 200 7ms +[2026-01-04T00:48:28.734Z] [INFO] GET /api/stats/dashboard?projectId=2 200 8ms +[2026-01-04T00:48:28.736Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:48:28.743Z] [INFO] GET /api/columns/2 200 6ms +[2026-01-04T00:48:28.747Z] [INFO] GET /api/labels/2 200 4ms +[2026-01-04T00:48:28.761Z] [INFO] GET /api/tasks/project/2 200 14ms +[2026-01-04T00:48:28.833Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 6ms +[2026-01-04T00:48:28.870Z] [INFO] GET /api/notifications 200 5ms +[2026-01-04T00:48:28.913Z] [INFO] GET /api/knowledge/categories 200 9ms +[2026-01-04T00:48:33.237Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T00:48:34.795Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T00:48:36.200Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T00:48:39.360Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:49:09.467Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:49:39.557Z] [INFO] GET /api/health 200 2ms +[2026-01-04T00:50:09.658Z] [INFO] GET /api/health 200 1ms +[2026-01-04T00:50:39.767Z] [INFO] GET /api/health 200 4ms +[2026-01-04T00:51:33.436Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T00:51:33.511Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T00:51:34.034Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T00:51:34.035Z] [INFO] Datenbank initialisiert +[2026-01-04T00:51:34.040Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T00:51:34.041Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T00:51:34.041Z] [INFO] Automatische Backups aktiviert +[2026-01-04T00:51:34.040Z] [INFO] Umgebung: development +[2026-01-04T00:52:34.090Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T00-52-34-063Z.db.enc +[2026-01-04T00:52:34.089Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T00-52-34-063Z.db.enc +[2026-01-04T00:52:34.092Z] [INFO] Backup erstellt: backup_2026-01-04T00-52-34-063Z.db +[2026-01-04T00:52:34.110Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T20-38-24-611Z.db.enc +[2026-01-04T00:52:34.111Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T20-38-24-611Z.db.enc +[2026-01-04T00:52:34.114Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T00:56:40.200Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T00:56:40.288Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T00:56:40.297Z] [INFO] Datenbank initialisiert +[2026-01-04T00:56:40.301Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T00:56:40.302Z] [INFO] Umgebung: production +[2026-01-04T00:56:40.302Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T00:56:40.302Z] [INFO] Automatische Backups aktiviert +[2026-01-04T00:56:42.355Z] [INFO] GET /api/health 200 19ms +[2026-01-04T00:56:44.045Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:57:12.465Z] [INFO] GET /api/health 200 4ms +[2026-01-04T00:57:40.345Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T00-57-40-325Z.db.enc +[2026-01-04T00:57:40.346Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T00-57-40-325Z.db.enc +[2026-01-04T00:57:40.347Z] [INFO] Backup erstellt: backup_2026-01-04T00-57-40-325Z.db +[2026-01-04T00:57:40.366Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T20-39-12-925Z.db.enc +[2026-01-04T00:57:40.366Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T20-39-12-925Z.db.enc +[2026-01-04T00:57:40.368Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T00:57:42.572Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:58:12.681Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:58:42.797Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:59:12.922Z] [INFO] GET /api/health 200 3ms +[2026-01-04T00:59:17.030Z] [INFO] GET / 200 16ms +[2026-01-04T00:59:17.115Z] [INFO] GET /css/variables.css 200 3ms +[2026-01-04T00:59:17.148Z] [INFO] GET /css/base.css 200 4ms +[2026-01-04T00:59:17.183Z] [INFO] GET /css/components.css 200 11ms +[2026-01-04T00:59:17.188Z] [INFO] GET /css/board.css 200 7ms +[2026-01-04T00:59:17.192Z] [INFO] GET /css/list.css 200 8ms +[2026-01-04T00:59:17.195Z] [INFO] GET /css/modal.css 200 9ms +[2026-01-04T00:59:17.197Z] [INFO] GET /css/calendar.css 200 7ms +[2026-01-04T00:59:17.199Z] [INFO] GET /css/admin.css 200 5ms +[2026-01-04T00:59:17.233Z] [INFO] GET /css/notifications.css 200 7ms +[2026-01-04T00:59:17.237Z] [INFO] GET /css/proposals.css 200 8ms +[2026-01-04T00:59:17.245Z] [INFO] GET /css/gitea.css 200 9ms +[2026-01-04T00:59:17.248Z] [INFO] GET /css/coding.css 200 6ms +[2026-01-04T00:59:17.250Z] [INFO] GET /css/knowledge.css 200 6ms +[2026-01-04T00:59:17.254Z] [INFO] GET /css/responsive.css 200 2ms +[2026-01-04T00:59:17.263Z] [INFO] GET /css/mobile.css 200 3ms +[2026-01-04T00:59:17.288Z] [INFO] GET /js/app.js 200 5ms +[2026-01-04T00:59:17.360Z] [INFO] GET /js/auth.js 200 11ms +[2026-01-04T00:59:17.364Z] [INFO] GET /js/store.js 200 12ms +[2026-01-04T00:59:17.368Z] [INFO] GET /js/api.js 200 10ms +[2026-01-04T00:59:17.370Z] [INFO] GET /js/sync.js 200 7ms +[2026-01-04T00:59:17.373Z] [INFO] GET /js/board.js 200 7ms +[2026-01-04T00:59:17.374Z] [INFO] GET /js/offline.js 200 4ms +[2026-01-04T00:59:17.394Z] [INFO] GET /js/task-modal.js 200 4ms +[2026-01-04T00:59:17.395Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T00:59:17.402Z] [INFO] GET /js/shortcuts.js 200 2ms +[2026-01-04T00:59:17.403Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T00:59:17.406Z] [INFO] GET /js/list.js 200 2ms +[2026-01-04T00:59:17.428Z] [INFO] GET /js/admin.js 200 6ms +[2026-01-04T00:59:17.433Z] [INFO] GET /js/proposals.js 200 7ms +[2026-01-04T00:59:17.439Z] [INFO] GET /js/notifications.js 200 7ms +[2026-01-04T00:59:17.442Z] [INFO] GET /js/knowledge.js 200 6ms +[2026-01-04T00:59:17.443Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T00:59:17.450Z] [INFO] GET /js/coding.js 200 3ms +[2026-01-04T00:59:17.458Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T00:59:17.465Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T00:59:17.562Z] [INFO] POST /api/auth/refresh 200 20ms +[2026-01-04T00:59:17.572Z] [INFO] GET /api/auth/users 304 8ms +[2026-01-04T00:59:17.580Z] [INFO] GET /assets/icons/task.svg 304 6ms +[2026-01-04T00:59:17.624Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T00:59:17.667Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (l1KEt8BxndnAMkiaAAAB) +[2026-01-04T00:59:17.679Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T00:59:17.728Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T00:59:17.744Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T00:59:17.752Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T00:59:17.759Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T00:59:17.780Z] [INFO] GET /api/tasks/project/2 304 14ms +[2026-01-04T00:59:17.831Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 7ms +[2026-01-04T00:59:17.872Z] [INFO] GET /api/notifications 304 11ms +[2026-01-04T00:59:17.916Z] [INFO] GET /api/knowledge/categories 304 9ms +[2026-01-04T00:59:22.934Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:59:22.941Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T00:59:22.936Z] [INFO] POST /api/auth/logout 200 12ms +[2026-01-04T00:59:22.942Z] [INFO] POST /api/auth/logout 200 4ms +[2026-01-04T00:59:22.982Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (l1KEt8BxndnAMkiaAAAB) +[2026-01-04T00:59:28.102Z] [INFO] Login erfolgreich: admin +[2026-01-04T00:59:28.104Z] [INFO] POST /api/auth/login 200 520ms +[2026-01-04T00:59:28.145Z] [INFO] GET /api/admin/users 200 10ms +[2026-01-04T00:59:28.179Z] [INFO] GET /api/admin/upload-settings 200 5ms +[2026-01-04T00:59:34.644Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T00:59:37.647Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T00:59:41.139Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T00:59:43.016Z] [INFO] GET /api/health 200 4ms +[2026-01-04T00:59:53.825Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T01:00:03.109Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T01:00:05.145Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T01:00:13.129Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:00:14.546Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T01:00:29.359Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T01:00:30.909Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T01:00:32.622Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T01:00:43.235Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:01:13.345Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:01:43.457Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:02:13.557Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:02:43.640Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:03:13.832Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:03:43.956Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:04:14.070Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:04:44.198Z] [INFO] GET /api/health 200 15ms +[2026-01-04T01:04:54.925Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T01:04:55.038Z] [INFO] Umgebung: production +[2026-01-04T01:04:55.039Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T01:04:55.039Z] [INFO] Automatische Backups aktiviert +[2026-01-04T01:04:55.024Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T01:04:55.032Z] [INFO] Datenbank initialisiert +[2026-01-04T01:04:55.037Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T01:04:56.843Z] [INFO] GET /api/health 200 27ms +[2026-01-04T01:05:26.947Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:05:31.973Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T01:05:32.020Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T01:05:32.026Z] [INFO] Datenbank initialisiert +[2026-01-04T01:05:32.030Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T01:05:32.030Z] [INFO] Umgebung: production +[2026-01-04T01:05:32.031Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T01:05:32.031Z] [INFO] Automatische Backups aktiviert +[2026-01-04T01:05:35.369Z] [INFO] GET /api/health 200 17ms +[2026-01-04T01:06:05.520Z] [INFO] GET /api/health 200 7ms +[2026-01-04T01:06:32.076Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T01-06-32-051Z.db.enc +[2026-01-04T01:06:32.081Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T01-06-32-051Z.db.enc +[2026-01-04T01:06:32.081Z] [INFO] Backup erstellt: backup_2026-01-04T01-06-32-051Z.db +[2026-01-04T01:06:32.095Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T20-51-54-798Z.db.enc +[2026-01-04T01:06:32.096Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T20-51-54-798Z.db.enc +[2026-01-04T01:06:32.099Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T01:06:35.605Z] [INFO] GET /api/health 200 4ms +[2026-01-04T01:06:50.052Z] [INFO] GET / 200 20ms +[2026-01-04T01:06:50.141Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T01:06:50.172Z] [INFO] GET /css/base.css 200 7ms +[2026-01-04T01:06:50.200Z] [INFO] GET /css/components.css 200 4ms +[2026-01-04T01:06:50.215Z] [INFO] GET /css/board.css 200 9ms +[2026-01-04T01:06:50.218Z] [INFO] GET /css/modal.css 200 11ms +[2026-01-04T01:06:50.220Z] [INFO] GET /css/calendar.css 200 11ms +[2026-01-04T01:06:50.222Z] [INFO] GET /css/list.css 200 9ms +[2026-01-04T01:06:50.224Z] [INFO] GET /css/admin.css 200 7ms +[2026-01-04T01:06:50.259Z] [INFO] GET /css/proposals.css 200 6ms +[2026-01-04T01:06:50.264Z] [INFO] GET /css/gitea.css 200 7ms +[2026-01-04T01:06:50.265Z] [INFO] GET /css/notifications.css 200 5ms +[2026-01-04T01:06:50.274Z] [INFO] GET /css/coding.css 200 5ms +[2026-01-04T01:06:50.280Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T01:06:50.283Z] [INFO] GET /css/responsive.css 200 11ms +[2026-01-04T01:06:50.304Z] [INFO] GET /css/mobile.css 200 18ms +[2026-01-04T01:06:50.309Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T01:06:50.377Z] [INFO] GET /js/api.js 200 7ms +[2026-01-04T01:06:50.380Z] [INFO] GET /js/auth.js 200 7ms +[2026-01-04T01:06:50.381Z] [INFO] GET /js/sync.js 200 10ms +[2026-01-04T01:06:50.389Z] [INFO] GET /js/store.js 200 14ms +[2026-01-04T01:06:50.393Z] [INFO] GET /js/board.js 200 15ms +[2026-01-04T01:06:50.396Z] [INFO] GET /js/offline.js 200 10ms +[2026-01-04T01:06:50.409Z] [INFO] GET /js/task-modal.js 200 5ms +[2026-01-04T01:06:50.412Z] [INFO] GET /js/calendar.js 200 6ms +[2026-01-04T01:06:50.415Z] [INFO] GET /js/list.js 200 7ms +[2026-01-04T01:06:50.429Z] [INFO] GET /js/undo.js 200 4ms +[2026-01-04T01:06:50.430Z] [INFO] GET /js/shortcuts.js 200 3ms +[2026-01-04T01:06:50.449Z] [INFO] GET /js/admin.js 200 9ms +[2026-01-04T01:06:50.456Z] [INFO] GET /js/proposals.js 200 13ms +[2026-01-04T01:06:50.461Z] [INFO] GET /js/gitea.js 200 14ms +[2026-01-04T01:06:50.462Z] [INFO] GET /js/notifications.js 200 8ms +[2026-01-04T01:06:50.465Z] [INFO] GET /js/knowledge.js 200 6ms +[2026-01-04T01:06:50.468Z] [INFO] GET /js/coding.js 200 4ms +[2026-01-04T01:06:50.480Z] [INFO] GET /js/mobile.js 200 3ms +[2026-01-04T01:06:50.488Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T01:06:50.544Z] [INFO] GET /api/auth/users 304 19ms +[2026-01-04T01:06:50.591Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T01:06:50.602Z] [INFO] GET /assets/icons/task.svg 304 9ms +[2026-01-04T01:06:50.609Z] [INFO] GET /api/admin/users 403 9ms +[2026-01-04T01:06:50.653Z] [INFO] GET /api/admin/upload-settings 304 6ms +[2026-01-04T01:06:55.132Z] [INFO] Logout: admin +[2026-01-04T01:06:55.134Z] [INFO] POST /api/auth/logout 200 4ms +[2026-01-04T01:06:55.176Z] [INFO] GET / 304 2ms +[2026-01-04T01:06:55.226Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T01:06:55.229Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T01:06:55.233Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T01:06:55.236Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T01:06:55.239Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T01:06:55.241Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T01:06:55.258Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T01:06:55.259Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T01:06:55.263Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T01:06:55.272Z] [INFO] GET /css/notifications.css 304 4ms +[2026-01-04T01:06:55.278Z] [INFO] GET /css/coding.css 304 3ms +[2026-01-04T01:06:55.282Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T01:06:55.287Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T01:06:55.291Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T01:06:55.295Z] [INFO] GET /css/responsive.css 304 2ms +[2026-01-04T01:06:55.309Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T01:06:55.344Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T01:06:55.347Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T01:06:55.347Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T01:06:55.349Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T01:06:55.350Z] [INFO] GET /js/board.js 304 0ms +[2026-01-04T01:06:55.356Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T01:06:55.376Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T01:06:55.379Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T01:06:55.385Z] [INFO] GET /js/undo.js 304 2ms +[2026-01-04T01:06:55.387Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T01:06:55.391Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T01:06:55.394Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T01:06:55.404Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T01:06:55.407Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T01:06:55.412Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T01:06:55.417Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T01:06:55.420Z] [INFO] GET /js/coding.js 304 0ms +[2026-01-04T01:06:55.425Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T01:06:55.431Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T01:06:55.470Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T01:06:56.993Z] [INFO] GET /sw.js 200 5ms +[2026-01-04T01:06:57.030Z] [INFO] GET / 304 2ms +[2026-01-04T01:06:57.033Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T01:06:57.039Z] [INFO] GET /index.html 304 4ms +[2026-01-04T01:06:57.062Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T01:06:57.067Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T01:06:57.071Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T01:06:57.092Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T01:06:57.096Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T01:06:57.100Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T01:06:57.122Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T01:06:57.127Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T01:06:57.130Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T01:06:57.152Z] [INFO] GET /js/auth.js 304 1ms +[2026-01-04T01:06:57.158Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T01:06:57.162Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T01:06:57.183Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T01:06:57.191Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T01:06:57.194Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T01:06:57.216Z] [INFO] GET /js/calendar.js 304 3ms +[2026-01-04T01:06:57.221Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T01:06:57.225Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T01:06:57.243Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T01:06:57.251Z] [INFO] GET /js/tour.js 304 1ms +[2026-01-04T01:06:57.255Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T01:06:57.274Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T01:06:57.282Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T01:06:57.287Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T01:06:57.303Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T01:06:57.314Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T01:06:57.317Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T01:06:57.332Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T01:06:57.347Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T01:06:57.350Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T01:06:57.363Z] [INFO] GET /css/proposals.css 304 3ms +[2026-01-04T01:06:57.374Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T01:06:57.377Z] [INFO] GET /css/gitea.css 304 0ms +[2026-01-04T01:06:57.390Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T01:06:57.403Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T01:07:00.867Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T01:07:00.868Z] [INFO] POST /api/auth/login 200 578ms +[2026-01-04T01:07:00.916Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T01:07:00.957Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (Qd2SeUBEYEatdkxMAAAB) +[2026-01-04T01:07:00.967Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T01:07:01.007Z] [INFO] GET /api/columns/2 304 11ms +[2026-01-04T01:07:01.011Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T01:07:01.034Z] [INFO] GET /api/tasks/project/2 304 20ms +[2026-01-04T01:07:01.039Z] [INFO] GET /api/labels/2 304 4ms +[2026-01-04T01:07:01.046Z] [INFO] GET /api/stats/dashboard?projectId=2 304 5ms +[2026-01-04T01:07:01.077Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T01:07:01.107Z] [INFO] GET /api/notifications 304 4ms +[2026-01-04T01:07:01.142Z] [INFO] GET /api/knowledge/categories 304 7ms +[2026-01-04T01:07:03.376Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T01:07:03.377Z] [INFO] POST /api/auth/logout 200 3ms +[2026-01-04T01:07:03.381Z] [INFO] Logout: hendrik_gebhardt@gmx.de +[2026-01-04T01:07:03.382Z] [INFO] POST /api/auth/logout 200 3ms +[2026-01-04T01:07:03.405Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (Qd2SeUBEYEatdkxMAAAB) +[2026-01-04T01:07:05.717Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:07:07.258Z] [INFO] Login erfolgreich: admin +[2026-01-04T01:07:07.259Z] [INFO] POST /api/auth/login 200 456ms +[2026-01-04T01:07:07.303Z] [INFO] GET /api/admin/users 200 9ms +[2026-01-04T01:07:07.339Z] [INFO] GET /api/admin/upload-settings 304 6ms +[2026-01-04T01:07:09.849Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T01:07:13.017Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T01:07:18.962Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T01:07:21.260Z] [INFO] Admin admin hat Benutzer hendrik_gebhardt@gmx.de bearbeitet +[2026-01-04T01:07:21.261Z] [INFO] PUT /api/admin/users/1 200 10ms +[2026-01-04T01:07:21.299Z] [INFO] GET /api/admin/users 304 9ms +[2026-01-04T01:07:22.267Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T01:07:31.227Z] [INFO] GET / 200 5ms +[2026-01-04T01:07:31.298Z] [INFO] GET /css/variables.css 200 3ms +[2026-01-04T01:07:31.329Z] [INFO] GET /css/base.css 200 3ms +[2026-01-04T01:07:31.377Z] [INFO] GET /css/components.css 200 8ms +[2026-01-04T01:07:31.381Z] [INFO] GET /css/admin.css 200 10ms +[2026-01-04T01:07:31.383Z] [INFO] GET /css/board.css 200 11ms +[2026-01-04T01:07:31.387Z] [INFO] GET /css/calendar.css 200 13ms +[2026-01-04T01:07:31.390Z] [INFO] GET /css/modal.css 200 11ms +[2026-01-04T01:07:31.392Z] [INFO] GET /css/list.css 200 7ms +[2026-01-04T01:07:31.443Z] [INFO] GET /css/notifications.css 200 5ms +[2026-01-04T01:07:31.445Z] [INFO] GET /css/proposals.css 200 4ms +[2026-01-04T01:07:31.455Z] [INFO] GET /css/gitea.css 200 4ms +[2026-01-04T01:07:31.456Z] [INFO] GET /css/coding.css 200 3ms +[2026-01-04T01:07:31.459Z] [INFO] GET /css/knowledge.css 200 1ms +[2026-01-04T01:07:31.465Z] [INFO] GET /css/responsive.css 200 2ms +[2026-01-04T01:07:31.474Z] [INFO] GET /css/mobile.css 200 8ms +[2026-01-04T01:07:31.482Z] [INFO] GET /js/app.js 200 1ms +[2026-01-04T01:07:31.547Z] [INFO] GET /js/api.js 200 4ms +[2026-01-04T01:07:31.557Z] [INFO] GET /js/offline.js 200 7ms +[2026-01-04T01:07:31.560Z] [INFO] GET /js/store.js 200 7ms +[2026-01-04T01:07:31.562Z] [INFO] GET /js/auth.js 200 8ms +[2026-01-04T01:07:31.563Z] [INFO] GET /js/sync.js 200 7ms +[2026-01-04T01:07:31.570Z] [INFO] GET /js/board.js 200 11ms +[2026-01-04T01:07:31.578Z] [INFO] GET /js/task-modal.js 200 1ms +[2026-01-04T01:07:31.588Z] [INFO] GET /js/calendar.js 200 2ms +[2026-01-04T01:07:31.596Z] [INFO] GET /js/shortcuts.js 200 5ms +[2026-01-04T01:07:31.597Z] [INFO] GET /js/undo.js 200 5ms +[2026-01-04T01:07:31.599Z] [INFO] GET /js/list.js 200 5ms +[2026-01-04T01:07:31.609Z] [INFO] GET /js/admin.js 200 1ms +[2026-01-04T01:07:31.619Z] [INFO] GET /js/proposals.js 200 3ms +[2026-01-04T01:07:31.630Z] [INFO] GET /js/notifications.js 200 5ms +[2026-01-04T01:07:31.636Z] [INFO] GET /js/gitea.js 200 9ms +[2026-01-04T01:07:31.638Z] [INFO] GET /js/knowledge.js 200 10ms +[2026-01-04T01:07:31.642Z] [INFO] GET /js/coding.js 200 7ms +[2026-01-04T01:07:31.645Z] [INFO] GET /js/mobile.js 200 4ms +[2026-01-04T01:07:31.647Z] [INFO] GET /js/utils.js 200 1ms +[2026-01-04T01:07:31.715Z] [INFO] GET /assets/icons/task.svg 200 7ms +[2026-01-04T01:07:31.718Z] [INFO] GET /sw.js 200 6ms +[2026-01-04T01:07:31.762Z] [INFO] GET / 304 1ms +[2026-01-04T01:07:31.767Z] [INFO] GET /css/variables.css 304 3ms +[2026-01-04T01:07:31.769Z] [INFO] GET /index.html 200 12ms +[2026-01-04T01:07:31.804Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T01:07:31.809Z] [INFO] GET /css/components.css 304 2ms +[2026-01-04T01:07:31.813Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T01:07:31.835Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T01:07:31.839Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T01:07:31.844Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T01:07:31.865Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T01:07:31.870Z] [INFO] GET /js/utils.js 304 2ms +[2026-01-04T01:07:31.875Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T01:07:31.895Z] [INFO] GET /js/auth.js 304 1ms +[2026-01-04T01:07:31.900Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T01:07:31.903Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T01:07:31.922Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T01:07:31.930Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T01:07:31.937Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T01:07:31.954Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T01:07:31.961Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T01:07:31.966Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T01:07:31.983Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T01:07:31.993Z] [INFO] GET /js/tour.js 200 3ms +[2026-01-04T01:07:32.000Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T01:07:32.022Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T01:07:32.027Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T01:07:32.032Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T01:07:32.052Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T01:07:32.058Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T01:07:32.065Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T01:07:32.083Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T01:07:32.088Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T01:07:32.100Z] [INFO] GET /css/admin.css 304 3ms +[2026-01-04T01:07:32.114Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T01:07:32.120Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T01:07:32.141Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T01:07:32.157Z] [INFO] GET /css/knowledge.css 304 2ms +[2026-01-04T01:07:32.158Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T01:07:35.842Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:07:36.971Z] [INFO] Login erfolgreich: admin +[2026-01-04T01:07:36.973Z] [INFO] POST /api/auth/login 200 415ms +[2026-01-04T01:07:37.031Z] [INFO] GET /api/admin/users 200 6ms +[2026-01-04T01:07:37.068Z] [INFO] GET /api/admin/upload-settings 200 7ms +[2026-01-04T01:07:39.496Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T01:07:42.903Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T01:08:05.947Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:08:36.041Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:09:06.134Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:09:36.224Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:10:06.336Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:10:30.993Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T01:10:31.121Z] [INFO] Umgebung: production +[2026-01-04T01:10:31.122Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T01:10:31.122Z] [INFO] Automatische Backups aktiviert +[2026-01-04T01:10:31.087Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T01:10:31.097Z] [INFO] Datenbank initialisiert +[2026-01-04T01:10:31.120Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T01:10:33.778Z] [INFO] GET /api/health 200 19ms +[2026-01-04T01:10:55.030Z] [INFO] GET / 200 15ms +[2026-01-04T01:10:55.122Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T01:10:55.150Z] [INFO] GET /css/base.css 200 3ms +[2026-01-04T01:10:55.190Z] [INFO] GET /css/board.css 200 8ms +[2026-01-04T01:10:55.193Z] [INFO] GET /css/components.css 200 9ms +[2026-01-04T01:10:55.198Z] [INFO] GET /css/modal.css 200 12ms +[2026-01-04T01:10:55.200Z] [INFO] GET /css/calendar.css 200 12ms +[2026-01-04T01:10:55.209Z] [INFO] GET /css/list.css 200 3ms +[2026-01-04T01:10:55.211Z] [INFO] GET /css/admin.css 200 4ms +[2026-01-04T01:10:55.223Z] [INFO] GET /css/proposals.css 200 3ms +[2026-01-04T01:10:55.245Z] [INFO] GET /css/notifications.css 200 3ms +[2026-01-04T01:10:55.260Z] [INFO] GET /css/gitea.css 200 10ms +[2026-01-04T01:10:55.261Z] [INFO] GET /css/coding.css 200 6ms +[2026-01-04T01:10:55.264Z] [INFO] GET /css/knowledge.css 200 6ms +[2026-01-04T01:10:55.269Z] [INFO] GET /css/responsive.css 200 1ms +[2026-01-04T01:10:55.274Z] [INFO] GET /css/mobile.css 200 2ms +[2026-01-04T01:10:55.294Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T01:10:55.353Z] [INFO] GET /js/api.js 200 4ms +[2026-01-04T01:10:55.357Z] [INFO] GET /js/auth.js 200 6ms +[2026-01-04T01:10:55.360Z] [INFO] GET /js/store.js 200 8ms +[2026-01-04T01:10:55.362Z] [INFO] GET /js/sync.js 200 7ms +[2026-01-04T01:10:55.366Z] [INFO] GET /js/board.js 200 5ms +[2026-01-04T01:10:55.367Z] [INFO] GET /js/offline.js 200 3ms +[2026-01-04T01:10:55.388Z] [INFO] GET /js/task-modal.js 200 6ms +[2026-01-04T01:10:55.398Z] [INFO] GET /js/shortcuts.js 200 7ms +[2026-01-04T01:10:55.402Z] [INFO] GET /js/calendar.js 200 8ms +[2026-01-04T01:10:55.403Z] [INFO] GET /js/list.js 200 6ms +[2026-01-04T01:10:55.407Z] [INFO] GET /js/undo.js 200 7ms +[2026-01-04T01:10:55.428Z] [INFO] GET /js/admin.js 200 7ms +[2026-01-04T01:10:55.432Z] [INFO] GET /js/proposals.js 200 8ms +[2026-01-04T01:10:55.445Z] [INFO] GET /js/notifications.js 200 12ms +[2026-01-04T01:10:55.451Z] [INFO] GET /js/gitea.js 200 16ms +[2026-01-04T01:10:55.454Z] [INFO] GET /js/knowledge.js 200 18ms +[2026-01-04T01:10:55.461Z] [INFO] GET /js/coding.js 200 15ms +[2026-01-04T01:10:55.467Z] [INFO] GET /js/mobile.js 200 4ms +[2026-01-04T01:10:55.473Z] [INFO] GET /js/utils.js 200 7ms +[2026-01-04T01:10:55.596Z] [INFO] POST /api/auth/refresh 200 26ms +[2026-01-04T01:10:55.603Z] [INFO] GET /api/auth/users 200 5ms +[2026-01-04T01:10:55.611Z] [INFO] GET /assets/icons/task.svg 304 7ms +[2026-01-04T01:10:55.634Z] [INFO] GET /api/admin/users 200 5ms +[2026-01-04T01:10:55.670Z] [INFO] GET /api/admin/upload-settings 304 6ms +[2026-01-04T01:10:58.747Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T01:11:00.883Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T01:11:01.999Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T01:11:03.875Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:11:04.624Z] [INFO] Logout: admin +[2026-01-04T01:11:04.626Z] [INFO] POST /api/auth/logout 200 10ms +[2026-01-04T01:11:04.663Z] [INFO] GET / 304 3ms +[2026-01-04T01:11:04.709Z] [INFO] GET /css/components.css 304 4ms +[2026-01-04T01:11:04.711Z] [INFO] GET /css/variables.css 304 5ms +[2026-01-04T01:11:04.716Z] [INFO] GET /css/modal.css 304 3ms +[2026-01-04T01:11:04.718Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T01:11:04.721Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T01:11:04.724Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T01:11:04.740Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T01:11:04.741Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T01:11:04.746Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T01:11:04.749Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T01:11:04.751Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T01:11:04.754Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T01:11:04.770Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T01:11:04.772Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T01:11:04.775Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T01:11:04.781Z] [INFO] GET /js/app.js 304 0ms +[2026-01-04T01:11:04.820Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T01:11:04.826Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T01:11:04.827Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T01:11:04.831Z] [INFO] GET /js/board.js 304 3ms +[2026-01-04T01:11:04.834Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T01:11:04.837Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T01:11:04.856Z] [INFO] GET /js/calendar.js 304 0ms +[2026-01-04T01:11:04.858Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T01:11:04.861Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T01:11:04.865Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T01:11:04.866Z] [INFO] GET /js/undo.js 304 2ms +[2026-01-04T01:11:04.872Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T01:11:04.887Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T01:11:04.888Z] [INFO] GET /js/proposals.js 304 2ms +[2026-01-04T01:11:04.892Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T01:11:04.898Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T01:11:04.903Z] [INFO] GET /js/knowledge.js 304 3ms +[2026-01-04T01:11:04.907Z] [INFO] GET /js/mobile.js 304 2ms +[2026-01-04T01:11:04.918Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T01:11:04.958Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T01:11:06.484Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T01:11:10.712Z] [WARN] Login fehlgeschlagen: Benutzer nicht gefunden - hendrik_gebhardt@gmx.de +[2026-01-04T01:11:10.714Z] [INFO] POST /api/auth/login 401 3ms +[2026-01-04T01:11:14.870Z] [INFO] GET / 200 5ms +[2026-01-04T01:11:14.950Z] [INFO] GET /css/base.css 200 8ms +[2026-01-04T01:11:14.952Z] [INFO] GET /css/variables.css 200 8ms +[2026-01-04T01:11:14.958Z] [INFO] GET /css/components.css 200 11ms +[2026-01-04T01:11:14.963Z] [INFO] GET /css/calendar.css 200 14ms +[2026-01-04T01:11:14.965Z] [INFO] GET /css/modal.css 200 9ms +[2026-01-04T01:11:14.967Z] [INFO] GET /css/board.css 200 7ms +[2026-01-04T01:11:14.984Z] [INFO] GET /css/admin.css 200 2ms +[2026-01-04T01:11:14.985Z] [INFO] GET /css/list.css 200 3ms +[2026-01-04T01:11:15.025Z] [INFO] GET /css/gitea.css 200 11ms +[2026-01-04T01:11:15.028Z] [INFO] GET /css/proposals.css 200 13ms +[2026-01-04T01:11:15.030Z] [INFO] GET /css/coding.css 200 14ms +[2026-01-04T01:11:15.033Z] [INFO] GET /css/knowledge.css 200 11ms +[2026-01-04T01:11:15.036Z] [INFO] GET /css/notifications.css 200 9ms +[2026-01-04T01:11:15.037Z] [INFO] GET /css/responsive.css 200 5ms +[2026-01-04T01:11:15.067Z] [INFO] GET /css/mobile.css 200 3ms +[2026-01-04T01:11:15.073Z] [INFO] GET /js/app.js 200 7ms +[2026-01-04T01:11:15.153Z] [INFO] GET /js/auth.js 200 11ms +[2026-01-04T01:11:15.157Z] [INFO] GET /js/sync.js 200 13ms +[2026-01-04T01:11:15.159Z] [INFO] GET /js/api.js 200 14ms +[2026-01-04T01:11:15.162Z] [INFO] GET /js/store.js 200 12ms +[2026-01-04T01:11:15.163Z] [INFO] GET /js/offline.js 200 5ms +[2026-01-04T01:11:15.165Z] [INFO] GET /js/board.js 200 4ms +[2026-01-04T01:11:15.183Z] [INFO] GET /js/task-modal.js 200 1ms +[2026-01-04T01:11:15.188Z] [INFO] GET /js/list.js 200 2ms +[2026-01-04T01:11:15.190Z] [INFO] GET /js/shortcuts.js 200 3ms +[2026-01-04T01:11:15.197Z] [INFO] GET /js/calendar.js 200 2ms +[2026-01-04T01:11:15.198Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T01:11:15.223Z] [INFO] GET /js/proposals.js 200 5ms +[2026-01-04T01:11:15.228Z] [INFO] GET /js/admin.js 200 7ms +[2026-01-04T01:11:15.233Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T01:11:15.235Z] [INFO] GET /js/gitea.js 200 4ms +[2026-01-04T01:11:15.240Z] [INFO] GET /js/knowledge.js 200 2ms +[2026-01-04T01:11:15.241Z] [INFO] GET /js/coding.js 200 2ms +[2026-01-04T01:11:15.256Z] [INFO] GET /js/mobile.js 200 5ms +[2026-01-04T01:11:15.261Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T01:11:15.304Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T01:11:18.463Z] [WARN] Login fehlgeschlagen: Benutzer nicht gefunden - hendrik_gebhardt@gmx.de +[2026-01-04T01:11:18.465Z] [INFO] POST /api/auth/login 401 3ms +[2026-01-04T01:11:31.142Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T01-11-31-127Z.db.enc +[2026-01-04T01:11:31.144Z] [INFO] Backup erstellt: backup_2026-01-04T01-11-31-127Z.db +[2026-01-04T01:11:31.143Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T01-11-31-127Z.db.enc +[2026-01-04T01:11:31.159Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T20-53-24-919Z.db.enc +[2026-01-04T01:11:31.161Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T01:11:31.159Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T20-53-24-919Z.db.enc +[2026-01-04T01:11:33.970Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:12:04.061Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:12:34.191Z] [INFO] GET /api/health 200 5ms +[2026-01-04T01:13:04.306Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:13:34.415Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:13:46.962Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T01:13:47.051Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T01:13:47.059Z] [INFO] Datenbank initialisiert +[2026-01-04T01:13:47.064Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T01:13:47.064Z] [INFO] Umgebung: production +[2026-01-04T01:13:47.064Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T01:13:47.065Z] [INFO] Automatische Backups aktiviert +[2026-01-04T01:13:49.567Z] [INFO] GET /api/health 200 18ms +[2026-01-04T01:14:19.669Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:14:24.317Z] [INFO] GET / 200 13ms +[2026-01-04T01:14:24.392Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T01:14:24.429Z] [INFO] GET /css/base.css 200 5ms +[2026-01-04T01:14:24.464Z] [INFO] GET /css/components.css 200 7ms +[2026-01-04T01:14:24.481Z] [INFO] GET /css/modal.css 200 10ms +[2026-01-04T01:14:24.482Z] [INFO] GET /css/board.css 200 10ms +[2026-01-04T01:14:24.483Z] [INFO] GET /css/calendar.css 200 9ms +[2026-01-04T01:14:24.488Z] [INFO] GET /css/list.css 200 10ms +[2026-01-04T01:14:24.489Z] [INFO] GET /css/admin.css 200 9ms +[2026-01-04T01:14:24.521Z] [INFO] GET /css/proposals.css 200 4ms +[2026-01-04T01:14:24.523Z] [INFO] GET /css/notifications.css 200 5ms +[2026-01-04T01:14:24.528Z] [INFO] GET /css/gitea.css 200 3ms +[2026-01-04T01:14:24.537Z] [INFO] GET /css/coding.css 200 3ms +[2026-01-04T01:14:24.543Z] [INFO] GET /css/responsive.css 200 4ms +[2026-01-04T01:14:24.545Z] [INFO] GET /css/knowledge.css 200 4ms +[2026-01-04T01:14:24.569Z] [INFO] GET /css/mobile.css 200 18ms +[2026-01-04T01:14:24.572Z] [INFO] GET /js/app.js 200 4ms +[2026-01-04T01:14:24.652Z] [INFO] GET /js/auth.js 200 13ms +[2026-01-04T01:14:24.657Z] [INFO] GET /js/store.js 200 13ms +[2026-01-04T01:14:24.660Z] [INFO] GET /js/sync.js 200 11ms +[2026-01-04T01:14:24.663Z] [INFO] GET /js/api.js 200 8ms +[2026-01-04T01:14:24.666Z] [INFO] GET /js/board.js 200 7ms +[2026-01-04T01:14:24.667Z] [INFO] GET /js/offline.js 200 5ms +[2026-01-04T01:14:24.688Z] [INFO] GET /js/calendar.js 200 6ms +[2026-01-04T01:14:24.691Z] [INFO] GET /js/list.js 200 7ms +[2026-01-04T01:14:24.695Z] [INFO] GET /js/task-modal.js 200 9ms +[2026-01-04T01:14:24.697Z] [INFO] GET /js/shortcuts.js 200 4ms +[2026-01-04T01:14:24.702Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T01:14:24.720Z] [INFO] GET /js/admin.js 200 4ms +[2026-01-04T01:14:24.721Z] [INFO] GET /js/proposals.js 200 4ms +[2026-01-04T01:14:24.726Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T01:14:24.730Z] [INFO] GET /js/coding.js 200 5ms +[2026-01-04T01:14:24.734Z] [INFO] GET /js/gitea.js 200 6ms +[2026-01-04T01:14:24.737Z] [INFO] GET /js/knowledge.js 200 6ms +[2026-01-04T01:14:24.759Z] [INFO] GET /js/utils.js 200 6ms +[2026-01-04T01:14:24.762Z] [INFO] GET /js/mobile.js 200 7ms +[2026-01-04T01:14:24.812Z] [INFO] GET /assets/icons/task.svg 304 8ms +[2026-01-04T01:14:28.695Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T01:14:28.697Z] [INFO] POST /api/auth/login 200 495ms +[2026-01-04T01:14:28.746Z] [INFO] GET /api/auth/users 200 15ms +[2026-01-04T01:14:28.786Z] [INFO] GET /api/projects 200 9ms +[2026-01-04T01:14:28.802Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (pIT6LcpTmohHNoYkAAAB) +[2026-01-04T01:14:28.826Z] [INFO] GET /api/columns/2 200 8ms +[2026-01-04T01:14:28.833Z] [INFO] GET /api/stats/dashboard?projectId=2 200 12ms +[2026-01-04T01:14:28.848Z] [INFO] GET /api/labels/2 200 11ms +[2026-01-04T01:14:28.870Z] [INFO] GET /api/tasks/project/2 200 20ms +[2026-01-04T01:14:28.874Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T01:14:28.940Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 6ms +[2026-01-04T01:14:28.985Z] [INFO] GET /api/notifications 200 12ms +[2026-01-04T01:14:29.025Z] [INFO] GET /api/knowledge/categories 200 5ms +[2026-01-04T01:14:32.005Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T01:14:34.496Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T01:14:47.091Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T01-14-47-077Z.db.enc +[2026-01-04T01:14:47.092Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T01-14-47-077Z.db.enc +[2026-01-04T01:14:47.093Z] [INFO] Backup erstellt: backup_2026-01-04T01-14-47-077Z.db +[2026-01-04T01:14:47.108Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T20-56-20-877Z.db.enc +[2026-01-04T01:14:47.108Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T20-56-20-877Z.db.enc +[2026-01-04T01:14:47.109Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T01:14:49.769Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:14:57.835Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (pIT6LcpTmohHNoYkAAAB) +[2026-01-04T01:15:19.879Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:15:49.981Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:16:20.084Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:16:50.167Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:17:20.281Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:17:50.367Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:18:20.480Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:18:50.574Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:19:20.665Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:19:50.751Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:20:20.845Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:20:50.941Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:21:21.045Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:21:51.148Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:22:21.261Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:22:51.377Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:23:21.463Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:23:51.565Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:24:21.678Z] [INFO] GET /api/health 200 4ms +[2026-01-04T01:24:51.768Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:25:21.864Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:25:51.960Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:26:22.058Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:26:52.158Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:27:22.254Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:27:52.370Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:28:22.468Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:28:52.588Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:29:22.699Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:29:52.802Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:30:22.927Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:30:53.012Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:31:23.119Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:31:53.212Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:32:23.308Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:32:53.432Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:33:23.561Z] [INFO] GET /api/health 200 4ms +[2026-01-04T01:33:53.677Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:34:23.775Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:34:53.850Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:35:23.940Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:35:54.030Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:36:24.135Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:36:54.220Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:37:24.305Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:37:54.412Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:38:24.514Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:38:54.606Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:39:24.702Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:39:54.806Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:40:24.890Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:40:54.981Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:41:25.091Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:41:55.205Z] [INFO] GET /api/health 200 5ms +[2026-01-04T01:42:25.330Z] [INFO] GET /api/health 200 5ms +[2026-01-04T01:42:55.420Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:43:25.532Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:43:55.634Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:44:25.746Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:44:55.859Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:45:25.977Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:45:56.079Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:46:26.175Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:46:56.257Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:47:26.359Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:47:56.445Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:48:26.548Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:48:56.634Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:49:26.718Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:49:56.817Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:50:26.934Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:50:57.042Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:51:27.129Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:51:57.254Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:52:27.396Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:52:57.540Z] [INFO] GET /api/health 200 4ms +[2026-01-04T01:53:27.622Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:53:57.734Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:54:27.819Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:54:57.940Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:55:28.036Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:55:58.158Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:56:28.262Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:56:58.347Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:57:28.451Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:57:58.537Z] [INFO] GET /api/health 200 3ms +[2026-01-04T01:58:28.621Z] [INFO] GET /api/health 200 1ms +[2026-01-04T01:58:58.721Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:59:28.811Z] [INFO] GET /api/health 200 2ms +[2026-01-04T01:59:58.920Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:00:29.026Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:00:59.116Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:01:29.220Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:01:59.314Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:02:29.425Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:02:59.536Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:03:29.638Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:03:59.759Z] [INFO] GET /api/health 200 4ms +[2026-01-04T02:04:29.859Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:04:59.978Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:05:30.070Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:06:00.159Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:06:30.249Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:07:00.337Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:07:30.431Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:08:00.537Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:08:30.638Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:09:00.729Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:09:30.847Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:10:00.939Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:10:31.041Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:11:01.143Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:11:31.232Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:12:01.332Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:12:31.439Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:13:01.552Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:13:31.661Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:14:01.752Z] [INFO] GET /api/health 200 0ms +[2026-01-04T02:14:31.864Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:15:01.955Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:15:32.077Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:16:02.181Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:16:32.257Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:17:02.367Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:17:32.467Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:18:02.556Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:18:32.677Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:19:02.753Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:19:32.844Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:20:02.945Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:20:33.065Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:21:03.173Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:21:33.274Z] [INFO] GET /api/health 200 4ms +[2026-01-04T02:22:03.372Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:22:33.498Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:23:03.608Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:23:33.701Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:24:03.804Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:24:33.906Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:25:04.026Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:25:34.125Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:26:04.214Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:26:34.303Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:27:04.411Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:27:34.501Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:28:04.604Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:28:34.699Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:29:04.799Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:29:34.887Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:30:04.994Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:30:35.080Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:31:05.193Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:31:35.289Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:32:05.384Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:32:35.468Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:33:05.574Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:33:35.692Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:34:05.813Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:34:35.912Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:35:06.009Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:35:36.100Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:36:06.200Z] [INFO] GET /api/health 200 4ms +[2026-01-04T02:36:36.299Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:37:06.391Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:37:36.481Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:38:06.594Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:38:36.688Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:39:06.776Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:39:36.865Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:40:06.980Z] [INFO] GET /api/health 200 4ms +[2026-01-04T02:40:37.092Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:41:07.193Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:41:37.304Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:42:07.414Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:42:37.530Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:43:07.639Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:43:37.760Z] [INFO] GET /api/health 200 0ms +[2026-01-04T02:44:07.863Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:44:37.953Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:45:08.052Z] [INFO] GET /api/health 200 5ms +[2026-01-04T02:45:38.145Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:46:08.243Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:46:38.359Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:47:08.450Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:47:38.548Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:48:08.656Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:48:38.758Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:49:08.862Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:49:38.972Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:50:09.061Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:50:39.162Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:51:09.267Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:51:39.366Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:52:09.466Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:52:39.563Z] [INFO] GET /api/health 200 3ms +[2026-01-04T02:53:09.660Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:53:39.744Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:54:09.842Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:54:39.929Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:55:10.032Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:55:40.113Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:56:10.201Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:56:40.316Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:57:10.398Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:57:40.484Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:58:10.572Z] [INFO] GET /api/health 200 2ms +[2026-01-04T02:58:40.673Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:59:10.753Z] [INFO] GET /api/health 200 1ms +[2026-01-04T02:59:40.877Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:00:11.011Z] [INFO] GET /api/health 200 7ms +[2026-01-04T03:00:41.441Z] [INFO] GET /api/health 200 79ms +[2026-01-04T03:01:11.689Z] [INFO] GET /api/health 200 6ms +[2026-01-04T03:01:41.910Z] [INFO] GET /api/health 200 64ms +[2026-01-04T03:02:12.028Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:02:42.149Z] [INFO] GET /api/health 200 5ms +[2026-01-04T03:03:12.293Z] [INFO] GET /api/health 200 7ms +[2026-01-04T03:03:42.431Z] [INFO] GET /api/health 200 6ms +[2026-01-04T03:04:12.572Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:04:42.719Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:05:12.868Z] [INFO] GET /api/health 200 5ms +[2026-01-04T03:05:42.989Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:06:13.134Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:06:43.311Z] [INFO] GET /api/health 200 7ms +[2026-01-04T03:07:13.440Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:07:43.549Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:08:13.763Z] [INFO] GET /api/health 200 16ms +[2026-01-04T03:08:43.995Z] [INFO] GET /api/health 200 7ms +[2026-01-04T03:09:14.242Z] [INFO] GET /api/health 200 6ms +[2026-01-04T03:09:44.457Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:10:14.678Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:10:44.902Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:11:15.197Z] [INFO] GET /api/health 200 12ms +[2026-01-04T03:11:45.435Z] [INFO] GET /api/health 200 6ms +[2026-01-04T03:12:15.667Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:12:45.887Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:13:16.116Z] [INFO] GET /api/health 200 5ms +[2026-01-04T03:13:46.311Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:14:16.485Z] [INFO] GET /api/health 200 17ms +[2026-01-04T03:14:46.598Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:15:16.861Z] [INFO] GET /api/health 200 74ms +[2026-01-04T03:15:46.960Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:16:17.084Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:16:47.178Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:17:17.290Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:17:47.384Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:18:17.499Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:18:47.577Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:19:17.676Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:19:47.780Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:20:17.880Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:20:47.967Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:21:18.067Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:21:48.177Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:22:18.282Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:22:48.389Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:23:18.489Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:23:48.577Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:24:18.660Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:24:48.765Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:25:18.870Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:25:48.964Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:26:19.071Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:26:49.172Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:27:19.265Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:27:49.357Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:28:19.458Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:28:49.543Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:29:19.647Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:29:49.732Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:30:19.841Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:30:49.943Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:31:20.040Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:31:50.134Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:32:20.230Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:32:50.309Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:33:20.402Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:33:50.530Z] [INFO] GET /api/health 200 10ms +[2026-01-04T03:34:20.646Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:34:50.735Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:35:20.831Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:35:50.943Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:36:21.027Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:36:51.124Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:37:21.231Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:37:51.323Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:38:21.403Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:38:51.496Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:39:21.595Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:39:51.700Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:40:21.794Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:40:51.909Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:41:22.017Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:41:52.140Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:42:22.239Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:42:52.346Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:43:22.457Z] [INFO] GET /api/health 200 4ms +[2026-01-04T03:43:52.554Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:44:22.649Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:44:52.737Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:45:22.834Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:45:52.949Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:46:23.064Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:46:53.170Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:47:23.261Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:47:53.362Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:48:23.460Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:48:53.555Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:49:23.649Z] [INFO] GET /api/health 200 3ms +[2026-01-04T03:49:53.735Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:50:23.833Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:50:53.939Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:51:24.025Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:51:54.108Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:52:24.188Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:52:54.283Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:53:24.358Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:53:54.428Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:54:24.499Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:54:54.580Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:55:24.667Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:55:54.753Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:56:24.832Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:56:54.904Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:57:25.011Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:57:55.097Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:58:25.189Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:58:55.279Z] [INFO] GET /api/health 200 1ms +[2026-01-04T03:59:25.382Z] [INFO] GET /api/health 200 2ms +[2026-01-04T03:59:55.486Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:00:25.598Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:00:55.692Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:01:25.809Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:01:55.910Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:02:26.011Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:02:56.122Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:03:26.230Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:03:56.333Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:04:26.441Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:04:56.552Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:05:26.652Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:05:56.757Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:06:26.864Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:06:56.976Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:07:27.069Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:07:57.175Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:08:27.270Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:08:57.387Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:09:27.478Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:09:57.569Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:10:27.676Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:10:57.761Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:11:27.874Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:11:57.980Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:12:28.070Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:12:58.167Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:13:28.275Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:13:58.368Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:14:28.470Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:14:58.583Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:15:28.673Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:15:58.780Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:16:28.880Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:16:58.968Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:17:29.053Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:17:59.137Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:18:29.222Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:18:59.332Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:19:29.429Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:19:59.512Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:20:29.622Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:20:59.715Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:21:29.811Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:21:59.921Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:22:30.047Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:23:00.146Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:23:30.248Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:24:00.357Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:24:30.450Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:25:00.566Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:25:30.680Z] [INFO] GET /api/health 200 5ms +[2026-01-04T04:26:00.803Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:26:30.897Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:27:01.018Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:27:31.107Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:28:01.196Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:28:31.295Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:29:01.434Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:29:31.550Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:30:01.648Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:30:31.744Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:31:01.891Z] [INFO] GET /api/health 200 4ms +[2026-01-04T04:31:31.994Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:32:02.106Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:32:32.199Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:33:02.312Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:33:32.428Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:34:02.527Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:34:32.623Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:35:02.716Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:35:32.836Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:36:02.936Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:36:33.034Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:37:03.137Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:37:33.230Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:38:03.330Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:38:33.427Z] [INFO] GET /api/health 200 7ms +[2026-01-04T04:39:03.533Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:39:33.621Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:40:03.738Z] [INFO] GET /api/health 200 4ms +[2026-01-04T04:40:33.844Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:41:03.945Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:41:34.053Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:42:04.152Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:42:34.254Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:43:04.347Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:43:34.472Z] [INFO] GET /api/health 200 4ms +[2026-01-04T04:44:04.584Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:44:34.683Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:45:04.776Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:45:34.864Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:46:04.982Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:46:35.075Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:47:05.173Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:47:35.267Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:48:05.375Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:48:35.501Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:49:05.614Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:49:35.711Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:50:05.816Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:50:35.922Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:51:06.027Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:51:36.133Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:52:06.243Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:52:36.346Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:53:06.446Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:53:36.556Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:54:06.674Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:54:36.771Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:55:06.878Z] [INFO] GET /api/health 200 3ms +[2026-01-04T04:55:36.998Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:56:07.095Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:56:37.179Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:57:07.275Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:57:37.373Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:58:07.471Z] [INFO] GET /api/health 200 2ms +[2026-01-04T04:58:37.564Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:59:07.655Z] [INFO] GET /api/health 200 1ms +[2026-01-04T04:59:37.772Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:00:07.862Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:00:37.974Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:01:08.076Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:01:38.183Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:02:08.283Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:02:38.378Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:03:08.480Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:03:38.590Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:04:08.687Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:04:38.799Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:05:08.879Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:05:38.989Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:06:09.080Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:06:39.170Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:07:09.254Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:07:39.375Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:08:09.484Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:08:39.595Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:09:09.688Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:09:39.807Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:10:09.892Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:10:39.971Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:11:10.062Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:11:40.150Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:12:10.236Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:12:40.361Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:13:10.478Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:13:40.596Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:14:10.723Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:14:40.822Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:15:10.929Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:15:41.026Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:16:11.123Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:16:41.230Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:17:11.338Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:17:41.444Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:18:11.544Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:18:41.671Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:19:11.786Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:19:41.878Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:20:11.980Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:20:42.097Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:21:12.196Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:21:42.293Z] [INFO] GET /api/health 200 4ms +[2026-01-04T05:22:12.410Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:22:42.510Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:23:12.607Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:23:42.708Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:24:12.800Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:24:42.901Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:25:13.010Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:25:43.100Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:26:13.213Z] [INFO] GET /api/health 200 10ms +[2026-01-04T05:26:43.308Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:27:13.415Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:27:43.503Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:28:13.606Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:28:43.691Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:29:13.808Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:29:43.901Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:30:14.014Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:30:44.118Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:31:14.212Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:31:44.312Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:32:14.415Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:32:44.525Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:33:14.639Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:33:44.726Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:34:14.829Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:34:44.918Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:35:15.008Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:35:45.105Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:36:15.214Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:36:45.290Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:37:15.410Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:37:45.508Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:38:15.616Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:38:45.704Z] [INFO] GET /api/health 200 4ms +[2026-01-04T05:39:15.800Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:39:45.931Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:40:16.048Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:40:46.156Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:41:16.259Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:41:46.357Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:42:16.477Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:42:46.577Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:43:16.667Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:43:46.760Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:44:16.859Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:44:46.946Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:45:17.059Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:45:47.159Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:46:17.292Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:46:47.386Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:47:17.495Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:47:47.587Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:48:17.680Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:48:47.776Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:49:17.864Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:49:47.990Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:50:18.082Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:50:48.166Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:51:18.251Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:51:48.343Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:52:18.435Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:52:48.540Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:53:18.626Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:53:48.731Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:54:18.812Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:54:48.931Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:55:19.021Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:55:49.120Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:56:19.223Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:56:49.331Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:57:19.444Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:57:49.545Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:58:19.642Z] [INFO] GET /api/health 200 2ms +[2026-01-04T05:58:49.747Z] [INFO] GET /api/health 200 3ms +[2026-01-04T05:59:19.838Z] [INFO] GET /api/health 200 1ms +[2026-01-04T05:59:49.930Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:00:20.014Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:00:50.087Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:01:20.185Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:01:50.300Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:02:20.405Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:02:50.502Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:03:20.596Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:03:50.706Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:04:20.821Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:04:50.925Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:05:21.011Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:05:51.120Z] [INFO] GET /api/health 200 4ms +[2026-01-04T06:06:21.214Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:06:51.312Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:07:21.401Z] [INFO] GET /api/health 200 4ms +[2026-01-04T06:07:51.491Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:08:21.587Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:08:51.663Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:09:21.758Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:09:51.847Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:10:21.940Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:10:52.055Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:11:22.134Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:11:52.231Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:12:22.325Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:12:52.435Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:13:22.533Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:13:52.628Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:14:22.733Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:14:52.825Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:15:22.916Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:15:53.033Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:16:23.115Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:16:53.212Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:17:23.330Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:17:32.047Z] [INFO] GET /robots.txt 200 15ms +[2026-01-04T06:17:32.290Z] [INFO] GET /sitemap.xml 200 2ms +[2026-01-04T06:17:53.425Z] [INFO] GET /api/health 200 0ms +[2026-01-04T06:18:23.511Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:18:53.608Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:19:23.694Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:19:53.803Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:20:23.912Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:20:54.021Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:21:24.117Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:21:54.201Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:22:24.277Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:22:54.377Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:23:24.481Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:23:54.600Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:24:24.689Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:24:54.777Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:25:24.898Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:25:54.988Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:26:25.088Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:26:55.179Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:27:25.267Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:27:55.353Z] [INFO] GET /api/health 200 5ms +[2026-01-04T06:28:25.452Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:28:55.534Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:29:25.627Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:29:55.713Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:30:25.824Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:30:55.923Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:31:26.042Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:31:56.150Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:32:26.263Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:32:56.359Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:33:26.462Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:33:56.568Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:34:26.689Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:34:56.784Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:35:26.882Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:35:57.005Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:36:27.086Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:36:57.173Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:37:27.275Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:37:57.371Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:38:27.468Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:38:57.552Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:39:27.643Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:39:57.745Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:40:27.840Z] [INFO] GET /api/health 200 5ms +[2026-01-04T06:40:57.952Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:41:28.027Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:41:58.140Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:42:28.252Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:42:58.339Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:43:28.440Z] [INFO] GET /api/health 200 3ms +[2026-01-04T06:43:58.551Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:44:28.646Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:44:58.724Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:45:28.802Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:45:58.893Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:46:28.972Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:46:59.054Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:47:29.134Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:47:59.213Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:48:29.324Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:48:59.464Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:49:29.571Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:49:59.693Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:50:29.820Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:50:59.911Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:51:30.009Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:52:00.099Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:52:30.181Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:53:00.263Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:53:30.363Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:54:00.451Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:54:30.545Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:55:00.656Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:55:30.757Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:56:00.851Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:56:30.952Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:57:01.037Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:57:31.127Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:58:01.204Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:58:31.302Z] [INFO] GET /api/health 200 1ms +[2026-01-04T06:58:45.564Z] [INFO] GET / 200 6ms +[2026-01-04T06:59:01.410Z] [INFO] GET /api/health 200 2ms +[2026-01-04T06:59:31.502Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:00:01.612Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:00:31.709Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:01:01.791Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:01:31.890Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:02:01.969Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:02:32.052Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:03:02.145Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:03:32.225Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:04:02.346Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:04:32.444Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:05:02.543Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:05:32.632Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:06:02.728Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:06:32.829Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:07:02.930Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:07:33.049Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:08:03.151Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:08:33.266Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:09:03.374Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:09:33.477Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:10:03.557Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:10:33.647Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:10:46.882Z] [INFO] GET / 200 5ms +[2026-01-04T07:10:47.134Z] [INFO] GET /robots.txt 200 4ms +[2026-01-04T07:10:49.942Z] [INFO] GET /css/coding.css 200 3ms +[2026-01-04T07:11:03.738Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:11:33.837Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:12:03.945Z] [INFO] GET /api/health 200 4ms +[2026-01-04T07:12:34.047Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:13:04.169Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:13:34.280Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:14:04.398Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:14:34.520Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:15:04.643Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:15:34.759Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:16:04.848Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:16:34.948Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:17:05.053Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:17:35.147Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:18:05.257Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:18:35.355Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:19:05.466Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:19:35.555Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:20:05.661Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:20:35.769Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:21:05.848Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:21:35.958Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:22:06.062Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:22:36.135Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:23:06.231Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:23:36.346Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:24:06.434Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:24:36.532Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:25:06.614Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:25:36.700Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:26:06.792Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:26:36.906Z] [INFO] GET /api/health 200 4ms +[2026-01-04T07:27:07.012Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:27:37.125Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:28:07.256Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:28:37.357Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:29:07.472Z] [INFO] GET /api/health 200 4ms +[2026-01-04T07:29:37.566Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:30:07.680Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:30:37.774Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:31:07.870Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:31:37.975Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:32:08.083Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:32:38.158Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:33:08.262Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:33:38.355Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:34:08.463Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:34:38.561Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:35:08.649Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:35:38.763Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:36:08.845Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:36:38.948Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:37:09.047Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:37:39.143Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:38:09.250Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:38:39.350Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:39:09.445Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:39:39.545Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:40:09.666Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:40:39.763Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:41:09.871Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:41:39.971Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:42:10.076Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:42:40.166Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:43:10.248Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:43:40.355Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:44:10.466Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:44:40.564Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:45:10.676Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:45:40.770Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:46:10.872Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:46:40.984Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:47:11.073Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:47:41.185Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:48:11.322Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:48:41.422Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:49:11.527Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:49:41.634Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:50:11.730Z] [INFO] GET /api/health 200 3ms +[2026-01-04T07:50:41.836Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:51:11.937Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:51:42.013Z] [INFO] GET /api/health 200 4ms +[2026-01-04T07:52:12.110Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:52:42.198Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:53:12.279Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:53:42.397Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:54:12.510Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:54:42.633Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:55:12.714Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:55:42.822Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:56:12.928Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:56:43.019Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:57:13.107Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:57:43.221Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:58:13.329Z] [INFO] GET /api/health 200 0ms +[2026-01-04T07:58:43.427Z] [INFO] GET /api/health 200 2ms +[2026-01-04T07:59:13.520Z] [INFO] GET /api/health 200 1ms +[2026-01-04T07:59:43.630Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:00:13.752Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:00:43.833Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:01:13.930Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:01:44.026Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:02:14.103Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:02:44.211Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:03:14.311Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:03:44.409Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:04:14.496Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:04:44.578Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:05:14.694Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:05:44.803Z] [INFO] GET /api/health 200 5ms +[2026-01-04T08:06:14.898Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:06:45.017Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:07:15.104Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:07:45.208Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:08:15.304Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:08:45.400Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:09:15.500Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:09:45.589Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:10:15.678Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:10:45.787Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:11:15.914Z] [INFO] GET /api/health 200 10ms +[2026-01-04T08:11:46.016Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:12:16.106Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:12:46.198Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:13:16.316Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:13:46.410Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:14:16.514Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:14:46.609Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:15:16.729Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:15:46.835Z] [INFO] GET /api/health 200 0ms +[2026-01-04T08:16:16.927Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:16:47.017Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:17:17.098Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:17:47.221Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:18:17.315Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:18:47.431Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:19:17.522Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:19:47.608Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:20:17.702Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:20:47.810Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:21:17.918Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:21:48.032Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:22:18.121Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:22:48.229Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:23:18.329Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:23:48.416Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:24:18.522Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:24:48.631Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:25:18.710Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:25:48.804Z] [INFO] GET /api/health 200 4ms +[2026-01-04T08:26:18.907Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:26:49.010Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:27:19.104Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:27:49.212Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:28:19.303Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:28:49.417Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:29:19.508Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:29:49.619Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:30:19.713Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:30:49.805Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:31:19.897Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:31:49.990Z] [INFO] GET /api/health 200 4ms +[2026-01-04T08:32:20.081Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:32:50.181Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:33:20.291Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:33:50.378Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:34:20.483Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:34:50.587Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:35:20.692Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:35:50.799Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:36:20.900Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:36:50.987Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:37:21.083Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:37:51.170Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:38:21.288Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:38:51.377Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:39:21.469Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:39:51.566Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:40:21.666Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:40:51.757Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:41:21.839Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:41:51.967Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:42:22.066Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:42:52.160Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:43:22.246Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:43:52.344Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:44:22.427Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:44:52.536Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:45:22.641Z] [INFO] GET /api/health 200 0ms +[2026-01-04T08:45:52.739Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:46:22.866Z] [INFO] GET /api/health 200 6ms +[2026-01-04T08:46:52.955Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:47:23.052Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:47:53.150Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:48:23.260Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:48:53.337Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:49:23.433Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:49:53.541Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:50:23.628Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:50:53.738Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:51:23.830Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:51:53.918Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:52:24.007Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:52:54.099Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:53:24.200Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:53:54.314Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:54:24.395Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:54:54.493Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:55:24.585Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:55:54.680Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:56:24.785Z] [INFO] GET /api/health 200 3ms +[2026-01-04T08:56:54.877Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:57:24.966Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:57:55.065Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:58:25.149Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:58:55.228Z] [INFO] GET /api/health 200 1ms +[2026-01-04T08:59:25.323Z] [INFO] GET /api/health 200 2ms +[2026-01-04T08:59:55.427Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:00:25.518Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:00:55.598Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:01:25.718Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:01:55.829Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:02:25.917Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:02:56.008Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:03:26.113Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:03:56.183Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:04:26.266Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:04:56.383Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:05:26.463Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:05:56.568Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:06:26.668Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:06:56.776Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:07:26.876Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:07:56.968Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:08:27.046Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:08:57.143Z] [INFO] GET /api/health 200 0ms +[2026-01-04T09:09:27.246Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:09:57.343Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:10:27.441Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:10:57.547Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:11:27.640Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:11:57.730Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:12:27.831Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:12:57.921Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:13:28.029Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:13:58.115Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:14:28.198Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:14:58.299Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:15:28.377Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:15:58.481Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:16:28.568Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:16:58.676Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:17:28.771Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:17:58.878Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:18:28.974Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:18:59.095Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:19:26.490Z] [INFO] GET / 200 8ms +[2026-01-04T09:19:27.007Z] [INFO] HEAD /apps 200 4ms +[2026-01-04T09:19:27.267Z] [INFO] POST /apps 200 3ms +[2026-01-04T09:19:29.193Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:19:59.320Z] [INFO] GET /api/health 200 4ms +[2026-01-04T09:20:29.416Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:20:59.532Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:21:29.636Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:21:59.743Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:22:29.857Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:22:32.420Z] [INFO] GET / 200 10ms +[2026-01-04T09:22:34.672Z] [INFO] GET /assets/icons/task.svg 200 6ms +[2026-01-04T09:22:59.946Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:23:30.082Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:24:00.197Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:24:30.318Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:25:00.419Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:25:30.507Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:26:00.625Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:26:30.714Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:27:00.800Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:27:30.880Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:28:00.978Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:28:31.063Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:29:01.196Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:29:31.281Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:30:01.361Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:30:31.459Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:31:01.554Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:31:31.659Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:32:01.765Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:32:31.874Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:33:01.979Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:33:32.078Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:34:02.198Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:34:32.319Z] [INFO] GET /api/health 200 4ms +[2026-01-04T09:35:02.428Z] [INFO] GET /api/health 200 4ms +[2026-01-04T09:35:32.532Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:36:02.644Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:36:32.731Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:37:02.810Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:37:32.916Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:38:03.025Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:38:33.113Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:39:03.211Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:39:33.312Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:40:03.412Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:40:33.505Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:41:03.600Z] [INFO] GET /api/health 200 5ms +[2026-01-04T09:41:33.707Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:42:03.810Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:42:33.917Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:43:04.026Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:43:34.117Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:44:04.210Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:44:34.303Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:45:04.403Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:45:34.520Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:46:04.616Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:46:34.723Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:47:04.825Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:47:34.926Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:48:05.050Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:48:35.149Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:49:05.265Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:49:35.379Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:50:05.502Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:50:35.625Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:51:05.729Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:51:35.831Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:52:05.946Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:52:36.035Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:53:06.162Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:53:36.261Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:54:06.375Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:54:36.477Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:55:06.585Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:55:36.683Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:56:06.770Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:56:36.938Z] [INFO] GET /api/health 200 6ms +[2026-01-04T09:57:07.054Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:57:37.159Z] [INFO] GET /api/health 200 3ms +[2026-01-04T09:58:07.242Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:58:37.334Z] [INFO] GET /api/health 200 1ms +[2026-01-04T09:58:41.313Z] [INFO] GET /robots.txt 200 7ms +[2026-01-04T09:58:41.559Z] [INFO] GET /sitemap.xml 200 7ms +[2026-01-04T09:59:07.437Z] [INFO] GET /api/health 200 2ms +[2026-01-04T09:59:37.528Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:00:07.609Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:00:37.688Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:01:07.796Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:01:37.920Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:02:08.020Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:02:38.112Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:03:08.205Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:03:38.296Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:04:08.396Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:04:38.485Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:05:08.581Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:05:38.676Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:06:08.767Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:06:38.855Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:07:08.953Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:07:39.058Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:08:09.175Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:08:39.279Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:09:09.377Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:09:39.473Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:10:09.571Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:10:39.687Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:11:09.792Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:11:39.869Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:12:09.973Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:12:40.080Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:13:10.187Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:13:40.316Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:14:10.429Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:14:40.539Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:15:10.637Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:15:40.747Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:16:10.829Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:16:40.930Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:17:11.041Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:17:41.138Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:18:11.232Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:18:41.342Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:19:11.438Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:19:41.539Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:20:11.638Z] [INFO] GET /api/health 200 0ms +[2026-01-04T10:20:41.733Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:21:11.831Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:21:41.912Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:22:12.007Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:22:42.111Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:23:12.204Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:23:42.304Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:24:12.379Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:24:42.485Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:25:12.581Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:25:42.676Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:26:12.782Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:26:42.886Z] [INFO] GET /api/health 200 0ms +[2026-01-04T10:27:12.991Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:27:43.096Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:28:13.205Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:28:43.307Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:29:13.400Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:29:43.479Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:30:13.589Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:30:43.750Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:31:13.867Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:31:43.994Z] [INFO] GET /api/health 200 4ms +[2026-01-04T10:32:14.100Z] [INFO] GET /api/health 200 4ms +[2026-01-04T10:32:44.196Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:33:14.298Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:33:44.407Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:34:14.513Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:34:44.618Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:35:14.698Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:35:44.824Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:36:14.942Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:36:45.069Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:37:15.183Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:37:45.298Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:38:15.404Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:38:45.510Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:39:15.610Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:39:45.731Z] [INFO] GET /api/health 200 4ms +[2026-01-04T10:40:15.837Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:40:45.948Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:41:16.050Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:41:46.133Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:42:16.224Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:42:46.324Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:43:16.419Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:43:46.556Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:44:16.653Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:44:46.752Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:45:16.849Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:45:46.957Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:46:17.062Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:46:47.181Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:47:17.285Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:47:47.393Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:48:17.508Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:48:47.614Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:49:17.722Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:49:47.817Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:50:17.918Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:50:48.019Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:51:18.101Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:51:48.190Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:52:18.264Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:52:48.364Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:53:18.462Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:53:48.570Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:54:18.654Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:54:48.770Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:55:18.875Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:55:48.955Z] [INFO] GET /api/health 200 4ms +[2026-01-04T10:56:19.058Z] [INFO] GET /api/health 200 3ms +[2026-01-04T10:56:49.159Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:57:19.253Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:57:49.370Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:58:19.462Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:58:49.569Z] [INFO] GET /api/health 200 2ms +[2026-01-04T10:59:19.650Z] [INFO] GET /api/health 200 1ms +[2026-01-04T10:59:49.748Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:00:19.847Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:00:49.956Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:01:20.051Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:01:50.151Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:02:20.251Z] [INFO] GET /api/health 200 3ms +[2026-01-04T11:02:50.366Z] [INFO] GET /api/health 200 8ms +[2026-01-04T11:03:20.463Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:03:50.570Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:03:58.956Z] [INFO] GET / 200 5ms +[2026-01-04T11:04:20.671Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:04:50.763Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:05:20.863Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:05:50.953Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:06:21.058Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:06:51.171Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:07:21.265Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:07:51.355Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:08:21.441Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:08:51.532Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:09:21.617Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:09:51.731Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:10:21.824Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:10:51.934Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:11:22.030Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:11:52.148Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:12:22.244Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:12:52.366Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:13:22.479Z] [INFO] GET /api/health 200 3ms +[2026-01-04T11:13:52.593Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:14:22.694Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:14:52.787Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:15:22.885Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:15:52.984Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:16:23.085Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:16:53.181Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:17:23.277Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:17:53.382Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:18:23.470Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:18:53.573Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:19:23.660Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:19:53.769Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:20:23.893Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:20:53.998Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:21:24.086Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:21:54.200Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:22:24.293Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:22:54.388Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:23:24.474Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:23:54.572Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:24:24.680Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:24:54.794Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:25:24.893Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:25:55.006Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:26:25.106Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:26:55.200Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:27:25.291Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:27:55.385Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:28:25.474Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:28:55.568Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:29:25.648Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:29:55.741Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:30:25.850Z] [INFO] GET /api/health 200 3ms +[2026-01-04T11:30:55.976Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:31:26.075Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:31:56.167Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:32:26.254Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:32:56.352Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:33:26.444Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:33:56.546Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:34:26.629Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:34:56.720Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:35:26.841Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:35:56.921Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:36:27.018Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:36:57.120Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:37:27.210Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:37:57.318Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:38:27.426Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:38:57.545Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:39:27.643Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:39:57.732Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:40:27.836Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:40:57.936Z] [INFO] GET /api/health 200 3ms +[2026-01-04T11:41:28.048Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:41:58.147Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:42:28.250Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:42:58.358Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:43:28.446Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:43:58.541Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:44:28.626Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:44:58.717Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:45:28.802Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:45:58.906Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:46:29.010Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:46:59.092Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:47:29.202Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:47:59.303Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:48:29.408Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:48:59.500Z] [INFO] GET /api/health 200 0ms +[2026-01-04T11:49:29.601Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:49:59.673Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:50:29.791Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:50:59.893Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:51:29.986Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:52:00.090Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:52:30.191Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:53:00.283Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:53:30.396Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:54:00.511Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:54:30.601Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:55:00.709Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:55:30.824Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:56:00.914Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:56:31.001Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:57:01.137Z] [INFO] GET /api/health 200 4ms +[2026-01-04T11:57:31.246Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:58:01.359Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:58:31.458Z] [INFO] GET /api/health 200 2ms +[2026-01-04T11:59:01.567Z] [INFO] GET /api/health 200 1ms +[2026-01-04T11:59:31.657Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:00:01.754Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:00:31.874Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:01:01.975Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:01:32.073Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:02:02.173Z] [INFO] GET /api/health 200 7ms +[2026-01-04T12:02:32.248Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:03:02.328Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:03:32.426Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:04:02.538Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:04:32.640Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:05:02.726Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:05:32.842Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:06:02.947Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:06:33.045Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:07:03.136Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:07:33.241Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:08:03.351Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:08:33.477Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:09:03.593Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:09:33.687Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:10:03.783Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:10:33.873Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:11:03.988Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:11:34.083Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:12:04.186Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:12:34.290Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:13:04.383Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:13:34.458Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:14:04.551Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:14:34.651Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:15:04.765Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:15:34.874Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:16:04.971Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:16:35.079Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:17:05.191Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:17:35.300Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:18:05.393Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:18:35.496Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:19:05.600Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:19:35.707Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:20:05.821Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:20:35.922Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:21:06.039Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:21:36.125Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:22:06.213Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:22:36.318Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:23:06.413Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:23:36.522Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:24:06.608Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:24:36.687Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:25:06.773Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:25:36.889Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:26:06.993Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:26:37.096Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:27:07.185Z] [INFO] GET /api/health 200 0ms +[2026-01-04T12:27:37.294Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:28:07.402Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:28:37.495Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:29:07.597Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:29:37.695Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:30:07.792Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:30:37.886Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:31:07.978Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:31:38.077Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:32:08.175Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:32:38.295Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:33:08.399Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:33:38.497Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:34:08.575Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:34:38.676Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:35:08.763Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:35:38.865Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:36:08.943Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:36:39.040Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:37:09.125Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:37:39.226Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:38:09.312Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:38:39.411Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:39:09.516Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:39:39.635Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:40:09.735Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:40:39.837Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:41:09.935Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:41:40.030Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:42:10.141Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:42:40.242Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:43:10.340Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:43:40.441Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:44:10.543Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:44:40.639Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:45:10.730Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:45:40.824Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:46:10.923Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:46:41.016Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:47:11.118Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:47:41.209Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:48:11.307Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:48:41.415Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:49:11.518Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:49:41.613Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:50:11.730Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:50:41.834Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:51:11.936Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:51:42.057Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:52:12.149Z] [INFO] GET /api/health 200 4ms +[2026-01-04T12:52:42.275Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:53:12.387Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:53:42.477Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:54:12.569Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:54:42.678Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:55:12.766Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:55:42.867Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:56:12.973Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:56:43.066Z] [INFO] GET /api/health 200 2ms +[2026-01-04T12:57:13.161Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:57:43.260Z] [INFO] GET /api/health 200 3ms +[2026-01-04T12:58:13.351Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:58:43.450Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:59:13.526Z] [INFO] GET /api/health 200 1ms +[2026-01-04T12:59:43.621Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:00:13.722Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:00:43.847Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:01:13.942Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:01:44.027Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:02:14.129Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:02:44.249Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:03:14.342Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:03:44.458Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:04:14.575Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:04:44.663Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:05:14.761Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:05:44.878Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:06:14.977Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:06:45.079Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:07:15.182Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:07:45.287Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:08:15.394Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:08:45.479Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:09:15.598Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:09:45.703Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:10:15.792Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:10:45.895Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:11:16.014Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:11:46.125Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:12:16.228Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:12:46.328Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:13:16.420Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:13:46.505Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:14:16.601Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:14:46.691Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:15:16.793Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:15:46.907Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:16:17.000Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:16:47.093Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:17:17.179Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:17:47.279Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:18:17.373Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:18:47.486Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:19:17.578Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:19:47.690Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:20:17.793Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:20:47.883Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:21:17.998Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:21:48.114Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:22:18.199Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:22:48.308Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:23:18.390Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:23:48.496Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:24:18.610Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:24:48.699Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:25:18.787Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:25:48.731Z] [INFO] GET /robots.txt 200 5ms +[2026-01-04T13:25:48.878Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:25:48.981Z] [INFO] GET /sitemap.xml 200 4ms +[2026-01-04T13:26:18.965Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:26:49.063Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:27:19.152Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:27:49.251Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:28:19.331Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:28:49.428Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:29:19.510Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:29:49.621Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:30:19.730Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:30:49.837Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:31:19.933Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:31:50.048Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:32:20.143Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:32:50.246Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:33:20.344Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:33:50.438Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:34:20.523Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:34:50.620Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:35:20.739Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:35:50.853Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:36:20.988Z] [INFO] GET /api/health 200 4ms +[2026-01-04T13:36:51.102Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:37:21.214Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:37:51.289Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:38:21.395Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:38:51.493Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:39:21.598Z] [INFO] GET /api/health 200 4ms +[2026-01-04T13:39:51.723Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:40:21.816Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:40:51.917Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:41:22.014Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:41:52.113Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:42:22.209Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:42:52.326Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:43:22.436Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:43:52.529Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:44:22.627Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:44:52.756Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:45:22.857Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:45:52.963Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:46:23.058Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:46:53.160Z] [INFO] GET /api/health 200 3ms +[2026-01-04T13:47:23.267Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:47:53.377Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:48:23.484Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:48:53.574Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:49:23.673Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:49:53.794Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:50:23.899Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:50:53.993Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:51:24.079Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:51:54.210Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:52:24.310Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:52:54.398Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:53:24.488Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:53:54.581Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:54:24.680Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:54:54.773Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:55:24.864Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:55:54.958Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:56:25.049Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:56:55.162Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:57:25.259Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:57:55.351Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:58:25.448Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:58:55.548Z] [INFO] GET /api/health 200 2ms +[2026-01-04T13:59:25.630Z] [INFO] GET /api/health 200 1ms +[2026-01-04T13:59:55.727Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:00:25.833Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:00:55.924Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:01:26.013Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:01:56.110Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:02:26.237Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:02:56.328Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:03:26.425Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:03:56.511Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:04:26.633Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:04:56.724Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:05:26.820Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:05:56.895Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:06:26.998Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:06:57.098Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:07:27.182Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:07:57.265Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:08:27.366Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:08:57.458Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:09:27.575Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:09:57.682Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:10:27.782Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:10:57.879Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:11:27.966Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:11:58.051Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:12:28.141Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:12:58.227Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:13:28.315Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:13:58.402Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:14:28.496Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:14:58.605Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:15:28.728Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:15:58.852Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:16:28.962Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:16:59.064Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:17:29.165Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:17:59.274Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:18:29.359Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:18:59.458Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:19:29.559Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:19:59.666Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:20:29.752Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:20:59.849Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:21:29.943Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:22:00.034Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:22:30.129Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:23:00.232Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:23:30.347Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:24:00.436Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:24:30.515Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:25:00.630Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:25:30.732Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:26:00.854Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:26:30.950Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:27:01.059Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:27:31.166Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:28:01.277Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:28:31.370Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:29:01.478Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:29:31.576Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:30:01.669Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:30:31.766Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:31:01.884Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:31:31.985Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:32:02.104Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:32:32.195Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:33:02.302Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:33:32.383Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:34:02.461Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:34:32.577Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:35:02.690Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:35:32.786Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:36:02.884Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:36:32.991Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:37:03.088Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:37:33.176Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:38:03.278Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:38:33.385Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:39:03.494Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:39:33.599Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:40:03.689Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:40:33.804Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:41:03.905Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:41:34.027Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:42:04.129Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:42:34.226Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:43:04.358Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:43:34.450Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:44:04.543Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:44:34.631Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:45:04.714Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:45:34.824Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:46:04.924Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:46:35.019Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:47:05.091Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:47:35.184Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:48:05.268Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:48:35.361Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:49:05.477Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:49:35.565Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:50:05.661Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:50:35.756Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:51:05.853Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:51:35.949Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:52:06.024Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:52:36.149Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:53:06.240Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:53:36.343Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:54:06.422Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:54:36.512Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:55:06.615Z] [INFO] GET /api/health 200 4ms +[2026-01-04T14:55:36.717Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:56:06.826Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:56:36.914Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:57:07.002Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:57:37.099Z] [INFO] GET /api/health 200 2ms +[2026-01-04T14:58:07.189Z] [INFO] GET /api/health 200 1ms +[2026-01-04T14:58:37.306Z] [INFO] GET /api/health 200 4ms +[2026-01-04T14:59:07.400Z] [INFO] GET /api/health 200 3ms +[2026-01-04T14:59:37.493Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:00:07.592Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:00:37.704Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:01:07.806Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:01:37.897Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:02:08.004Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:02:38.110Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:03:08.211Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:03:38.299Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:04:08.390Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:04:38.485Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:05:08.588Z] [INFO] GET /api/health 200 4ms +[2026-01-04T15:05:38.686Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:06:08.786Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:06:38.887Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:07:08.973Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:07:39.085Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:08:09.193Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:08:39.299Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:09:09.399Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:09:39.505Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:10:09.607Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:10:39.706Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:11:09.829Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:11:39.935Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:12:10.046Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:12:40.143Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:13:10.231Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:13:40.323Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:14:10.415Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:14:40.511Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:15:10.588Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:15:40.696Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:16:10.775Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:16:40.878Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:17:10.974Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:17:41.069Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:18:11.200Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:18:41.313Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:19:11.425Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:19:41.542Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:20:11.645Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:20:41.770Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:21:11.875Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:21:41.956Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:22:12.064Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:22:42.159Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:23:12.247Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:23:42.331Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:24:12.439Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:24:42.548Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:25:12.649Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:25:42.761Z] [INFO] GET /api/health 200 5ms +[2026-01-04T15:26:12.854Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:26:42.973Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:27:13.056Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:27:43.152Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:28:13.274Z] [INFO] GET /api/health 200 4ms +[2026-01-04T15:28:43.369Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:29:13.485Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:29:43.558Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:30:13.662Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:30:43.755Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:31:13.858Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:31:43.959Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:32:14.048Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:32:44.160Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:33:14.242Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:33:44.346Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:34:14.444Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:34:44.537Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:35:14.670Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:35:44.786Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:36:14.880Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:36:44.984Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:37:15.117Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:37:45.233Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:38:15.325Z] [INFO] GET /api/health 200 4ms +[2026-01-04T15:38:45.420Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:39:15.517Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:39:45.618Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:40:15.715Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:40:45.829Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:41:15.963Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:41:46.058Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:42:16.167Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:42:46.258Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:43:16.354Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:43:46.444Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:44:16.548Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:44:46.638Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:45:16.722Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:45:46.825Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:46:16.934Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:46:47.039Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:47:17.134Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:47:47.227Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:48:17.318Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:48:47.428Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:49:17.517Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:49:47.608Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:50:17.711Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:50:47.820Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:51:17.934Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:51:48.037Z] [INFO] GET /api/health 200 0ms +[2026-01-04T15:52:18.132Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:52:48.222Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:53:18.338Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:53:48.454Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:54:18.552Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:54:48.673Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:55:18.758Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:55:48.850Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:56:18.941Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:56:49.046Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:57:19.163Z] [INFO] GET /api/health 200 2ms +[2026-01-04T15:57:49.275Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:58:19.376Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:58:49.471Z] [INFO] GET /api/health 200 3ms +[2026-01-04T15:59:19.573Z] [INFO] GET /api/health 200 1ms +[2026-01-04T15:59:49.683Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:00:19.790Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:00:22.934Z] [INFO] GET /robots.txt 200 10ms +[2026-01-04T16:00:23.180Z] [INFO] GET /sitemap.xml 200 6ms +[2026-01-04T16:00:49.879Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:01:19.977Z] [INFO] GET /api/health 200 5ms +[2026-01-04T16:01:50.075Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:02:20.184Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:02:50.288Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:03:20.385Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:03:50.502Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:04:20.598Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:04:50.686Z] [INFO] GET /api/health 200 0ms +[2026-01-04T16:05:20.777Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:05:50.891Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:06:20.993Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:06:51.087Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:07:21.176Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:07:51.261Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:08:21.345Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:08:51.443Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:09:03.846Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T16:09:21.552Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:09:51.645Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:10:21.731Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:10:51.841Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:11:21.935Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:11:52.027Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:12:22.125Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:12:52.229Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:13:22.317Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:13:52.429Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:14:22.531Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:14:52.625Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:15:22.723Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:15:52.838Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:16:22.924Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:16:53.034Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:17:23.128Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:17:53.244Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:18:23.356Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:18:53.456Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:19:23.547Z] [INFO] GET /api/health 200 4ms +[2026-01-04T16:19:53.661Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:20:23.772Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:20:53.856Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:21:23.948Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:21:54.063Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:22:24.167Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:22:54.280Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:23:24.400Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:23:54.516Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:24:24.622Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:24:54.725Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:25:24.833Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:25:54.955Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:26:25.039Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:26:55.132Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:27:25.228Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:27:55.311Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:28:25.422Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:28:55.510Z] [INFO] GET /api/health 200 0ms +[2026-01-04T16:29:25.614Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:29:55.718Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:30:25.824Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:30:55.909Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:31:26.006Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:31:56.108Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:32:26.192Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:32:56.310Z] [INFO] GET /api/health 200 5ms +[2026-01-04T16:33:26.424Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:33:56.518Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:34:26.609Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:34:56.706Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:35:26.811Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:35:56.911Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:36:27.002Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:36:57.091Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:37:27.183Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:37:57.290Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:38:27.375Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:38:57.479Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:39:27.565Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:39:57.687Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:40:27.793Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:40:57.887Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:41:27.979Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:41:58.081Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:42:28.203Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:42:58.307Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:43:28.401Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:43:58.501Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:44:28.583Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:44:58.701Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:45:28.797Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:45:58.911Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:46:29.002Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:46:59.096Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:47:29.187Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:47:59.265Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:48:29.356Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:48:59.439Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:49:29.535Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:49:59.645Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:50:29.776Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:50:59.900Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:51:29.995Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:52:00.103Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:52:30.194Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:53:00.274Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:53:30.387Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:54:00.516Z] [INFO] GET /api/health 200 3ms +[2026-01-04T16:54:30.629Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:55:00.728Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:55:30.830Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:56:00.932Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:56:31.023Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:57:01.133Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:57:31.240Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:58:01.339Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:58:31.425Z] [INFO] GET /api/health 200 1ms +[2026-01-04T16:59:01.531Z] [INFO] GET /api/health 200 2ms +[2026-01-04T16:59:31.643Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:00:01.744Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:00:31.850Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:01:01.936Z] [INFO] GET /api/health 200 0ms +[2026-01-04T17:01:32.048Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:02:02.151Z] [INFO] GET /api/health 200 5ms +[2026-01-04T17:02:32.252Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:03:02.362Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:03:32.467Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:04:02.566Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:04:32.680Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:05:02.791Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:05:32.891Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:06:02.981Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:06:33.069Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:07:03.176Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:07:33.287Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:08:03.380Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:08:33.462Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:09:03.575Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:09:33.674Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:10:03.792Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:10:33.900Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:11:03.984Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:11:34.089Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:12:04.204Z] [INFO] GET /api/health 200 0ms +[2026-01-04T17:12:34.338Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:13:04.455Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:13:34.541Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:14:04.646Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:14:34.739Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:15:04.844Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:15:34.961Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:16:05.061Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:16:35.175Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:16:56.878Z] [INFO] GET / 200 5ms +[2026-01-04T17:17:05.268Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:17:35.357Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:18:05.449Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:18:35.538Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:19:05.628Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:19:35.718Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:20:05.809Z] [INFO] GET /api/health 200 4ms +[2026-01-04T17:20:35.928Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:21:06.017Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:21:36.122Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:22:06.228Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:22:36.350Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:23:06.449Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:23:36.545Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:24:06.645Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:24:36.739Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:25:06.855Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:25:36.957Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:26:07.071Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:26:37.181Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:27:07.293Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:27:37.390Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:28:07.488Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:28:37.602Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:29:07.685Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:29:37.788Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:30:07.879Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:30:37.969Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:31:08.077Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:31:38.180Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:32:08.273Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:32:38.378Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:33:08.481Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:33:38.589Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:34:08.692Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:34:38.789Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:35:08.902Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:35:39.006Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:36:09.088Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:36:39.160Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:37:09.242Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:37:39.358Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:38:09.459Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:38:39.578Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:39:09.697Z] [INFO] GET /api/health 200 6ms +[2026-01-04T17:39:39.815Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:40:09.913Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:40:40.030Z] [INFO] GET /api/health 200 6ms +[2026-01-04T17:41:10.131Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:41:40.215Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:42:10.322Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:42:40.406Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:43:10.516Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:43:40.620Z] [INFO] GET /api/health 200 0ms +[2026-01-04T17:44:10.704Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:44:40.820Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:45:10.928Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:45:41.043Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:46:11.149Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:46:41.252Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:47:11.373Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:47:41.468Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:47:52.105Z] [INFO] GET / 200 4ms +[2026-01-04T17:47:53.633Z] [INFO] GET /.env 200 7ms +[2026-01-04T17:47:54.398Z] [INFO] GET /.remote 200 4ms +[2026-01-04T17:47:54.918Z] [INFO] GET /.local 200 5ms +[2026-01-04T17:47:55.435Z] [INFO] GET /.production 200 3ms +[2026-01-04T17:47:55.955Z] [INFO] GET //vendor/.env 200 7ms +[2026-01-04T17:47:56.476Z] [INFO] GET //lib/.env 200 5ms +[2026-01-04T17:47:56.997Z] [INFO] GET //lab/.env 200 6ms +[2026-01-04T17:47:57.513Z] [INFO] GET //cronlab/.env 200 5ms +[2026-01-04T17:47:58.033Z] [INFO] GET //cron/.env 200 4ms +[2026-01-04T17:47:58.555Z] [INFO] GET //core/.env 200 3ms +[2026-01-04T17:47:59.076Z] [INFO] GET //core/app/.env 200 7ms +[2026-01-04T17:47:59.592Z] [INFO] GET //core/Datavase/.env 200 3ms +[2026-01-04T17:48:00.108Z] [INFO] GET //database/.env 200 2ms +[2026-01-04T17:48:00.631Z] [INFO] GET //config/.env 200 4ms +[2026-01-04T17:48:01.151Z] [INFO] GET //assets/.env 200 6ms +[2026-01-04T17:48:01.674Z] [INFO] GET //app/.env 200 7ms +[2026-01-04T17:48:02.193Z] [INFO] GET //apps/.env 200 4ms +[2026-01-04T17:48:02.707Z] [INFO] GET //uploads/.env 200 3ms +[2026-01-04T17:48:03.224Z] [INFO] GET //sitemaps/.env 200 3ms +[2026-01-04T17:48:03.748Z] [INFO] GET //saas/.env 200 7ms +[2026-01-04T17:48:04.269Z] [INFO] GET //api/.env 200 7ms +[2026-01-04T17:48:04.793Z] [INFO] GET //psnlink/.env 200 4ms +[2026-01-04T17:48:05.311Z] [INFO] GET //exapi/.env 200 4ms +[2026-01-04T17:48:05.828Z] [INFO] GET //site/.env 200 3ms +[2026-01-04T17:48:06.348Z] [INFO] GET //admin/.env 200 4ms +[2026-01-04T17:48:06.865Z] [INFO] GET //web/.env 200 4ms +[2026-01-04T17:48:07.389Z] [INFO] GET //public/.env 200 7ms +[2026-01-04T17:48:07.913Z] [INFO] GET //en/.env 200 5ms +[2026-01-04T17:48:08.435Z] [INFO] GET //tools/.env 200 5ms +[2026-01-04T17:48:08.956Z] [INFO] GET //v1/.env 200 3ms +[2026-01-04T17:48:09.476Z] [INFO] GET //v2/.env 200 8ms +[2026-01-04T17:48:09.994Z] [INFO] GET //administrator/.env 200 5ms +[2026-01-04T17:48:10.517Z] [INFO] GET //laravel/.env 200 4ms +[2026-01-04T17:48:11.568Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:48:12.345Z] [INFO] GET /phpinfo.php 200 4ms +[2026-01-04T17:48:13.141Z] [INFO] GET /info.php 200 5ms +[2026-01-04T17:48:13.684Z] [INFO] GET /php.php 200 5ms +[2026-01-04T17:48:14.236Z] [INFO] GET /i.php 200 4ms +[2026-01-04T17:48:14.772Z] [INFO] GET /pinfo.php 200 5ms +[2026-01-04T17:48:15.308Z] [INFO] GET /test.php 200 4ms +[2026-01-04T17:48:15.847Z] [INFO] GET /temp.php 200 7ms +[2026-01-04T17:48:16.382Z] [INFO] GET /time.php 200 4ms +[2026-01-04T17:48:16.914Z] [INFO] GET /infos.php 200 5ms +[2026-01-04T17:48:17.444Z] [INFO] GET /infophp.php 200 3ms +[2026-01-04T17:48:17.980Z] [INFO] GET /php-info.php 200 4ms +[2026-01-04T17:48:18.514Z] [INFO] GET /phpversion.php 200 5ms +[2026-01-04T17:48:19.051Z] [INFO] GET /old_phpinfo.php 200 5ms +[2026-01-04T17:48:19.588Z] [INFO] GET /linusadmin-phpinfo.php 200 5ms +[2026-01-04T17:48:20.119Z] [INFO] GET /_profiler/phpinfo 200 5ms +[2026-01-04T17:48:20.652Z] [INFO] GET /_environment 200 4ms +[2026-01-04T17:48:21.187Z] [INFO] GET /webroot/index.php/_environment 200 4ms +[2026-01-04T17:48:21.720Z] [INFO] GET /phpinfo 200 4ms +[2026-01-04T17:48:22.257Z] [INFO] GET /admin/phpinfo.php 200 5ms +[2026-01-04T17:48:22.796Z] [INFO] GET /admin/info.php 200 8ms +[2026-01-04T17:48:23.327Z] [INFO] GET /admin/php.php 200 5ms +[2026-01-04T17:48:23.862Z] [INFO] GET /test/phpinfo.php 200 4ms +[2026-01-04T17:48:24.393Z] [INFO] GET /test/info.php 200 4ms +[2026-01-04T17:48:24.927Z] [INFO] GET /test/php.php 200 5ms +[2026-01-04T17:48:25.456Z] [INFO] GET /dev/phpinfo.php 200 2ms +[2026-01-04T17:48:25.989Z] [INFO] GET /dev/info.php 200 3ms +[2026-01-04T17:48:26.523Z] [INFO] GET /dev/php.php 200 2ms +[2026-01-04T17:48:27.051Z] [INFO] GET /development/phpinfo.php 200 2ms +[2026-01-04T17:48:27.584Z] [INFO] GET /development/info.php 200 2ms +[2026-01-04T17:48:28.115Z] [INFO] GET /api/phpinfo.php 404 3ms +[2026-01-04T17:48:28.635Z] [INFO] GET /api/info.php 404 1ms +[2026-01-04T17:48:29.157Z] [INFO] GET /backend/phpinfo.php 200 4ms +[2026-01-04T17:48:29.951Z] [INFO] GET /backend/info.php 200 5ms +[2026-01-04T17:48:30.747Z] [INFO] GET /server/phpinfo.php 200 2ms +[2026-01-04T17:48:31.537Z] [INFO] GET /server/info.php 200 4ms +[2026-01-04T17:48:32.333Z] [INFO] GET /laravel/phpinfo.php 200 5ms +[2026-01-04T17:48:33.123Z] [INFO] GET /laravel/info.php 200 5ms +[2026-01-04T17:48:33.912Z] [INFO] GET /dashboard/phpinfo.php 200 4ms +[2026-01-04T17:48:34.444Z] [INFO] GET /dashboard/info.php 200 3ms +[2026-01-04T17:48:34.986Z] [INFO] GET /config.php 200 11ms +[2026-01-04T17:48:35.524Z] [INFO] GET /configuration.php 200 4ms +[2026-01-04T17:48:36.055Z] [INFO] GET /config.inc.php 200 2ms +[2026-01-04T17:48:36.591Z] [INFO] GET /config.json 200 7ms +[2026-01-04T17:48:37.127Z] [INFO] GET /config.yml 200 4ms +[2026-01-04T17:48:37.667Z] [INFO] GET /config.yaml 200 8ms +[2026-01-04T17:48:38.198Z] [INFO] GET /app/config.php 200 5ms +[2026-01-04T17:48:38.743Z] [INFO] GET /includes/config.php 200 4ms +[2026-01-04T17:48:39.279Z] [INFO] GET /admin/config.php 200 4ms +[2026-01-04T17:48:39.818Z] [INFO] GET /api/config.php 404 2ms +[2026-01-04T17:48:40.342Z] [INFO] GET /core/config.php 200 5ms +[2026-01-04T17:48:41.150Z] [INFO] GET /database/config.php 200 21ms +[2026-01-04T17:48:41.664Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:48:41.942Z] [INFO] GET /db/config.php 200 5ms +[2026-01-04T17:48:42.738Z] [INFO] GET /conf/config.php 200 4ms +[2026-01-04T17:48:43.531Z] [INFO] GET /database.php 200 5ms +[2026-01-04T17:48:44.324Z] [INFO] GET /db.php 200 3ms +[2026-01-04T17:48:45.114Z] [INFO] GET /db_config.php 200 4ms +[2026-01-04T17:48:45.908Z] [INFO] GET /database.yml 200 5ms +[2026-01-04T17:48:46.695Z] [INFO] GET /db/database.yml 200 2ms +[2026-01-04T17:48:47.489Z] [INFO] GET /config/database.yml 200 4ms +[2026-01-04T17:48:48.279Z] [INFO] GET /config/database.php 200 4ms +[2026-01-04T17:48:49.077Z] [INFO] GET /.env 200 5ms +[2026-01-04T17:48:49.874Z] [INFO] GET /.remote 200 4ms +[2026-01-04T17:48:50.666Z] [INFO] GET /.local 200 8ms +[2026-01-04T17:48:51.199Z] [INFO] GET /.production 200 4ms +[2026-01-04T17:48:51.992Z] [INFO] GET /.env.backup 200 5ms +[2026-01-04T17:48:52.528Z] [INFO] GET /.env.save 200 6ms +[2026-01-04T17:48:53.323Z] [INFO] GET /.env.old 200 5ms +[2026-01-04T17:48:53.863Z] [INFO] GET /.env.prod 200 5ms +[2026-01-04T17:48:54.399Z] [INFO] GET /.env.dev 200 4ms +[2026-01-04T17:48:54.932Z] [INFO] GET /vendor/.env 200 5ms +[2026-01-04T17:48:55.475Z] [INFO] GET /lib/.env 200 8ms +[2026-01-04T17:48:56.261Z] [INFO] GET /lab/.env 200 4ms +[2026-01-04T17:48:56.797Z] [INFO] GET /cronlab/.env 200 3ms +[2026-01-04T17:48:57.400Z] [INFO] GET /cron/.env 200 9ms +[2026-01-04T17:48:57.934Z] [INFO] GET /core/.env 200 4ms +[2026-01-04T17:48:58.469Z] [INFO] GET /core/app/.env 200 4ms +[2026-01-04T17:48:59.007Z] [INFO] GET /core/Datavase/.env 200 6ms +[2026-01-04T17:48:59.544Z] [INFO] GET /database/.env 200 5ms +[2026-01-04T17:49:00.077Z] [INFO] GET /config/.env 200 5ms +[2026-01-04T17:49:00.608Z] [INFO] GET /assets/.env 200 4ms +[2026-01-04T17:49:01.149Z] [INFO] GET /app/.env 200 5ms +[2026-01-04T17:49:01.692Z] [INFO] GET /apps/.env 200 4ms +[2026-01-04T17:49:02.229Z] [INFO] GET /uploads/.env 401 3ms +[2026-01-04T17:49:02.755Z] [INFO] GET /sitemaps/.env 200 5ms +[2026-01-04T17:49:03.556Z] [INFO] GET /saas/.env 200 6ms +[2026-01-04T17:49:04.343Z] [INFO] GET /api/.env 404 2ms +[2026-01-04T17:49:04.865Z] [INFO] GET /psnlink/.env 200 5ms +[2026-01-04T17:49:05.656Z] [INFO] GET /exapi/.env 200 4ms +[2026-01-04T17:49:06.453Z] [INFO] GET /site/.env 200 5ms +[2026-01-04T17:49:07.243Z] [INFO] GET /admin/.env 200 5ms +[2026-01-04T17:49:08.037Z] [INFO] GET /web/.env 200 5ms +[2026-01-04T17:49:08.825Z] [INFO] GET /public/.env 200 3ms +[2026-01-04T17:49:09.617Z] [INFO] GET /en/.env 200 6ms +[2026-01-04T17:49:10.408Z] [INFO] GET /tools/.env 200 4ms +[2026-01-04T17:49:11.199Z] [INFO] GET /v1/.env 200 4ms +[2026-01-04T17:49:11.761Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:49:11.992Z] [INFO] GET /v2/.env 200 5ms +[2026-01-04T17:49:12.777Z] [INFO] GET /administrator/.env 200 2ms +[2026-01-04T17:49:13.569Z] [INFO] GET /laravel/.env 200 5ms +[2026-01-04T17:49:14.361Z] [INFO] GET /storage/logs/laravel.log 200 4ms +[2026-01-04T17:49:15.155Z] [INFO] GET /bootstrap/cache/config.php 200 4ms +[2026-01-04T17:49:15.951Z] [INFO] GET /wp-config.php 200 4ms +[2026-01-04T17:49:16.745Z] [INFO] GET /wp-config.php.bak 200 6ms +[2026-01-04T17:49:17.539Z] [INFO] GET /wp-config.php.old 200 8ms +[2026-01-04T17:49:18.329Z] [INFO] GET /wp-config.php.save 200 3ms +[2026-01-04T17:49:19.122Z] [INFO] GET /wp-config.php~ 200 4ms +[2026-01-04T17:49:19.913Z] [INFO] GET /wp-config.txt 200 3ms +[2026-01-04T17:49:20.705Z] [INFO] GET /backup.sql 200 4ms +[2026-01-04T17:49:21.494Z] [INFO] GET /database.sql 200 4ms +[2026-01-04T17:49:22.289Z] [INFO] GET /db.sql 200 5ms +[2026-01-04T17:49:23.080Z] [INFO] GET /dump.sql 200 5ms +[2026-01-04T17:49:23.874Z] [INFO] GET /backup.zip 200 5ms +[2026-01-04T17:49:24.666Z] [INFO] GET /backup.tar.gz 200 5ms +[2026-01-04T17:49:25.459Z] [INFO] GET /site.zip 200 5ms +[2026-01-04T17:49:26.250Z] [INFO] GET /www.zip 200 6ms +[2026-01-04T17:49:27.042Z] [INFO] GET /config.bak 200 5ms +[2026-01-04T17:49:27.837Z] [INFO] GET /config.old 200 6ms +[2026-01-04T17:49:28.630Z] [INFO] GET /config.save 200 4ms +[2026-01-04T17:49:29.416Z] [INFO] GET /config~ 200 2ms +[2026-01-04T17:49:30.214Z] [INFO] GET /debug.log 200 4ms +[2026-01-04T17:49:31.003Z] [INFO] GET /error.log 200 5ms +[2026-01-04T17:49:31.793Z] [INFO] GET /errors.log 200 4ms +[2026-01-04T17:49:32.587Z] [INFO] GET /debug.txt 200 6ms +[2026-01-04T17:49:33.384Z] [INFO] GET /error_log 200 3ms +[2026-01-04T17:49:34.175Z] [INFO] GET /php_errors.log 200 4ms +[2026-01-04T17:49:34.967Z] [INFO] GET /php_error.log 200 5ms +[2026-01-04T17:49:35.754Z] [INFO] GET /.aws/credentials 200 4ms +[2026-01-04T17:49:36.545Z] [INFO] GET /.aws/config 200 5ms +[2026-01-04T17:49:37.337Z] [INFO] GET /aws.json 200 4ms +[2026-01-04T17:49:38.183Z] [INFO] GET /aws-config.json 200 5ms +[2026-01-04T17:49:38.976Z] [INFO] GET /.s3cfg 200 4ms +[2026-01-04T17:49:39.512Z] [INFO] GET /s3.yml 200 6ms +[2026-01-04T17:49:40.306Z] [INFO] GET /.gcloud/credentials 200 3ms +[2026-01-04T17:49:40.839Z] [INFO] GET /gcp-credentials.json 200 5ms +[2026-01-04T17:49:41.629Z] [INFO] GET /azure.json 200 4ms +[2026-01-04T17:49:41.880Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:49:42.429Z] [INFO] GET /.azure/credentials 200 4ms +[2026-01-04T17:49:43.122Z] [INFO] GET /credentials.json 200 6ms +[2026-01-04T17:49:43.674Z] [INFO] GET /secrets.json 200 3ms +[2026-01-04T17:49:44.215Z] [INFO] GET /keys.json 200 4ms +[2026-01-04T17:49:44.749Z] [INFO] GET /tokens.json 200 4ms +[2026-01-04T17:49:45.292Z] [INFO] GET /api_keys.json 200 6ms +[2026-01-04T17:49:45.828Z] [INFO] GET /apikeys.json 200 5ms +[2026-01-04T17:49:46.362Z] [INFO] GET /api-keys.json 200 3ms +[2026-01-04T17:49:46.899Z] [INFO] GET /docker-compose.yml 200 4ms +[2026-01-04T17:49:47.434Z] [INFO] GET /docker-compose.yaml 200 5ms +[2026-01-04T17:49:47.968Z] [INFO] GET /.dockerenv 200 2ms +[2026-01-04T17:49:48.627Z] [INFO] GET /Dockerfile 200 3ms +[2026-01-04T17:49:49.164Z] [INFO] GET /.docker/config.json 200 4ms +[2026-01-04T17:49:49.697Z] [INFO] GET /kubernetes.yml 200 4ms +[2026-01-04T17:49:50.233Z] [INFO] GET /k8s.yaml 200 3ms +[2026-01-04T17:49:50.775Z] [INFO] GET /.git/config 200 4ms +[2026-01-04T17:49:51.320Z] [INFO] GET /.git/HEAD 200 9ms +[2026-01-04T17:49:51.875Z] [INFO] GET /.gitconfig 200 4ms +[2026-01-04T17:49:52.410Z] [INFO] GET /settings.php 200 6ms +[2026-01-04T17:49:53.208Z] [INFO] GET /settings.json 200 4ms +[2026-01-04T17:49:54.003Z] [INFO] GET /app.json 200 3ms +[2026-01-04T17:49:54.550Z] [INFO] GET /app.yml 200 6ms +[2026-01-04T17:49:55.086Z] [INFO] GET /parameters.yml 200 4ms +[2026-01-04T17:49:55.618Z] [INFO] GET /parameters.json 200 4ms +[2026-01-04T17:49:56.156Z] [INFO] GET /.htaccess 200 2ms +[2026-01-04T17:49:56.701Z] [INFO] GET /web.config 200 3ms +[2026-01-04T17:49:57.492Z] [INFO] GET /crossdomain.xml 200 4ms +[2026-01-04T17:49:59.122Z] [INFO] GET / 200 3ms +[2026-01-04T17:50:00.774Z] [INFO] GET /js/app.js 200 3ms +[2026-01-04T17:50:11.985Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:50:42.094Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:51:12.193Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:51:42.285Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:52:12.385Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:52:42.484Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:53:12.572Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:53:42.666Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:54:12.761Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:54:42.859Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:55:12.992Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:55:43.082Z] [INFO] GET /api/health 200 3ms +[2026-01-04T17:56:13.189Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:56:43.298Z] [INFO] GET /api/health 200 1ms +[2026-01-04T17:57:13.408Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:57:43.519Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:58:13.620Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:58:43.715Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:59:13.800Z] [INFO] GET /api/health 200 2ms +[2026-01-04T17:59:43.890Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:00:13.983Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:00:44.073Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:01:14.155Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:01:44.240Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:02:14.340Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:02:44.438Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:03:14.533Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:03:44.632Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:04:14.727Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:04:44.822Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:05:14.919Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:05:44.999Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:06:15.091Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:06:45.186Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:07:15.303Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:07:45.408Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:08:15.498Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:08:45.602Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:09:15.700Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:09:45.831Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:10:15.933Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:10:46.020Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:11:16.102Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:11:46.210Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:12:16.314Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:12:46.416Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:13:16.556Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:13:46.660Z] [INFO] GET /api/health 200 4ms +[2026-01-04T18:14:16.759Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:14:46.857Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:15:16.970Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:15:47.072Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:16:17.172Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:16:47.261Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:17:17.376Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:17:47.474Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:18:17.569Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:18:47.669Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:19:17.802Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:19:47.907Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:20:18.002Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:20:48.099Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:21:18.209Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:21:48.323Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:22:18.430Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:22:48.529Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:23:18.623Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:23:48.727Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:24:18.834Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:24:48.946Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:25:19.033Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:25:49.149Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:26:19.242Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:26:49.354Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:26:57.671Z] [INFO] GET / 304 7ms +[2026-01-04T18:26:57.727Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T18:26:57.758Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T18:26:57.783Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T18:26:57.787Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T18:26:57.789Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T18:26:57.791Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T18:26:57.806Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T18:26:57.805Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T18:26:57.810Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T18:26:57.813Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T18:26:57.816Z] [INFO] GET /css/knowledge.css 304 0ms +[2026-01-04T18:26:57.820Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T18:26:57.832Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T18:26:57.835Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T18:26:57.836Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T18:26:57.846Z] [INFO] GET /js/app.js 200 2ms +[2026-01-04T18:26:57.958Z] [INFO] GET /js/store.js 200 10ms +[2026-01-04T18:26:57.961Z] [INFO] GET /js/board.js 200 9ms +[2026-01-04T18:26:57.962Z] [INFO] GET /js/sync.js 200 10ms +[2026-01-04T18:26:57.963Z] [INFO] GET /js/auth.js 200 10ms +[2026-01-04T18:26:57.964Z] [INFO] GET /js/api.js 200 11ms +[2026-01-04T18:26:57.967Z] [INFO] GET /js/offline.js 200 11ms +[2026-01-04T18:26:57.991Z] [INFO] GET /js/task-modal.js 200 4ms +[2026-01-04T18:26:58.001Z] [INFO] GET /js/calendar.js 200 3ms +[2026-01-04T18:26:58.023Z] [INFO] GET /js/list.js 200 6ms +[2026-01-04T18:26:58.025Z] [INFO] GET /js/shortcuts.js 200 7ms +[2026-01-04T18:26:58.029Z] [INFO] GET /js/admin.js 200 7ms +[2026-01-04T18:26:58.033Z] [INFO] GET /js/undo.js 200 5ms +[2026-01-04T18:26:58.036Z] [INFO] GET /js/proposals.js 200 4ms +[2026-01-04T18:26:58.045Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T18:26:58.054Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T18:26:58.064Z] [INFO] GET /js/knowledge.js 200 7ms +[2026-01-04T18:26:58.066Z] [INFO] GET /js/mobile.js 200 4ms +[2026-01-04T18:26:58.068Z] [INFO] GET /js/coding.js 200 7ms +[2026-01-04T18:26:58.069Z] [INFO] GET /js/utils.js 200 4ms +[2026-01-04T18:26:58.138Z] [INFO] GET /assets/icons/task.svg 200 4ms +[2026-01-04T18:26:59.662Z] [INFO] GET /sw.js 304 4ms +[2026-01-04T18:27:02.702Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T18:27:02.705Z] [INFO] POST /api/auth/login 200 532ms +[2026-01-04T18:27:02.805Z] [INFO] GET /api/auth/users 200 18ms +[2026-01-04T18:27:02.829Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (_5NZ5kpmJoPM5Qi2AAAD) +[2026-01-04T18:27:02.851Z] [INFO] GET /api/projects 200 10ms +[2026-01-04T18:27:02.885Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T18:27:02.897Z] [INFO] GET /api/columns/1 200 9ms +[2026-01-04T18:27:02.923Z] [INFO] GET /api/stats/dashboard?projectId=1 304 7ms +[2026-01-04T18:27:02.933Z] [INFO] GET /api/tasks/project/1 304 6ms +[2026-01-04T18:27:02.938Z] [INFO] GET /api/labels/1 200 4ms +[2026-01-04T18:27:02.981Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=1 304 9ms +[2026-01-04T18:27:03.018Z] [INFO] GET /api/notifications 200 7ms +[2026-01-04T18:27:03.053Z] [INFO] GET /api/knowledge/categories 200 3ms +[2026-01-04T18:27:08.182Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T18:27:18.453Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T18:27:19.330Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T18:27:19.332Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T18:27:19.332Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T18:27:19.332Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T18:27:19.334Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T18:27:19.334Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T18:27:19.334Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/AccountForger/CLAUDE.md +[2026-01-04T18:27:19.336Z] [INFO] GET /api/coding/directories 200 16ms +[2026-01-04T18:27:19.404Z] [INFO] GET /api/coding/directories/3/status 200 5ms +[2026-01-04T18:27:19.407Z] [INFO] GET /api/coding/directories/5/status 200 2ms +[2026-01-04T18:27:19.450Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:27:20.343Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:27:22.320Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T18:27:24.062Z] [INFO] DELETE /api/coding/directories/5 200 7ms +[2026-01-04T18:27:24.060Z] [INFO] Coding-Anwendung gelöscht: AccountForger +[2026-01-04T18:27:24.099Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T18:27:24.100Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T18:27:24.100Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T18:27:24.100Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T18:27:24.099Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T18:27:24.102Z] [INFO] GET /api/coding/directories 200 8ms +[2026-01-04T18:27:24.167Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T18:27:25.060Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T18:27:26.372Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T18:27:27.678Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T18:27:49.418Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T18:27:49.605Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:28:19.418Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T18:28:19.706Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:28:49.415Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T18:28:49.808Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:29:19.404Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T18:29:19.925Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:29:49.421Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T18:29:50.025Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:30:19.421Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T18:30:20.116Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:30:49.407Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T18:30:50.212Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:31:19.411Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T18:31:20.318Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:31:49.398Z] [INFO] GET /api/coding/directories/3/status 304 3ms +[2026-01-04T18:31:50.418Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:32:19.410Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T18:32:20.518Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:32:49.410Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T18:32:50.659Z] [INFO] GET /api/health 200 8ms +[2026-01-04T18:33:19.405Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T18:33:20.779Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:33:49.411Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T18:33:50.889Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:34:20.195Z] [INFO] GET /api/coding/directories/3/status 304 11ms +[2026-01-04T18:34:21.004Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:34:50.616Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T18:34:51.127Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:35:21.239Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:35:45.543Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T18:35:47.603Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T18:35:51.346Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:35:52.330Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T18:35:54.882Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:36:01.401Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:36:04.307Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:36:06.029Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:36:08.278Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T18:36:13.803Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:36:16.529Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T18:36:18.911Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T18:36:21.443Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:36:22.063Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:36:22.894Z] [INFO] Knowledge-Kategorie erstellt: TaskMate +[2026-01-04T18:36:22.896Z] [INFO] POST /api/knowledge/categories 201 15ms +[2026-01-04T18:36:22.928Z] [INFO] GET /api/knowledge/categories 200 4ms +[2026-01-04T18:36:23.888Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:36:24.183Z] [INFO] GET /api/knowledge/entries?categoryId=14 200 11ms +[2026-01-04T18:36:25.187Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:36:27.766Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T18:36:28.869Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:36:29.894Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:36:34.635Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:36:37.883Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T18:36:51.548Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:36:55.610Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T18:37:03.019Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T18:37:05.293Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T18:37:05.808Z] [INFO] Knowledge-Eintrag erstellt: SSH-Key für Claude-Nutzung generieren +[2026-01-04T18:37:05.810Z] [INFO] POST /api/knowledge/entries 201 8ms +[2026-01-04T18:37:05.849Z] [INFO] GET /api/knowledge/entries?categoryId=14 200 9ms +[2026-01-04T18:37:05.890Z] [INFO] GET /api/knowledge/categories 200 9ms +[2026-01-04T18:37:06.812Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:37:08.452Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:37:15.371Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T18:37:20.620Z] [INFO] hendrik_gebhardt@gmx.de left project:[object Object] +[2026-01-04T18:37:20.620Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T18:37:20.632Z] [INFO] GET /api/stats/dashboard?projectId=2 200 9ms +[2026-01-04T18:37:20.687Z] [INFO] GET /api/tasks/project/2 200 25ms +[2026-01-04T18:37:20.697Z] [INFO] GET /api/columns/2 200 3ms +[2026-01-04T18:37:20.701Z] [INFO] GET /api/labels/2 200 7ms +[2026-01-04T18:37:21.642Z] [INFO] POST /api/auth/refresh 200 16ms +[2026-01-04T18:37:21.647Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:37:23.718Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:37:26.274Z] [INFO] GET /api/knowledge/search?q=ss 200 11ms +[2026-01-04T18:37:26.682Z] [INFO] GET /api/knowledge/search?q=ssg 200 9ms +[2026-01-04T18:37:27.382Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:37:27.815Z] [INFO] GET /api/knowledge/search?q=ssh 200 11ms +[2026-01-04T18:37:28.517Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T18:37:29.005Z] [INFO] GET /api/knowledge/search?q=ss 304 9ms +[2026-01-04T18:37:29.251Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 8ms +[2026-01-04T18:37:30.483Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T18:37:32.276Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T18:37:33.381Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T18:37:51.751Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:38:21.844Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:38:51.937Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:39:22.036Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:39:52.141Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:40:22.238Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:40:52.331Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:41:22.420Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:41:52.527Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:42:22.610Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:42:52.707Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:43:22.792Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:43:52.895Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:44:22.997Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:44:53.101Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:45:23.206Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:45:53.311Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:46:23.424Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:46:53.513Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:47:23.614Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:47:33.509Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T18:47:53.717Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:48:23.829Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:48:53.938Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:49:24.025Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:49:54.129Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:50:24.233Z] [INFO] GET /api/health 200 3ms +[2026-01-04T18:50:54.338Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:51:24.464Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:51:54.579Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:52:24.691Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:52:54.782Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:53:24.897Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:53:55.014Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:54:25.121Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:54:55.247Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:55:25.350Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:55:55.457Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:56:25.564Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:56:54.138Z] [INFO] GET / 304 1ms +[2026-01-04T18:56:54.186Z] [INFO] GET / 304 2ms +[2026-01-04T18:56:54.312Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T18:56:54.316Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T18:56:54.356Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T18:56:54.360Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T18:56:54.381Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T18:56:54.382Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T18:56:54.390Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T18:56:54.397Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T18:56:54.398Z] [INFO] GET /css/admin.css 304 3ms +[2026-01-04T18:56:54.400Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T18:56:54.428Z] [INFO] GET /css/coding.css 304 2ms +[2026-01-04T18:56:54.432Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T18:56:54.436Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T18:56:54.439Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T18:56:54.441Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T18:56:54.481Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T18:56:54.532Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T18:56:54.540Z] [INFO] GET /js/store.js 304 7ms +[2026-01-04T18:56:54.541Z] [INFO] GET /js/offline.js 304 3ms +[2026-01-04T18:56:54.542Z] [INFO] GET /js/auth.js 304 0ms +[2026-01-04T18:56:54.544Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T18:56:54.546Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T18:56:54.574Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T18:56:54.587Z] [INFO] GET /js/sync.js 304 4ms +[2026-01-04T18:56:54.588Z] [INFO] GET /js/list.js 304 3ms +[2026-01-04T18:56:54.595Z] [INFO] GET /js/undo.js 304 5ms +[2026-01-04T18:56:54.598Z] [INFO] GET /js/shortcuts.js 304 7ms +[2026-01-04T18:56:54.600Z] [INFO] GET /js/admin.js 304 6ms +[2026-01-04T18:56:54.611Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T18:56:54.643Z] [INFO] GET /js/notifications.js 304 6ms +[2026-01-04T18:56:54.645Z] [INFO] GET /js/gitea.js 304 4ms +[2026-01-04T18:56:54.649Z] [INFO] GET /js/knowledge.js 304 5ms +[2026-01-04T18:56:54.652Z] [INFO] GET /js/coding.js 304 5ms +[2026-01-04T18:56:54.656Z] [INFO] GET /js/mobile.js 304 2ms +[2026-01-04T18:56:54.659Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T18:56:54.738Z] [INFO] GET /api/auth/users 401 5ms +[2026-01-04T18:56:54.740Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T18:56:55.660Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:56:56.280Z] [INFO] GET /sw.js 304 1ms +[2026-01-04T18:57:25.755Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:57:33.623Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T18:57:36.582Z] [INFO] Login erfolgreich: momohomma@googlemail.com +[2026-01-04T18:57:36.583Z] [INFO] POST /api/auth/login 200 447ms +[2026-01-04T18:57:36.695Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T18:57:36.749Z] [INFO] Socket connected: momohomma@googlemail.com (jP8LHHIR5zHgVLlyAAAF) +[2026-01-04T18:57:36.793Z] [INFO] GET /api/projects 401 7ms +[2026-01-04T18:57:36.853Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T18:57:36.907Z] [INFO] GET /api/projects 304 8ms +[2026-01-04T18:57:36.976Z] [INFO] GET /api/stats/dashboard?projectId=2 304 12ms +[2026-01-04T18:57:36.982Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T18:57:36.987Z] [INFO] GET /api/labels/2 304 4ms +[2026-01-04T18:57:37.010Z] [INFO] GET /api/tasks/project/2 304 22ms +[2026-01-04T18:57:37.011Z] [INFO] momohomma@googlemail.com joined project:[object Object] +[2026-01-04T18:57:37.125Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 8ms +[2026-01-04T18:57:37.172Z] [INFO] GET /api/notifications 304 4ms +[2026-01-04T18:57:37.242Z] [INFO] GET /api/knowledge/categories 200 7ms +[2026-01-04T18:57:55.863Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:58:22.744Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T18:58:25.617Z] [INFO] GET /api/knowledge/entries?categoryId=13 200 4ms +[2026-01-04T18:58:25.960Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:58:26.620Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T18:58:29.565Z] [INFO] GET /api/knowledge/entries?categoryId=14 200 10ms +[2026-01-04T18:58:30.577Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T18:58:35.942Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T18:58:56.062Z] [INFO] GET /api/health 200 1ms +[2026-01-04T18:59:26.152Z] [INFO] GET /api/health 200 2ms +[2026-01-04T18:59:56.239Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:00:26.337Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:00:56.429Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:01:26.538Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:01:56.644Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:02:26.727Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:02:41.311Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T19:02:41.315Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T19:02:41.358Z] [INFO] GET /api/auth/users 304 3ms +[2026-01-04T19:02:41.416Z] [INFO] GET /api/auth/users 401 7ms +[2026-01-04T19:02:41.465Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T19:02:41.523Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T19:02:41.571Z] [INFO] GET /api/projects 401 4ms +[2026-01-04T19:02:41.621Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T19:02:41.676Z] [INFO] GET /api/projects 304 8ms +[2026-01-04T19:02:41.740Z] [INFO] GET /api/stats/dashboard?projectId=2 304 6ms +[2026-01-04T19:02:41.744Z] [INFO] GET /api/columns/2 304 3ms +[2026-01-04T19:02:41.761Z] [INFO] GET /api/tasks/project/2 304 15ms +[2026-01-04T19:02:41.784Z] [INFO] GET /api/labels/2 304 5ms +[2026-01-04T19:02:41.900Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 9ms +[2026-01-04T19:02:41.961Z] [INFO] GET /api/notifications 304 10ms +[2026-01-04T19:02:42.038Z] [INFO] GET /api/knowledge/categories 304 10ms +[2026-01-04T19:02:43.464Z] [INFO] GET /sw.js 304 3ms +[2026-01-04T19:02:56.900Z] [INFO] GET /api/health 200 6ms +[2026-01-04T19:03:00.164Z] [INFO] Socket disconnected: momohomma@googlemail.com (jP8LHHIR5zHgVLlyAAAF) +[2026-01-04T19:03:27.005Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:03:57.138Z] [INFO] GET /api/health 200 0ms +[2026-01-04T19:04:27.236Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:04:57.355Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:05:27.450Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:05:57.557Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:06:27.654Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:06:42.155Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T19:06:43.797Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:06:46.021Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T19:06:51.235Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:06:57.736Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:07:27.826Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:07:57.924Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:08:28.014Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:08:58.097Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:09:28.202Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:09:58.319Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:10:28.423Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:10:58.526Z] [INFO] GET /api/health 200 7ms +[2026-01-04T19:11:28.607Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:11:43.894Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T19:11:58.705Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:12:28.831Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:12:58.925Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:13:11.696Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T19:13:12.594Z] [INFO] PUT /api/knowledge/categories/14/position 200 16ms +[2026-01-04T19:13:22.351Z] [INFO] Knowledge-Kategorie erstellt: Changelog +[2026-01-04T19:13:22.354Z] [INFO] POST /api/knowledge/categories 201 11ms +[2026-01-04T19:13:22.398Z] [INFO] GET /api/knowledge/categories 200 8ms +[2026-01-04T19:13:23.355Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:13:23.925Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 6ms +[2026-01-04T19:13:24.923Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:13:25.468Z] [INFO] PUT /api/knowledge/categories/15/position 200 6ms +[2026-01-04T19:13:26.189Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 5ms +[2026-01-04T19:13:27.202Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:13:29.036Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:13:32.650Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T19:13:38.172Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T19:13:39.452Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T19:13:40.783Z] [INFO] Knowledge-Kategorie aktualisiert: Changelog +[2026-01-04T19:13:40.785Z] [INFO] PUT /api/knowledge/categories/15 200 9ms +[2026-01-04T19:13:40.821Z] [INFO] GET /api/knowledge/categories 200 4ms +[2026-01-04T19:13:41.786Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T19:13:42.924Z] [INFO] GET / 304 2ms +[2026-01-04T19:13:42.969Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (_5NZ5kpmJoPM5Qi2AAAD) +[2026-01-04T19:13:42.980Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T19:13:43.011Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T19:13:43.042Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T19:13:43.046Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T19:13:43.047Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T19:13:43.053Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T19:13:43.074Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T19:13:43.080Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T19:13:43.083Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T19:13:43.088Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T19:13:43.112Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T19:13:43.114Z] [INFO] GET /css/knowledge.css 304 0ms +[2026-01-04T19:13:43.117Z] [INFO] GET /css/mobile.css 304 0ms +[2026-01-04T19:13:43.118Z] [INFO] GET /css/responsive.css 304 0ms +[2026-01-04T19:13:43.138Z] [INFO] GET /css/notifications.css 304 0ms +[2026-01-04T19:13:43.143Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T19:13:43.183Z] [INFO] GET /js/store.js 304 3ms +[2026-01-04T19:13:43.184Z] [INFO] GET /js/auth.js 304 3ms +[2026-01-04T19:13:43.187Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T19:13:43.190Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T19:13:43.192Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T19:13:43.195Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T19:13:43.218Z] [INFO] GET /js/calendar.js 304 5ms +[2026-01-04T19:13:43.219Z] [INFO] GET /js/task-modal.js 304 3ms +[2026-01-04T19:13:43.222Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T19:13:43.223Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T19:13:43.226Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T19:13:43.229Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T19:13:43.250Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T19:13:43.253Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T19:13:43.260Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T19:13:43.264Z] [INFO] GET /js/gitea.js 304 3ms +[2026-01-04T19:13:43.265Z] [INFO] GET /js/coding.js 304 3ms +[2026-01-04T19:13:43.270Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T19:13:43.297Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T19:13:43.338Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T19:13:43.340Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T19:13:43.348Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T19:13:43.391Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T19:13:43.429Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (nzx86mz9sJk2eY9eAAAJ) +[2026-01-04T19:13:43.434Z] [INFO] GET /api/projects 304 8ms +[2026-01-04T19:13:43.463Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:13:43.480Z] [INFO] GET /api/columns/2 304 12ms +[2026-01-04T19:13:43.505Z] [INFO] GET /api/tasks/project/2 304 24ms +[2026-01-04T19:13:43.513Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T19:13:43.518Z] [INFO] GET /api/stats/dashboard?projectId=2 304 4ms +[2026-01-04T19:13:43.560Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 7ms +[2026-01-04T19:13:43.601Z] [INFO] GET /api/notifications 304 6ms +[2026-01-04T19:13:43.652Z] [INFO] GET /api/knowledge/categories 304 6ms +[2026-01-04T19:13:45.126Z] [INFO] GET /sw.js 304 1ms +[2026-01-04T19:13:45.739Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:13:46.037Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 6ms +[2026-01-04T19:13:47.060Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T19:13:50.072Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T19:13:53.976Z] [INFO] Knowledge-Kategorie aktualisiert: Changelog +[2026-01-04T19:13:53.977Z] [INFO] PUT /api/knowledge/categories/15 200 10ms +[2026-01-04T19:13:54.020Z] [INFO] GET /api/knowledge/categories 200 11ms +[2026-01-04T19:13:54.978Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:13:55.093Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 4ms +[2026-01-04T19:13:55.695Z] [INFO] GET /api/knowledge/entries?categoryId=1 200 3ms +[2026-01-04T19:13:56.107Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 8ms +[2026-01-04T19:13:56.812Z] [INFO] GET /api/knowledge/entries?categoryId=1 304 5ms +[2026-01-04T19:13:57.308Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 7ms +[2026-01-04T19:13:58.311Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:13:59.127Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:14:03.562Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 13ms +[2026-01-04T19:14:04.568Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T19:14:06.834Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 5ms +[2026-01-04T19:14:07.839Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T19:14:29.232Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:14:34.778Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 4ms +[2026-01-04T19:14:35.465Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 8ms +[2026-01-04T19:14:35.939Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 5ms +[2026-01-04T19:14:36.936Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T19:14:38.557Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T19:14:43.383Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:14:57.784Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:14:59.348Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:15:29.482Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:15:59.575Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:16:29.681Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:16:59.783Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:17:29.857Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:17:51.594Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 12ms +[2026-01-04T19:17:52.524Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:17:52.571Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 9ms +[2026-01-04T19:17:53.577Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:17:55.304Z] [INFO] GET /api/knowledge/entries?categoryId=13 200 12ms +[2026-01-04T19:17:56.298Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T19:17:58.734Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T19:17:59.630Z] [INFO] GET /api/knowledge/entries?categoryId=13 304 5ms +[2026-01-04T19:17:59.956Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:18:00.636Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:18:04.383Z] [INFO] GET /api/knowledge/entries?categoryId=12 200 6ms +[2026-01-04T19:18:05.382Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T19:18:09.158Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T19:18:09.589Z] [INFO] GET /api/knowledge/entries?categoryId=14 304 6ms +[2026-01-04T19:18:10.604Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:18:17.137Z] [INFO] GET /api/knowledge/entries/8 200 11ms +[2026-01-04T19:18:22.841Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T19:18:23.960Z] [INFO] GET /api/knowledge/entries/8 304 4ms +[2026-01-04T19:18:30.049Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:18:34.146Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T19:19:00.137Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:19:30.263Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:20:00.343Z] [INFO] GET /api/health 200 0ms +[2026-01-04T19:20:30.459Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:20:40.971Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T19:20:55.298Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:20:55.485Z] [INFO] Umgebung: production +[2026-01-04T19:20:55.485Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:20:55.485Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:20:55.463Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:20:55.478Z] [INFO] Datenbank initialisiert +[2026-01-04T19:20:55.484Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T19:20:57.103Z] [INFO] GET /api/health 200 17ms +[2026-01-04T19:21:01.211Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (TxR7beHWL6yk74KGAAAB) +[2026-01-04T19:21:01.255Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:21:27.209Z] [INFO] GET /api/health 200 5ms +[2026-01-04T19:21:46.271Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T19:21:55.524Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T19-21-55-492Z.db.enc +[2026-01-04T19:21:55.525Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T19-21-55-492Z.db.enc +[2026-01-04T19:21:55.526Z] [INFO] Backup erstellt: backup_2026-01-04T19-21-55-492Z.db +[2026-01-04T19:21:55.545Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-03-21-966Z.db.enc +[2026-01-04T19:21:55.546Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-03-21-966Z.db.enc +[2026-01-04T19:21:55.548Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T19:21:59.924Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:22:00.060Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:22:00.067Z] [INFO] Datenbank initialisiert +[2026-01-04T19:22:00.073Z] [INFO] Server läuft auf Port 3000 +[2026-01-04T19:22:00.073Z] [INFO] Umgebung: production +[2026-01-04T19:22:00.074Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:22:00.074Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:22:00.265Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (xV24-xK04UpHe3O7AAAB) +[2026-01-04T19:22:00.314Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:22:02.107Z] [INFO] GET /api/health 200 8ms +[2026-01-04T19:22:32.232Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:23:00.110Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T19-23-00-086Z.db.enc +[2026-01-04T19:23:00.111Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T19-23-00-086Z.db.enc +[2026-01-04T19:23:00.112Z] [INFO] Backup erstellt: backup_2026-01-04T19-23-00-086Z.db +[2026-01-04T19:23:00.128Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-15-25-003Z.db.enc +[2026-01-04T19:23:00.129Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-15-25-003Z.db.enc +[2026-01-04T19:23:00.131Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T19:23:02.336Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:23:32.454Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:24:02.565Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:24:32.664Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:25:02.754Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:25:32.841Z] [INFO] GET /api/health 200 1ms +[2026-01-04T19:26:02.940Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:26:33.051Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:27:03.161Z] [INFO] GET /api/health 200 3ms +[2026-01-04T19:27:33.268Z] [INFO] GET /api/health 200 4ms +[2026-01-04T19:28:03.357Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:28:33.509Z] [INFO] GET /api/health 200 2ms +[2026-01-04T19:28:34.323Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:28:39.274Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T19:30:34.452Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:30:34.557Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:30:35.152Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T19:30:35.153Z] [INFO] Datenbank initialisiert +[2026-01-04T19:30:35.161Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T19:30:35.161Z] [INFO] Umgebung: development +[2026-01-04T19:30:35.162Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:30:35.162Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:31:35.210Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T19-31-35-190Z.db.enc +[2026-01-04T19:31:35.212Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T19-31-35-190Z.db.enc +[2026-01-04T19:31:35.213Z] [INFO] Backup erstellt: backup_2026-01-04T19-31-35-190Z.db +[2026-01-04T19:31:35.233Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-18-49-853Z.db.enc +[2026-01-04T19:31:35.234Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-18-49-853Z.db.enc +[2026-01-04T19:31:35.237Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T19:46:17.994Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:46:18.044Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:46:18.617Z] [INFO] Datenbank initialisiert +[2026-01-04T19:46:18.623Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T19:46:18.623Z] [INFO] Umgebung: development +[2026-01-04T19:46:18.623Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:46:18.624Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:46:18.617Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T19:48:26.117Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:48:26.212Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:48:26.783Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T19:48:26.784Z] [INFO] Datenbank initialisiert +[2026-01-04T19:48:26.792Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T19:48:26.796Z] [INFO] Umgebung: development +[2026-01-04T19:48:26.797Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:48:26.797Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:48:33.749Z] [INFO] GET /api/health 200 30ms +[2026-01-04T19:48:40.064Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin (Versuch 1) +[2026-01-04T19:48:40.066Z] [INFO] POST /api/auth/login 401 518ms +[2026-01-04T19:48:46.733Z] [WARN] Login fehlgeschlagen: Falsches Passwort - admin@taskmate.local (Versuch 2) +[2026-01-04T19:48:46.735Z] [INFO] POST /api/auth/login 401 448ms +[2026-01-04T19:49:07.897Z] [ERROR] Error: Bad escaped character in JSON at position 51 {"stack":"SyntaxError: Bad escaped character in JSON at position 51\n at JSON.parse ()\n at parse (/app/node_modules/body-parser/lib/types/json.js:92:19)\n at /app/node_modules/body-parser/lib/read.js:128:18\n at AsyncResource.runInAsyncScope (node:async_hooks:206:9)\n at invokeCallback (/app/node_modules/raw-body/index.js:238:16)\n at done (/app/node_modules/raw-body/index.js:227:7)\n at IncomingMessage.onEnd (/app/node_modules/raw-body/index.js:287:7)\n at IncomingMessage.emit (node:events:524:28)\n at endReadableNT (node:internal/streams/readable:1698:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)"} +[2026-01-04T19:49:26.828Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T19-49-26-807Z.db.enc +[2026-01-04T19:49:26.830Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T19-49-26-807Z.db.enc +[2026-01-04T19:49:26.831Z] [INFO] Backup erstellt: backup_2026-01-04T19-49-26-807Z.db +[2026-01-04T19:49:26.847Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-20-11-467Z.db.enc +[2026-01-04T19:49:26.847Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-20-11-467Z.db.enc +[2026-01-04T19:49:26.848Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T19:51:39.963Z] [INFO] GET / 200 26ms +[2026-01-04T19:51:40.052Z] [INFO] GET /css/variables.css 200 6ms +[2026-01-04T19:51:40.083Z] [INFO] GET /css/base.css 200 6ms +[2026-01-04T19:51:40.120Z] [INFO] GET /css/components.css 200 6ms +[2026-01-04T19:51:40.133Z] [INFO] GET /css/board.css 200 8ms +[2026-01-04T19:51:40.135Z] [INFO] GET /css/modal.css 200 8ms +[2026-01-04T19:51:40.138Z] [INFO] GET /css/calendar.css 200 9ms +[2026-01-04T19:51:40.140Z] [INFO] GET /css/list.css 200 8ms +[2026-01-04T19:51:40.146Z] [INFO] GET /css/admin.css 200 2ms +[2026-01-04T19:51:40.170Z] [INFO] GET /css/proposals.css 200 3ms +[2026-01-04T19:51:40.177Z] [INFO] GET /css/notifications.css 200 3ms +[2026-01-04T19:51:40.179Z] [INFO] GET /css/gitea.css 200 4ms +[2026-01-04T19:51:40.191Z] [INFO] GET /css/coding.css 200 4ms +[2026-01-04T19:51:40.200Z] [INFO] GET /css/responsive.css 200 6ms +[2026-01-04T19:51:40.206Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T19:51:40.219Z] [INFO] GET /css/mobile.css 200 15ms +[2026-01-04T19:51:40.225Z] [INFO] GET /js/app.js 200 5ms +[2026-01-04T19:51:40.319Z] [INFO] GET /js/store.js 200 11ms +[2026-01-04T19:51:40.324Z] [INFO] GET /js/offline.js 200 12ms +[2026-01-04T19:51:40.329Z] [INFO] GET /js/api.js 200 13ms +[2026-01-04T19:51:40.333Z] [INFO] GET /js/board.js 200 12ms +[2026-01-04T19:51:40.338Z] [INFO] GET /js/sync.js 200 11ms +[2026-01-04T19:51:40.341Z] [INFO] GET /js/auth.js 200 10ms +[2026-01-04T19:51:40.352Z] [INFO] GET /js/task-modal.js 200 4ms +[2026-01-04T19:51:40.358Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T19:51:40.365Z] [INFO] GET /js/list.js 200 3ms +[2026-01-04T19:51:40.373Z] [INFO] GET /js/shortcuts.js 200 4ms +[2026-01-04T19:51:40.374Z] [INFO] GET /js/undo.js 200 3ms +[2026-01-04T19:51:40.391Z] [INFO] GET /js/proposals.js 200 4ms +[2026-01-04T19:51:40.398Z] [INFO] GET /js/notifications.js 200 5ms +[2026-01-04T19:51:40.405Z] [INFO] GET /js/gitea.js 200 4ms +[2026-01-04T19:51:40.418Z] [INFO] GET /js/admin.js 200 5ms +[2026-01-04T19:51:40.423Z] [INFO] GET /js/coding.js 200 3ms +[2026-01-04T19:51:40.427Z] [INFO] GET /js/mobile.js 200 5ms +[2026-01-04T19:51:40.437Z] [INFO] GET /js/utils.js 200 5ms +[2026-01-04T19:51:40.449Z] [INFO] GET /js/knowledge.js 200 4ms +[2026-01-04T19:51:40.502Z] [INFO] GET /assets/icons/task.svg 200 6ms +[2026-01-04T19:51:45.189Z] [INFO] Login erfolgreich: admin +[2026-01-04T19:51:45.192Z] [INFO] POST /api/auth/login 200 442ms +[2026-01-04T19:51:45.237Z] [INFO] GET /api/admin/users 200 11ms +[2026-01-04T19:51:45.294Z] [INFO] GET /api/admin/upload-settings 200 6ms +[2026-01-04T19:51:48.735Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T19:51:51.463Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T19:51:54.227Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T19:51:54.556Z] [INFO] Admin admin hat Benutzer momohomma@googlemail.com bearbeitet +[2026-01-04T19:51:54.558Z] [INFO] PUT /api/admin/users/4 200 9ms +[2026-01-04T19:51:54.610Z] [INFO] GET /api/admin/users 200 9ms +[2026-01-04T19:51:55.561Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T19:51:57.141Z] [INFO] POST /api/auth/logout 200 4ms +[2026-01-04T19:51:57.140Z] [INFO] Logout: admin +[2026-01-04T19:51:57.186Z] [INFO] GET / 304 6ms +[2026-01-04T19:51:57.233Z] [INFO] GET /css/variables.css 304 3ms +[2026-01-04T19:51:57.234Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T19:51:57.237Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T19:51:57.242Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T19:51:57.245Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T19:51:57.247Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T19:51:57.264Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T19:51:57.268Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T19:51:57.276Z] [INFO] GET /css/proposals.css 304 3ms +[2026-01-04T19:51:57.279Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T19:51:57.284Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T19:51:57.285Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T19:51:57.293Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T19:51:57.300Z] [INFO] GET /css/knowledge.css 304 3ms +[2026-01-04T19:51:57.309Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T19:51:57.317Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T19:51:57.353Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T19:51:57.358Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T19:51:57.362Z] [INFO] GET /js/offline.js 304 3ms +[2026-01-04T19:51:57.366Z] [INFO] GET /js/sync.js 304 3ms +[2026-01-04T19:51:57.367Z] [INFO] GET /js/board.js 304 3ms +[2026-01-04T19:51:57.370Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T19:51:57.384Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T19:51:57.387Z] [INFO] GET /js/calendar.js 304 1ms +[2026-01-04T19:51:57.393Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T19:51:57.398Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T19:51:57.399Z] [INFO] GET /js/undo.js 304 2ms +[2026-01-04T19:51:57.401Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T19:51:57.415Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T19:51:57.418Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T19:51:57.423Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T19:51:57.427Z] [INFO] GET /js/coding.js 304 0ms +[2026-01-04T19:51:57.430Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T19:51:57.431Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T19:51:57.442Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T19:51:57.484Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T19:51:59.046Z] [INFO] GET /sw.js 200 3ms +[2026-01-04T19:51:59.088Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T19:51:59.091Z] [INFO] GET / 304 1ms +[2026-01-04T19:51:59.093Z] [INFO] GET /index.html 200 4ms +[2026-01-04T19:51:59.121Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T19:51:59.127Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T19:51:59.152Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T19:51:59.159Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T19:51:59.177Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T19:51:59.181Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T19:51:59.188Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T19:51:59.209Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T19:51:59.213Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T19:51:59.217Z] [INFO] GET /js/auth.js 304 1ms +[2026-01-04T19:51:59.241Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T19:51:59.244Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T19:51:59.256Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T19:51:59.276Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T19:51:59.289Z] [INFO] GET /js/task-modal.js 304 3ms +[2026-01-04T19:51:59.290Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T19:51:59.313Z] [INFO] GET /js/list.js 304 5ms +[2026-01-04T19:51:59.320Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T19:51:59.321Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T19:51:59.346Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T19:51:59.350Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T19:51:59.351Z] [INFO] GET /js/tour.js 304 1ms +[2026-01-04T19:51:59.375Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T19:51:59.379Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T19:51:59.381Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T19:51:59.408Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T19:51:59.412Z] [INFO] GET /js/mobile.js 304 2ms +[2026-01-04T19:51:59.415Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T19:51:59.437Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T19:51:59.446Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T19:51:59.454Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T19:51:59.484Z] [INFO] GET /css/notifications.css 304 7ms +[2026-01-04T19:51:59.490Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T19:51:59.495Z] [INFO] GET /css/knowledge.css 304 2ms +[2026-01-04T19:51:59.513Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T19:52:01.219Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T19:52:01.220Z] [INFO] POST /api/auth/login 200 480ms +[2026-01-04T19:52:01.270Z] [INFO] GET /api/auth/users 304 19ms +[2026-01-04T19:52:01.311Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (DVhMREE9Sdeadm8cAAAB) +[2026-01-04T19:52:01.320Z] [INFO] GET /api/projects 304 5ms +[2026-01-04T19:52:01.379Z] [INFO] GET /api/tasks/project/2 304 26ms +[2026-01-04T19:52:01.382Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:52:01.391Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T19:52:01.401Z] [INFO] GET /api/stats/dashboard?projectId=2 304 6ms +[2026-01-04T19:52:01.415Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T19:52:01.462Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 10ms +[2026-01-04T19:52:01.500Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T19:52:01.541Z] [INFO] GET /api/knowledge/categories 200 9ms +[2026-01-04T19:52:04.887Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T19:52:07.085Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T19:52:12.890Z] [INFO] GET / 304 1ms +[2026-01-04T19:52:12.938Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (DVhMREE9Sdeadm8cAAAB) +[2026-01-04T19:52:12.943Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T19:52:12.945Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T19:52:12.948Z] [INFO] GET /css/components.css 304 2ms +[2026-01-04T19:52:12.951Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T19:52:12.955Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T19:52:12.956Z] [INFO] GET /css/calendar.css 304 0ms +[2026-01-04T19:52:12.970Z] [INFO] GET /css/admin.css 304 0ms +[2026-01-04T19:52:12.979Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T19:52:12.982Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T19:52:12.985Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T19:52:12.989Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T19:52:12.990Z] [INFO] GET /css/coding.css 304 2ms +[2026-01-04T19:52:13.000Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T19:52:13.010Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T19:52:13.018Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T19:52:13.027Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T19:52:13.067Z] [INFO] GET /js/sync.js 304 5ms +[2026-01-04T19:52:13.069Z] [INFO] GET /js/store.js 304 5ms +[2026-01-04T19:52:13.072Z] [INFO] GET /js/auth.js 304 7ms +[2026-01-04T19:52:13.077Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T19:52:13.079Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T19:52:13.081Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T19:52:13.100Z] [INFO] GET /js/task-modal.js 304 2ms +[2026-01-04T19:52:13.102Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T19:52:13.105Z] [INFO] GET /js/list.js 304 2ms +[2026-01-04T19:52:13.110Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T19:52:13.111Z] [INFO] GET /js/undo.js 304 2ms +[2026-01-04T19:52:13.115Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T19:52:13.134Z] [INFO] GET /js/proposals.js 304 4ms +[2026-01-04T19:52:13.135Z] [INFO] GET /js/notifications.js 304 3ms +[2026-01-04T19:52:13.138Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T19:52:13.145Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T19:52:13.147Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T19:52:13.149Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T19:52:13.163Z] [INFO] GET /js/utils.js 304 2ms +[2026-01-04T19:52:13.211Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T19:52:13.214Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T19:52:13.217Z] [INFO] GET /api/auth/users 304 3ms +[2026-01-04T19:52:13.261Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T19:52:13.291Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (R9ggLtNQ33TS5XzuAAAD) +[2026-01-04T19:52:13.300Z] [INFO] GET /api/projects 304 5ms +[2026-01-04T19:52:13.329Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:52:13.355Z] [INFO] GET /api/tasks/project/2 304 22ms +[2026-01-04T19:52:13.362Z] [INFO] GET /api/columns/2 304 3ms +[2026-01-04T19:52:13.368Z] [INFO] GET /api/stats/dashboard?projectId=2 304 6ms +[2026-01-04T19:52:13.371Z] [INFO] GET /api/labels/2 304 8ms +[2026-01-04T19:52:13.411Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T19:52:13.448Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T19:52:13.489Z] [INFO] GET /api/knowledge/categories 304 9ms +[2026-01-04T19:52:14.938Z] [INFO] GET /sw.js 304 1ms +[2026-01-04T19:57:49.762Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T19:58:03.737Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T19:58:03.850Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T19:58:04.429Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T19:58:04.429Z] [INFO] Datenbank initialisiert +[2026-01-04T19:58:04.433Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T19:58:04.433Z] [INFO] Umgebung: development +[2026-01-04T19:58:04.434Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T19:58:04.434Z] [INFO] Automatische Backups aktiviert +[2026-01-04T19:58:05.365Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (Ei9sYJcTJiA2zFQrAAAB) +[2026-01-04T19:58:05.424Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T19:58:10.405Z] [INFO] GET /api/health 200 13ms +[2026-01-04T19:58:21.624Z] [ERROR] Error: Bad escaped character in JSON at position 69 {"stack":"SyntaxError: Bad escaped character in JSON at position 69\n at JSON.parse ()\n at parse (/app/node_modules/body-parser/lib/types/json.js:92:19)\n at /app/node_modules/body-parser/lib/read.js:128:18\n at AsyncResource.runInAsyncScope (node:async_hooks:206:9)\n at invokeCallback (/app/node_modules/raw-body/index.js:238:16)\n at done (/app/node_modules/raw-body/index.js:227:7)\n at IncomingMessage.onEnd (/app/node_modules/raw-body/index.js:287:7)\n at IncomingMessage.emit (node:events:524:28)\n at endReadableNT (node:internal/streams/readable:1698:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)"} +[2026-01-04T19:58:32.596Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T19:58:32.598Z] [INFO] POST /api/auth/login 200 805ms +[2026-01-04T19:59:04.459Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T19-59-04-443Z.db.enc +[2026-01-04T19:59:04.459Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T19-59-04-443Z.db.enc +[2026-01-04T19:59:04.461Z] [INFO] Backup erstellt: backup_2026-01-04T19-59-04-443Z.db +[2026-01-04T19:59:04.476Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-22-29-521Z.db.enc +[2026-01-04T19:59:04.476Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-22-29-521Z.db.enc +[2026-01-04T19:59:04.477Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T20:02:14.187Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:05:54.836Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T20:06:06.929Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T20:06:06.980Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T20:06:07.603Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T20:06:07.604Z] [INFO] Datenbank initialisiert +[2026-01-04T20:06:07.608Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T20:06:07.608Z] [INFO] Umgebung: development +[2026-01-04T20:06:07.609Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T20:06:07.609Z] [INFO] Automatische Backups aktiviert +[2026-01-04T20:06:09.141Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (g3sMu6qxLkCD6ZqcAAAB) +[2026-01-04T20:06:09.203Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:06:10.886Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T20:06:10.889Z] [INFO] POST /api/auth/login 200 490ms +[2026-01-04T20:06:17.022Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T20:08:08.342Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T20:08:08.424Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T20:08:08.955Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T20:08:08.956Z] [INFO] Datenbank initialisiert +[2026-01-04T20:08:08.959Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T20:08:08.961Z] [INFO] Umgebung: development +[2026-01-04T20:08:08.963Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T20:08:08.963Z] [INFO] Automatische Backups aktiviert +[2026-01-04T20:08:36.095Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T20:08:36.104Z] [INFO] POST /api/auth/login 200 501ms +[2026-01-04T20:09:08.980Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T20-09-08-971Z.db.enc +[2026-01-04T20:09:08.980Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T20-09-08-971Z.db.enc +[2026-01-04T20:09:08.981Z] [INFO] Backup erstellt: backup_2026-01-04T20-09-08-971Z.db +[2026-01-04T20:09:08.993Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-25-13-763Z.db.enc +[2026-01-04T20:09:08.994Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-25-13-763Z.db.enc +[2026-01-04T20:09:08.995Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T20:12:15.161Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T20:14:07.546Z] [INFO] GET / 200 28ms +[2026-01-04T20:14:07.637Z] [INFO] GET /css/variables.css 200 4ms +[2026-01-04T20:14:07.673Z] [INFO] GET /css/base.css 200 5ms +[2026-01-04T20:14:07.713Z] [INFO] GET /css/components.css 200 8ms +[2026-01-04T20:14:07.716Z] [INFO] GET /css/board.css 200 9ms +[2026-01-04T20:14:07.724Z] [INFO] GET /css/modal.css 200 7ms +[2026-01-04T20:14:07.737Z] [INFO] GET /css/calendar.css 200 9ms +[2026-01-04T20:14:07.740Z] [INFO] GET /css/list.css 200 7ms +[2026-01-04T20:14:07.743Z] [INFO] GET /css/admin.css 200 7ms +[2026-01-04T20:14:07.764Z] [INFO] GET /css/proposals.css 200 6ms +[2026-01-04T20:14:07.775Z] [INFO] GET /css/notifications.css 200 4ms +[2026-01-04T20:14:07.788Z] [INFO] GET /css/knowledge.css 200 8ms +[2026-01-04T20:14:07.789Z] [INFO] GET /css/gitea.css 200 7ms +[2026-01-04T20:14:07.790Z] [INFO] GET /css/coding.css 200 8ms +[2026-01-04T20:14:07.797Z] [INFO] GET /css/responsive.css 200 11ms +[2026-01-04T20:14:07.801Z] [INFO] GET /css/mobile.css 200 2ms +[2026-01-04T20:14:07.825Z] [INFO] GET /js/app.js 200 4ms +[2026-01-04T20:14:07.911Z] [INFO] GET /js/auth.js 200 6ms +[2026-01-04T20:14:07.913Z] [INFO] GET /js/store.js 200 10ms +[2026-01-04T20:14:07.917Z] [INFO] GET /js/api.js 200 10ms +[2026-01-04T20:14:07.920Z] [INFO] GET /js/sync.js 200 12ms +[2026-01-04T20:14:07.922Z] [INFO] GET /js/offline.js 200 13ms +[2026-01-04T20:14:07.925Z] [INFO] GET /js/board.js 200 9ms +[2026-01-04T20:14:07.943Z] [INFO] GET /js/task-modal.js 200 2ms +[2026-01-04T20:14:07.953Z] [INFO] GET /js/calendar.js 200 5ms +[2026-01-04T20:14:07.955Z] [INFO] GET /js/shortcuts.js 200 6ms +[2026-01-04T20:14:07.959Z] [INFO] GET /js/undo.js 200 8ms +[2026-01-04T20:14:07.961Z] [INFO] GET /js/list.js 200 4ms +[2026-01-04T20:14:07.982Z] [INFO] GET /js/admin.js 200 4ms +[2026-01-04T20:14:07.984Z] [INFO] GET /js/proposals.js 200 5ms +[2026-01-04T20:14:07.995Z] [INFO] GET /js/knowledge.js 200 4ms +[2026-01-04T20:14:07.994Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T20:14:08.006Z] [INFO] GET /js/gitea.js 200 3ms +[2026-01-04T20:14:08.011Z] [INFO] GET /js/coding.js 200 3ms +[2026-01-04T20:14:08.015Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T20:14:08.018Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T20:14:08.080Z] [INFO] POST /api/auth/refresh 200 22ms +[2026-01-04T20:14:08.087Z] [INFO] GET /api/auth/users 200 6ms +[2026-01-04T20:14:08.096Z] [INFO] GET /assets/icons/task.svg 200 15ms +[2026-01-04T20:14:08.146Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T20:14:08.192Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (RHrry2PkVCtpAXSDAAAB) +[2026-01-04T20:14:08.204Z] [INFO] GET /api/projects 304 7ms +[2026-01-04T20:14:08.250Z] [INFO] GET /api/stats/dashboard?projectId=2 304 5ms +[2026-01-04T20:14:08.253Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:14:08.256Z] [INFO] GET /api/labels/2 304 6ms +[2026-01-04T20:14:08.261Z] [INFO] GET /api/columns/2 304 4ms +[2026-01-04T20:14:08.281Z] [INFO] GET /api/tasks/project/2 304 19ms +[2026-01-04T20:14:08.327Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 8ms +[2026-01-04T20:14:08.374Z] [INFO] GET /api/notifications 304 11ms +[2026-01-04T20:14:08.419Z] [INFO] GET /api/knowledge/categories 304 12ms +[2026-01-04T20:14:13.097Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (RHrry2PkVCtpAXSDAAAB) +[2026-01-04T20:14:25.485Z] [INFO] GET / 200 5ms +[2026-01-04T20:14:25.557Z] [INFO] GET /css/variables.css 200 2ms +[2026-01-04T20:14:25.592Z] [INFO] GET /css/base.css 200 3ms +[2026-01-04T20:14:25.621Z] [INFO] GET /css/modal.css 200 2ms +[2026-01-04T20:14:25.628Z] [INFO] GET /css/components.css 200 2ms +[2026-01-04T20:14:25.632Z] [INFO] GET /css/admin.css 200 3ms +[2026-01-04T20:14:25.637Z] [INFO] GET /css/calendar.css 200 5ms +[2026-01-04T20:14:25.642Z] [INFO] GET /css/board.css 200 8ms +[2026-01-04T20:14:25.645Z] [INFO] GET /css/list.css 200 9ms +[2026-01-04T20:14:25.674Z] [INFO] GET /css/proposals.css 200 5ms +[2026-01-04T20:14:25.679Z] [INFO] GET /css/notifications.css 200 2ms +[2026-01-04T20:14:25.685Z] [INFO] GET /css/gitea.css 200 4ms +[2026-01-04T20:14:25.690Z] [INFO] GET /css/coding.css 200 7ms +[2026-01-04T20:14:25.696Z] [INFO] GET /css/knowledge.css 200 2ms +[2026-01-04T20:14:25.704Z] [INFO] GET /css/responsive.css 200 2ms +[2026-01-04T20:14:25.711Z] [INFO] GET /css/mobile.css 200 3ms +[2026-01-04T20:14:25.739Z] [INFO] GET /js/app.js 200 2ms +[2026-01-04T20:14:25.825Z] [INFO] GET /js/auth.js 200 7ms +[2026-01-04T20:14:25.829Z] [INFO] GET /js/api.js 200 8ms +[2026-01-04T20:14:25.832Z] [INFO] GET /js/sync.js 200 9ms +[2026-01-04T20:14:25.834Z] [INFO] GET /js/store.js 200 7ms +[2026-01-04T20:14:25.837Z] [INFO] GET /js/offline.js 200 7ms +[2026-01-04T20:14:25.840Z] [INFO] GET /js/board.js 200 7ms +[2026-01-04T20:14:25.854Z] [INFO] GET /js/task-modal.js 200 4ms +[2026-01-04T20:14:25.863Z] [INFO] GET /js/list.js 200 4ms +[2026-01-04T20:14:25.867Z] [INFO] GET /js/shortcuts.js 200 6ms +[2026-01-04T20:14:25.868Z] [INFO] GET /js/calendar.js 200 6ms +[2026-01-04T20:14:25.872Z] [INFO] GET /js/undo.js 200 2ms +[2026-01-04T20:14:25.890Z] [INFO] GET /js/admin.js 200 3ms +[2026-01-04T20:14:25.898Z] [INFO] GET /js/proposals.js 200 4ms +[2026-01-04T20:14:25.900Z] [INFO] GET /js/notifications.js 200 3ms +[2026-01-04T20:14:25.904Z] [INFO] GET /js/gitea.js 200 5ms +[2026-01-04T20:14:25.905Z] [INFO] GET /js/coding.js 200 3ms +[2026-01-04T20:14:25.906Z] [INFO] GET /js/knowledge.js 200 4ms +[2026-01-04T20:14:25.919Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T20:14:25.930Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T20:14:25.980Z] [INFO] GET /sw.js 200 4ms +[2026-01-04T20:14:25.982Z] [INFO] GET /assets/icons/task.svg 200 7ms +[2026-01-04T20:14:26.021Z] [INFO] GET / 304 2ms +[2026-01-04T20:14:26.030Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T20:14:26.034Z] [INFO] GET /index.html 200 7ms +[2026-01-04T20:14:26.053Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T20:14:26.057Z] [INFO] GET /css/components.css 304 0ms +[2026-01-04T20:14:26.079Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T20:14:26.079Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T20:14:26.087Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T20:14:26.112Z] [INFO] GET /css/responsive.css 304 2ms +[2026-01-04T20:14:26.113Z] [INFO] GET /js/utils.js 304 3ms +[2026-01-04T20:14:26.117Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:14:26.142Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T20:14:26.148Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T20:14:26.150Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T20:14:26.173Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T20:14:26.179Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T20:14:26.181Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T20:14:26.202Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T20:14:26.209Z] [INFO] GET /js/calendar.js 304 1ms +[2026-01-04T20:14:26.211Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T20:14:26.238Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T20:14:26.242Z] [INFO] GET /js/tour.js 200 2ms +[2026-01-04T20:14:26.250Z] [INFO] GET /js/undo.js 304 2ms +[2026-01-04T20:14:26.274Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T20:14:26.280Z] [INFO] GET /js/proposals.js 304 2ms +[2026-01-04T20:14:26.284Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T20:14:26.306Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T20:14:26.311Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T20:14:26.338Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T20:14:26.348Z] [INFO] GET /js/mobile.js 304 3ms +[2026-01-04T20:14:26.352Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T20:14:26.366Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T20:14:26.379Z] [INFO] GET /css/admin.css 304 0ms +[2026-01-04T20:14:26.393Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T20:14:26.397Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:14:26.410Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T20:14:26.426Z] [INFO] GET /css/knowledge.css 304 3ms +[2026-01-04T20:14:26.430Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:14:30.733Z] [INFO] Login erfolgreich: hendrik_gebhardt@gmx.de +[2026-01-04T20:14:30.734Z] [INFO] POST /api/auth/login 200 447ms +[2026-01-04T20:14:30.775Z] [INFO] GET /api/auth/users 200 9ms +[2026-01-04T20:14:30.809Z] [INFO] GET /api/projects 200 8ms +[2026-01-04T20:14:30.844Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (2ku5NA0qutV_tgIyAAAD) +[2026-01-04T20:14:30.852Z] [INFO] GET /api/columns/2 200 6ms +[2026-01-04T20:14:30.881Z] [INFO] GET /api/labels/2 200 27ms +[2026-01-04T20:14:30.877Z] [INFO] GET /api/tasks/project/2 200 24ms +[2026-01-04T20:14:30.888Z] [INFO] GET /api/stats/dashboard?projectId=2 200 6ms +[2026-01-04T20:14:30.893Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:14:30.958Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 200 6ms +[2026-01-04T20:14:30.997Z] [INFO] GET /api/notifications 200 5ms +[2026-01-04T20:14:31.043Z] [INFO] GET /api/knowledge/categories 200 7ms +[2026-01-04T20:14:37.469Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:14:46.033Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:14:46.035Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:14:46.036Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:14:46.036Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:14:46.037Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:14:46.039Z] [INFO] GET /api/coding/directories 200 12ms +[2026-01-04T20:14:46.084Z] [INFO] Git directory exists: false +[2026-01-04T20:14:46.084Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:14:46.086Z] [INFO] GET /api/coding/directories/3/status 200 10ms +[2026-01-04T20:14:47.035Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:15:15.789Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (2ku5NA0qutV_tgIyAAAD) +[2026-01-04T20:15:47.537Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:15:47.538Z] [INFO] Git directory exists: false +[2026-01-04T20:15:47.539Z] [INFO] POST /api/coding/directories/3/commit 500 10ms +[2026-01-04T20:15:47.570Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:15:47.570Z] [INFO] Git directory exists: false +[2026-01-04T20:15:47.571Z] [INFO] GET /api/coding/directories/3/status 304 5ms +[2026-01-04T20:15:48.274Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (SFWq6jffzPJGD-qkAAAF) +[2026-01-04T20:15:48.355Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:15:48.539Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T20:15:52.507Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 200 576ms +[2026-01-04T20:15:52.671Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 304 136ms +[2026-01-04T20:15:54.282Z] [ERROR] Ordner erstellen fehlgeschlagen: {"errno":-13,"code":"EACCES","syscall":"mkdir","path":"/home/claude-dev/TaskMate"} +[2026-01-04T20:15:54.282Z] [INFO] Coding-Anwendung aktualisiert: TaskMate +[2026-01-04T20:15:54.283Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:15:54.283Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:15:54.284Z] [INFO] PUT /api/coding/directories/3 200 5ms +[2026-01-04T20:15:54.320Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:15:54.321Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:15:54.321Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:15:54.322Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:15:54.321Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:15:54.324Z] [INFO] GET /api/coding/directories 304 11ms +[2026-01-04T20:15:54.364Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:15:54.366Z] [INFO] Git directory exists: false +[2026-01-04T20:15:54.369Z] [INFO] GET /api/coding/directories/3/status 304 15ms +[2026-01-04T20:15:55.252Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:15:58.757Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:15:58.758Z] [INFO] Git directory exists: false +[2026-01-04T20:15:58.760Z] [INFO] POST /api/coding/directories/3/push 500 12ms +[2026-01-04T20:15:59.758Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:16:16.072Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:16:16.072Z] [INFO] Git directory exists: false +[2026-01-04T20:16:16.074Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:16:46.085Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:16:46.085Z] [INFO] Git directory exists: false +[2026-01-04T20:16:46.088Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T20:17:15.740Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:17:15.741Z] [INFO] POST /api/auth/login 200 641ms +[2026-01-04T20:17:16.084Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:17:16.084Z] [INFO] Git directory exists: false +[2026-01-04T20:17:16.086Z] [INFO] GET /api/coding/directories/3/status 304 12ms +[2026-01-04T20:17:27.876Z] [INFO] GET /api/knowledge/categories 200 5ms +[2026-01-04T20:17:42.663Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:17:46.085Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:17:46.086Z] [INFO] Git directory exists: false +[2026-01-04T20:17:46.088Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:18:17.054Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:18:17.054Z] [INFO] Git directory exists: false +[2026-01-04T20:18:17.056Z] [INFO] GET /api/coding/directories/3/status 304 11ms +[2026-01-04T20:18:47.058Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:18:47.058Z] [INFO] Git directory exists: false +[2026-01-04T20:18:47.059Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:19:31.100Z] [INFO] GET /api/knowledge/entries?category=14 200 24ms +[2026-01-04T20:20:00.060Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:20:00.060Z] [INFO] Git directory exists: false +[2026-01-04T20:20:00.061Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T20:21:00.058Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:21:00.059Z] [INFO] Git directory exists: false +[2026-01-04T20:21:00.060Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:22:00.051Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:22:00.052Z] [INFO] Git directory exists: false +[2026-01-04T20:22:00.053Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:23:00.039Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:23:00.039Z] [INFO] Git directory exists: false +[2026-01-04T20:23:00.040Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:23:20.813Z] [INFO] CSRF: Token missing or not stored for user 3, generated new token +[2026-01-04T20:23:20.814Z] [INFO] POST /api/knowledge/categories 403 6ms +[2026-01-04T20:24:00.054Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:24:00.054Z] [INFO] Git directory exists: false +[2026-01-04T20:24:00.057Z] [INFO] GET /api/coding/directories/3/status 304 11ms +[2026-01-04T20:25:00.096Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:25:00.096Z] [INFO] Git directory exists: false +[2026-01-04T20:25:00.097Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:26:00.106Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:26:00.107Z] [INFO] Git directory exists: false +[2026-01-04T20:26:00.109Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:27:00.161Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:27:00.161Z] [INFO] Git directory exists: false +[2026-01-04T20:27:00.163Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T20:27:43.102Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:27:55.062Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:27:55.064Z] [INFO] Git directory exists: false +[2026-01-04T20:27:55.065Z] [INFO] GET /api/coding/directories/3/status 304 6ms +[2026-01-04T20:28:16.072Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:28:16.073Z] [INFO] Git directory exists: false +[2026-01-04T20:28:16.075Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:28:33.151Z] [INFO] GET /api/knowledge/categories 200 9ms +[2026-01-04T20:28:46.059Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:28:46.059Z] [INFO] Git directory exists: false +[2026-01-04T20:28:46.061Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:29:12.018Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:29:12.019Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:29:12.019Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:29:12.019Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:29:12.020Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:29:12.022Z] [INFO] GET /api/coding/directories 304 12ms +[2026-01-04T20:29:12.067Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:29:12.067Z] [INFO] Git directory exists: false +[2026-01-04T20:29:12.069Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T20:29:13.355Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:29:17.968Z] [INFO] GET / 200 8ms +[2026-01-04T20:29:18.033Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (SFWq6jffzPJGD-qkAAAF) +[2026-01-04T20:29:18.039Z] [INFO] GET /css/variables.css 200 3ms +[2026-01-04T20:29:18.070Z] [INFO] GET /css/base.css 200 3ms +[2026-01-04T20:29:18.099Z] [INFO] GET /css/components.css 200 2ms +[2026-01-04T20:29:18.105Z] [INFO] GET /css/board.css 200 2ms +[2026-01-04T20:29:18.109Z] [INFO] GET /css/modal.css 200 2ms +[2026-01-04T20:29:18.115Z] [INFO] GET /css/list.css 200 3ms +[2026-01-04T20:29:18.116Z] [INFO] GET /css/calendar.css 200 3ms +[2026-01-04T20:29:18.120Z] [INFO] GET /css/admin.css 200 6ms +[2026-01-04T20:29:18.140Z] [INFO] GET /css/proposals.css 200 4ms +[2026-01-04T20:29:18.169Z] [INFO] GET /css/coding.css 200 6ms +[2026-01-04T20:29:18.172Z] [INFO] GET /css/gitea.css 200 7ms +[2026-01-04T20:29:18.176Z] [INFO] GET /css/notifications.css 200 9ms +[2026-01-04T20:29:18.177Z] [INFO] GET /css/knowledge.css 200 7ms +[2026-01-04T20:29:18.179Z] [INFO] GET /css/responsive.css 200 6ms +[2026-01-04T20:29:18.181Z] [INFO] GET /css/mobile.css 200 6ms +[2026-01-04T20:29:18.211Z] [INFO] GET /js/app.js 200 6ms +[2026-01-04T20:29:18.320Z] [INFO] GET /js/store.js 200 11ms +[2026-01-04T20:29:18.325Z] [INFO] GET /js/auth.js 200 14ms +[2026-01-04T20:29:18.330Z] [INFO] GET /js/api.js 200 16ms +[2026-01-04T20:29:18.338Z] [INFO] GET /js/sync.js 200 15ms +[2026-01-04T20:29:18.343Z] [INFO] GET /js/offline.js 200 15ms +[2026-01-04T20:29:18.345Z] [INFO] GET /js/board.js 200 11ms +[2026-01-04T20:29:18.351Z] [INFO] GET /js/task-modal.js 200 3ms +[2026-01-04T20:29:18.372Z] [INFO] GET /js/list.js 200 8ms +[2026-01-04T20:29:18.375Z] [INFO] GET /js/shortcuts.js 200 5ms +[2026-01-04T20:29:18.381Z] [INFO] GET /js/calendar.js 200 4ms +[2026-01-04T20:29:18.382Z] [INFO] GET /js/undo.js 200 3ms +[2026-01-04T20:29:18.391Z] [INFO] GET /js/admin.js 200 3ms +[2026-01-04T20:29:18.403Z] [INFO] GET /js/proposals.js 200 3ms +[2026-01-04T20:29:18.412Z] [INFO] GET /js/notifications.js 200 4ms +[2026-01-04T20:29:18.413Z] [INFO] GET /js/gitea.js 200 4ms +[2026-01-04T20:29:18.416Z] [INFO] GET /js/coding.js 200 6ms +[2026-01-04T20:29:18.418Z] [INFO] GET /js/knowledge.js 200 3ms +[2026-01-04T20:29:18.428Z] [INFO] GET /js/mobile.js 200 2ms +[2026-01-04T20:29:18.432Z] [INFO] GET /js/utils.js 200 2ms +[2026-01-04T20:29:18.486Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:29:18.493Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T20:29:18.496Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T20:29:18.537Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T20:29:18.572Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (DPBBZlOSzgDopjDyAAAH) +[2026-01-04T20:29:18.583Z] [INFO] GET /api/projects 304 7ms +[2026-01-04T20:29:18.617Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:29:18.628Z] [INFO] GET /api/stats/dashboard?projectId=2 304 8ms +[2026-01-04T20:29:18.633Z] [INFO] GET /api/columns/2 304 4ms +[2026-01-04T20:29:18.637Z] [INFO] GET /api/labels/2 304 2ms +[2026-01-04T20:29:18.650Z] [INFO] GET /api/tasks/project/2 304 12ms +[2026-01-04T20:29:18.696Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 8ms +[2026-01-04T20:29:18.735Z] [INFO] GET /api/notifications 304 9ms +[2026-01-04T20:29:18.776Z] [INFO] GET /api/knowledge/categories 304 8ms +[2026-01-04T20:29:20.973Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:29:43.598Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:29:43.603Z] [INFO] POST /api/auth/login 200 704ms +[2026-01-04T20:29:43.656Z] [INFO] CSRF: Token missing or not stored for user 3, generated new token +[2026-01-04T20:29:43.658Z] [INFO] POST /api/knowledge/categories 403 13ms +[2026-01-04T20:29:54.714Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:29:54.715Z] [INFO] POST /api/auth/login 200 734ms +[2026-01-04T20:29:55.368Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:29:55.371Z] [INFO] POST /api/auth/login 200 631ms +[2026-01-04T20:29:55.418Z] [INFO] Knowledge-Kategorie erstellt: Changelog +[2026-01-04T20:29:55.420Z] [INFO] POST /api/knowledge/categories 201 9ms +[2026-01-04T20:30:28.381Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:30:42.969Z] [INFO] GET /api/tasks/6 200 19ms +[2026-01-04T20:30:43.014Z] [INFO] GET /api/subtasks/6 200 9ms +[2026-01-04T20:30:43.055Z] [INFO] GET /api/links/6 200 9ms +[2026-01-04T20:30:43.086Z] [INFO] GET /api/files/6 200 14ms +[2026-01-04T20:30:43.094Z] [INFO] GET /api/comments/6 200 6ms +[2026-01-04T20:30:43.104Z] [INFO] GET /api/tasks/6/history 404 5ms +[2026-01-04T20:30:43.139Z] [INFO] GET /api/files/preview/2?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1ODYyOCwiZXhwIjoxNzY3NTU5NTI4fQ.D7ArNFa9JSYG8xfBpkHf_019W5UR8PYdghJtmWdWTCQ 200 10ms +[2026-01-04T20:30:43.140Z] [INFO] GET /api/files/preview/7?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1ODYyOCwiZXhwIjoxNzY3NTU5NTI4fQ.D7ArNFa9JSYG8xfBpkHf_019W5UR8PYdghJtmWdWTCQ 200 19ms +[2026-01-04T20:30:43.945Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:31:03.437Z] [INFO] Aufgabe aktualisiert: Taskmate - Wunschliste für künftige Updates (ID: 6) +[2026-01-04T20:31:03.439Z] [INFO] PUT /api/tasks/6 200 16ms +[2026-01-04T20:31:04.411Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:31:05.592Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:31:06.968Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:31:08.006Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:31:09.061Z] [INFO] GET /api/tasks/6 200 14ms +[2026-01-04T20:31:09.102Z] [INFO] GET /api/subtasks/6 304 8ms +[2026-01-04T20:31:09.109Z] [INFO] GET /api/links/6 304 5ms +[2026-01-04T20:31:09.118Z] [INFO] GET /api/files/6 304 8ms +[2026-01-04T20:31:09.123Z] [INFO] GET /api/comments/6 304 4ms +[2026-01-04T20:31:09.128Z] [INFO] GET /api/tasks/6/history 404 4ms +[2026-01-04T20:31:09.168Z] [INFO] GET /api/files/preview/2?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1ODY2OCwiZXhwIjoxNzY3NTU5NTY4fQ.uLjqUQRZuxCwNVkhwGdT4jhMjYL0dE1xvSQSvstbUeY 200 6ms +[2026-01-04T20:31:09.169Z] [INFO] GET /api/files/preview/7?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1ODY2OCwiZXhwIjoxNzY3NTU5NTY4fQ.uLjqUQRZuxCwNVkhwGdT4jhMjYL0dE1xvSQSvstbUeY 200 14ms +[2026-01-04T20:31:10.064Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:31:15.639Z] [INFO] PUT /api/subtasks/58 200 13ms +[2026-01-04T20:31:15.680Z] [INFO] PUT /api/subtasks/58/position 200 9ms +[2026-01-04T20:31:16.646Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:31:22.414Z] [INFO] Aufgabe aktualisiert: Taskmate - Wunschliste für künftige Updates (ID: 6) +[2026-01-04T20:31:22.416Z] [INFO] PUT /api/tasks/6 200 8ms +[2026-01-04T20:31:24.374Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:31:30.768Z] [INFO] GET /api/knowledge/entries?categoryId=11 200 9ms +[2026-01-04T20:31:31.769Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:31:39.591Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:31:39.594Z] [INFO] POST /api/auth/login 200 620ms +[2026-01-04T20:31:40.264Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:31:40.266Z] [INFO] POST /api/auth/login 200 647ms +[2026-01-04T20:31:40.292Z] [INFO] Knowledge-Eintrag erstellt: 04.01.2026 20:00 - Kürzel-System korrigiert +[2026-01-04T20:31:40.295Z] [INFO] POST /api/knowledge/entries 201 6ms +[2026-01-04T20:31:41.732Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:31:42.863Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:31:43.206Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:31:43.206Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:31:43.206Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:31:43.207Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:31:43.210Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:31:43.211Z] [INFO] GET /api/coding/directories 304 10ms +[2026-01-04T20:31:43.252Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:31:43.253Z] [INFO] Git directory exists: false +[2026-01-04T20:31:43.255Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T20:31:44.221Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:31:45.849Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 304 208ms +[2026-01-04T20:31:45.974Z] [INFO] GET /api/gitea/repositories?page=1&limit=50 304 91ms +[2026-01-04T20:31:46.662Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:31:49.024Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:32:14.045Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:32:14.045Z] [INFO] Git directory exists: false +[2026-01-04T20:32:14.047Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:32:38.178Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:32:38.179Z] [INFO] POST /api/auth/login 200 751ms +[2026-01-04T20:32:38.921Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:32:38.923Z] [INFO] POST /api/auth/login 200 713ms +[2026-01-04T20:32:38.958Z] [INFO] Knowledge-Eintrag erstellt: 04.01.2025 - Nutzer-Initialen in Admin-Bereich +[2026-01-04T20:32:38.960Z] [INFO] POST /api/knowledge/entries 201 6ms +[2026-01-04T20:32:44.029Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:32:44.029Z] [INFO] Git directory exists: false +[2026-01-04T20:32:44.031Z] [INFO] GET /api/coding/directories/3/status 304 4ms +[2026-01-04T20:33:14.054Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:33:14.054Z] [INFO] Git directory exists: false +[2026-01-04T20:33:14.056Z] [INFO] GET /api/coding/directories/3/status 304 7ms +[2026-01-04T20:33:44.034Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:33:44.035Z] [INFO] Git directory exists: false +[2026-01-04T20:33:44.038Z] [INFO] GET /api/coding/directories/3/status 304 13ms +[2026-01-04T20:34:11.715Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:34:11.716Z] [INFO] POST /api/auth/login 200 613ms +[2026-01-04T20:34:12.507Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:34:12.508Z] [INFO] POST /api/auth/login 200 744ms +[2026-01-04T20:34:12.529Z] [INFO] Knowledge-Eintrag erstellt: 03.01.2025 - Git-Integration Coding-Kacheln +[2026-01-04T20:34:12.530Z] [INFO] POST /api/knowledge/entries 201 5ms +[2026-01-04T20:34:14.035Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:34:14.036Z] [INFO] Git directory exists: false +[2026-01-04T20:34:14.039Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T20:34:44.032Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:34:44.032Z] [INFO] Git directory exists: false +[2026-01-04T20:34:44.034Z] [INFO] GET /api/coding/directories/3/status 304 5ms +[2026-01-04T20:35:22.977Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:35:22.978Z] [INFO] POST /api/auth/login 200 666ms +[2026-01-04T20:35:23.672Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:35:23.673Z] [INFO] POST /api/auth/login 200 671ms +[2026-01-04T20:35:23.697Z] [INFO] Knowledge-Eintrag erstellt: 03.01.2025 - Sicherheitsverbesserungen Phase 1 +[2026-01-04T20:35:23.702Z] [INFO] POST /api/knowledge/entries 201 8ms +[2026-01-04T20:35:35.545Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:35:35.546Z] [INFO] Git directory exists: false +[2026-01-04T20:35:35.548Z] [INFO] GET /api/coding/directories/3/status 304 11ms +[2026-01-04T20:35:36.820Z] [INFO] GET / 200 6ms +[2026-01-04T20:35:36.882Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (DPBBZlOSzgDopjDyAAAH) +[2026-01-04T20:35:36.893Z] [INFO] GET /css/variables.css 200 4ms +[2026-01-04T20:35:36.924Z] [INFO] GET /css/base.css 200 5ms +[2026-01-04T20:35:36.966Z] [INFO] GET /css/components.css 200 11ms +[2026-01-04T20:35:36.976Z] [INFO] GET /css/board.css 200 6ms +[2026-01-04T20:35:36.982Z] [INFO] GET /css/calendar.css 200 8ms +[2026-01-04T20:35:36.989Z] [INFO] GET /css/modal.css 200 10ms +[2026-01-04T20:35:36.991Z] [INFO] GET /css/list.css 200 11ms +[2026-01-04T20:35:36.992Z] [INFO] GET /css/admin.css 200 6ms +[2026-01-04T20:35:37.008Z] [INFO] GET /css/proposals.css 200 3ms +[2026-01-04T20:35:37.028Z] [INFO] GET /css/notifications.css 200 3ms +[2026-01-04T20:35:37.042Z] [INFO] GET /css/gitea.css 200 9ms +[2026-01-04T20:35:37.045Z] [INFO] GET /css/coding.css 200 7ms +[2026-01-04T20:35:37.047Z] [INFO] GET /css/mobile.css 200 8ms +[2026-01-04T20:35:37.050Z] [INFO] GET /css/knowledge.css 200 9ms +[2026-01-04T20:35:37.054Z] [INFO] GET /css/responsive.css 200 10ms +[2026-01-04T20:35:37.079Z] [INFO] GET /js/app.js 200 4ms +[2026-01-04T20:35:37.161Z] [INFO] GET /js/auth.js 200 17ms +[2026-01-04T20:35:37.162Z] [INFO] GET /js/store.js 200 14ms +[2026-01-04T20:35:37.166Z] [INFO] GET /js/api.js 200 16ms +[2026-01-04T20:35:37.180Z] [INFO] GET /js/offline.js 200 21ms +[2026-01-04T20:35:37.185Z] [INFO] GET /js/board.js 200 20ms +[2026-01-04T20:35:37.194Z] [INFO] GET /js/sync.js 200 28ms +[2026-01-04T20:35:37.215Z] [INFO] GET /js/task-modal.js 200 14ms +[2026-01-04T20:35:37.221Z] [INFO] GET /js/list.js 200 10ms +[2026-01-04T20:35:37.224Z] [INFO] GET /js/calendar.js 200 18ms +[2026-01-04T20:35:37.235Z] [INFO] GET /js/shortcuts.js 200 6ms +[2026-01-04T20:35:37.237Z] [INFO] GET /js/undo.js 200 7ms +[2026-01-04T20:35:37.246Z] [INFO] GET /js/admin.js 200 5ms +[2026-01-04T20:35:37.257Z] [INFO] GET /js/proposals.js 200 6ms +[2026-01-04T20:35:37.260Z] [INFO] GET /js/notifications.js 200 7ms +[2026-01-04T20:35:37.272Z] [INFO] GET /js/gitea.js 200 8ms +[2026-01-04T20:35:37.285Z] [INFO] GET /js/coding.js 200 9ms +[2026-01-04T20:35:37.295Z] [INFO] GET /js/utils.js 200 7ms +[2026-01-04T20:35:37.303Z] [INFO] GET /js/mobile.js 200 12ms +[2026-01-04T20:35:37.318Z] [INFO] GET /js/knowledge.js 200 14ms +[2026-01-04T20:35:37.391Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T20:35:37.400Z] [INFO] GET /assets/icons/task.svg 304 4ms +[2026-01-04T20:35:37.410Z] [INFO] GET /api/auth/users 304 11ms +[2026-01-04T20:35:37.458Z] [INFO] GET /api/auth/users 304 12ms +[2026-01-04T20:35:37.494Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (3tJt7PNjsKS3dZM4AAAJ) +[2026-01-04T20:35:37.507Z] [INFO] GET /api/projects 304 10ms +[2026-01-04T20:35:37.562Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:35:37.599Z] [INFO] GET /api/tasks/project/2 200 56ms +[2026-01-04T20:35:37.602Z] [INFO] GET /api/columns/2 304 51ms +[2026-01-04T20:35:37.617Z] [INFO] GET /api/stats/dashboard?projectId=2 304 65ms +[2026-01-04T20:35:37.627Z] [INFO] GET /api/labels/2 304 62ms +[2026-01-04T20:35:37.674Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 11ms +[2026-01-04T20:35:37.716Z] [INFO] GET /api/notifications 304 12ms +[2026-01-04T20:35:37.757Z] [INFO] GET /api/knowledge/categories 200 10ms +[2026-01-04T20:35:39.513Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:35:40.516Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 10ms +[2026-01-04T20:35:41.517Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:35:45.530Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:35:45.534Z] [INFO] POST /api/auth/login 200 624ms +[2026-01-04T20:35:46.143Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:35:46.146Z] [INFO] POST /api/auth/login 200 578ms +[2026-01-04T20:35:46.172Z] [INFO] Knowledge-Eintrag erstellt: 02.01.2026 - Admin: Passwort-Bearbeitung implementiert +[2026-01-04T20:35:46.174Z] [INFO] POST /api/knowledge/entries 201 6ms +[2026-01-04T20:35:47.383Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:35:49.331Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:35:55.611Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T20:35:57.826Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:36:00.495Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:36:09.831Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:36:20.475Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:36:22.963Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:36:22.964Z] [INFO] POST /api/auth/login 200 690ms +[2026-01-04T20:36:23.704Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:36:23.705Z] [INFO] POST /api/auth/login 200 710ms +[2026-01-04T20:36:23.745Z] [INFO] Knowledge-Eintrag erstellt: 02.01.2026 - Coding-Tab: Gitea Integration Cache-Fix +[2026-01-04T20:36:23.746Z] [INFO] POST /api/knowledge/entries 201 7ms +[2026-01-04T20:36:23.773Z] [INFO] GET / 304 1ms +[2026-01-04T20:36:23.809Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (3tJt7PNjsKS3dZM4AAAJ) +[2026-01-04T20:36:23.821Z] [INFO] GET /css/base.css 304 6ms +[2026-01-04T20:36:23.825Z] [INFO] GET /css/components.css 304 2ms +[2026-01-04T20:36:23.828Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:36:23.834Z] [INFO] GET /css/variables.css 304 5ms +[2026-01-04T20:36:23.837Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T20:36:23.840Z] [INFO] GET /css/modal.css 304 3ms +[2026-01-04T20:36:23.857Z] [INFO] GET /css/admin.css 304 5ms +[2026-01-04T20:36:23.860Z] [INFO] GET /css/proposals.css 304 6ms +[2026-01-04T20:36:23.863Z] [INFO] GET /css/list.css 304 7ms +[2026-01-04T20:36:23.867Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T20:36:23.869Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:36:23.877Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:36:23.886Z] [INFO] GET /css/knowledge.css 304 2ms +[2026-01-04T20:36:23.892Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T20:36:23.896Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T20:36:23.908Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:36:23.944Z] [INFO] GET /js/auth.js 304 4ms +[2026-01-04T20:36:23.948Z] [INFO] GET /js/sync.js 304 3ms +[2026-01-04T20:36:23.953Z] [INFO] GET /js/api.js 304 4ms +[2026-01-04T20:36:23.964Z] [INFO] GET /js/board.js 304 8ms +[2026-01-04T20:36:23.967Z] [INFO] GET /js/store.js 304 8ms +[2026-01-04T20:36:23.974Z] [INFO] GET /js/offline.js 304 6ms +[2026-01-04T20:36:23.993Z] [INFO] GET /js/task-modal.js 304 9ms +[2026-01-04T20:36:23.995Z] [INFO] GET /js/calendar.js 304 10ms +[2026-01-04T20:36:23.996Z] [INFO] GET /js/list.js 304 10ms +[2026-01-04T20:36:24.001Z] [INFO] GET /js/undo.js 304 4ms +[2026-01-04T20:36:24.010Z] [INFO] GET /js/shortcuts.js 304 5ms +[2026-01-04T20:36:24.017Z] [INFO] GET /js/admin.js 304 6ms +[2026-01-04T20:36:24.031Z] [INFO] GET /js/notifications.js 304 4ms +[2026-01-04T20:36:24.036Z] [INFO] GET /js/gitea.js 304 4ms +[2026-01-04T20:36:24.043Z] [INFO] GET /js/proposals.js 304 3ms +[2026-01-04T20:36:24.047Z] [INFO] GET /js/knowledge.js 304 3ms +[2026-01-04T20:36:24.050Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T20:36:24.054Z] [INFO] GET /js/mobile.js 304 2ms +[2026-01-04T20:36:24.061Z] [INFO] GET /js/utils.js 304 2ms +[2026-01-04T20:36:24.109Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T20:36:24.130Z] [INFO] GET /api/auth/users 304 14ms +[2026-01-04T20:36:24.133Z] [INFO] GET /assets/icons/task.svg 304 17ms +[2026-01-04T20:36:24.171Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T20:36:24.207Z] [INFO] GET /api/projects 304 9ms +[2026-01-04T20:36:24.217Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (duktcLJkTEnRB9voAAAL) +[2026-01-04T20:36:24.284Z] [INFO] GET /api/tasks/project/2 304 43ms +[2026-01-04T20:36:24.290Z] [INFO] GET /api/columns/2 304 47ms +[2026-01-04T20:36:24.299Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T20:36:24.307Z] [INFO] GET /api/labels/2 304 6ms +[2026-01-04T20:36:24.313Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:36:24.348Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T20:36:24.391Z] [INFO] GET /api/notifications 304 5ms +[2026-01-04T20:36:24.426Z] [INFO] GET /api/knowledge/categories 200 5ms +[2026-01-04T20:36:25.906Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:36:26.525Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 10ms +[2026-01-04T20:36:27.538Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:36:32.908Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:36:38.659Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:36:41.323Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:36:43.647Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:36:47.313Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:36:47.316Z] [INFO] POST /api/auth/login 200 734ms +[2026-01-04T20:36:47.937Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:36:47.938Z] [INFO] POST /api/auth/login 200 586ms +[2026-01-04T20:36:47.966Z] [INFO] Knowledge-Eintrag erstellt: 02.01.2026 - Coding-Tab: Claude.md als Popup Modal +[2026-01-04T20:36:47.967Z] [INFO] POST /api/knowledge/entries 201 5ms +[2026-01-04T20:36:53.593Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 7ms +[2026-01-04T20:36:54.783Z] [INFO] GET / 304 3ms +[2026-01-04T20:36:54.818Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (duktcLJkTEnRB9voAAAL) +[2026-01-04T20:36:54.824Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T20:36:54.831Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T20:36:54.838Z] [INFO] GET /css/components.css 304 4ms +[2026-01-04T20:36:54.839Z] [INFO] GET /css/modal.css 304 4ms +[2026-01-04T20:36:54.842Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:36:54.844Z] [INFO] GET /css/calendar.css 304 0ms +[2026-01-04T20:36:54.853Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T20:36:54.861Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T20:36:54.871Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T20:36:54.873Z] [INFO] GET /css/proposals.css 304 5ms +[2026-01-04T20:36:54.877Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T20:36:54.881Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:36:54.882Z] [INFO] GET /css/knowledge.css 304 0ms +[2026-01-04T20:36:54.890Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T20:36:54.907Z] [INFO] GET /css/mobile.css 304 4ms +[2026-01-04T20:36:54.913Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:36:54.962Z] [INFO] GET /js/api.js 304 4ms +[2026-01-04T20:36:54.964Z] [INFO] GET /js/offline.js 304 4ms +[2026-01-04T20:36:54.967Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T20:36:54.972Z] [INFO] GET /js/auth.js 304 3ms +[2026-01-04T20:36:54.976Z] [INFO] GET /js/store.js 304 1ms +[2026-01-04T20:36:54.979Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T20:36:54.996Z] [INFO] GET /js/task-modal.js 304 3ms +[2026-01-04T20:36:55.001Z] [INFO] GET /js/list.js 304 2ms +[2026-01-04T20:36:55.006Z] [INFO] GET /js/calendar.js 304 1ms +[2026-01-04T20:36:55.010Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T20:36:55.013Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:36:55.015Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T20:36:55.024Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:36:55.033Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T20:36:55.036Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T20:36:55.039Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T20:36:55.042Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T20:36:55.045Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T20:36:55.050Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T20:36:55.095Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:36:55.103Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T20:36:55.104Z] [INFO] GET /assets/icons/task.svg 304 7ms +[2026-01-04T20:36:55.148Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T20:36:55.184Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (vTlJXa7JnSbr9sFZAAAN) +[2026-01-04T20:36:55.194Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T20:36:55.240Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T20:36:55.242Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:36:55.261Z] [INFO] GET /api/tasks/project/2 304 18ms +[2026-01-04T20:36:55.266Z] [INFO] GET /api/labels/2 304 4ms +[2026-01-04T20:36:55.270Z] [INFO] GET /api/columns/2 304 3ms +[2026-01-04T20:36:55.315Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 7ms +[2026-01-04T20:36:55.355Z] [INFO] GET /api/notifications 304 6ms +[2026-01-04T20:36:55.395Z] [INFO] GET /api/knowledge/categories 200 8ms +[2026-01-04T20:36:56.882Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:36:57.299Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:36:57.344Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 7ms +[2026-01-04T20:36:58.353Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:37:54.205Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:38:02.722Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:38:05.899Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:38:18.246Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:38:20.240Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:38:24.959Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:38:26.876Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:38:30.995Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:38:33.926Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:38:33.927Z] [INFO] POST /api/auth/login 200 824ms +[2026-01-04T20:38:34.461Z] [INFO] GET / 304 103ms +[2026-01-04T20:38:34.631Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:38:34.632Z] [INFO] POST /api/auth/login 200 679ms +[2026-01-04T20:38:34.633Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (vTlJXa7JnSbr9sFZAAAN) +[2026-01-04T20:38:34.634Z] [INFO] GET /css/variables.css 304 6ms +[2026-01-04T20:38:34.636Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T20:38:34.641Z] [INFO] GET /css/components.css 304 4ms +[2026-01-04T20:38:34.643Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:38:34.645Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T20:38:34.647Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T20:38:34.666Z] [INFO] Knowledge-Eintrag aktualisiert: 04.01.2026 - Kürzel-System korrigiert +[2026-01-04T20:38:34.668Z] [INFO] PUT /api/knowledge/entries/9 200 7ms +[2026-01-04T20:38:34.674Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T20:38:34.677Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T20:38:34.679Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T20:38:34.681Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:38:34.683Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T20:38:34.685Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:38:34.711Z] [INFO] GET /css/responsive.css 304 2ms +[2026-01-04T20:38:34.713Z] [INFO] GET /css/mobile.css 304 4ms +[2026-01-04T20:38:34.717Z] [INFO] GET /css/knowledge.css 304 3ms +[2026-01-04T20:38:34.721Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T20:38:34.759Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T20:38:34.763Z] [INFO] GET /js/board.js 304 3ms +[2026-01-04T20:38:34.768Z] [INFO] GET /js/auth.js 304 3ms +[2026-01-04T20:38:34.773Z] [INFO] GET /js/offline.js 304 4ms +[2026-01-04T20:38:34.776Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T20:38:34.780Z] [INFO] GET /js/api.js 304 2ms +[2026-01-04T20:38:34.792Z] [INFO] GET /js/task-modal.js 304 2ms +[2026-01-04T20:38:34.798Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T20:38:34.801Z] [INFO] GET /js/list.js 304 2ms +[2026-01-04T20:38:34.805Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T20:38:34.810Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:38:34.822Z] [INFO] GET /js/proposals.js 304 4ms +[2026-01-04T20:38:34.822Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T20:38:34.827Z] [INFO] GET /js/notifications.js 304 0ms +[2026-01-04T20:38:34.832Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T20:38:34.837Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T20:38:34.845Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T20:38:34.851Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T20:38:34.854Z] [INFO] GET /js/utils.js 304 2ms +[2026-01-04T20:38:34.893Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:38:34.898Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T20:38:34.904Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T20:38:34.940Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T20:38:34.978Z] [INFO] GET /api/projects 304 7ms +[2026-01-04T20:38:34.987Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (0S6gIOqdtL5Z3N8kAAAP) +[2026-01-04T20:38:35.015Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T20:38:35.043Z] [INFO] GET /api/tasks/project/2 304 34ms +[2026-01-04T20:38:35.049Z] [INFO] GET /api/columns/2 304 3ms +[2026-01-04T20:38:35.058Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T20:38:35.065Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:38:35.095Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 3ms +[2026-01-04T20:38:35.140Z] [INFO] GET /api/notifications 304 10ms +[2026-01-04T20:38:35.199Z] [INFO] GET /api/knowledge/categories 304 11ms +[2026-01-04T20:38:36.652Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:38:37.005Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 8ms +[2026-01-04T20:38:38.003Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:38:42.553Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:39:34.185Z] [INFO] GET / 304 3ms +[2026-01-04T20:39:34.232Z] [INFO] GET /css/variables.css 304 4ms +[2026-01-04T20:39:34.233Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (0S6gIOqdtL5Z3N8kAAAP) +[2026-01-04T20:39:34.239Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T20:39:34.242Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T20:39:34.247Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:39:34.256Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T20:39:34.263Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T20:39:34.265Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T20:39:34.268Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T20:39:34.272Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T20:39:34.275Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:39:34.287Z] [INFO] GET /css/gitea.css 304 3ms +[2026-01-04T20:39:34.294Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:39:34.302Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T20:39:34.306Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T20:39:34.314Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T20:39:34.327Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:39:34.378Z] [INFO] GET /js/api.js 304 7ms +[2026-01-04T20:39:34.382Z] [INFO] GET /js/offline.js 304 7ms +[2026-01-04T20:39:34.387Z] [INFO] GET /js/auth.js 304 3ms +[2026-01-04T20:39:34.391Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T20:39:34.394Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T20:39:34.397Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T20:39:34.412Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T20:39:34.418Z] [INFO] GET /js/task-modal.js 304 2ms +[2026-01-04T20:39:34.425Z] [INFO] GET /js/list.js 304 3ms +[2026-01-04T20:39:34.429Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T20:39:34.431Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T20:39:34.433Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:39:34.437Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:39:34.456Z] [INFO] GET /js/notifications.js 304 3ms +[2026-01-04T20:39:34.460Z] [INFO] GET /js/knowledge.js 304 4ms +[2026-01-04T20:39:34.464Z] [INFO] GET /js/gitea.js 304 3ms +[2026-01-04T20:39:34.469Z] [INFO] GET /js/coding.js 304 3ms +[2026-01-04T20:39:34.472Z] [INFO] GET /js/mobile.js 304 2ms +[2026-01-04T20:39:34.474Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T20:39:34.518Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:39:34.523Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T20:39:34.526Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T20:39:34.565Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T20:39:34.600Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (sHr3WYP2xh5G6KKFAAAR) +[2026-01-04T20:39:34.611Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T20:39:34.639Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:39:34.660Z] [INFO] GET /api/tasks/project/2 304 16ms +[2026-01-04T20:39:34.665Z] [INFO] GET /api/columns/2 304 20ms +[2026-01-04T20:39:34.670Z] [INFO] GET /api/stats/dashboard?projectId=2 304 25ms +[2026-01-04T20:39:34.675Z] [INFO] GET /api/labels/2 304 3ms +[2026-01-04T20:39:34.720Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 8ms +[2026-01-04T20:39:34.758Z] [INFO] GET /api/notifications 304 9ms +[2026-01-04T20:39:34.805Z] [INFO] GET /api/knowledge/categories 304 8ms +[2026-01-04T20:39:36.277Z] [INFO] GET /sw.js 304 3ms +[2026-01-04T20:39:36.378Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:39:37.661Z] [INFO] GET /api/knowledge/entries?categoryId=12 200 7ms +[2026-01-04T20:39:38.651Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:39:43.315Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:39:43.316Z] [INFO] POST /api/auth/login 200 743ms +[2026-01-04T20:39:43.850Z] [INFO] GET / 304 103ms +[2026-01-04T20:39:44.094Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (sHr3WYP2xh5G6KKFAAAR) +[2026-01-04T20:39:44.096Z] [INFO] GET /css/variables.css 304 39ms +[2026-01-04T20:39:44.100Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:39:44.102Z] [INFO] POST /api/auth/login 200 761ms +[2026-01-04T20:39:44.103Z] [INFO] GET /css/base.css 304 6ms +[2026-01-04T20:39:44.107Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T20:39:44.111Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:39:44.115Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T20:39:44.118Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T20:39:44.123Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T20:39:44.132Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T20:39:44.136Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T20:39:44.143Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:39:44.148Z] [INFO] GET /css/gitea.css 304 4ms +[2026-01-04T20:39:44.151Z] [INFO] GET /css/coding.css 304 2ms +[2026-01-04T20:39:44.160Z] [INFO] Knowledge-Eintrag erstellt: 31.12.2025 - Mobile Optimierung +[2026-01-04T20:39:44.164Z] [INFO] POST /api/knowledge/entries 201 9ms +[2026-01-04T20:39:44.168Z] [INFO] GET /css/knowledge.css 304 3ms +[2026-01-04T20:39:44.170Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T20:39:44.175Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T20:39:44.189Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:39:44.241Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T20:39:44.249Z] [INFO] GET /js/store.js 304 6ms +[2026-01-04T20:39:44.250Z] [INFO] GET /js/api.js 304 6ms +[2026-01-04T20:39:44.253Z] [INFO] GET /js/sync.js 304 8ms +[2026-01-04T20:39:44.256Z] [INFO] GET /js/auth.js 304 4ms +[2026-01-04T20:39:44.262Z] [INFO] GET /js/board.js 304 3ms +[2026-01-04T20:39:44.272Z] [INFO] GET /js/task-modal.js 304 3ms +[2026-01-04T20:39:44.287Z] [INFO] GET /js/list.js 304 4ms +[2026-01-04T20:39:44.288Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T20:39:44.293Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T20:39:44.297Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:39:44.307Z] [INFO] GET /js/admin.js 304 4ms +[2026-01-04T20:39:44.309Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:39:44.332Z] [INFO] GET /js/notifications.js 304 3ms +[2026-01-04T20:39:44.336Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T20:39:44.342Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T20:39:44.359Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T20:39:44.363Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T20:39:44.366Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T20:39:44.408Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:39:44.415Z] [INFO] GET /assets/icons/task.svg 304 4ms +[2026-01-04T20:39:44.421Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T20:39:44.461Z] [INFO] GET /api/auth/users 304 2ms +[2026-01-04T20:39:44.491Z] [INFO] GET /api/projects 304 4ms +[2026-01-04T20:39:44.497Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (lihw3taPllf3L5laAAAT) +[2026-01-04T20:39:44.551Z] [INFO] GET /api/tasks/project/2 304 24ms +[2026-01-04T20:39:44.559Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T20:39:44.569Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T20:39:44.576Z] [INFO] GET /api/labels/2 304 6ms +[2026-01-04T20:39:44.578Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:39:44.610Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 4ms +[2026-01-04T20:39:44.650Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T20:39:44.688Z] [INFO] GET /api/knowledge/categories 200 6ms +[2026-01-04T20:39:45.789Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 11ms +[2026-01-04T20:39:46.160Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:39:46.786Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:39:47.993Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:39:52.255Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:40:00.420Z] [INFO] GET /api/knowledge/entries?categoryId=14 200 6ms +[2026-01-04T20:40:01.426Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:40:03.524Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T20:40:13.415Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:40:13.418Z] [INFO] POST /api/auth/login 200 573ms +[2026-01-04T20:40:14.053Z] [INFO] GET / 304 98ms +[2026-01-04T20:40:14.058Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:40:14.059Z] [INFO] POST /api/auth/login 200 609ms +[2026-01-04T20:40:14.086Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (lihw3taPllf3L5laAAAT) +[2026-01-04T20:40:14.095Z] [INFO] Knowledge-Eintrag erstellt: 30.12.2025 - Kanban Board Mehrfachzuweisungen +[2026-01-04T20:40:14.096Z] [INFO] POST /api/knowledge/entries 201 5ms +[2026-01-04T20:40:14.100Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T20:40:14.104Z] [INFO] GET /css/base.css 304 3ms +[2026-01-04T20:40:14.105Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T20:40:14.106Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T20:40:14.115Z] [INFO] GET /css/modal.css 304 3ms +[2026-01-04T20:40:14.118Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T20:40:14.128Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T20:40:14.135Z] [INFO] GET /css/proposals.css 304 1ms +[2026-01-04T20:40:14.137Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:40:14.142Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T20:40:14.146Z] [INFO] GET /css/list.css 304 0ms +[2026-01-04T20:40:14.153Z] [INFO] GET /css/coding.css 304 2ms +[2026-01-04T20:40:14.158Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T20:40:14.164Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T20:40:14.164Z] [INFO] GET /css/responsive.css 304 2ms +[2026-01-04T20:40:14.182Z] [INFO] GET /js/app.js 304 3ms +[2026-01-04T20:40:14.219Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T20:40:14.222Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T20:40:14.226Z] [INFO] GET /js/store.js 304 3ms +[2026-01-04T20:40:14.228Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T20:40:14.231Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T20:40:14.235Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T20:40:14.254Z] [INFO] GET /js/task-modal.js 304 3ms +[2026-01-04T20:40:14.262Z] [INFO] GET /js/calendar.js 304 4ms +[2026-01-04T20:40:14.269Z] [INFO] GET /js/list.js 304 6ms +[2026-01-04T20:40:14.276Z] [INFO] GET /js/shortcuts.js 304 6ms +[2026-01-04T20:40:14.279Z] [INFO] GET /js/undo.js 304 5ms +[2026-01-04T20:40:14.297Z] [INFO] GET /js/admin.js 304 5ms +[2026-01-04T20:40:14.302Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T20:40:14.305Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:40:14.318Z] [INFO] GET /js/knowledge.js 304 9ms +[2026-01-04T20:40:14.321Z] [INFO] GET /js/coding.js 304 9ms +[2026-01-04T20:40:14.332Z] [INFO] GET /js/gitea.js 304 3ms +[2026-01-04T20:40:14.341Z] [INFO] GET /js/mobile.js 304 6ms +[2026-01-04T20:40:14.347Z] [INFO] GET /js/utils.js 304 3ms +[2026-01-04T20:40:14.393Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T20:40:14.399Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T20:40:14.407Z] [INFO] GET /api/auth/users 304 9ms +[2026-01-04T20:40:14.442Z] [INFO] GET /api/auth/users 304 2ms +[2026-01-04T20:40:14.473Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (fpb-Nan2tapebzIMAAAV) +[2026-01-04T20:40:14.482Z] [INFO] GET /api/projects 304 5ms +[2026-01-04T20:40:14.521Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:40:14.529Z] [INFO] GET /api/labels/2 304 5ms +[2026-01-04T20:40:14.536Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T20:40:14.565Z] [INFO] GET /api/tasks/project/2 304 26ms +[2026-01-04T20:40:14.579Z] [INFO] GET /api/stats/dashboard?projectId=2 304 11ms +[2026-01-04T20:40:14.598Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 3ms +[2026-01-04T20:40:14.644Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T20:40:14.681Z] [INFO] GET /api/knowledge/categories 200 7ms +[2026-01-04T20:40:16.144Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:40:16.174Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:40:16.199Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 6ms +[2026-01-04T20:40:17.208Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:40:20.776Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:40:30.488Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:40:30.488Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:40:30.488Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:40:30.488Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:40:30.488Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:40:30.489Z] [INFO] GET /api/coding/directories 304 4ms +[2026-01-04T20:40:30.526Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:40:30.526Z] [INFO] Git directory exists: false +[2026-01-04T20:40:30.527Z] [INFO] GET /api/coding/directories/3/status 304 5ms +[2026-01-04T20:40:31.483Z] [INFO] POST /api/auth/refresh 200 15ms +[2026-01-04T20:40:33.256Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:40:47.794Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:40:47.795Z] [INFO] POST /api/auth/login 200 611ms +[2026-01-04T20:40:48.391Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:40:48.392Z] [INFO] POST /api/auth/login 200 559ms +[2026-01-04T20:40:48.434Z] [INFO] Knowledge-Eintrag erstellt: 29.12.2025 - Wissensdatenbank implementiert +[2026-01-04T20:40:48.435Z] [INFO] POST /api/knowledge/entries 201 4ms +[2026-01-04T20:40:52.602Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:40:54.647Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T20:40:55.970Z] [INFO] GET / 304 7ms +[2026-01-04T20:40:56.001Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (fpb-Nan2tapebzIMAAAV) +[2026-01-04T20:40:56.011Z] [INFO] GET /css/variables.css 304 2ms +[2026-01-04T20:40:56.014Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T20:40:56.018Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:40:56.020Z] [INFO] GET /css/modal.css 304 1ms +[2026-01-04T20:40:56.022Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T20:40:56.025Z] [INFO] GET /css/calendar.css 304 3ms +[2026-01-04T20:40:56.054Z] [INFO] GET /css/list.css 304 5ms +[2026-01-04T20:40:56.061Z] [INFO] GET /css/admin.css 304 5ms +[2026-01-04T20:40:56.062Z] [INFO] GET /css/proposals.css 304 5ms +[2026-01-04T20:40:56.065Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:40:56.068Z] [INFO] GET /css/gitea.css 304 2ms +[2026-01-04T20:40:56.070Z] [INFO] GET /css/coding.css 304 0ms +[2026-01-04T20:40:56.095Z] [INFO] GET /css/knowledge.css 304 15ms +[2026-01-04T20:40:56.108Z] [INFO] GET /css/responsive.css 304 7ms +[2026-01-04T20:40:56.137Z] [INFO] GET /css/mobile.css 304 21ms +[2026-01-04T20:40:56.147Z] [INFO] GET /js/app.js 304 5ms +[2026-01-04T20:40:56.210Z] [INFO] GET /js/store.js 304 12ms +[2026-01-04T20:40:56.213Z] [INFO] GET /js/board.js 304 9ms +[2026-01-04T20:40:56.215Z] [INFO] GET /js/offline.js 304 6ms +[2026-01-04T20:40:56.214Z] [INFO] GET /js/auth.js 304 9ms +[2026-01-04T20:40:56.217Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T20:40:56.219Z] [INFO] GET /js/sync.js 304 2ms +[2026-01-04T20:40:56.238Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T20:40:56.241Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T20:40:56.243Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T20:40:56.248Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T20:40:56.250Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T20:40:56.251Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:40:56.267Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:40:56.272Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T20:40:56.273Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T20:40:56.277Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T20:40:56.282Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T20:40:56.284Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T20:40:56.301Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T20:40:56.338Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:40:56.342Z] [INFO] GET /assets/icons/task.svg 304 2ms +[2026-01-04T20:40:56.349Z] [INFO] GET /api/auth/users 304 8ms +[2026-01-04T20:40:56.393Z] [INFO] GET /api/auth/users 304 13ms +[2026-01-04T20:40:56.424Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (O06FiPZocWEUlbmsAAAX) +[2026-01-04T20:40:56.432Z] [INFO] GET /api/projects 304 4ms +[2026-01-04T20:40:56.473Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T20:40:56.492Z] [INFO] GET /api/tasks/project/2 304 14ms +[2026-01-04T20:40:56.494Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:40:56.500Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T20:40:56.508Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T20:40:56.546Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T20:40:56.579Z] [INFO] GET /api/notifications 304 4ms +[2026-01-04T20:40:56.617Z] [INFO] GET /api/knowledge/categories 200 8ms +[2026-01-04T20:40:58.065Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:40:58.837Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:40:59.144Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 6ms +[2026-01-04T20:41:00.164Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:41:03.847Z] [INFO] POST /api/auth/refresh 200 14ms +[2026-01-04T20:41:05.393Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:41:10.299Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:41:12.758Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:41:18.244Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:41:20.430Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:41:20.431Z] [INFO] POST /api/auth/login 200 865ms +[2026-01-04T20:41:21.227Z] [INFO] GET / 304 51ms +[2026-01-04T20:41:21.230Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:41:21.233Z] [INFO] POST /api/auth/login 200 765ms +[2026-01-04T20:41:21.256Z] [INFO] Knowledge-Eintrag erstellt: 28.12.2025 - Coding-Tab mit Gitea Integration +[2026-01-04T20:41:21.259Z] [INFO] POST /api/knowledge/entries 201 6ms +[2026-01-04T20:41:21.262Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (O06FiPZocWEUlbmsAAAX) +[2026-01-04T20:41:21.270Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T20:41:21.275Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T20:41:21.278Z] [INFO] GET /css/base.css 304 4ms +[2026-01-04T20:41:21.279Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T20:41:21.283Z] [INFO] GET /css/modal.css 304 3ms +[2026-01-04T20:41:21.285Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T20:41:21.299Z] [INFO] GET /css/list.css 304 1ms +[2026-01-04T20:41:21.307Z] [INFO] GET /css/admin.css 304 3ms +[2026-01-04T20:41:21.312Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T20:41:21.317Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T20:41:21.323Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T20:41:21.325Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T20:41:21.331Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T20:41:21.334Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T20:41:21.339Z] [INFO] GET /css/mobile.css 304 3ms +[2026-01-04T20:41:21.354Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:41:21.390Z] [INFO] GET /js/api.js 304 3ms +[2026-01-04T20:41:21.394Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T20:41:21.404Z] [INFO] GET /js/auth.js 304 9ms +[2026-01-04T20:41:21.406Z] [INFO] GET /js/sync.js 304 9ms +[2026-01-04T20:41:21.411Z] [INFO] GET /js/board.js 304 2ms +[2026-01-04T20:41:21.417Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T20:41:21.425Z] [INFO] GET /js/task-modal.js 304 2ms +[2026-01-04T20:41:21.427Z] [INFO] GET /js/calendar.js 304 3ms +[2026-01-04T20:41:21.436Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T20:41:21.443Z] [INFO] GET /js/shortcuts.js 304 0ms +[2026-01-04T20:41:21.447Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:41:21.453Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:41:21.459Z] [INFO] GET /js/notifications.js 304 3ms +[2026-01-04T20:41:21.462Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T20:41:21.472Z] [INFO] GET /js/gitea.js 304 1ms +[2026-01-04T20:41:21.476Z] [INFO] GET /js/knowledge.js 304 1ms +[2026-01-04T20:41:21.482Z] [INFO] GET /js/coding.js 304 0ms +[2026-01-04T20:41:21.487Z] [INFO] GET /js/mobile.js 304 0ms +[2026-01-04T20:41:21.495Z] [INFO] GET /js/utils.js 304 3ms +[2026-01-04T20:41:21.534Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:41:21.544Z] [INFO] GET /api/auth/users 304 5ms +[2026-01-04T20:41:21.545Z] [INFO] GET /assets/icons/task.svg 304 7ms +[2026-01-04T20:41:21.584Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T20:41:21.630Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (opIJdWMcvZFQRLwNAAAZ) +[2026-01-04T20:41:21.640Z] [INFO] GET /api/projects 304 7ms +[2026-01-04T20:41:21.686Z] [INFO] GET /api/labels/2 304 11ms +[2026-01-04T20:41:21.689Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:41:21.700Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T20:41:21.705Z] [INFO] GET /api/columns/2 304 4ms +[2026-01-04T20:41:21.721Z] [INFO] GET /api/tasks/project/2 304 15ms +[2026-01-04T20:41:21.762Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 7ms +[2026-01-04T20:41:21.791Z] [INFO] GET /api/notifications 304 4ms +[2026-01-04T20:41:21.823Z] [INFO] GET /api/knowledge/categories 200 4ms +[2026-01-04T20:41:23.281Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:41:23.306Z] [INFO] GET /sw.js 304 1ms +[2026-01-04T20:41:24.395Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 9ms +[2026-01-04T20:41:25.393Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:41:27.782Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:41:29.635Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:41:32.713Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:41:36.362Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:41:44.626Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:41:44.627Z] [INFO] POST /api/auth/login 200 860ms +[2026-01-04T20:41:45.460Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:41:45.461Z] [INFO] POST /api/auth/login 200 749ms +[2026-01-04T20:41:45.484Z] [INFO] Knowledge-Eintrag erstellt: 27.12.2025 - Genehmigungssystem implementiert +[2026-01-04T20:41:45.485Z] [INFO] POST /api/knowledge/entries 201 4ms +[2026-01-04T20:42:11.102Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:42:11.104Z] [INFO] POST /api/auth/login 200 686ms +[2026-01-04T20:42:11.704Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:42:11.705Z] [INFO] POST /api/auth/login 200 580ms +[2026-01-04T20:42:11.726Z] [INFO] Knowledge-Eintrag erstellt: 26.12.2025 - Dashboard mit Statistiken +[2026-01-04T20:42:11.728Z] [INFO] POST /api/knowledge/entries 201 5ms +[2026-01-04T20:45:30.611Z] [INFO] GET / 304 6ms +[2026-01-04T20:45:30.648Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (opIJdWMcvZFQRLwNAAAZ) +[2026-01-04T20:45:30.655Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T20:45:30.687Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T20:45:30.722Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T20:45:30.725Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T20:45:30.755Z] [INFO] GET /css/modal.css 304 3ms +[2026-01-04T20:45:30.757Z] [INFO] GET /css/calendar.css 304 4ms +[2026-01-04T20:45:30.761Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T20:45:30.765Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T20:45:30.766Z] [INFO] GET /css/notifications.css 304 2ms +[2026-01-04T20:45:30.768Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T20:45:30.790Z] [INFO] GET /css/coding.css 304 2ms +[2026-01-04T20:45:30.792Z] [INFO] GET /css/gitea.css 304 3ms +[2026-01-04T20:45:30.798Z] [INFO] GET /css/responsive.css 304 3ms +[2026-01-04T20:45:30.800Z] [INFO] GET /css/knowledge.css 304 3ms +[2026-01-04T20:45:30.803Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T20:45:30.822Z] [INFO] GET /js/app.js 304 1ms +[2026-01-04T20:45:30.862Z] [INFO] GET /js/store.js 304 4ms +[2026-01-04T20:45:30.870Z] [INFO] GET /js/api.js 304 4ms +[2026-01-04T20:45:30.873Z] [INFO] GET /js/auth.js 304 1ms +[2026-01-04T20:45:30.876Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T20:45:30.878Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T20:45:30.881Z] [INFO] GET /js/sync.js 304 1ms +[2026-01-04T20:45:30.902Z] [INFO] GET /js/task-modal.js 304 1ms +[2026-01-04T20:45:30.912Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T20:45:30.915Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T20:45:30.919Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T20:45:30.922Z] [INFO] GET /js/list.js 304 2ms +[2026-01-04T20:45:30.926Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T20:45:30.931Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T20:45:30.941Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T20:45:30.948Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T20:45:30.955Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T20:45:30.958Z] [INFO] GET /js/coding.js 304 2ms +[2026-01-04T20:45:30.960Z] [INFO] GET /js/mobile.js 304 0ms +[2026-01-04T20:45:30.971Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T20:45:31.020Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:45:31.026Z] [INFO] GET /api/auth/users 304 3ms +[2026-01-04T20:45:31.027Z] [INFO] GET /assets/icons/task.svg 304 5ms +[2026-01-04T20:45:31.072Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T20:45:31.102Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (PEPFfe_gMyMx_C8YAAAb) +[2026-01-04T20:45:31.109Z] [INFO] GET /api/projects 304 4ms +[2026-01-04T20:45:31.146Z] [INFO] GET /api/stats/dashboard?projectId=2 304 9ms +[2026-01-04T20:45:31.149Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T20:45:31.168Z] [INFO] GET /api/tasks/project/2 304 17ms +[2026-01-04T20:45:31.172Z] [INFO] GET /api/labels/2 304 3ms +[2026-01-04T20:45:31.176Z] [INFO] GET /api/columns/2 304 7ms +[2026-01-04T20:45:31.220Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T20:45:31.260Z] [INFO] GET /api/notifications 304 5ms +[2026-01-04T20:45:31.301Z] [INFO] GET /api/knowledge/categories 200 6ms +[2026-01-04T20:45:32.795Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T20:45:33.282Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T20:45:33.488Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 8ms +[2026-01-04T20:45:34.483Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:45:37.515Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:45:40.898Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:45:43.036Z] [INFO] GET /api/tasks/6 200 8ms +[2026-01-04T20:45:43.082Z] [INFO] GET /api/links/6 304 15ms +[2026-01-04T20:45:43.093Z] [INFO] GET /api/files/6 304 19ms +[2026-01-04T20:45:43.099Z] [INFO] GET /api/tasks/6/history 404 5ms +[2026-01-04T20:45:43.105Z] [INFO] GET /api/subtasks/6 200 5ms +[2026-01-04T20:45:43.109Z] [INFO] GET /api/comments/6 304 4ms +[2026-01-04T20:45:43.148Z] [INFO] GET /api/files/preview/2?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1OTU0MCwiZXhwIjoxNzY3NTYwNDQwfQ.71TDk_CzBZTz5EUn7iV9PtKRdNwQzhxB-PFnhdYEzPg 200 7ms +[2026-01-04T20:45:43.151Z] [INFO] GET /api/files/preview/7?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJoZW5kcmlrX2dlYmhhcmR0QGdteC5kZSIsImRpc3BsYXlOYW1lIjoiSGVuZHJpayIsImNvbG9yIjoiI0Y1OUUwQiIsInJvbGUiOiJ1c2VyIiwicGVybWlzc2lvbnMiOlsiZ2VuZWhtaWd1bmciXSwidHlwZSI6ImFjY2VzcyIsImlhdCI6MTc2NzU1OTU0MCwiZXhwIjoxNzY3NTYwNDQwfQ.71TDk_CzBZTz5EUn7iV9PtKRdNwQzhxB-PFnhdYEzPg 200 18ms +[2026-01-04T20:45:44.020Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:46:45.475Z] [INFO] Aufgabe aktualisiert: Taskmate - Wunschliste für künftige Updates (ID: 6) +[2026-01-04T20:46:45.480Z] [INFO] PUT /api/tasks/6 200 10ms +[2026-01-04T20:46:47.018Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:46:57.677Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:46:58.849Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:47:52.692Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:47:52.697Z] [INFO] POST /api/auth/logout 401 4ms +[2026-01-04T20:47:52.758Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T20:47:52.819Z] [INFO] Logout: momohomma@googlemail.com +[2026-01-04T20:47:52.821Z] [INFO] POST /api/auth/logout 200 9ms +[2026-01-04T20:47:54.968Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:48:00.244Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:48:00.246Z] [INFO] POST /api/auth/login 200 659ms +[2026-01-04T20:48:00.275Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:48:00.282Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:48:00.282Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:48:00.282Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:48:00.283Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:48:00.285Z] [INFO] GET /api/coding/directories 200 14ms +[2026-01-04T20:48:01.768Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:48:01.768Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:48:01.768Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:48:01.768Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:48:01.769Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:48:01.770Z] [INFO] GET /api/coding/directories 304 6ms +[2026-01-04T20:48:01.807Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:48:01.808Z] [INFO] Git directory exists: false +[2026-01-04T20:48:01.810Z] [INFO] GET /api/coding/directories/3/status 304 6ms +[2026-01-04T20:48:02.777Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:48:32.027Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:48:32.028Z] [INFO] Git directory exists: false +[2026-01-04T20:48:32.030Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T20:48:32.962Z] [INFO] Login erfolgreich: momohomma@googlemail.com +[2026-01-04T20:48:32.964Z] [INFO] POST /api/auth/login 200 639ms +[2026-01-04T20:48:33.145Z] [INFO] GET /api/auth/users 200 6ms +[2026-01-04T20:48:33.194Z] [INFO] Socket connected: momohomma@googlemail.com (JwOgD2bdwqYu0sZZAAAd) +[2026-01-04T20:48:33.227Z] [INFO] GET /api/projects 304 5ms +[2026-01-04T20:48:33.294Z] [INFO] momohomma@googlemail.com joined project:[object Object] +[2026-01-04T20:48:33.303Z] [INFO] GET /api/columns/2 304 11ms +[2026-01-04T20:48:33.309Z] [INFO] GET /api/stats/dashboard?projectId=2 304 14ms +[2026-01-04T20:48:33.314Z] [INFO] GET /api/labels/2 304 18ms +[2026-01-04T20:48:33.327Z] [INFO] GET /api/tasks/project/2 200 13ms +[2026-01-04T20:48:33.451Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T20:48:33.509Z] [INFO] GET /api/knowledge/categories 200 6ms +[2026-01-04T20:48:53.575Z] [INFO] Socket disconnected: momohomma@googlemail.com (JwOgD2bdwqYu0sZZAAAd) +[2026-01-04T20:49:01.534Z] [INFO] Socket connected: momohomma@googlemail.com (uj4t82JEFMMopWVRAAAf) +[2026-01-04T20:49:01.635Z] [INFO] momohomma@googlemail.com joined project:[object Object] +[2026-01-04T20:49:01.806Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:49:01.806Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:49:01.807Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:49:01.807Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:49:01.807Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:49:01.808Z] [INFO] GET /api/coding/directories 200 6ms +[2026-01-04T20:49:01.874Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:49:01.875Z] [INFO] Git directory exists: false +[2026-01-04T20:49:01.876Z] [INFO] GET /api/coding/directories/3/status 304 6ms +[2026-01-04T20:49:02.016Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:49:02.017Z] [INFO] Git directory exists: false +[2026-01-04T20:49:02.020Z] [INFO] GET /api/coding/directories/3/status 304 13ms +[2026-01-04T20:49:03.678Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:49:04.304Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 10ms +[2026-01-04T20:49:05.280Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:49:13.047Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:49:13.050Z] [INFO] POST /api/auth/login 200 774ms +[2026-01-04T20:49:13.641Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:49:13.642Z] [INFO] POST /api/auth/login 200 561ms +[2026-01-04T20:49:13.671Z] [INFO] Coding-Anwendung aktualisiert: Gitea-Repo +[2026-01-04T20:49:13.670Z] [ERROR] Ordner erstellen fehlgeschlagen: {"errno":-13,"code":"EACCES","syscall":"mkdir","path":"/home/claude-dev/TaskMate"} +[2026-01-04T20:49:13.671Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:49:13.672Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:49:13.673Z] [INFO] PUT /api/coding/directories/3 200 8ms +[2026-01-04T20:49:14.343Z] [INFO] Socket disconnected: momohomma@googlemail.com (uj4t82JEFMMopWVRAAAf) +[2026-01-04T20:49:32.015Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:49:32.015Z] [INFO] Git directory exists: false +[2026-01-04T20:49:32.017Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T20:50:02.004Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:50:02.005Z] [INFO] Git directory exists: false +[2026-01-04T20:50:02.007Z] [INFO] GET /api/coding/directories/3/status 304 10ms +[2026-01-04T20:50:32.011Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:50:32.011Z] [INFO] Git directory exists: false +[2026-01-04T20:50:32.014Z] [INFO] GET /api/coding/directories/3/status 304 11ms +[2026-01-04T20:51:02.010Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:51:02.011Z] [INFO] Git directory exists: false +[2026-01-04T20:51:02.012Z] [INFO] GET /api/coding/directories/3/status 304 8ms +[2026-01-04T20:52:00.019Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:52:00.021Z] [INFO] GET /api/coding/directories/3/status 304 12ms +[2026-01-04T20:52:00.020Z] [INFO] Git directory exists: false +[2026-01-04T20:53:00.021Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:53:00.021Z] [INFO] Git directory exists: false +[2026-01-04T20:53:00.024Z] [INFO] GET /api/coding/directories/3/status 304 12ms +[2026-01-04T20:53:08.153Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:53:08.153Z] [INFO] Git directory exists: false +[2026-01-04T20:53:08.155Z] [INFO] GET /api/coding/directories/3/status 304 9ms +[2026-01-04T20:53:09.406Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:53:09.406Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T20:53:09.406Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T20:53:09.406Z] [INFO] readCLAUDEmd: File does not exist: /app/taskmate-source/CLAUDE.md +[2026-01-04T20:53:09.408Z] [INFO] GET /api/coding/directories 200 10ms +[2026-01-04T20:53:09.405Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T20:53:09.446Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:53:09.446Z] [INFO] Git directory exists: false +[2026-01-04T20:53:09.447Z] [INFO] GET /api/coding/directories/3/status 304 5ms +[2026-01-04T20:53:10.802Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:53:13.874Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T20:53:26.207Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:53:30.109Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:53:32.165Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:53:36.001Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:53:39.076Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:53:42.700Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T20:53:45.858Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:53:50.869Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:53:51.985Z] [INFO] Knowledge-Kategorie erstellt: Firmenbezug +[2026-01-04T20:53:51.987Z] [INFO] POST /api/knowledge/categories 201 6ms +[2026-01-04T20:53:52.028Z] [INFO] GET /api/knowledge/categories 200 7ms +[2026-01-04T20:53:52.830Z] [INFO] GET /api/knowledge/entries?categoryId=16 200 8ms +[2026-01-04T20:53:53.830Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:53:55.147Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:53:56.756Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:54:00.565Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T20:54:01.046Z] [INFO] Knowledge-Eintrag erstellt: quietscheente +[2026-01-04T20:54:01.048Z] [INFO] POST /api/knowledge/entries 201 10ms +[2026-01-04T20:54:01.096Z] [INFO] GET /api/knowledge/entries?categoryId=16 200 6ms +[2026-01-04T20:54:01.133Z] [INFO] GET /api/knowledge/categories 200 4ms +[2026-01-04T20:54:02.044Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T20:54:04.631Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:54:12.925Z] [INFO] Knowledge-Kategorie aktualisiert: Firmenbezüge +[2026-01-04T20:54:12.927Z] [INFO] PUT /api/knowledge/categories/16 200 9ms +[2026-01-04T20:54:12.964Z] [INFO] GET /api/knowledge/categories 200 3ms +[2026-01-04T20:54:13.937Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:54:20.508Z] [INFO] PUT /api/knowledge/categories/16/position 200 4ms +[2026-01-04T20:54:22.533Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T20:54:25.675Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:54:25.676Z] [INFO] POST /api/auth/login 200 836ms +[2026-01-04T20:54:25.721Z] [INFO] GET /api/coding/git-status/3 404 11ms +[2026-01-04T20:55:16.914Z] [INFO] GET /api/knowledge/entries?categoryId=16 200 8ms +[2026-01-04T20:55:17.911Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:55:21.975Z] [INFO] Knowledge-Kategorie aktualisiert: Unternehmensnotizen +[2026-01-04T20:55:21.976Z] [INFO] PUT /api/knowledge/categories/16 200 5ms +[2026-01-04T20:55:22.017Z] [INFO] GET /api/knowledge/categories 200 6ms +[2026-01-04T20:55:23.003Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:55:26.207Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T20:55:38.647Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:55:43.321Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:55:43.322Z] [INFO] POST /api/auth/login 200 708ms +[2026-01-04T20:55:43.344Z] [INFO] GET /api/coding/directories/3/git-status 404 5ms +[2026-01-04T20:56:31.749Z] [INFO] GET /api/knowledge/entries?categoryId=11 304 5ms +[2026-01-04T20:56:32.751Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T20:56:34.984Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T20:56:35.029Z] [INFO] GET /api/knowledge/entries?categoryId=16 200 4ms +[2026-01-04T20:56:36.037Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T20:56:41.266Z] [INFO] PUT /api/knowledge/categories/15/position 200 8ms +[2026-01-04T20:56:43.391Z] [INFO] POST /api/auth/refresh 200 4ms +[2026-01-04T20:56:45.520Z] [INFO] Login erfolgreich: admin +[2026-01-04T20:56:45.522Z] [INFO] POST /api/auth/login 200 623ms +[2026-01-04T20:56:45.565Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T20:56:45.566Z] [INFO] Git directory exists: false +[2026-01-04T20:56:45.567Z] [INFO] GET /api/coding/directories/3/status 200 5ms +[2026-01-04T20:57:26.634Z] [INFO] SIGTERM empfangen, fahre herunter... +[2026-01-04T21:01:04.746Z] [ERROR] Fehler beim Abrufen der Upload-Einstellungen: +[2026-01-04T21:01:04.879Z] [INFO] Datenbank-Tabellen erstellt +[2026-01-04T21:01:05.611Z] [INFO] Admin-Passwort bereits korrekt +[2026-01-04T21:01:05.612Z] [INFO] Datenbank initialisiert +[2026-01-04T21:01:05.616Z] [INFO] Server läuft auf Port 3001 +[2026-01-04T21:01:05.617Z] [INFO] Umgebung: development +[2026-01-04T21:01:05.617Z] [INFO] Backup-Scheduler gestartet (alle 24 Stunden) +[2026-01-04T21:01:05.618Z] [INFO] Automatische Backups aktiviert +[2026-01-04T21:02:05.672Z] [INFO] Datei verschlüsselt: taskmate.db -> backup_2026-01-04T21-02-05-649Z.db.enc +[2026-01-04T21:02:05.674Z] [INFO] Verschlüsseltes Backup erstellt: backup_2026-01-04T21-02-05-649Z.db.enc +[2026-01-04T21:02:05.682Z] [INFO] Backup erstellt: backup_2026-01-04T21-02-05-649Z.db +[2026-01-04T21:02:05.692Z] [INFO] Datei sicher gelöscht: backup_2026-01-03T21-43-56-098Z.db.enc +[2026-01-04T21:02:05.693Z] [INFO] Altes Backup sicher gelöscht: backup_2026-01-03T21-43-56-098Z.db.enc +[2026-01-04T21:02:05.694Z] [INFO] Fälligkeits-Check für Benachrichtigungen gestartet +[2026-01-04T21:03:46.666Z] [INFO] Login erfolgreich: admin +[2026-01-04T21:03:46.676Z] [INFO] POST /api/auth/login 200 505ms +[2026-01-04T21:03:46.714Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:03:46.714Z] [INFO] Git directory exists: true +[2026-01-04T21:03:46.715Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:03:46.715Z] [INFO] Git directory exists: true +[2026-01-04T21:03:46.805Z] [INFO] GET /api/coding/directories/3/status 200 109ms +[2026-01-04T21:06:44.258Z] [INFO] POST /api/auth/refresh 200 30ms +[2026-01-04T21:11:00.511Z] [INFO] Login erfolgreich: admin +[2026-01-04T21:11:00.512Z] [INFO] POST /api/auth/login 200 517ms +[2026-01-04T21:11:01.006Z] [INFO] Login erfolgreich: admin +[2026-01-04T21:11:01.009Z] [INFO] POST /api/auth/login 200 455ms +[2026-01-04T21:11:01.047Z] [INFO] Knowledge-Eintrag erstellt: 04.01.2026 - Git-Repository Erkennung repariert +[2026-01-04T21:11:01.053Z] [INFO] POST /api/knowledge/entries 201 17ms +[2026-01-04T21:16:45.218Z] [INFO] POST /api/auth/refresh 200 32ms +[2026-01-04T21:19:47.848Z] [INFO] GET / 304 21ms +[2026-01-04T21:19:47.893Z] [INFO] GET /css/variables.css 304 3ms +[2026-01-04T21:19:47.925Z] [INFO] GET /css/base.css 304 2ms +[2026-01-04T21:19:47.954Z] [INFO] GET /css/components.css 304 3ms +[2026-01-04T21:19:47.959Z] [INFO] GET /css/board.css 304 2ms +[2026-01-04T21:19:47.960Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T21:19:47.965Z] [INFO] GET /css/calendar.css 304 2ms +[2026-01-04T21:19:47.966Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T21:19:47.970Z] [INFO] GET /css/admin.css 304 2ms +[2026-01-04T21:19:47.987Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T21:19:47.992Z] [INFO] GET /css/notifications.css 304 1ms +[2026-01-04T21:19:47.995Z] [INFO] GET /css/gitea.css 304 1ms +[2026-01-04T21:19:48.000Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T21:19:48.002Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T21:19:48.005Z] [INFO] GET /css/responsive.css 304 1ms +[2026-01-04T21:19:48.012Z] [INFO] GET /css/mobile.css 304 2ms +[2026-01-04T21:19:48.025Z] [INFO] GET /js/app.js 304 2ms +[2026-01-04T21:19:48.064Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T21:19:48.067Z] [INFO] GET /js/auth.js 304 2ms +[2026-01-04T21:19:48.066Z] [INFO] GET /js/sync.js 304 3ms +[2026-01-04T21:19:48.071Z] [INFO] GET /js/api.js 304 1ms +[2026-01-04T21:19:48.073Z] [INFO] GET /js/board.js 304 1ms +[2026-01-04T21:19:48.074Z] [INFO] GET /js/offline.js 304 2ms +[2026-01-04T21:19:48.094Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T21:19:48.095Z] [INFO] GET /js/task-modal.js 304 2ms +[2026-01-04T21:19:48.096Z] [INFO] GET /js/list.js 304 1ms +[2026-01-04T21:19:48.099Z] [INFO] GET /js/shortcuts.js 304 1ms +[2026-01-04T21:19:48.102Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T21:19:48.104Z] [INFO] GET /js/admin.js 304 1ms +[2026-01-04T21:19:48.125Z] [INFO] GET /js/notifications.js 304 2ms +[2026-01-04T21:19:48.128Z] [INFO] GET /js/knowledge.js 304 2ms +[2026-01-04T21:19:48.132Z] [INFO] GET /js/gitea.js 304 2ms +[2026-01-04T21:19:48.134Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T21:19:48.136Z] [INFO] GET /js/coding.js 304 1ms +[2026-01-04T21:19:48.140Z] [INFO] GET /js/mobile.js 304 1ms +[2026-01-04T21:19:48.156Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T21:19:48.197Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T21:19:48.208Z] [INFO] GET /assets/icons/task.svg 304 8ms +[2026-01-04T21:19:48.215Z] [INFO] GET /api/auth/users 304 9ms +[2026-01-04T21:19:48.275Z] [INFO] GET /api/auth/users 304 6ms +[2026-01-04T21:19:48.312Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (tqi9KI12G8ZLpq9MAAAB) +[2026-01-04T21:19:48.322Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T21:19:48.361Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T21:19:48.391Z] [INFO] GET /api/tasks/project/2 200 28ms +[2026-01-04T21:19:48.398Z] [INFO] GET /api/columns/2 304 5ms +[2026-01-04T21:19:48.408Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T21:19:48.417Z] [INFO] GET /api/labels/2 304 8ms +[2026-01-04T21:19:48.464Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 5ms +[2026-01-04T21:19:48.506Z] [INFO] GET /api/notifications 304 12ms +[2026-01-04T21:19:48.547Z] [INFO] GET /api/knowledge/categories 200 7ms +[2026-01-04T21:19:49.298Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T21:19:49.306Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T21:19:49.307Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T21:19:49.307Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T21:19:49.309Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T21:19:49.312Z] [INFO] GET /api/coding/directories 200 24ms +[2026-01-04T21:19:49.374Z] [INFO] Git directory exists: true +[2026-01-04T21:19:49.375Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:19:49.375Z] [INFO] Git directory exists: true +[2026-01-04T21:19:49.440Z] [INFO] GET /api/coding/directories/3/status 200 72ms +[2026-01-04T21:19:49.374Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:19:49.997Z] [INFO] GET /sw.js 304 2ms +[2026-01-04T21:19:50.298Z] [INFO] POST /api/auth/refresh 200 12ms +[2026-01-04T21:19:58.097Z] [INFO] POST /api/auth/refresh 200 10ms +[2026-01-04T21:19:58.778Z] [INFO] GET /api/knowledge/entries?categoryId=15 200 15ms +[2026-01-04T21:19:59.776Z] [INFO] POST /api/auth/refresh 200 6ms +[2026-01-04T21:20:04.776Z] [INFO] GET / 304 2ms +[2026-01-04T21:20:04.827Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (tqi9KI12G8ZLpq9MAAAB) +[2026-01-04T21:20:04.831Z] [INFO] GET /css/base.css 304 1ms +[2026-01-04T21:20:04.833Z] [INFO] GET /css/variables.css 304 1ms +[2026-01-04T21:20:04.836Z] [INFO] GET /css/modal.css 304 2ms +[2026-01-04T21:20:04.838Z] [INFO] GET /css/board.css 304 1ms +[2026-01-04T21:20:04.842Z] [INFO] GET /css/components.css 304 1ms +[2026-01-04T21:20:04.844Z] [INFO] GET /css/calendar.css 304 1ms +[2026-01-04T21:20:04.861Z] [INFO] GET /css/list.css 304 2ms +[2026-01-04T21:20:04.866Z] [INFO] GET /css/proposals.css 304 2ms +[2026-01-04T21:20:04.871Z] [INFO] GET /css/gitea.css 304 3ms +[2026-01-04T21:20:04.872Z] [INFO] GET /css/notifications.css 304 3ms +[2026-01-04T21:20:04.874Z] [INFO] GET /css/admin.css 304 1ms +[2026-01-04T21:20:04.877Z] [INFO] GET /css/coding.css 304 1ms +[2026-01-04T21:20:04.890Z] [INFO] GET /css/knowledge.css 304 1ms +[2026-01-04T21:20:04.894Z] [INFO] GET /css/responsive.css 304 0ms +[2026-01-04T21:20:04.903Z] [INFO] GET /css/mobile.css 304 1ms +[2026-01-04T21:20:04.909Z] [INFO] GET /js/app.js 304 0ms +[2026-01-04T21:20:04.955Z] [INFO] GET /js/auth.js 304 3ms +[2026-01-04T21:20:04.962Z] [INFO] GET /js/api.js 304 5ms +[2026-01-04T21:20:04.967Z] [INFO] GET /js/sync.js 304 3ms +[2026-01-04T21:20:04.971Z] [INFO] GET /js/board.js 304 2ms +[2026-01-04T21:20:04.974Z] [INFO] GET /js/offline.js 304 1ms +[2026-01-04T21:20:04.977Z] [INFO] GET /js/store.js 304 2ms +[2026-01-04T21:20:04.982Z] [INFO] GET /js/task-modal.js 304 0ms +[2026-01-04T21:20:04.996Z] [INFO] GET /js/calendar.js 304 2ms +[2026-01-04T21:20:05.001Z] [INFO] GET /js/list.js 304 2ms +[2026-01-04T21:20:05.005Z] [INFO] GET /js/undo.js 304 1ms +[2026-01-04T21:20:05.009Z] [INFO] GET /js/shortcuts.js 304 2ms +[2026-01-04T21:20:05.013Z] [INFO] GET /js/admin.js 304 2ms +[2026-01-04T21:20:05.018Z] [INFO] GET /js/proposals.js 304 1ms +[2026-01-04T21:20:05.028Z] [INFO] GET /js/notifications.js 304 1ms +[2026-01-04T21:20:05.037Z] [INFO] GET /js/gitea.js 304 4ms +[2026-01-04T21:20:05.039Z] [INFO] GET /js/knowledge.js 304 4ms +[2026-01-04T21:20:05.046Z] [INFO] GET /js/coding.js 304 4ms +[2026-01-04T21:20:05.050Z] [INFO] GET /js/mobile.js 304 3ms +[2026-01-04T21:20:05.053Z] [INFO] GET /js/utils.js 304 1ms +[2026-01-04T21:20:05.094Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T21:20:05.100Z] [INFO] GET /api/auth/users 304 4ms +[2026-01-04T21:20:05.102Z] [INFO] GET /assets/icons/task.svg 304 1ms +[2026-01-04T21:20:05.138Z] [INFO] GET /api/auth/users 304 3ms +[2026-01-04T21:20:05.175Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (Fgzs3W-dTTU9LdSEAAAD) +[2026-01-04T21:20:05.217Z] [INFO] GET /api/projects 304 30ms +[2026-01-04T21:20:05.258Z] [INFO] GET /api/columns/2 304 6ms +[2026-01-04T21:20:05.262Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T21:20:05.296Z] [INFO] GET /api/labels/2 304 8ms +[2026-01-04T21:20:05.317Z] [INFO] GET /api/tasks/project/2 304 19ms +[2026-01-04T21:20:05.325Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T21:20:05.356Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 6ms +[2026-01-04T21:20:05.398Z] [INFO] GET /api/notifications 304 10ms +[2026-01-04T21:20:05.440Z] [INFO] GET /api/knowledge/categories 304 9ms +[2026-01-04T21:20:06.920Z] [INFO] GET /sw.js 304 1ms +[2026-01-04T21:20:07.062Z] [INFO] POST /api/auth/refresh 200 7ms +[2026-01-04T21:20:07.204Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 7ms +[2026-01-04T21:20:08.216Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T21:20:15.449Z] [INFO] POST /api/auth/refresh 200 11ms +[2026-01-04T21:20:18.028Z] [INFO] GET / 200 9ms +[2026-01-04T21:20:18.096Z] [INFO] Socket disconnected: hendrik_gebhardt@gmx.de (Fgzs3W-dTTU9LdSEAAAD) +[2026-01-04T21:20:18.111Z] [INFO] GET /css/variables.css 200 5ms +[2026-01-04T21:20:18.118Z] [INFO] GET /css/modal.css 200 6ms +[2026-01-04T21:20:18.124Z] [INFO] GET /css/base.css 200 9ms +[2026-01-04T21:20:18.125Z] [INFO] GET /css/components.css 200 9ms +[2026-01-04T21:20:18.127Z] [INFO] GET /css/board.css 200 5ms +[2026-01-04T21:20:18.128Z] [INFO] GET /css/calendar.css 200 5ms +[2026-01-04T21:20:18.143Z] [INFO] GET /css/list.css 200 4ms +[2026-01-04T21:20:18.164Z] [INFO] GET /css/admin.css 200 5ms +[2026-01-04T21:20:18.175Z] [INFO] GET /css/notifications.css 200 4ms +[2026-01-04T21:20:18.180Z] [INFO] GET /css/gitea.css 200 3ms +[2026-01-04T21:20:18.183Z] [INFO] GET /css/proposals.css 200 4ms +[2026-01-04T21:20:18.186Z] [INFO] GET /css/coding.css 200 2ms +[2026-01-04T21:20:18.194Z] [INFO] GET /css/knowledge.css 200 2ms +[2026-01-04T21:20:18.208Z] [INFO] GET /css/responsive.css 200 3ms +[2026-01-04T21:20:18.228Z] [INFO] GET /css/mobile.css 200 17ms +[2026-01-04T21:20:18.229Z] [INFO] GET /js/app.js 200 16ms +[2026-01-04T21:20:18.321Z] [INFO] GET /js/store.js 200 5ms +[2026-01-04T21:20:18.323Z] [INFO] GET /js/api.js 200 6ms +[2026-01-04T21:20:18.326Z] [INFO] GET /js/sync.js 200 7ms +[2026-01-04T21:20:18.327Z] [INFO] GET /js/offline.js 200 7ms +[2026-01-04T21:20:18.331Z] [INFO] GET /js/auth.js 200 9ms +[2026-01-04T21:20:18.332Z] [INFO] GET /js/board.js 200 8ms +[2026-01-04T21:20:18.357Z] [INFO] GET /js/calendar.js 200 6ms +[2026-01-04T21:20:18.360Z] [INFO] GET /js/list.js 200 7ms +[2026-01-04T21:20:18.367Z] [INFO] GET /js/shortcuts.js 200 8ms +[2026-01-04T21:20:18.371Z] [INFO] GET /js/undo.js 200 5ms +[2026-01-04T21:20:18.372Z] [INFO] GET /js/task-modal.js 200 2ms +[2026-01-04T21:20:18.390Z] [INFO] GET /js/admin.js 200 5ms +[2026-01-04T21:20:18.392Z] [INFO] GET /js/proposals.js 200 5ms +[2026-01-04T21:20:18.399Z] [INFO] GET /js/notifications.js 200 8ms +[2026-01-04T21:20:18.402Z] [INFO] GET /js/gitea.js 200 6ms +[2026-01-04T21:20:18.405Z] [INFO] GET /js/knowledge.js 200 4ms +[2026-01-04T21:20:18.409Z] [INFO] GET /js/coding.js 200 5ms +[2026-01-04T21:20:18.418Z] [INFO] GET /js/mobile.js 200 3ms +[2026-01-04T21:20:18.425Z] [INFO] GET /js/utils.js 200 3ms +[2026-01-04T21:20:18.474Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T21:20:18.483Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T21:20:18.485Z] [INFO] GET /assets/icons/task.svg 304 6ms +[2026-01-04T21:20:18.524Z] [INFO] GET /api/auth/users 304 7ms +[2026-01-04T21:20:18.551Z] [INFO] Socket connected: hendrik_gebhardt@gmx.de (yK79Jj9Nkz2PLhkoAAAF) +[2026-01-04T21:20:18.558Z] [INFO] GET /api/projects 304 6ms +[2026-01-04T21:20:18.596Z] [INFO] hendrik_gebhardt@gmx.de joined project:[object Object] +[2026-01-04T21:20:18.605Z] [INFO] GET /api/stats/dashboard?projectId=2 304 7ms +[2026-01-04T21:20:18.623Z] [INFO] GET /api/tasks/project/2 304 16ms +[2026-01-04T21:20:18.634Z] [INFO] GET /api/columns/2 304 7ms +[2026-01-04T21:20:18.642Z] [INFO] GET /api/labels/2 304 7ms +[2026-01-04T21:20:18.681Z] [INFO] GET /api/proposals?sort=date&archived=0&projectId=2 304 4ms +[2026-01-04T21:20:18.727Z] [INFO] GET /api/notifications 304 7ms +[2026-01-04T21:20:18.764Z] [INFO] GET /api/knowledge/categories 304 5ms +[2026-01-04T21:20:20.877Z] [INFO] POST /api/auth/refresh 200 5ms +[2026-01-04T21:20:20.975Z] [INFO] GET /api/knowledge/entries?categoryId=15 304 7ms +[2026-01-04T21:20:21.990Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T21:20:41.003Z] [INFO] readCLAUDEmd: Checking path /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T21:20:41.004Z] [INFO] readCLAUDEmd: File does not exist: /home/claude-dev/TaskMate/CLAUDE.md +[2026-01-04T21:20:41.004Z] [INFO] Trying fallback path for TaskMate: /app/taskmate-source +[2026-01-04T21:20:41.004Z] [INFO] readCLAUDEmd: Checking path /app/taskmate-source/CLAUDE.md +[2026-01-04T21:20:41.005Z] [INFO] readCLAUDEmd: Successfully read 12158 characters from /app/taskmate-source/CLAUDE.md +[2026-01-04T21:20:41.013Z] [INFO] GET /api/coding/directories 304 14ms +[2026-01-04T21:20:41.050Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:20:41.051Z] [INFO] Git directory exists: true +[2026-01-04T21:20:41.051Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:20:41.052Z] [INFO] Git directory exists: true +[2026-01-04T21:20:41.084Z] [INFO] GET /api/coding/directories/3/status 304 39ms +[2026-01-04T21:20:42.021Z] [INFO] POST /api/auth/refresh 200 13ms +[2026-01-04T21:20:43.807Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:20:43.808Z] [INFO] Git directory exists: true +[2026-01-04T21:20:43.822Z] [INFO] Lokaler Branch: main +[2026-01-04T21:20:43.822Z] [INFO] Push: lokaler Branch 'main' → Remote Branch 'main' +[2026-01-04T21:20:44.276Z] [INFO] Git push ausgeführt für: Gitea-Repo +[2026-01-04T21:20:44.279Z] [INFO] POST /api/coding/directories/3/push 200 481ms +[2026-01-04T21:20:44.335Z] [INFO] Git directory exists: true +[2026-01-04T21:20:44.335Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:20:44.336Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:20:44.336Z] [INFO] Git directory exists: true +[2026-01-04T21:20:44.365Z] [INFO] GET /api/coding/directories/3/status 304 35ms +[2026-01-04T21:20:44.814Z] [INFO] POST /api/auth/refresh 200 8ms +[2026-01-04T21:20:56.546Z] [INFO] POST /api/auth/refresh 200 9ms +[2026-01-04T21:21:03.131Z] [INFO] Login erfolgreich: admin +[2026-01-04T21:21:03.134Z] [INFO] POST /api/auth/login 200 526ms +[2026-01-04T21:21:03.170Z] [INFO] GET /api/knowledge/entries?category=15 200 7ms +[2026-01-04T21:21:11.564Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:21:11.564Z] [INFO] Git-Repository Check: /home/claude-dev/TaskMate -> /app/taskmate-source -> /app/taskmate-source/.git +[2026-01-04T21:21:11.564Z] [INFO] Git directory exists: true +[2026-01-04T21:21:11.564Z] [INFO] Git directory exists: true +[2026-01-04T21:21:11.591Z] [INFO] GET /api/coding/directories/3/status 304 36ms