Skip to content

feat: compose signature with robust DE+EN placeholder handling (Paket I-3) - #25

Merged
TimInTech merged 2 commits into
mainfrom
feat/paket-i-compose-i3
Jun 23, 2026
Merged

feat: compose signature with robust DE+EN placeholder handling (Paket I-3)#25
TimInTech merged 2 commits into
mainfrom
feat/paket-i-compose-i3

Conversation

@TimInTech

Copy link
Copy Markdown
Owner

Übersicht

Paket I-3 der UX-/Compose-Roadmap: konfigurierbare Signatur im Compose-Fenster
plus ein Robustheits-Fix, nachdem das Einfügen in der Praxis nicht zuverlässig
funktionierte.

Bündelt zwei Commits:

  • c9ee689 — Basis-Feature „Compose-Signatur"
  • e73a5cc — Fix: robuste Platzhalter-Behandlung

Feature (c9ee689)

  • config.compose_signature_text + compose_signature_auto_append (persistiert, validiert)
  • Signatur-Felder im Settings-Dialog (Tab „Allgemein")
  • btnSignature im Compose-Fenster: manuelles Anhängen + optionales Auto-Append nach jeder KI-Generierung

Fix (e73a5cc)

Vorher: Platzhalter-Regex matchte nur [Ihr/Dein Name]. Englische Platzhalter
([Your Name]) und [Vorname]-Varianten blieben stehen und die Signatur wurde
zusätzlich unten angehängt (Doppel-Signatur). Die Platzhalter-Logik war ungetestet.

  • Vorkompiliertes SIGNATURE_PLACEHOLDER_PATTERN, kuratiert DE + EN:
    [Name], [Ihr/Dein/Mein Name], [Vorname], [Vorname Nachname], [Nachname],
    [Absender], [Your/My/Full Name], [Unterschrift], [Signature] + optionales Komma.
    Unbeteiligte Klammern ([Anhang], [Datum], [Name des Projekts]) bleiben unberührt.
  • subn() statt sub: ersetzt oder hängt an, nie beides → keine Doppel-Signatur.
  • Signatur rstrip()-bereinigt (gegen versehentlich gespeicherte Zeilenumbrüche/Tabs).
  • _sync_state und _append_signature konsistent → Button deaktiviert korrekt.

Tests

  • +7 Platzhalter-Tests (DE, DE+Komma, EN, Vorname, kein Doppel-Anhang, Whitespace-Bereinigung, unbeteiligte Klammern) — die Ersetzungslogik war zuvor nicht abgedeckt.
  • Bestehende Append-Tests um _sync_state() ergänzt.

Test Plan

  • QT_QPA_PLATFORM=offscreen WHISPER_GUI_TESTS=1 python -m pytest -q347 passed
  • Live-Test auf gummi-Desktop — App vorher komplett über Tray-Icon → „Beenden" schließen und neu starten (sonst läuft alter Code im Hintergrund weiter)
  • Manuell: KI-Generierung mit [Ihr Name] / [Your Name] → Signatur ersetzt Platzhalter ohne hängendes Komma

Signature insertion did not reliably replace AI placeholders. The previous
pattern only matched [Ihr/Dein Name], so English placeholders ([Your Name])
and Vorname variants were left in place while the signature was appended a
second time below them.

- Add precompiled SIGNATURE_PLACEHOLDER_PATTERN covering curated DE+EN
  placeholders ([Name], [Ihr/Dein/Mein Name], [Vorname], [Vorname Nachname],
  [Nachname], [Absender], [Your/My/Full Name], [Unterschrift], [Signature])
  plus an optional trailing comma; unrelated brackets stay untouched.
- Use subn() so the signature is either substituted or appended, never both.
- Strip trailing whitespace from the saved signature; keep _sync_state and
  _append_signature consistent so the button disables correctly.
- Add 7 placeholder tests (logic was previously untested).
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@TimInTech
TimInTech merged commit 47ba511 into main Jun 23, 2026
7 checks passed
@TimInTech
TimInTech deleted the feat/paket-i-compose-i3 branch June 23, 2026 16:46
@TimInTech TimInTech mentioned this pull request Jun 24, 2026
4 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant