diff --git a/Services/SystemPromptBuilder.cs b/Services/SystemPromptBuilder.cs
index 01a3caa..58be1c5 100644
--- a/Services/SystemPromptBuilder.cs
+++ b/Services/SystemPromptBuilder.cs
@@ -68,9 +68,7 @@ JEDE Datei-Operation und JEDER Shell-Befehl MUSS über einen Tool-Aufruf erfolge
Du hast Tools zur Verfügung (read_file, write_file, edit_file, list_files, delete_file, execute). Benutze sie um Dateien zu lesen, schreiben und bearbeiten.
Der Workspace-Pfad ist: `{session.Workspace}`
-Alle Dateipfade in Tool-Aufrufen müssen relativ zu diesem Workspace sein oder absolute Pfade verwenden, die mit diesem Pfad beginnen.
-
-Wenn der User auf eine bestimmte Zeile in einer Datei verweist (z.B. `[Datei: foo.txt:11]`), zähle Leerzeilen immer mit. Verwende `cat -n` oder ein ähnliches Tool um Zeilennummern exakt zu bestimmen - NIEMALS Leerzeilen beim Zählen überspringen."
+Alle Dateipfade in Tool-Aufrufen müssen relativ zu diesem Workspace sein oder absolute Pfade verwenden, die mit diesem Pfad beginnen."
});
}
@@ -193,21 +191,10 @@ Wenn der User auf eine bestimmte Zeile in einer Datei verweist (z.B. `[Datei: fo
Icon = "fa-exclamation-circle",
Label = "System · Erinnerung (Workspace + ToolChoice: any)",
Content = @"## ERINNERUNG
-Diese Regel hat höchste Priorität und gilt für JEDE Antwort: Wenn eine Datei gelesen, geschrieben, bearbeitet, erstellt oder gelöscht werden soll, oder ein Befehl ausgeführt werden soll, MUSS der entsprechende Tool-Aufruf erfolgen. Ohne Tool-Aufruf ist NICHTS passiert. Beschreibe keine Änderungen - führe sie durch.
-
-Bei Zeilenreferenzen (z.B. `[Datei: foo.txt:11]`) IMMER `cat -n` verwenden um die exakte Zeile zu bestimmen. NIEMALS Leerzeilen beim Zählen überspringen."
- });
- }
- else if (!string.IsNullOrWhiteSpace(session.Workspace))
- {
- // Zeilenreferenz-Hinweis als eigener Erinnerungsblock wenn kein toolAny
- blocks.Add(new PromptBlock
- {
- Icon = "fa-exclamation-circle",
- Label = "System · Erinnerung (Workspace)",
- Content = "## ERINNERUNG\nBei Zeilenreferenzen (z.B. `[Datei: foo.txt:11]`) IMMER `cat -n` verwenden um die exakte Zeile zu bestimmen. NIEMALS Leerzeilen beim Zählen überspringen."
+Diese Regel hat höchste Priorität und gilt für JEDE Antwort: Wenn eine Datei gelesen, geschrieben, bearbeitet, erstellt oder gelöscht werden soll, oder ein Befehl ausgeführt werden soll, MUSS der entsprechende Tool-Aufruf erfolgen. Ohne Tool-Aufruf ist NICHTS passiert. Beschreibe keine Änderungen - führe sie durch."
});
}
+ // kein extra Erinnerungsblock ohne toolAny – Zeilenreferenz-Hinweise kommen direkt über die Nachricht
var marked = markedMessages?.Where(m => !string.IsNullOrWhiteSpace(m.Content)).ToList();
if (marked != null && marked.Count > 0)
diff --git a/wwwroot/css/chat.css b/wwwroot/css/chat.css
index a889b5d..de09a5e 100644
--- a/wwwroot/css/chat.css
+++ b/wwwroot/css/chat.css
@@ -88,6 +88,11 @@
word-break: break-word;
}
+.msg hint {
+ opacity: var(--semi-transparent);
+ font-size: var(--font-size);
+}
+
.msg:not(.markdown) {
white-space: pre-wrap;
}
@@ -610,8 +615,9 @@
.file-ref-chip {
display: inline-flex;
align-items: center;
- gap: .3em;
- padding: .15em .5em;
+ gap: var(--badge-spacing);
+ margin: 0 2px 3px 0;
+ padding: var(--badge-padding);
background: var(--f2-bg);
border: var(--border-width) solid var(--f2-border);
border-radius: var(--border-radius);
diff --git a/wwwroot/js/chat.js b/wwwroot/js/chat.js
index 7125eb0..10e54d5 100644
--- a/wwwroot/js/chat.js
+++ b/wwwroot/js/chat.js
@@ -85,11 +85,18 @@ async function sendMessage() {
// Refs in den Text einbauen
if (pendingRefs.length > 0) {
- const refTags = pendingRefs.map(r => {
- if (r.from && r.to) return `[Datei: ${r.path}:${r.from}-${r.to}]`;
+ const refLines = pendingRefs.map(r => {
+ if (r.from && r.to && r.from !== r.to) return `[Datei: ${r.path}:${r.from}-${r.to}]`;
+ if (r.from) return `[Datei: ${r.path}:${r.from}]`;
return `[Datei: ${r.path}]`;
});
- msgText = refTags.join('\n') + (msgText ? '\n' + msgText : '');
+ msgText = refLines.join(' ') + '\n' + msgText;
+ if (pendingRefs.some(r => r.from)) {
+ if (pendingRefs.length > 1)
+ msgText += `\n