knso and Claude Opus 5.5
ad0b08f32a
News: Fotos mit Pixelgrenze, sauberer Fehlerzuordnung und mehr Tests
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:40:24 +00:00
knso and Claude Opus 5.5
ac7375e889
News: Fotos verkleinern und Metadaten entfernen (sharp)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:38:33 +00:00
knso and Claude Opus 5.5
8374a570aa
Funktionen: Bestellung serialisiert, Sitzung nachtragen, Freischaltung einmalig
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:35:59 +00:00
knso and Claude Opus 5.5
0cc35bf1a5
Funktionen: Buchung per Stripe, Webhook, Mails und Freischalt-Job
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:33:48 +00:00
knso and Claude Opus 5.5
770cbe32b7
Funktionen: Bestellschutz, serialisiertes markPaid, idx_session
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:29:12 +00:00
knso and Claude Opus 5.5
4b1df8fbfa
Funktionen: Zustände, Ticket beim Kauf, Freischaltung bei geschlossenem Ticket
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:27:27 +00:00
knso and Claude Opus 5.5
16fbb03c13
Stripe: Einmalpreis News-Einrichtung 30 €
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:24:21 +00:00
knso and Claude Opus 5.5
85bee3190c
Schema: portalFeatures-Zustände und newsPosts
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:24:21 +00:00
knso and Claude Opus 5.5
c55e6f2dfe
Plan: Funktionen-Tab und News-Pinnwand
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:21:21 +00:00
knso and Claude Opus 5.5
586e3cc85d
Spec: Funktionen-Tab und News-Pinnwand
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 16:17:25 +00:00
Claude and Claude Opus 5.5
7ae0ffdd3a
Abo-Bedingungen Fassung 5: Unterstützung ans Ende von § 4 Abs. 4, Verweis in Abs. 7 korrigiert
...
"Dazu zählen" bezieht sich wieder direkt auf die aufgewendete Zeit; das Hosting-Abo
übernimmt Rundung, Abstimmung und Unterstützung (Satz 1, 2 und 4).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 15:31:16 +00:00
Claude and Claude Opus 5.5
8acc743cf7
Abo-Bedingungen Fassung 5: Unterstützung in § 4, Fassung 4 archiviert
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 15:26:39 +00:00
Claude and Claude Opus 5.5
88854aa2b4
Push-Zeitmail: Zeit nur in 15-Minuten-Schritten
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 15:09:12 +00:00
Claude and Claude Opus 5.5
7da4452bbd
Unterstützung: eigene Zeilen und Gesamtzeit in den Projektdetails
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 15:08:16 +00:00
Claude and Claude Opus 5.5
7c6b0c906b
Unterstützung: Rechenregel und Abzug im Abo-Stundenkonto
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 15:01:57 +00:00
Claude and Claude Opus 5.5
c4fab31603
Push-Zeitmail: Zeit-Knöpfe gleich breit
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:47:11 +00:00
Claude and Claude Opus 5.5
6643283c6f
Push-Zeitmail: Review-Fixes (Rate-Limit begrenzt, kein NaN-Datum, Störung ≠ gelöscht)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:46:04 +00:00
Claude and Claude Opus 5.5
7d4767a137
Push-Zeitmail: Webhook schickt Mail nach neuem Git-Arbeitsblatt
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:43:00 +00:00
Claude and Claude Opus 5.5
a28ae21389
Push-Zeitmail: Bestätigungsseite /zeit
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:41:57 +00:00
Claude and Claude Opus 5.5
1a1005d099
Push-Zeitmail: Vorlage T15, Zuordnung Pusher → Mitarbeiter, Versand
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:39:12 +00:00
Claude and Claude Opus 5.5
ec3f22d98e
Push-Zeitmail: Zeit für Git-Arbeitsblatt eintragen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:34:17 +00:00
Claude and Claude Opus 5.5
5b7365b99e
Push-Zeitmail: signierter Token für Zeit-Links
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:33:39 +00:00
Claude and Claude Opus 5.5
cdc814ae09
Plan: Push-Zeitmail (5 Tasks); Spec: Betreff [Zeit], Commits als Text
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:26:59 +00:00
Claude and Claude Opus 5.5
af7ecce78d
Spec: Rate-Limit präzisiert
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:20:58 +00:00
Claude and Claude Opus 5.5
6f4be30c18
Spec: Push-Zeitmail (Zeit für Git-Pushes per E-Mail eintragen)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 13:20:52 +00:00
Claude and Claude Opus 5.5
d7c2027d3f
2FA-Login: Prüfung schlägt nicht offen fehl, Fehlversuche vor dem Aufruf zählen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:39:24 +00:00
Claude and Claude Opus 5.5
acc86c267b
Skript: 2FA für Mitarbeiter anzeigen, einschalten, abschalten
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:32:34 +00:00
Claude and Claude Opus 5.5
0555a2274d
Wechsel Ticketsystem → Projekt-Admin per Einmal-Link, Rückweg-Button
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:31:10 +00:00
Claude and Claude Opus 5.5
9b14a74fcc
Portal-Login: E-Mail-Code für Mitarbeiter mit 2FA
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:29:36 +00:00
Claude and Claude Opus 5.5
25f15c0ecb
Portal: offene Mitarbeiter-Code-Anmeldungen (staffMfa)
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:27:38 +00:00
Claude and Claude Opus 5.5
23d78815f9
Portal-Login: Appwrite-Sitzung merken, MFA-Aufrufe im Namen der Sitzung
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:27:05 +00:00
Claude and Claude Opus 5.5
d5c70a5bd6
Gesamtprüfung: Zeitlimit für Gitea, Aufräumen ohne Weiterleitung
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
febac3c2a3
Skripte: Organisation einrichten, Kundenprojekte umziehen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
ed8c0f82d5
Webhook: nach Umzug Repo-Adresse aus dem aktuellen Namen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
a5da4849e5
Schnittstellen für Import, Zuweisen, Nachtragen; Webhook wartet auf Umzug
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
5c39640224
Neue Repos importieren, Abgleich ohne Subdomains, Selbstheilung nur für gehostete Projekte
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
5ce8aa6fbb
Zuweisen: Warnungen statt Abbruch, Zuweisung unter der Projekt-Sperre
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
a960701d48
Zuweisen mit Umzug und Nachtragen der Pushes
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
405b2a0485
Umzug: Webhook-Adresse aus config.url, Aufräumen auch nach Selbstheilung
...
Fix round 1 (Review C1/I1/I2/I3, Controller-Ruling R11):
- C1 (kritisch): Hooks haben in echtem Gitea kein Top-Level-url, nur config.url -
isInternalRepo/deletePortalHooks lasen bisher ein Feld, das es in Produktion nicht gibt.
- I1: Schritt-2-Namensvergleich jetzt ohne Ruecksicht auf Gross-/Kleinschreibung.
- I2: fs.rm in Schritt 9 gegen EACCES/EBUSY/ENOTEMPTY & Co. abgesichert.
- I3: Aufraeumen (Cache, alter Einzel-Webhook, Preview-Verzeichnis) laeuft jetzt ueber den
neuen idempotenten finishMove()-Baustein in jedem Fall, in dem das Repo tatsaechlich in
WEBklar liegt - auch nach einem Appwrite-Fehler, bei Selbstheilung und bei einem schon
dort liegenden Repo (WARN.hookNotRemoved bei fehlgeschlagenem Loeschen).
- Fake Gitea: Hook-Form ohne Top-Level-url, 301 mit relativer Location (auch fuer
Unterpfade) wie im echten Gitea 1.25.2, failNext() fuer gezielte Fehler in Tests.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
6e6c9a4c24
Umzug zugewiesener Repos nach WEBklar
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
51c4852488
Push-Historie: Obergrenze beim Blättern, Test für HeadCommit
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
e409c11d5c
Push-Historie aus den Gitea-Aktivitäten lesen
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
8d5de87ead
Push-Arbeitsblätter: deutsche Zeit, keine System-Pushes, keine Doppelten
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
531ee2a02b
Gitea-Client herausgelöst, Konfiguration für Organisation und System-Konto, Test-Nachbauten
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
ea71b3f1c3
Sperren: Timeout eines Wartenden hebt die Sperre nicht auf
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
679f996597
Bausteine: slugify mit Umlauten, deutsche Zeit, Sperren
...
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
a3faa1aff1
Umsetzungspläne: Kundenportal, Ticketsystem, Lead-Automatik
...
Plan 1 Kundenportal (Gitea-Grundlage, Umzug, Nachtragen, Livegang),
Plan 2 Ticketsystem (Dialog, Knöpfe), Plan 3 Lead-Automatik
(neue Lead-Repos in WEBklar über das System-Konto).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
3edb5f8bb2
Konzept: gemeinsame Gitea-Organisation für alle Mitarbeiter
...
Neutrales System-Konto statt knso, Organisation WEBklar mit einem
Webhook, automatischer Umzug beim Zuweisen, Pushes der letzten 30 Tage
nachtragen, Knopf "Preview einschalten", deutsche Uhrzeit.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-30 10:21:34 +00:00
Claude and Claude Opus 5.5
8c9d28c30f
Profilbild: zufälliger DiceBear-Avatar (Big Smile) pro Kunde
...
Der Server erzeugt das SVG lokal unter /api/avatar.svg (Seed = Kunden-ID),
es geht also keine Anfrage an dicebear.com. Die Initialen bleiben als
Fallback, bis das Bild geladen ist.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-29 16:36:49 +00:00
Claude and Claude Opus 5.5
e4efdac226
Hosting-Abo: Preis 15 € -> 20 € pro Monat (Vertragsbedingungen v4, Katalog, Leitfaden)
...
- server/config.js: amountCents 2000, lookup_key webklar_hosting_monatlich_2000
- ensurePrice haengt einen neuen Preis an das vorhandene Stripe-Produkt (metadata.webklar),
statt ein zweites "WEBklar Hosting-Abo" anzulegen
- abo-bedingungen.html (Uebersicht, Preise, Leistungsbeschreibung) + PDF, Leitfaden + PDF
- Tests auf 20 € umgestellt (399/399)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-09-29 16:29:01 +00:00