Backup: Data-Ordner statt nur DB sichern, von Chat in Einstellungen verschoben
This commit is contained in:
1 parent
402fbc5a40
commit
8e585443e2
5 files changed
+33
-23
No files matched your search
@@ -17,10 +17,9 @@ public static class BackupEndpoint
|
||||
private static async System.Threading.Tasks.Task<IResult> HandleBackup()
|
||||
{
|
||||
var dataDir = Path.Combine(AppContext.BaseDirectory, "data");
|
||||
var dbPath = Path.Combine(dataDir, "gott.db");
|
||||
|
||||
if (!File.Exists(dbPath))
|
||||
return Results.NotFound(new { error = "Datenbank nicht gefunden" });
|
||||
if (!Directory.Exists(dataDir))
|
||||
return Results.NotFound(new { error = "Data-Ordner nicht gefunden" });
|
||||
|
||||
var backupDir = Path.Combine(dataDir, "backup");
|
||||
Directory.CreateDirectory(backupDir);
|
||||
@@ -32,7 +31,7 @@ public static class BackupEndpoint
|
||||
var psi = new ProcessStartInfo
|
||||
{
|
||||
FileName = "tar",
|
||||
ArgumentList = { "-czf", archivePath, "-C", dataDir, "gott.db" },
|
||||
ArgumentList = { "-czf", archivePath, "--exclude=backup", "-C", dataDir, "." },
|
||||
RedirectStandardError = true,
|
||||
UseShellExecute = false
|
||||
};
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
- [ ] System-Prompt: Nachrichten einer Session als Referenz und somit in den System-Prompt aufnehmen
|
||||
- [ ] Memory: Embedding-Modell für semantische Suche über Memory-Dateien (Vektor-basiert + BM25 Hybrid Search)
|
||||
- [ ] Subagents: Möglichkeit Subagents zu starten und zu orchestrieren
|
||||
- [x] Im Chat: Menüpunkt "Datenbank sichern" entfernen und stattdessen in den Einstellungen platzieren. Außerdem soll nun nicht mehr nur die Datenbank gesichert werden, sondern der gesamte data-Ordner (der Unterordner backup muss natürlich exkludiert werden)
|
||||
- [ ] Agents-Formular (nur beim Bearbeiten von vorhandenen Agent): Button der das File-Explorer Modal öffnet bei dem ich den Agent-Ordner sehe.
|
||||
- [ ] Chat: Maximal 500 Nachrichten laden. Dauert sonst zu lange und der Browser wird langsam
|
||||
|
||||
## Bugs
|
||||
- [x] Wenn gerade gestreamt wird und man refreshed die Seite, dann verliert das Frontend den Status "Streaming..." und ich kann eine Nachricht schreiben, obwohl das nicht möglich sein sollte
|
||||
@@ -17,5 +20,4 @@
|
||||
- [x] Chat: Es scrollt beim Laden nicht ganz nach unten, ich denke weil im DOM noch etwas nachgeladen wird (ich denke es ist die Schriftart), und die Höhe sich beim Laden nochmal verändert
|
||||
- [x] Chat: User-Nachrichten mit dem Tag [Datei: pfat/zur/datei.xyz:1-10] wird nicht als HTML geparsed
|
||||
- [x] Chat: Wird zwar erkannt und ist klickbar, aber es öffnet sich einfach nur der File Explorer, ohne dass sich die Datei öffnet und die Darstellung in Monospace ist auch nicht schön
|
||||
|
||||
## Backlog
|
||||
- [ ] Chat: Es werden momentan alle Tool-Calls angezeigt - die Anzeige soll individuell in den Einstellungen gemacht werden können. Auswahl aus drei Stufen: "Alle anzeigen" / "Nur Modifikationen" (file änderungen, memory änderungen, etc.) / "Verstecken"
|
||||
+12
-1
@@ -164,7 +164,6 @@
|
||||
<div class="header-menu-dropdown" id="chatMenuDropdown" hidden>
|
||||
<button class="header-menu-item" id="systemPromptBtn">System-Prompt anzeigen</button>
|
||||
<button class="header-menu-item" id="archiveBtn">Archivieren</button>
|
||||
<button class="header-menu-item" id="backupDbBtn">Datenbank sichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
@@ -206,6 +205,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="settings-section">
|
||||
<h2>Daten</h2>
|
||||
<div class="setting-row">
|
||||
<div class="setting-info">
|
||||
<label>Backup erstellen</label>
|
||||
<span class="setting-hint">Sichert den gesamten Data-Ordner (Datenbank, Agents, Memories)</span>
|
||||
</div>
|
||||
<div class="setting-control">
|
||||
<button id="settingsBackupBtn">Jetzt sichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="settings-section settings-reset">
|
||||
<button id="settingsResetBtn" class="danger-btn">Alle Einstellungen zurücksetzen</button>
|
||||
</section>
|
||||
|
||||
@@ -89,22 +89,6 @@ registerPage('chat', {
|
||||
clearChat();
|
||||
});
|
||||
|
||||
// Datenbank sichern
|
||||
const backupDbBtn = document.getElementById('backupDbBtn');
|
||||
if (backupDbBtn) backupDbBtn.addEventListener('click', async () => {
|
||||
if (chatMenuDropdown) chatMenuDropdown.hidden = true;
|
||||
backupDbBtn.disabled = true;
|
||||
try {
|
||||
await apiBackupDb();
|
||||
setMetaHtml('<i class="fa fa-check-circle"></i> Backup erstellt und heruntergeladen');
|
||||
} catch (e) {
|
||||
console.error('Backup fehlgeschlagen:', e);
|
||||
setMetaHtml('<i class="fa fa-times-circle"></i> Backup fehlgeschlagen');
|
||||
} finally {
|
||||
backupDbBtn.disabled = false;
|
||||
}
|
||||
});
|
||||
|
||||
// Custom Command Buttons ins Header-Menü einfügen
|
||||
if (chatMenuDropdown) {
|
||||
// "System"-Label ganz oben einfügen
|
||||
|
||||
@@ -51,6 +51,20 @@ registerPage('settings', {
|
||||
applySettings();
|
||||
});
|
||||
|
||||
const backupBtn = document.getElementById('settingsBackupBtn');
|
||||
if (backupBtn) backupBtn.addEventListener('click', async () => {
|
||||
backupBtn.disabled = true;
|
||||
backupBtn.textContent = 'Wird erstellt...';
|
||||
try {
|
||||
await apiBackupDb();
|
||||
} catch (e) {
|
||||
console.error('Backup fehlgeschlagen:', e);
|
||||
} finally {
|
||||
backupBtn.textContent = 'Jetzt sichern';
|
||||
backupBtn.disabled = false;
|
||||
}
|
||||
});
|
||||
|
||||
resetBtn.addEventListener('click', () => {
|
||||
if (!confirm('Alle Einstellungen auf Standard zurücksetzen?')) return;
|
||||
resetSettings();
|
||||
|
||||
Reference in new issue
Block a user