Änderungsprotokoll¶
Das Änderungsprotokoll wird nicht mehr in der Web-App gepflegt. Release-Notizen und größere Produktänderungen werden ab jetzt hier auf docs.targetshot.app gesammelt.
Aktueller Release¶
v0.9.1 · 2026-08-05¶
- Du kannst dein Konto jetzt selbst löschen. Im Profil unter „Konto löschen": Der Zugang wird sofort gesperrt, endgültig entfernt werden Konto und Daten nach 30 Tagen — das genaue Datum steht auf der Bestätigungsseite und in der E-Mail, die du bekommst. Innerhalb dieser Frist nimmst du die Löschung über den Link in dieser E-Mail wieder zurück. Ein laufendes Pro-Abo wird dabei gekündigt.
- Eine Benachrichtigung führt dich direkt zum Training. Ein Klick auf „Training ausgewertet" öffnet jetzt die Auswertung — in der Web-App, aus der Push-Nachricht heraus und in der TargetShot-App.
- Push-Meldungen nennen das Ergebnis. Die Überschrift sagt, um welche Kategorie es geht, der Text nennt Schusszahl und Ergebnis in ganzen Ringen. Bisher stand dort nur, dass etwas ausgewertet wurde.
- Gelöschte Treffer verfälschen die Trainerflächen nicht mehr. Wurden Treffer nachträglich aus einer Session entfernt, zählten sie in den Vereins- und Jugendflächen weiter in Summen und Durchschnitte hinein. Das ist behoben.
- Sicherere Zuordnung zwischen Anmeldekonto und Profil: Eine Verknüpfung entsteht nur noch, wenn sie sich über die hinterlegte E-Mail belegen lässt. Bleibt die Zuordnung unklar, wird ein Löschantrag mit einer verständlichen Meldung abgelehnt und an den Support verwiesen, statt möglicherweise das falsche Konto zu treffen.
- Vorbereitung der TargetShot-App (geschlossene Testphase, in keinem Store verfügbar): Serien erscheinen als Raster, „Bester Teiler" steht auch im Session-Detail, und Dashboard-Kategorien sowie ein persönlicher Vereinsfilter lassen sich in den Einstellungen setzen. Behoben: unvollständig angezeigte Serien in der Übersicht, ein nicht übertragener Lesestatus bei Benachrichtigungen, und Einstellungen, die still überschrieben werden konnten.
v0.9.0 · 2026-08-04¶
- Vorbereitung der Android-App: Der Versand von Benachrichtigungen kann jetzt auch Android-Geräte erreichen. Die App selbst ist noch in Arbeit und in keinem Store verfügbar — an der Web-Anwendung ändert sich mit diesem Release nichts.
- Interne Härtung der Benachrichtigungs-Zustellung: Ein Gerät wird nur noch dann abgemeldet, wenn der Push-Dienst es ausdrücklich als ungültig meldet. Eine Störung beim Dienst oder ein Fehler auf unserer Seite kostet damit keine Zustellungen mehr.
v0.8.0 · 2026-08-03¶
- Benachrichtigung, wenn dein Training ausgewertet ist. Sobald eine Session vollständig eingelesen ist, erscheint sie in deinen Benachrichtigungen — mit Disziplin und Schusszahl, und ein Klick führt direkt zur Auswertung. Als Push kommt sie nur, wenn du Push in den Einstellungen eingeschaltet hast. Ohne erteilte Freigabe deiner Schießdaten wird nichts verschickt, und ältere Sessions aus einem Datenabgleich lösen nachträglich keine Meldungen aus.
- Die Seitenleiste verdichtet sich bei niedrigem Fenster, statt unten abgeschnitten zu werden. Auf flachen Bildschirmen und in geteilten Fenstern bleiben damit alle Einträge erreichbar.
- Vorbereitung für die TargetShot-App: Push-Benachrichtigungen gehen jetzt auch an iPhones. Die App befindet sich in geschlossener Testphase.
v0.7.2 · 2026-08-03¶
- Push-Benachrichtigungen funktionieren. Erinnerungen an Termine, Duell-Ergebnisse und Standaufsichts-Hinweise kommen jetzt wirklich auf dem Gerät an — bisher wurde nichts verschickt. Aktivieren geht in den Einstellungen unter Benachrichtigungen; dein Browser fragt dabei einmal nach Erlaubnis.
- Benachrichtigungs-Einstellungen lassen sich wieder ändern. E-Mail an/aus, Event-Mails, Einladungen, Push, Push-Ton und die E-Mail-Kategorien sprangen nach dem Speichern auf den alten Wert zurück. Das ist behoben.
- Abgelaufene Push-Anmeldungen (deinstallierter Browser, entzogene Erlaubnis) werden automatisch entfernt, statt bei jeder Benachrichtigung erneut angefragt zu werden.
v0.7.1 · 2026-08-03¶
- Verträge kündigen — ohne Anmeldung. Unter „Verträge hier kündigen" (im Footer, auf der Anmeldeseite und auf targetshot.app) kündigst du dein Pro-Abo direkt, auch wenn du gerade nicht an dein Konto kommst. Du erhältst sofort eine Eingangsbestätigung per E-Mail mit Datum, Uhrzeit und dem Enddatum deines Vertrags, und kannst die Erklärung zum Aufheben herunterladen.
- Kündigung mit einem Klick zurücknehmen. War die Kündigung ein Versehen oder nicht von dir, nimmst du sie über einen Link direkt aus dieser E-Mail zurück — 30 Tage lang, einmalig. Danach bestätigen wir dir die Rücknahme und nennen dir die nächste Abrechnung.
- Bestellbestätigung per E-Mail. Nach dem Abschluss von Pro bekommst du eine Bestätigung mit allen Vertragsangaben im TargetShot-Design.
- Laufzeit immer sichtbar. Auf der Preisseite und im Profil steht jetzt, bis wann dein Abo läuft und wann die nächste Abrechnung ansteht — und bei gekündigtem Abo, wann es endet.
- Behoben: „Kündigung rückgängig machen" schlug fehl. Behoben: die Free-Karte zeigte einen Kündigen-Knopf. Behoben: Umlaute in Bestätigungsmails wurden falsch dargestellt.
- Interne Härtung der Kündigungsstrecke und der E-Mail-Zustellung.
v0.7.0 · 2026-07-24¶
- TargetShot Pro ist da: das persönliche Abo für 5,99 € im Monat oder 59 € im Jahr, direkt in der App abschließbar. Die Zahlung läuft sicher über Stripe, ohne die App zu verlassen; verwalten, wechseln und kündigen kannst du dein Abo jederzeit selbst.
- Statistiken (Pro): neu aufgebaut mit direktem A×B-Vergleich zweier Zeiträume, Trefferbild-Vergleich und einer Tiefe-Schublade für die Details. Vergleichswerte aus dem Verein erscheinen nur, wenn genügend Schützen dahinterstehen — niemand ist einzeln herauslesbar.
- Berichte (Pro): schlankere Seite, PDF-Berichte in der TargetShot-Designlinie mit Logo. Geplante Berichte berücksichtigen die Einwilligungen aller enthaltenen Schützen; fehlt eine, werden die betroffenen Daten nicht versendet.
- Bestenliste (Pro): fair neu entworfen — getrennte Ranglisten je Disziplin (Luftgewehr/Luftpistole) und Wertung im Schnitt je Schuss, damit unterschiedlich lange Serien vergleichbar bleiben. Die eigene Position ist immer sichtbar.
- Herausforderungen (Pro): kompletter Neubau als Saison-Pass über das Sportjahr — wöchentliche, monatliche und saisonale Aufgaben mit klarer Anzeige, was gerade läuft und was noch offen ist, dazu Sammlung und Rekordbuch. Duelle gibt es in vier Varianten: direkt, nach Teiler, gegen die eigene Bestleistung (Geisterduell) und als Best-of-3 über drei Runden. Duelle werden nur ausgewertet, wenn beide Seiten eingewilligt haben.
- Preise: die Preisseite wurde auf das neue Design umgestellt und auf das reduziert, was für einzelne Schützen zählt.
v0.6.1 · 2026-07-20¶
- Mobile-Feinschliff auf dem Handy: Die Filter-Leiste der Kategorie-Seiten bricht sauber um, Serien werden mit ihrer Nummer beschriftet (S1 · S2 · S3 · S4), Diagramm-Beschriftungen bleiben auf schmalen Bildschirmen lesbar, die Preisschießen-Rangliste stapelt sich als Karten, und Bedienelemente halten die Mindestgröße für Touch ein.
- Standaufsichtsplanung: Die Von/Bis-Zeitfelder liefen auf dem iPhone über den Kartenrand hinaus — jetzt behoben.
- Persönliches Dashboard: Die in den Einstellungen gewählten sichtbaren Kategorien werden schon beim ersten Laden berücksichtigt (vorher konnte kurz eine ausgeblendete Kategorie erscheinen, bis die Einstellungen einmal geöffnet wurden).
- General: Version bump to v0.6.1 for backend and web app.
v0.6.0 · 2026-07-19¶
- Persönliches Dashboard neu geschnitten: Das Ergebnis-Band des letzten Trainings führt die Seite an (Ganzringe vor Zehntelwertung), darunter „Als Nächstes" (laufende Preisschießen mit Endtermin; allgemeine Vereinstermine neutral), ein ehrlicher Leistungs-Trend mit sauber benanntem Zeitfenster und die Bestwerte als eine kompakte Fläche.
- Training, Wettkampf und Preisschießen teilen jetzt ein gemeinsames Seiten-Gerüst: Ergebnis-Band, Bestwerte-Zeile, Saison-Verlauf und ein nach Monaten gruppierter Verlauf. Preisschießen zeigt laufende Veranstaltungen mit Endtermin-Countdown und eigener Platzierung, die Historie nach Jahren.
- Vereinsübersicht und Schützen-Profile sind statistik-getrieben neu gebaut (Kennzahlen-Band, Verteilung mit Statistik-Box, sortierbare Tabelle; Einzel-Ansicht mit Auffälligkeiten und Serien-Profil); der Jugend-Bereich nutzt dieselbe Struktur.
- Die Session-Detailseite ist eine schlichte Schützen-Sicht: Ergebnis, Dauer, Serien, bester Teiler und der Umschalter Probe / Serie 1–4 / alle Wertungsschüsse.
- Jugend-Onboarding: informierte Elterneinwilligung mit klarem Einwilligungsumfang und Status-Prüfung; der Eltern-Kontakt kann direkt beim Einladen hinterlegt werden, die Mitgliederliste zeigt den Freigabe-Status.
- Kategorie-Darstellung vereinheitlicht: ein Badge-System mit einheitlichen Begriffen app-weit; Wettkampf erscheint nicht mehr in einer Warnfarbe.
- Korrektheit: Ring-Skala-Fehler in mehreren Serien-Fallbacks behoben (Werte waren teils um den Faktor 10 zu hoch), „Beste Serie" zählt keine Probeschüsse mehr, und Trend-Zeiträume werden nur noch ausgewiesen, wenn die geladenen Daten sie wirklich abdecken.
- Zuverlässigkeit: Der Daten-Ingest überwacht seinen Kafka-Consumer jetzt selbst und startet sich bei Hängern automatisch neu; ein täglicher Health-Check meldet Auffälligkeiten.
- General: Version bump to v0.6.0 for backend and web app. Releases werden ab jetzt automatisch getaggt (Version-Wächter in der Prod-Pipeline + GitHub-Release mit generierten Notes). Die Zwischenstände v0.5.0/v0.5.1 (Mai 2026) wurden ohne Protokolleintrag ausgeliefert.
v0.4.33 · 2026-04-15¶
- Health Contract: Die Hauptplattform stellt den Ingest-Status jetzt als eigenen leichten Endpoint unter
/healthz/ingestbereit, statt ihn nur im vollen aggregierten/healthzzu verstecken. - Ops Reliability: Admin-Portal und Connector-Ops ziehen fuer Ingest-Diagnose und Runbook-Pruefung jetzt den dedizierten Endpoint, sodass langsame Gesamt-Checks nicht mehr faelschlich wie ein Ingest-Ausfall aussehen.
- Diagnostics UX: Timeout-Faelle werden im Backoffice weiterhin sauber als
unknownstatt als harter Ausfall dargestellt, aber der Normalfall liefert jetzt wieder den echten Live-Worker-Zustand. - General: Version bump to v0.4.33 for backend and web app.
v0.4.32 · 2026-04-15¶
- Ingest-Sicherheitsvertrag: Normalisierte Topics verlangen jetzt einen konsistenten expliziten Herkunftsvertrag aus
source_topicundsource_club_id; Konflikte zwischen Payload, Headern und Topic-Scope werden explizit als Contract-Rejects abgelehnt. - Ingest-Ops: Der Worker fuehrt jetzt Reject-, Burst-, Quarantaene- und Recovery-Zustaende mit, sodass Source-Drift von echtem Worker-Ausfall getrennt sichtbar bleibt und spaetere akzeptierte Events einen Incident wieder sauber auf
recoveredsetzen koennen. - Test & Runbook: Neue Backend-Tests decken Reject-/Quarantaene-Pfade ab, und das Ingest-Runbook dokumentiert Incident-Matrix, Reprocessing-Reihenfolge und Rollback fuer Source-Drift-Faelle.
- General: Version bump to v0.4.32 for backend and web app.
v0.4.31 · 2026-04-15¶
- Release Gate: Staging fuehrt vor dem eigentlichen Image-Build und Deploy jetzt einen expliziten
release-preflightaus, der Runtime-Pflichtwerte, URL-Vertrag, CORS, Keycloak-Basis-URLs, Audience-Trennung, Upload-Storage und Mail-Sender fail-closed prueft. - Deploy Ops: Der Staging-Workflow legt den Preflight-Bericht als eigenes Artefakt ab und blockiert den eigentlichen Deploy frueh, wenn Auth-, App- oder Storage-Konfiguration nicht zum erwarteten Betriebsvertrag passt.
- Docs & Planning: Web-Release-Runbook, Deploy-Doku, Production-Readiness-Checklist und Sprint-Stand fuehren den neuen Gate-Vertrag jetzt explizit mit.
- General: Version bump to v0.4.31 for backend and web app.
v0.4.30 · 2026-04-14¶
- Schießdaten-Freigaben sind jetzt als eigener Produktpfad mit Selbstfreigabe, Widerruf, Elternfreigabe-Flow und fail-closed Sichtbarkeitsregeln im Backend und Web verankert.
- Vereinsübersicht, Jugendpfade und Reports liefern ohne gültige Freigabe jetzt bewusst keine personenbezogenen Schießdaten mehr aus; das Profil zeigt den Freigabestatus und verwaltet den Zugang separat.
- Geburtstage aus der Spiegelstrecke werden als Debezium-
DATEkorrekt aus Epoch-Days gelesen, inklusive Replay-/Backfill-Pfad für bestehende Vereinsdaten und Profilanzeige. - General: Version bump to v0.4.30 for backend and web app.
v0.4.29 · 2026-04-09¶
- Das Jugend-Dashboard ist serverseitig an denselben Club- und Rollen-Scope wie die übrigen Vereins- und Report-Pfade gebunden; Frontend-only-Zugriffe reichen dafür nicht mehr aus.
- Regression-Tests decken jetzt explizit die erlaubten und verbotenen Rollenpfade für
/api/youth/dashboardab. - General: Version bump to v0.4.29 for backend and web app.
v0.4.27 · 2026-04-03¶
- Vereinsreports fuer Trainer und Jugendtrainer sind als eigene Club-Flaeche auf einem gemeinsamen serverseitigen Managed-Report-Vertrag ausgeliefert, inklusive PDF-Export.
- Die Vereinsreports zeigen jetzt nur noch Schuetzinnen und Schuetzen mit aktiver
ClubMember-Zuordnung des gewaehlten Vereins; alte ScoreSheet-Daten allein reichen nicht mehr aus. - Die Web-Hotpaths in
Dashboard,StatisticsundSettingswurden weiter entkoppelt, damit nachfolgende Feature-Bloecke nicht direkt wieder in die groessten Dateien kippen.
v0.4.26 · 2026-04-03¶
sportpassIdist jetzt die kanonische Personenidentitaet im Backend; alte Keycloak-sub-Werte werden als Alias gemappt, damit Rollen und persoenliche Daten bei Legacy- oder Duplikat-Accounts nicht mehr auseinanderlaufen.- Der persoenliche Vereinsfilter ist serverseitig in den Einstellungen verankert und unterstuetzt Mehrfachauswahl gezielt fuer persoenliches Archiv, Reports und Statistik.
- FAQ und Aenderungsprotokoll liegen jetzt oeffentlich in den Docs; die Feedback-Webflaeche ist entfernt und die Konto-Navigation in der Sidebar kompakter gebuendelt.
BestenlisteundPreisschiessenbleiben bewusst auf ihren konservativen Produktzuschnitten, waehrend der persoenliche Filter und das Event-Scoping technisch gehaertet wurden.
v0.4.25 · 2026-04-03¶
- Multi-Club-Auth und Rollen-Gating folgen jetzt dem aktiven Verein plus
ClubMember.rolestatt den alten Keycloak-Club-Rollen. - Mitglieder- und Identitätslogik wurden für Multi-Club-Fälle bereinigt, inklusive klarerer Profil- und Vereinszuordnung.
- Plattform-Admin-Flächen wurden deutlicher von club-spezifischen Verwaltungswegen getrennt.
- Laufzeit-, Billing- und Routen-Härtung wurden für den produktionsnahen Backend-Pfad erweitert.
Weitere Historie¶
- Frühere Release-Einträge werden schrittweise aus dem bisherigen Web-Änderungsprotokoll hierher überführt.
- Für technische Artefakte und Tags siehe auch die GitHub Releases.