diff --git a/TODO.md b/TODO.md
index 06483b3..d5a6acf 100644
--- a/TODO.md
+++ b/TODO.md
@@ -10,7 +10,7 @@
- [ ] Neuer Message-Tag: `[canvas:
:]...[/canvas]`
- [x] Websearch Tool
- [x] Anfrage/Stream abbrechen
-- [ ] Telegram-Intergration
+- [x] Telegram-Intergration
- [x] Refactoring: Agent/Session-Einstellungen, die den System-Prompt bzw. das Tool Use bearbeiten
- [ ] Cronjobs: Planung, ob cron von Debian/Linux verwendet werden soll, oder ein eigener Worker/Service in der App selbst, der das übernimmt
- [x] Weiteres Modell hinzufügen: "Haiku 4.5"
diff --git a/wwwroot/css/chat.css b/wwwroot/css/chat.css
index 835546d..fd4d230 100644
--- a/wwwroot/css/chat.css
+++ b/wwwroot/css/chat.css
@@ -290,6 +290,7 @@
background: var(--f2-bg);
border: var(--border-width) solid var(--f2-border);
border-radius: var(--border-radius);
+ z-index: 1;
}
.msg-reply-btn {
diff --git a/wwwroot/css/dashboard.css b/wwwroot/css/dashboard.css
index 8803bcf..6eb96de 100644
--- a/wwwroot/css/dashboard.css
+++ b/wwwroot/css/dashboard.css
@@ -379,22 +379,18 @@
.telegram-status-box {
margin: 0 0 var(--box-spacing) 0;
- border: var(--border-width) solid var(--f1-border);
+ background: var(--f3-bg);
+ border: var(--border-width) solid var(--f3-border);
border-radius: var(--border-radius);
- overflow: hidden;
+ padding: var(--box-padding);
+ display: flex;
+ flex-direction: column;
+ gap: var(--badge-spacing);
}
.tg-status-row {
display: flex;
- align-items: baseline;
- gap: var(--box-spacing);
- padding: calc(var(--box-padding) * 0.6) var(--box-padding);
- border-bottom: var(--border-width) solid var(--f1-border);
- font-size: var(--font-size);
-}
-
-.tg-status-row:last-child {
- border-bottom: none;
+ gap: var(--badge-spacing);
}
.tg-status-row.tg-error {
@@ -402,34 +398,25 @@
}
.tg-label {
- flex-shrink: 0;
- width: 160px;
- color: var(--text-muted, var(--semi-transparent));
- opacity: var(--semi-transparent);
- font-size: calc(var(--font-size) * 0.9);
+ flex: 1;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.tg-value {
- flex: 1;
- word-break: break-all;
- font-family: var(--font-mono, monospace);
- font-size: calc(var(--font-size) * 0.9);
-}
-
-.tg-badge {
- display: inline-block;
- padding: 2px 8px;
- border-radius: 99px;
- font-family: var(--font-sans, sans-serif);
- font-size: calc(var(--font-size) * 0.85);
+ flex: 3;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
}
.tg-badge-ok {
- background: color-mix(in srgb, var(--success, #22c55e) 15%, transparent);
- color: var(--success, #22c55e);
+ background: color-mix(in srgb, var(--success) 15%, transparent);
+ color: var(--success);
}
.tg-badge-off {
- background: color-mix(in srgb, var(--warning, #f59e0b) 15%, transparent);
- color: var(--warning, #f59e0b);
+ background: color-mix(in srgb, var(--warning) 15%, transparent);
+ color: var(--warning);
}
diff --git a/wwwroot/js/pages/settings-page.js b/wwwroot/js/pages/settings-page.js
index 546db1a..4e43017 100644
--- a/wwwroot/js/pages/settings-page.js
+++ b/wwwroot/js/pages/settings-page.js
@@ -144,7 +144,7 @@ registerPage('settings', {
// Webhook registrieren
registerBtn.addEventListener('click', async () => {
- const baseUrl = prompt('Base-URL der App (z.B. https://deine-domain.de):', window.location.origin);
+ const baseUrl = prompt('Base-URL der App (z.B. ' + window.location.origin + '):', window.location.origin);
if (!baseUrl) return;
registerBtn.disabled = true;
registerBtn.textContent = 'Wird registriert...';