Auto-Modus: Systemprompts bei jeder Nutzernachricht neu prüfen und ergänzen #188

Closed
opened 2026-10-26 19:20:56 +00:00 by alf · 13 comments
Owner

Warum

Im Auto-Modus werden die Systemprompts bisher nur beim Start eines Chats gewählt. Wechselt das Thema im Verlauf (z. B. von Canvas zu Marker), fehlt der passende Prompt.

Gewünscht

Ist ein Chat im Auto-Modus gestartet, wird bei jeder Nutzernachricht geprüft, welche Prompts der Chat noch nicht trägt; fehlende kommen als lila Pille über die Userbubble (wie manuell hinzugefügt) und werden dauerhaft verankert (Chevron oben links).

Umsetzung

  • Neues Job-Feld auto_system_prompts (Mac: AgentJobLaunchConfig.autoSystemPrompts), optional im Wire-Protokoll (POST /agent, Job-JSON).
  • POST /resolve-auto-system-prompt nimmt optional exclude_titles.
  • Lokales Chatfenster, Remote-Client (Mac-Iris/IrisClient), Mac-Server und Linux-Server.

Offen

iOS (IrisRemote), Export/Import (.irischat) trägt das Flag noch nicht.

## Warum Im Auto-Modus werden die Systemprompts bisher nur beim Start eines Chats gewählt. Wechselt das Thema im Verlauf (z. B. von Canvas zu Marker), fehlt der passende Prompt. ## Gewünscht Ist ein Chat im Auto-Modus gestartet, wird bei **jeder** Nutzernachricht geprüft, welche Prompts der Chat noch nicht trägt; fehlende kommen als lila Pille über die Userbubble (wie manuell hinzugefügt) und werden dauerhaft verankert (Chevron oben links). ## Umsetzung - Neues Job-Feld `auto_system_prompts` (Mac: `AgentJobLaunchConfig.autoSystemPrompts`), optional im Wire-Protokoll (`POST /agent`, Job-JSON). - `POST /resolve-auto-system-prompt` nimmt optional `exclude_titles`. - Lokales Chatfenster, Remote-Client (Mac-Iris/IrisClient), Mac-Server und Linux-Server. ## Offen iOS (IrisRemote), Export/Import (`.irischat`) trägt das Flag noch nicht.
Author
Owner

PR #101 gemergt: feat(auto-prompts): auto_system_prompts am Job, exclude_titles im Resolver (iris/Iris#188)
iris/iris-linux-server#101

Commits:

  • feat(auto-prompts): auto_system_prompts am Job, exclude_titles im Resolver (iris/Iris#188)

Stand (Linux-Server-Teil von iris/Iris#188)

Befund: Der Auto-Modus wählte Systemprompts nur beim Start eines Chats; ein Themenwechsel ergänzte nichts.

Geändert:

  • POST /agent nimmt optional auto_system_prompts (bool), der Job speichert es und liefert es nur bei true im Job-JSON aus (wie der Mac-Server).
  • POST /resolve-auto-system-prompt nimmt optional exclude_titles: Prompts, die der Chat schon trägt, nehmen weder an der Klassifikation noch am „immer aktiv“-Teil teil.
  • Test für exclude_titles (@slow).

Geprüft: rsync-Deploy auf alf@iris-server, Container läuft; POST /resolve-auto-system-prompt mit exclude_titles antwortet (Antwort ~64 s); pytest not slow für test_agent_jobs.py, test_health_and_auth.py grün.

Nicht geprüft: auto_system_prompts über POST /agent → Job-JSON von Hand; der Gesamtablauf (Follow-up im Auto-Chat mit Pille und Verankern) in der Mac-App; test_resolve_auto_system_prompt_uses_always_active_without_llm_call schlägt auf dem Dev-Host mit Timeout fehl, weil dort 18 Prompts per LLM klassifiziert werden (schon vorher so angelegt, nicht durch diese Änderung).

Grenzen / offen: Die Klassifikation dauert auf dem Dev-Host ~1 min — jede Folgenachricht im Auto-Chat wartet so lange. Das Flag steckt noch nicht in Chat-Export/-Import (chat_bundle.py, mac_job_converter.py); iOS fehlt. Mac-Teil folgt im Repo frontend/macos-iris.

PR #101 gemergt: feat(auto-prompts): auto_system_prompts am Job, exclude_titles im Resolver (iris/Iris#188) https://forgejo.lewerken.duckdns.org/iris/iris-linux-server/pulls/101 Commits: - feat(auto-prompts): auto_system_prompts am Job, exclude_titles im Resolver (iris/Iris#188) --- **Stand (Linux-Server-Teil von iris/Iris#188)** **Befund:** Der Auto-Modus wählte Systemprompts nur beim Start eines Chats; ein Themenwechsel ergänzte nichts. **Geändert:** - `POST /agent` nimmt optional `auto_system_prompts` (bool), der Job speichert es und liefert es nur bei `true` im Job-JSON aus (wie der Mac-Server). - `POST /resolve-auto-system-prompt` nimmt optional `exclude_titles`: Prompts, die der Chat schon trägt, nehmen weder an der Klassifikation noch am „immer aktiv“-Teil teil. - Test für `exclude_titles` (`@slow`). **Geprüft:** rsync-Deploy auf `alf@iris-server`, Container läuft; `POST /resolve-auto-system-prompt` mit `exclude_titles` antwortet (Antwort ~64 s); pytest `not slow` für `test_agent_jobs.py`, `test_health_and_auth.py` grün. **Nicht geprüft:** `auto_system_prompts` über `POST /agent` → Job-JSON von Hand; der Gesamtablauf (Follow-up im Auto-Chat mit Pille und Verankern) in der Mac-App; `test_resolve_auto_system_prompt_uses_always_active_without_llm_call` schlägt auf dem Dev-Host mit Timeout fehl, weil dort 18 Prompts per LLM klassifiziert werden (schon vorher so angelegt, nicht durch diese Änderung). **Grenzen / offen:** Die Klassifikation dauert auf dem Dev-Host ~1 min — jede Folgenachricht im Auto-Chat wartet so lange. Das Flag steckt noch nicht in Chat-Export/-Import (`chat_bundle.py`, `mac_job_converter.py`); iOS fehlt. Mac-Teil folgt im Repo `frontend/macos-iris`.
Author
Owner

PR #189 gemergt: feat(auto-prompts): Auto-Modus prüft Systemprompts bei jeder Folgenachricht (#188)
#189

Commits:

  • feat(auto-prompts): Auto-Modus prüft Systemprompts bei jeder Folgenachricht (#188)

Stand (Mac-Teil von iris/Iris#188)

Befund: Der Auto-Modus wählte Systemprompts nur beim Start eines Chats; ein Themenwechsel ergänzte nichts. Ob ein Chat im Auto-Modus gestartet wurde, stand nirgends.

Geändert:

  • AgentJobLaunchConfig.autoSystemPrompts (persistiert in PersistedAgentJob, bleibt beim Follow-up erhalten); gesetzt in den drei Overlay-Pfaden (CompanionManager) und über auto_system_prompts bei POST /agent (IrisRemoteServer), ausgeliefert im Job-JSON.
  • Lokales Chatfenster (AgentJobChatPanel.sendFollowUpMessage): im Auto-Chat wird die Nachricht gegen die Prompts geprüft, die der Chat noch nicht trägt; Treffer erscheinen als Pille über der Userbubble und werden sofort verankert. Handgewählte Prompts fragen weiter nach dem Verankern. Während der Prüfung steht „Prüfe Systemprompts…“ auf dem Sendeknopf.
  • Remote-Client (RemoteJobChatView.submitFollowUp, RemoteServerClient): gleiches Verhalten über /resolve-auto-system-prompt mit exclude_titles und /agent/:id/anchor-prompts.
  • CompanionManager.resolveAutoSystemPrompts(excludingTitles:); Resolver-Endpunkt des Mac-Servers nimmt exclude_titles.

Geprüft: Xcode-Build der Schemes Iris und IrisClient erfolgreich. Linux-Server-Gegenstück ist deployt (PR iris-linux-server#101).

Nicht geprüft: Der Ablauf von Hand in der App (lokal und remote, Pille, Chevron, Verankern); Mac-Server auto_system_prompts über POST /agent; Zwei Chats gleichzeitig im Remote-Client.

Grenzen / offen: iOS (IrisRemote) und Chat-Export/-Import (.irischat) tragen das Flag noch nicht — ein importierter Chat verliert den Auto-Modus. Die Prüfung ist ein LLM-Aufruf; auf dem Linux-Dev-Host dauert sie ~1 min pro Nachricht.

PR #189 gemergt: feat(auto-prompts): Auto-Modus prüft Systemprompts bei jeder Folgenachricht (#188) https://forgejo.lewerken.duckdns.org/iris/Iris/pulls/189 Commits: - feat(auto-prompts): Auto-Modus prüft Systemprompts bei jeder Folgenachricht (#188) --- **Stand (Mac-Teil von iris/Iris#188)** **Befund:** Der Auto-Modus wählte Systemprompts nur beim Start eines Chats; ein Themenwechsel ergänzte nichts. Ob ein Chat im Auto-Modus gestartet wurde, stand nirgends. **Geändert:** - `AgentJobLaunchConfig.autoSystemPrompts` (persistiert in `PersistedAgentJob`, bleibt beim Follow-up erhalten); gesetzt in den drei Overlay-Pfaden (`CompanionManager`) und über `auto_system_prompts` bei `POST /agent` (`IrisRemoteServer`), ausgeliefert im Job-JSON. - Lokales Chatfenster (`AgentJobChatPanel.sendFollowUpMessage`): im Auto-Chat wird die Nachricht gegen die Prompts geprüft, die der Chat noch nicht trägt; Treffer erscheinen als Pille über der Userbubble und werden sofort verankert. Handgewählte Prompts fragen weiter nach dem Verankern. Während der Prüfung steht „Prüfe Systemprompts…“ auf dem Sendeknopf. - Remote-Client (`RemoteJobChatView.submitFollowUp`, `RemoteServerClient`): gleiches Verhalten über `/resolve-auto-system-prompt` mit `exclude_titles` und `/agent/:id/anchor-prompts`. - `CompanionManager.resolveAutoSystemPrompts(excludingTitles:)`; Resolver-Endpunkt des Mac-Servers nimmt `exclude_titles`. **Geprüft:** Xcode-Build der Schemes `Iris` und `IrisClient` erfolgreich. Linux-Server-Gegenstück ist deployt (PR iris-linux-server#101). **Nicht geprüft:** Der Ablauf von Hand in der App (lokal und remote, Pille, Chevron, Verankern); Mac-Server `auto_system_prompts` über `POST /agent`; Zwei Chats gleichzeitig im Remote-Client. **Grenzen / offen:** iOS (IrisRemote) und Chat-Export/-Import (`.irischat`) tragen das Flag noch nicht — ein importierter Chat verliert den Auto-Modus. Die Prüfung ist ein LLM-Aufruf; auf dem Linux-Dev-Host dauert sie ~1 min pro Nachricht.
Author
Owner

Veröffentlicht: Linux-Server-Images v1.6.56, latest zeigt darauf.

  • Alle sechs Images (server, hermes, tunnel, hermes-sandbox, web-automation, browser) unter forgejo.lewerken.duckdns.org/iris/iris-<name>:v1.6.56 und :latest; Git-Tag v1.6.56 in iris/iris-linux-server (Stand nach PR #101).
  • Nutzer bekommen: auto_system_prompts am Job und exclude_titles im Resolver (Linux-Seite von #188). Der Mac-Teil (PR #189) steckt nicht in den Images, sondern in der App.
  • Offen: Ablauf von Hand in der App nicht ausprobiert (Label status/zu-testen); Klassifikation dauert auf dem Dev-Host ~1 min; iOS und Chat-Export/-Import fehlen.
**Veröffentlicht: Linux-Server-Images v1.6.56, `latest` zeigt darauf.** - Alle sechs Images (server, hermes, tunnel, hermes-sandbox, web-automation, browser) unter `forgejo.lewerken.duckdns.org/iris/iris-<name>:v1.6.56` und `:latest`; Git-Tag `v1.6.56` in iris/iris-linux-server (Stand nach PR #101). - Nutzer bekommen: `auto_system_prompts` am Job und `exclude_titles` im Resolver (Linux-Seite von #188). Der Mac-Teil (PR #189) steckt nicht in den Images, sondern in der App. - Offen: Ablauf von Hand in der App nicht ausprobiert (Label `status/zu-testen`); Klassifikation dauert auf dem Dev-Host ~1 min; iOS und Chat-Export/-Import fehlen.
Author
Owner

PR #102 gemergt: feat(chat-export): Auto-Modus-Flag in .irischat-Export und -Import (iris/Iris#188)
iris/iris-linux-server#102

Commits:

  • feat(chat-export): Auto-Modus-Flag in .irischat-Export und -Import (iris/Iris#188)

Stand (Linux-Server, Export/Import des Auto-Modus-Flags, iris/Iris#188)

Geändert: .irischat-Export schreibt autoSystemPrompts: true ins chat-manifest.json, der Import (jobs_store) und der Mac-Job-Konverter übernehmen es als auto_system_prompts; jeweils nur bei true, alte Bundles bleiben gültig. Test test_auto_mode_survives_import_and_export (Import mit Flag → Job-JSON → Export → Manifest; manueller Chat ohne Flag).

Geprüft: rsync-Deploy auf alf@iris-server, pytest -m "not slow" für test_chat_export.py, test_chat_import.py, test_chat_bundle.py: 28 grün.

Nicht geprüft: Austausch Mac ↔ Linux mit einem echten Auto-Chat in der App.

Offen: iOS kennt das Feld nicht.

PR #102 gemergt: feat(chat-export): Auto-Modus-Flag in .irischat-Export und -Import (iris/Iris#188) https://forgejo.lewerken.duckdns.org/iris/iris-linux-server/pulls/102 Commits: - feat(chat-export): Auto-Modus-Flag in .irischat-Export und -Import (iris/Iris#188) --- **Stand (Linux-Server, Export/Import des Auto-Modus-Flags, iris/Iris#188)** **Geändert:** `.irischat`-Export schreibt `autoSystemPrompts: true` ins `chat-manifest.json`, der Import (`jobs_store`) und der Mac-Job-Konverter übernehmen es als `auto_system_prompts`; jeweils nur bei `true`, alte Bundles bleiben gültig. Test `test_auto_mode_survives_import_and_export` (Import mit Flag → Job-JSON → Export → Manifest; manueller Chat ohne Flag). **Geprüft:** rsync-Deploy auf `alf@iris-server`, `pytest -m "not slow"` für `test_chat_export.py`, `test_chat_import.py`, `test_chat_bundle.py`: 28 grün. **Nicht geprüft:** Austausch Mac ↔ Linux mit einem echten Auto-Chat in der App. **Offen:** iOS kennt das Feld nicht.
Author
Owner

PR #190 gemergt: feat(chat-export): Auto-Modus-Flag in Export und Import (#188)
#190

Commits:

  • feat(chat-export): Auto-Modus-Flag in Export und Import (#188)

Stand (Mac-App, Export/Import des Auto-Modus-Flags, iris/Iris#188)

Geändert: ChatManifest.autoSystemPrompts: Bool? (nur bei true geschrieben, älteres Bundle decodiert weiter); Export aus ChatExportManager (lokale Chats) und RemoteChatExportManager (Chats eines Servers), Import in AgentJob setzt launchConfig.autoSystemPrompts. Ein importierter Auto-Chat prüft damit weiter bei jeder Nachricht.

Geprüft: Xcode-Build der Schemes Iris und IrisClient erfolgreich; Linux-Gegenstück ist deployt und getestet (iris-linux-server).

Nicht geprüft: Export und Import eines echten Auto-Chats von Hand (lokal, remote, Mac ↔ Linux); kein Swift-Test für ChatManifest.

Offen: iOS (IrisRemote). Offene Browser-Tabs und zugeordnete Notiz im Export: iris/Iris#123.

PR #190 gemergt: feat(chat-export): Auto-Modus-Flag in Export und Import (#188) https://forgejo.lewerken.duckdns.org/iris/Iris/pulls/190 Commits: - feat(chat-export): Auto-Modus-Flag in Export und Import (#188) --- **Stand (Mac-App, Export/Import des Auto-Modus-Flags, iris/Iris#188)** **Geändert:** `ChatManifest.autoSystemPrompts: Bool?` (nur bei `true` geschrieben, älteres Bundle decodiert weiter); Export aus `ChatExportManager` (lokale Chats) und `RemoteChatExportManager` (Chats eines Servers), Import in `AgentJob` setzt `launchConfig.autoSystemPrompts`. Ein importierter Auto-Chat prüft damit weiter bei jeder Nachricht. **Geprüft:** Xcode-Build der Schemes `Iris` und `IrisClient` erfolgreich; Linux-Gegenstück ist deployt und getestet (iris-linux-server). **Nicht geprüft:** Export und Import eines echten Auto-Chats von Hand (lokal, remote, Mac ↔ Linux); kein Swift-Test für `ChatManifest`. **Offen:** iOS (IrisRemote). Offene Browser-Tabs und zugeordnete Notiz im Export: iris/Iris#123.
Author
Owner

PR #117 gemergt: docs(wire): Auto-Modus je Nachricht — vier optionale Felder, Ablauf (iris/Iris#188)
alf/2ndbrain#117

Commits:

  • docs(wire): Auto-Modus je Nachricht — vier optionale Felder, Ablauf (iris/Iris#188)

Stand (Dokumentation, iris/Iris#188)

Neuer Abschnitt „Auto-Modus: Systemprompts je Nachricht“ in 02-Wire-Protokoll.md (vier optionale Felder: POST /agent, Job-JSON, POST /resolve-auto-system-prompt mit exclude_titles, .irischat-Manifest; Ablauf auf dem Client) und eine Zeile in der Tabelle von 08-Backup-Restore.md. Das Wire-Protokoll war mit PR #189 und iris-linux-server#101 geändert worden, ohne dass es dort stand. Nicht geprüft: nur Text, keine Code-Änderung.

PR #117 gemergt: docs(wire): Auto-Modus je Nachricht — vier optionale Felder, Ablauf (iris/Iris#188) https://forgejo.lewerken.duckdns.org/alf/2ndbrain/pulls/117 Commits: - docs(wire): Auto-Modus je Nachricht — vier optionale Felder, Ablauf (iris/Iris#188) --- **Stand (Dokumentation, iris/Iris#188)** Neuer Abschnitt „Auto-Modus: Systemprompts je Nachricht“ in `02-Wire-Protokoll.md` (vier optionale Felder: `POST /agent`, Job-JSON, `POST /resolve-auto-system-prompt` mit `exclude_titles`, `.irischat`-Manifest; Ablauf auf dem Client) und eine Zeile in der Tabelle von `08-Backup-Restore.md`. Das Wire-Protokoll war mit PR #189 und iris-linux-server#101 geändert worden, ohne dass es dort stand. **Nicht geprüft:** nur Text, keine Code-Änderung.
Author
Owner

Veröffentlicht: Linux-Server-Images v1.6.57, latest zeigt darauf.

  • Alle sechs Images (server, hermes, tunnel, hermes-sandbox, web-automation, browser) als :v1.6.57 und :latest in forgejo.lewerken.duckdns.org/iris/; Git-Tag v1.6.57 in iris/iris-linux-server (Stand nach PR #102).
  • Nutzer bekommen: das Auto-Modus-Flag (auto_system_prompts) bleibt jetzt auch über .irischat-Export und -Import erhalten (zusätzlich zu v1.6.56).
  • Offen: Export/Import eines echten Auto-Chats von Hand nicht ausprobiert (Label bleibt status/zu-testen); iOS kennt das Feld nicht.
**Veröffentlicht: Linux-Server-Images v1.6.57, `latest` zeigt darauf.** - Alle sechs Images (server, hermes, tunnel, hermes-sandbox, web-automation, browser) als `:v1.6.57` und `:latest` in `forgejo.lewerken.duckdns.org/iris/`; Git-Tag `v1.6.57` in iris/iris-linux-server (Stand nach PR #102). - Nutzer bekommen: das Auto-Modus-Flag (`auto_system_prompts`) bleibt jetzt auch über `.irischat`-Export und -Import erhalten (zusätzlich zu `v1.6.56`). - Offen: Export/Import eines echten Auto-Chats von Hand nicht ausprobiert (Label bleibt `status/zu-testen`); iOS kennt das Feld nicht.
Author
Owner

PR #103 gemergt: fix(chat): Pille über der Nutzerbubble bleibt beim Follow-up erhalten (iris/Iris#188)
iris/iris-linux-server#103

Commits:

  • fix(chat): Pille über der Nutzerbubble bleibt beim Follow-up erhalten (iris/Iris#188)

Stand (Linux-Server: Pille über der Nutzerbubble bleibt erhalten, iris/Iris#188)

Befund (Test des Nutzers): Nach dem Nachladen der Systemprompts im Auto-Modus fehlte das lila Badge („Marker“) über der Nutzerbubble. Ursache auf dem Linux-Server: POST /agent/:id/followup las injected_system_prompt_title nicht, append_message kannte das Feld nicht; die Pille stand nur in der optimistisch angezeigten Nachricht des Clients und verschwand beim Neuladen der Nachrichten. Das betraf auch handgewählte Prompts (Mac-Server speichert und liefert das Feld).

Geändert: main.py (Feld lesen), agent_jobs.start_followup und jobs_store.append_message (speichern, als injected_system_prompt_title in GET /agent/:id/messages); der .irischat-Export gibt es damit auch mit. Test test_followup_keeps_the_prompt_pill_in_the_messages_and_the_export (@slow, startet einen Hermes-Lauf).

Geprüft: rsync-Deploy auf alf@iris-server; Export-/Import-Tests inkl. des neuen Tests: 16 grün.

Nicht geprüft: der Ablauf in der App (Mac-Client gegen den Linux-Server); ob der Test ohne die Änderung fehlschlägt, nicht eigens ausgeführt. Der Fehler im lokalen Chatfenster (Mac) ist damit nicht erklärt, falls der Test dort stattfand: Der Code der Mac-Seite setzt die Pille korrekt.

Offen: Images mit dieser Änderung (v1.6.58) sind nicht gebaut.

PR #103 gemergt: fix(chat): Pille über der Nutzerbubble bleibt beim Follow-up erhalten (iris/Iris#188) https://forgejo.lewerken.duckdns.org/iris/iris-linux-server/pulls/103 Commits: - fix(chat): Pille über der Nutzerbubble bleibt beim Follow-up erhalten (iris/Iris#188) --- **Stand (Linux-Server: Pille über der Nutzerbubble bleibt erhalten, iris/Iris#188)** **Befund (Test des Nutzers):** Nach dem Nachladen der Systemprompts im Auto-Modus fehlte das lila Badge („Marker“) über der Nutzerbubble. Ursache auf dem Linux-Server: `POST /agent/:id/followup` las `injected_system_prompt_title` nicht, `append_message` kannte das Feld nicht; die Pille stand nur in der optimistisch angezeigten Nachricht des Clients und verschwand beim Neuladen der Nachrichten. Das betraf auch handgewählte Prompts (Mac-Server speichert und liefert das Feld). **Geändert:** `main.py` (Feld lesen), `agent_jobs.start_followup` und `jobs_store.append_message` (speichern, als `injected_system_prompt_title` in `GET /agent/:id/messages`); der `.irischat`-Export gibt es damit auch mit. Test `test_followup_keeps_the_prompt_pill_in_the_messages_and_the_export` (`@slow`, startet einen Hermes-Lauf). **Geprüft:** rsync-Deploy auf `alf@iris-server`; Export-/Import-Tests inkl. des neuen Tests: 16 grün. **Nicht geprüft:** der Ablauf in der App (Mac-Client gegen den Linux-Server); ob der Test ohne die Änderung fehlschlägt, nicht eigens ausgeführt. Der Fehler im lokalen Chatfenster (Mac) ist damit **nicht** erklärt, falls der Test dort stattfand: Der Code der Mac-Seite setzt die Pille korrekt. **Offen:** Images mit dieser Änderung (`v1.6.58`) sind nicht gebaut.
Author
Owner

PR #191 gemergt: fix(auto-prompts): Prüfung im Chat sichtbar (Sendeknopf) und im Log nachvollziehbar (#188)
#191

Commits:

  • fix(auto-prompts): Prüfung im Chat sichtbar (Sendeknopf) und im Log nachvollziehbar (#188)

Stand (Auto-Prüfung im Chat-Fenster sichtbar machen, iris/Iris#188)

Befund (Test des Nutzers, Chat „Hallo“, „Übersetz die Markdown-Datei nach deutsch …“): Pille fehlte. Der gespeicherte Job (agent_jobs.json) zeigt autoSystemPrompts = true, aber resolvedSystemPromptNames unverändert (Canvas System, Browser) und keine Pille an der Nachricht: Die Prüfung hat nichts ergänzt, die Pille fehlt also, weil es nichts zu zeigen gab — nicht wegen der Darstellung. „Dokument-Übersetzer“ und „Marker“ haben passende Verwendungssätze und sind nicht „immer aktiv“. Warum die Prüfung nichts fand, ist nicht geklärt: Die Debug-Protokolle behält macOS nicht, im Fenster „Iris — Lokal“ (Remote-Ansicht) gab es keine Anzeige, ob die Prüfung lief.

Geändert: RemoteJobChatView: Sendeknopf zeigt „Prüfe Systemprompts…“, solange die Prüfung läuft; Ergebnis (bereits geladen, Antwort des Servers, Dauer, Zahl der Prompts im Speicher) wird auf .notice-Ebene protokolliert, ebenso in CompanionManager die Antwort des Klassifikations-LLM und die Auswahl.

Geprüft: Xcode-Build Iris und IrisClient erfolgreich.

Nicht geprüft: Ob die Prüfung die Prompts nun findet; das ist die Frage des nächsten Versuchs. Abfrage danach: log show --last 10m --predicate 'process == "Iris" AND eventMessage CONTAINS "Auto-Prüfung"'.

Offen: Ursache der leeren Auswahl; Linux-Server-Teil (Pille bleibt erhalten) ist in iris-linux-server#103 behoben.

PR #191 gemergt: fix(auto-prompts): Prüfung im Chat sichtbar (Sendeknopf) und im Log nachvollziehbar (#188) https://forgejo.lewerken.duckdns.org/iris/Iris/pulls/191 Commits: - fix(auto-prompts): Prüfung im Chat sichtbar (Sendeknopf) und im Log nachvollziehbar (#188) --- **Stand (Auto-Prüfung im Chat-Fenster sichtbar machen, iris/Iris#188)** **Befund (Test des Nutzers, Chat „Hallo“, „Übersetz die Markdown-Datei nach deutsch …“):** Pille fehlte. Der gespeicherte Job (`agent_jobs.json`) zeigt `autoSystemPrompts = true`, aber `resolvedSystemPromptNames` unverändert (`Canvas System`, `Browser`) und keine Pille an der Nachricht: Die Prüfung hat nichts ergänzt, die Pille fehlt also, weil es nichts zu zeigen gab — nicht wegen der Darstellung. „Dokument-Übersetzer“ und „Marker“ haben passende Verwendungssätze und sind nicht „immer aktiv“. Warum die Prüfung nichts fand, ist **nicht geklärt**: Die Debug-Protokolle behält macOS nicht, im Fenster „Iris — Lokal“ (Remote-Ansicht) gab es keine Anzeige, ob die Prüfung lief. **Geändert:** `RemoteJobChatView`: Sendeknopf zeigt „Prüfe Systemprompts…“, solange die Prüfung läuft; Ergebnis (bereits geladen, Antwort des Servers, Dauer, Zahl der Prompts im Speicher) wird auf `.notice`-Ebene protokolliert, ebenso in `CompanionManager` die Antwort des Klassifikations-LLM und die Auswahl. **Geprüft:** Xcode-Build `Iris` und `IrisClient` erfolgreich. **Nicht geprüft:** Ob die Prüfung die Prompts nun findet; das ist die Frage des nächsten Versuchs. Abfrage danach: `log show --last 10m --predicate 'process == "Iris" AND eventMessage CONTAINS "Auto-Prüfung"'`. **Offen:** Ursache der leeren Auswahl; Linux-Server-Teil (Pille bleibt erhalten) ist in iris-linux-server#103 behoben.
Author
Owner

PR #192 gemergt: fix(auto-prompts): Klassifikation nutzt das Agent-LLM statt des Companion-Clients bei openaicompat (#188)
#192

Commits:

  • fix(auto-prompts): Klassifikation nutzt das Agent-LLM statt des Companion-Clients bei openaicompat (#188)

Stand (Ursache der fehlenden Pille, iris/Iris#188)

Befund (Test des Nutzers, Log): Die Auto-Prüfung lief in 0,0 s und fand nichts: Auto-Prompt-Auflösung fehlgeschlagen: Verbindung zum Server konnte nicht hergestellt werden. CompanionManager.resolveAutoSystemPrompts wählte beim Backend openaicompat den Companion-Client (openAICompatServerURL = localhost:54321, dort lauscht nichts) statt des Agent-LLM (claudeCodeOpenAICompatServerURL = 127.0.0.1:18200, antwortet mit HTTP 200). Dieselbe Verwechslung steckte im Dreamer-Template-Matcher.

Geändert: Neuer claudeCodeOpenAICompatAPI (URL und Modell aus den claudeCodeOpenAICompat*-Einstellungen); die Auto-Prompt-Klassifikation und der Template-Matcher nutzen ihn.

Geprüft: Xcode-Build Iris erfolgreich; Ursache per Log und curl gegen beide Ports belegt.

Nicht geprüft: Ob die Pille nun erscheint (Ablauf in der App von Hand); die Backends mlxvlm und splash nutzen weiter die Companion-Clients — nicht untersucht, ob dort dieselbe Verwechslung vorliegt.

Offen: Der Remote-Client protokolliert eine leere Antwort als „failed HTTP 200“ (irreführend).

PR #192 gemergt: fix(auto-prompts): Klassifikation nutzt das Agent-LLM statt des Companion-Clients bei openaicompat (#188) https://forgejo.lewerken.duckdns.org/iris/Iris/pulls/192 Commits: - fix(auto-prompts): Klassifikation nutzt das Agent-LLM statt des Companion-Clients bei openaicompat (#188) --- **Stand (Ursache der fehlenden Pille, iris/Iris#188)** **Befund (Test des Nutzers, Log):** Die Auto-Prüfung lief in 0,0 s und fand nichts: `Auto-Prompt-Auflösung fehlgeschlagen: Verbindung zum Server konnte nicht hergestellt werden`. `CompanionManager.resolveAutoSystemPrompts` wählte beim Backend `openaicompat` den **Companion**-Client (`openAICompatServerURL` = `localhost:54321`, dort lauscht nichts) statt des Agent-LLM (`claudeCodeOpenAICompatServerURL` = `127.0.0.1:18200`, antwortet mit HTTP 200). Dieselbe Verwechslung steckte im Dreamer-Template-Matcher. **Geändert:** Neuer `claudeCodeOpenAICompatAPI` (URL und Modell aus den `claudeCodeOpenAICompat*`-Einstellungen); die Auto-Prompt-Klassifikation und der Template-Matcher nutzen ihn. **Geprüft:** Xcode-Build `Iris` erfolgreich; Ursache per Log und `curl` gegen beide Ports belegt. **Nicht geprüft:** Ob die Pille nun erscheint (Ablauf in der App von Hand); die Backends `mlxvlm` und `splash` nutzen weiter die Companion-Clients — nicht untersucht, ob dort dieselbe Verwechslung vorliegt. **Offen:** Der Remote-Client protokolliert eine leere Antwort als „failed HTTP 200“ (irreführend).
Author
Owner

Abgeschlossen auf Anweisung des Nutzers. Der Auto-Modus prüft die Systemprompts bei jeder Folgenachricht; Pille und Verankern funktionieren (Test des Nutzers). Die Ursache der leeren Auswahl (falscher LLM-Client bei openaicompat) ist mit #192 behoben, die Verbesserungen von Geschwindigkeit und Treffsicherheit liefen in #193. Offen bleibt iOS (IrisRemote) kennt das Feld nicht.

**Abgeschlossen auf Anweisung des Nutzers.** Der Auto-Modus prüft die Systemprompts bei jeder Folgenachricht; Pille und Verankern funktionieren (Test des Nutzers). Die Ursache der leeren Auswahl (falscher LLM-Client bei `openaicompat`) ist mit #192 behoben, die Verbesserungen von Geschwindigkeit und Treffsicherheit liefen in #193. Offen bleibt iOS (IrisRemote) kennt das Feld nicht.
alf closed this issue 2026-10-27 13:36:43 +00:00
Author
Owner

PR #47 gemergt: feat(auto-modus): Auto-Chats ergänzen Systemprompts je Nachricht, Build-Fix Color(hex:) (iris/Iris#188)
iris/2ndbrain-ios#47

Commits:

  • feat(auto-modus): Auto-Chats ergänzen Systemprompts je Nachricht, Build-Fix Color(hex:) (iris/Iris#188)

Befund: Die iOS-App kannte den Auto-Modus je Nachricht (#188) nicht; ein Auto-Chat verhielt sich nach der ersten Nachricht wie „Kein“. Außerdem baute main nicht: Color(hex:) war in MainView.swift private, wird aber seit dem gruppierten Picker (#199) in drei weiteren Dateien benutzt.

Geändert: auto_system_prompts im POST /agent und aus der Job-Liste; Folgenachricht in einem Auto-Chat ruft /resolve-auto-system-prompt mit exclude_titles, hängt fehlende Prompts an und verankert sie per anchor-prompts (ohne Rückfrage wie am Mac). Color-Erweiterung nicht mehr private.

Geprüft: xcodebuild (generic iOS, Debug) baut grün.
Nicht geprüft: Auto-Folgenachricht gegen einen echten Server/Gerät; Installation auf dem iPhone.

PR #47 gemergt: feat(auto-modus): Auto-Chats ergänzen Systemprompts je Nachricht, Build-Fix Color(hex:) (iris/Iris#188) https://forgejo.lewerken.duckdns.org/iris/2ndbrain-ios/pulls/47 Commits: - feat(auto-modus): Auto-Chats ergänzen Systemprompts je Nachricht, Build-Fix Color(hex:) (iris/Iris#188) --- **Befund:** Die iOS-App kannte den Auto-Modus je Nachricht (#188) nicht; ein Auto-Chat verhielt sich nach der ersten Nachricht wie „Kein“. Außerdem baute `main` nicht: `Color(hex:)` war in `MainView.swift` `private`, wird aber seit dem gruppierten Picker (#199) in drei weiteren Dateien benutzt. **Geändert:** `auto_system_prompts` im `POST /agent` und aus der Job-Liste; Folgenachricht in einem Auto-Chat ruft `/resolve-auto-system-prompt` mit `exclude_titles`, hängt fehlende Prompts an und verankert sie per `anchor-prompts` (ohne Rückfrage wie am Mac). `Color`-Erweiterung nicht mehr `private`. **Geprüft:** `xcodebuild` (generic iOS, Debug) baut grün. **Nicht geprüft:** Auto-Folgenachricht gegen einen echten Server/Gerät; Installation auf dem iPhone.
Author
Owner

PR #51 gemergt: fix(systemprompts): iOS — Prompt-Liste beim Verbinden laden, nicht erst im Neuer-Job-Sheet (iris/Iris#188)
iris/2ndbrain-ios#51

Commits:

  • fix(systemprompts): iOS — Prompt-Liste beim Verbinden laden, nicht erst im Neuer-Job-Sheet (iris/Iris#188)

Befund: Die Systemprompt-Liste der iOS-App wurde nur beim Öffnen von „Neuer Agent Job“ vom Server geladen. Nach einer frischen Installation (leerer Cache) zeigte der Follow-up-Picker „Keine Systemprompts“ — und ein Auto-Chat fand bei Folgenachrichten keine Prompts zum Ergänzen (#188), weil die Liste leer war.

Geändert: Die Liste wird beim Verbinden (MainView) geladen; beim Öffnen eines Chats nachgeladen, falls sie leer ist.

Geprüft: xcodebuild grün. Nicht geprüft: auf dem Gerät; nicht installiert.

PR #51 gemergt: fix(systemprompts): iOS — Prompt-Liste beim Verbinden laden, nicht erst im Neuer-Job-Sheet (iris/Iris#188) https://forgejo.lewerken.duckdns.org/iris/2ndbrain-ios/pulls/51 Commits: - fix(systemprompts): iOS — Prompt-Liste beim Verbinden laden, nicht erst im Neuer-Job-Sheet (iris/Iris#188) --- **Befund:** Die Systemprompt-Liste der iOS-App wurde nur beim Öffnen von „Neuer Agent Job“ vom Server geladen. Nach einer frischen Installation (leerer Cache) zeigte der Follow-up-Picker „Keine Systemprompts“ — und ein Auto-Chat fand bei Folgenachrichten keine Prompts zum Ergänzen (#188), weil die Liste leer war. **Geändert:** Die Liste wird beim Verbinden (MainView) geladen; beim Öffnen eines Chats nachgeladen, falls sie leer ist. **Geprüft:** `xcodebuild` grün. **Nicht geprüft:** auf dem Gerät; nicht installiert.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/Iris#188
No description provided.