- Anführungszeichen um Begriffe beim Eingeben, Speichern und Lesen
entfernen; der Agent vom 29.09. suchte nach "Interim" samt Zeichen
- Umlaute in Such-URLs umschreiben, karriere.at-404 = keine Treffer
- Filterleiste mit festen Breiten, bricht um statt überzulaufen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Eingabezeile über der Liste, mit Abstand und Knopf Hinzufügen;
Liste neueste zuerst, neue Einträge erscheinen direkt darunter
- Letzter Kontakt neuer Zeilen = heute (Ortszeit), auch serverseitig,
wenn das Feld beim Anlegen fehlt
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- email als Symbol mit Adresse im Tooltip, Klick öffnet mailto:
(Spalte per migrateColumns nachgezogen)
- Löschen-Knopf am Zeilenende; Server erlaubt Löschen jetzt auch
ohne vorheriges Archivieren
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Neuer Menüpunkt über Leads mit Unterpunkt Archiv.
- Tabelle Name, Funktion, Unternehmen, LinkedIn, Website, Notiz,
Letzter Kontakt, Nächster Impuls; leere Zeile unten, speichert beim
Verlassen. Links als Symbol mit URL im Tooltip.
- Nächster Impuls: Tage eingeben, Erinnerung über den ReminderWatcher
- Archivieren, Zurückholen, endgültig löschen (nur aus dem Archiv)
- Lead erstellen öffnet die Lead-Karte vorbelegt (LeadModal.initial),
danach wandert der Suspect mit lead_id ins Archiv
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Quelle, Schlüsselfeld in Einstellungen -> Scanner und Doku raus.
Agenten, die jooble noch gespeichert haben, bekommen es nicht mehr
angezeigt; die Pipeline überspringt unbekannte Quellen ohnehin.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Neuer Menüpunkt Scanner mit Dashboard und Suchagenten, Zeitplan und
API-Schlüssel unter Einstellungen -> Scanner.
- Quellen: Agentur für Arbeit (API), StepStone, karriere.at,
freelancermap (HTML) sowie Adzuna und Jooble (kostenlose Schlüssel)
- Quote = gefundene Schlagwörter, Titel zählt doppelt; keine KI
- Abgleich mit icon_companies, bekannte Firmen oben mit Abzeichen
- Zeitplan Vorgabe stündlich Mo-Fr 06-20 Uhr, einstellbar
- Sperre gegen parallele Läufe wie im perinco-Scanner
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gpt-6-luna kostet rund 50 % weniger als gpt-5.6-luna. Das Modell in
icon_settings (Einstellungen -> KI) hat weiter Vorrang vor der Vorgabe.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
JWT-Laufzeit (JWT_EXPIRES_IN) standardmaessig auf 7d gesetzt, damit
Benutzer nicht mehr taeglich neu anmelden muessen. Doku (Betrieb,
Benutzeranleitung, Glossar) und .env.example angepasst.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Einstellungen -> KI: statt freiem Modellnamen ein Dropdown mit den
Chat-Modellen, die der hinterlegte OpenAI-Schluessel nutzen darf.
- Backend: listAiModels() fragt OpenAI GET /v1/models, filtert auf
Chat-Modelle (gpt-*, o*, chatgpt-*; ohne Embedding/Audio/Bild/Instruct
usw.), neueste zuerst, 10 min im Speicher (Schluesselwechsel laedt neu)
- Neuer Endpunkt GET /api/ai/models (admin)
- Frontend: aktives Modell bleibt waehlbar, auch wenn nicht mehr gelistet;
Rueckfall auf Textfeld, wenn die Liste nicht abrufbar ist
- Doku: 05-ki (Modellauswahl mit Ablaufdiagramm), 10-api, 08-anleitung
Zieht ausserdem den bereits live laufenden, bisher nicht eingecheckten
Stand nach (perinco-Kontaktabgleich/MergeDialog, Projektmargen,
Whisper-Anpassungen u. a.). Repo entspricht damit icrm.icon-experts.de.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>