// release-history

Was wir geliefert haben.

Foyer ist seit Ende April 2026 im Bau. Hier ist die vollständige Release-Liste — keine Marketing-Übertreibung, sondern Git-Tags. Datum + Version stehen für jeden Eintrag.

v0.99.838
01. November 2026

Neue Konten werden nach der Bezahlung freigeschaltet, Anmeldelinks nach dem Erstgespräch

  • Neue Konten werden nach der Bezahlung freigeschaltet; eine Gratis-Testphase gibt es nicht mehr.
  • Persönliche Anmeldelinks für Hotels nach dem Erstgespräch: Paket, Abrechnungszeitraum und Zimmerzahl stehen im Link fest, jeder Link ist einmal einlösbar und läuft ab.
  • Auf der Website führt jeder Weg zum kostenlosen Erstgespräch; wer ohne Gespräch starten möchte, bucht direkt.
v0.99.837
01. November 2026

Preise über viele Tage gehen gebündelt an die Kanäle

  • Wer im Preiskalender einen Richtwert für viele Tage auf einmal setzt, schickt die Preise jetzt in einem Zug an die Buchungskanäle. Gastnachrichten, die zur selben Zeit hinausgehen, werden dadurch nic…
v0.99.836
01. November 2026

Hauszeiten auch für Häuser westlich von UTC zuverlässig

  • Beim Ändern einer älteren Buchung bleibt ein unveränderter Tag auch in Zeitzonen westlich von UTC unangetastet.
v0.99.835
01. November 2026

„Auf einen Blick“ begleitet jetzt den ganzen Aufenthalt

  • Nach dem Einchecken zeigt „Auf einen Blick“ einen neuen Zeitstrahl: Im Haus, eine Station je Nacht, Check-out. Jede Station öffnet ein Fenster mit Nachrichten und Anliegen des Tages.
  • Lange Aufenthalte werden auf dem Strahl zusammengefasst, mit der Angabe, die wievielte Nacht heute ist.
  • Im Check-out-Fenster lässt sich die Check-out-Erinnerung senden und die ganze Buchung mit allen Zimmern auf einmal auschecken; die separate Check-out-Karte entfällt.
  • Der Status eingecheckter Gäste heißt jetzt „Im Haus“.
v0.99.834
01. November 2026

Manuelle Buchungen mit den Anreise- und Abreisezeiten des Hauses

  • Von Hand angelegte Buchungen und Walk-ins tragen jetzt die Anreise- und Abreisezeit des Hauses (z. B. 16:00 / 11:00) statt 02:00 bzw. 01:00 nachts. Damit meldet der Zimmertausch keine Überschneidunge…
  • Beim Ändern der Daten bekommt nur ein wirklich neuer Tag die Hauszeit; ein unveränderter Tag behält seine Uhrzeit.
v0.99.833
01. November 2026

WhatsApp-Zustimmung aus dem Buchungschat

  • Nennt ein Gast im Buchungschat ausdrücklich seine WhatsApp-Nummer („my WhatsApp number is +…“), gilt das als Zustimmung zu WhatsApp vom Haus — wie der Eintrag im Gästeportal. Eine schon übersprungene…
  • Eine bloße Telefon- oder Handynummer im Chat erteilt weiterhin keine Zustimmung.
v0.99.832
01. November 2026

Startseite führt nur noch zum Erstgespräch

  • Startseite und Erstgespräch-Seite bieten keinen Selbsttest mehr an. Der Weg zu Foyer ist das kostenlose Erstgespräch.
v0.99.831
01. November 2026

Eigene Vorab-Mail markiert Gastfragen nicht mehr als beantwortet

  • Kommt die Vorab-Mail mit dem Check-in-Link über Booking.com als Nachricht im Gespräch zurück, gilt sie nicht mehr als Antwort: eine offene Gastfrage bleibt in „Unbeantwortet".
v0.99.830
31. Oktober 2026

Automatische Antworten beantworten auch Teile einer Gastnachricht

  • Enthält eine Gastnachricht mehrere Anliegen und kann die automatische Antwort nur einen Teil beantworten, geht diese Teilantwort jetzt raus. Die Unterhaltung bleibt unter „Unbeantwortet", bis ein Men…
  • Gilt für die Antworten aus den Hausvorlagen, das Rechnungsformular und die KI-Antwort. Bei Vorfällen, Beschwerden, unsicheren Zeitangaben oder fehlender Sprachfreigabe geht weiterhin nichts automatis…
v0.99.829
31. Oktober 2026

Lange Gastnachrichten werden nicht mehr allein wegen ihrer Länge zurückgehalten

  • Automatische Antworten (Rechnungsformular, Vorlagen, KI-Antwort) gehen jetzt auch auf lange Gastnachrichten raus, etwa mit E-Mail-Signatur oder Buchungsportal-Umschlag. Ob eine Nachricht etwas enthäl…
v0.99.828
31. Oktober 2026

Später Check-out — Zahlungslink geht automatisch an den Gast

  • Fragt ein Gast nach einem späten Check-out, schickt Foyer ihm sofort den Zahlungslink bis zum Ende des späten Check-outs, mit einer Zeile zum Abreisetag. Gebucht ist er erst mit der Zahlung.
  • Die Reinigung des Abreisetags sieht schon beim Versand „angefragt, noch nicht bezahlt“; nach der Zahlung steht dort „bezahlt“.
  • Wo ein Mensch entscheiden soll (weitere Fragen in derselben Nachricht, andere Sprache, mehrere Zimmer, Airbnb), liegt die Antwort mit Link als Entwurf bereit.
  • Weitergeleitete CHECK24-Nachrichten werden vor den Prüfungen auf die Worte des Gastes reduziert, sodass auch dort automatisch geantwortet werden kann.
v0.99.827
30. Oktober 2026

Automatische Antworten — ein übernommener Vorschlag zählt in der Auswertung als hilfreich

  • Schickt das Team einen Vorschlag der automatischen Antwort unverändert oder leicht angepasst ab, gilt er in der Auswertung am Morgen jetzt als hilfreich. Bisher zählte das Abschicken selbst als „das …
v0.99.826
30. Oktober 2026

Aufgeräumt — die Einstellung der entfernten Nacht-Bestätigung ist aus der Datenbank

  • Keine sichtbare Änderung: die seit dem 24.10. entfernte Nacht-Bestätigung hinterlässt keine Einstellung mehr.
v0.99.825
30. Oktober 2026

Foyer setzt eingecheckt und ausgecheckt selbst

  • Öffnet ein Gast mit seinem Türcode am Anreisetag oder später zum ersten Mal die Tür, steht sein Aufenthalt auf „eingecheckt“.
  • Am Tag nach der Abreise setzt Foyer einen eingecheckten Aufenthalt auf „ausgecheckt“, ebenso einen bestätigten, dessen Gast die Tür geöffnet hatte. Ein Aufenthalt ohne Check-in und ohne Türöffnung bl…
  • Auf der Putzliste bleibt ein Zimmer am Anreisetag als Anreise markiert, auch wenn der Gast schon die Haustür geöffnet hat.
  • Wird ein schon ausgecheckter Aufenthalt verlängert, steht er wieder auf „eingecheckt“, und die Auszugsreinigung wandert auf den neuen Abreisetag.
  • Neues Webhook-Ereignis stay.checked_in für die erste Türöffnung des Gasts; es lässt sich in den Einstellungen abonnieren.
v0.99.824
30. Oktober 2026

Reinigung und Gastnachrichten kennen eingecheckt und ausgecheckt

  • Verlängert ein eingecheckter Gast oder wechselt er das Zimmer, zieht die Auszugsreinigung mit.
  • Nachrichten, die an die Abreise anknüpfen und danach geplant sind, etwa die Bitte um eine Bewertung, erreichen den Gast auch dann, wenn er bereits ausgecheckt ist.
v0.99.823
30. Oktober 2026

Eingecheckt und ausgecheckt bleiben stehen

  • Wer einen Aufenthalt in Foyer auf „eingecheckt“ oder „ausgecheckt“ setzt, behält diesen Stand: der nächste Abgleich mit dem Buchungskanal setzt ihn nicht mehr auf „bestätigt“ zurück. Eine Stornierung…
v0.99.822
30. Oktober 2026

Rechnungsdaten aus der Gastnachricht — ohne Formular

  • Nennt ein Gast bei seiner Rechnungsbitte Anschrift und E-Mail direkt in der Nachricht, übernimmt Foyer die Angaben und antwortet mit Name, Anschrift und E-Mail, auf die die Rechnung nach der Abreise …
  • Anschriften in einer Zeile ohne Namenszeile, mit kleingeschriebenem Ort oder mit „E Mail :“ dahinter werden jetzt erkannt.
  • Das Lesen von Rechnungsangaben durch die KI (Mistral, EU) lässt sich je Hotel einschalten; Datenschutzerklärung und AVV Anlage 2 nennen den Zweck.
v0.99.821
30. Oktober 2026

Automatische Antworten — ausgeschriebene Codes gehen nie automatisch raus

  • Schreibt die automatische Antwort einen Code in Worten aus („four seven one one“, auch „4 seven 1 1“), geht sie nicht mehr automatisch raus, sondern wird ein Vorschlag fürs Team — bisher fiel das nur…
v0.99.820
29. Oktober 2026

Startseite zeigt die Telefon-KI deutlicher

  • Die Telefon-KI hat auf der Startseite eine eigene Karte direkt nach der Gästekommunikation: Sie nimmt rund um die Uhr ab, beantwortet Fragen zu Anreise und Haus, prüft freie Zimmer und schickt den Za…
  • Die Liste ganz oben nennt jetzt Nachrichten und Anrufe.
  • Neue Frage in den FAQ: „Geht Foyer auch ans Telefon?"
v0.99.819
29. Oktober 2026

Startseite mit ruhigerem, hochwertigerem Auftritt

  • Die Startseite wirkt ruhiger und hochwertiger: einheitliche Symbole bei den Leistungen, eigene Schieberegler im Rechner, eine schlankere Kopfleiste und Karten, die beim Scrollen sanft einblenden.
v0.99.818
29. Oktober 2026

Startseite auf dem Handy aufgeräumt

  • Die Startseite ist auf dem Handy kompakter: Der Einstieg passt mit dem Knopf zum Erstgespräch auf den ersten Bildschirm, die Leistungen sind übersichtlicher, und Knopftexte brechen sauber um.
v0.99.817
29. Oktober 2026

Neues Layout für die Erstgespräch-Seite

  • Die Seite zum kostenlosen Erstgespräch ist neu aufgebaut: Formular und Ansprechpartner stehen nebeneinander in einer Karte, das Formular ist kürzer und übersichtlicher.
v0.99.816
29. Oktober 2026

Dunkle Fußleiste auf der Startseite

  • Die Fußleiste der Startseite ist dunkel und schließt nahtlos an den letzten Abschnitt an.
v0.99.815
29. Oktober 2026

Startseite mit dunkler Kopfleiste und feinerer Überschrift

  • Die Kopfleiste der Startseite ist dunkel und geht nahtlos in den oberen Bereich über; der Knopf zum Erstgespräch ist golden hervorgehoben.
  • Die großen Überschriften der Startseite stehen in einem feineren Schnitt für große Schriftgrade.
v0.99.814
29. Oktober 2026

Neue Startseite mit Erstgespräch, Fallstudie und Kostenrechner

  • Die Startseite ist neu: ein kostenloses Erstgespräch von 15 Minuten ist jetzt der Hauptweg zu Foyer, der Selbsttest bleibt daneben.
  • Eine Fallstudie aus dem Betrieb eines Familienhotels zeigt, was sich im Alltag verändert hat.
  • Ein Rechner schätzt, was die Handarbeit am Empfang im Jahr kostet.
  • Abläufe, Preisbeispiele für drei Hotelgrößen und häufige Fragen stehen auf einer Seite; die Fragen sind für Suchmaschinen gleichlautend ausgezeichnet.
v0.99.813
29. Oktober 2026

Marketing-Seiten ohne Fehlermeldung in der Browser-Konsole

  • Die Seiten auf getfoyer.app laden die Anmeldung nicht mehr unnötig vor; die Fehlermeldung in der Browser-Konsole ist weg.
v0.99.812
29. Oktober 2026

Erstgespräch: Formular und Kasten beginnen auf einer Höhe

  • Die Seite /erstgespraech ist aufgeräumt: Überschrift und Kasten „Das erwartet Dich“ beginnen auf einer Höhe, die Felder einer Zeile sind gleich hoch.
v0.99.811
29. Oktober 2026

Interne Reichweitenmessung zählt Anmeldeseiten wieder

  • Die interne Reichweitenmessung zählt die Anmelde- und Login-Seiten auch unter den neuen Produktadressen.
v0.99.810
29. Oktober 2026

Kostenloses Erstgespräch: Rückruf anfordern

  • Neue Seite /erstgespraech: Hoteliers fordern einen kostenlosen Rückruf an, statt sich gleich selbst zu registrieren.
v0.99.809
29. Oktober 2026

Eindeutig genannte WhatsApp-Nummern werden automatisch übernommen

  • Nennt ein Gast im Buchungschat unmissverständlich seine eigene Nummer („my WhatsApp number is +44 …", „Meine Handynummer ist +49 …"), steht sie jetzt ohne Klick als seine WhatsApp-Nummer beim Gast.
  • Übernommen wird nur, wenn beim Gast noch keine Nummer steht — eine vorhandene wird nie ersetzt. In allen anderen Fällen bleibt der bekannte Knopf „… als WhatsApp-Nummer übernehmen".
v0.99.808
28. Oktober 2026

Automatische Antworten gehen nur in einer geprüften Sprache raus

  • Eine automatische Antwort geht nur noch raus, wenn ihre Sprache eindeutig erkannt ist. Steht sie in einer Sprache, die Foyer nicht sicher prüfen kann, liegt sie als Vorschlag für das Team bereit.
v0.99.807
28. Oktober 2026

Kurze Gastfragen werden in der Sprache des Gastes beantwortet

  • Verrät eine kurze Gastnachricht („WLAN?“) keine Sprache, antwortet Foyer in der Sprache, die es für diesen Gast schon kennt — dieselbe wie bei Check-in-Anleitung und Gastportal. Englisch nur noch, we…
v0.99.806
28. Oktober 2026

Kurze Gastfragen werden auch ohne erkennbare Sprache beantwortet

  • Schreibt ein Gast nur Stichworte wie „Wifi pls“, aus denen sich keine Sprache ablesen lässt, antwortet Foyer jetzt automatisch auf Englisch, statt die fertige Antwort als Entwurf liegen zu lassen.
v0.99.805
28. Oktober 2026

Strengerer Schutz für Verbindungen nach außen

  • Kamera-Verbindungen, Webhooks und iCal-Abrufe erreichen nur noch öffentliche Adressen; Weiterleitungen auf interne Ziele werden nicht verfolgt.
  • Beim Speichern einer Kamera-Verbindung zeigt Foyer an, warum eine Adresse nicht angenommen wird.
  • Webhook-Empfänger, die mit einer Weiterleitung (3xx) antworten, gelten jetzt als fehlgeschlagene Zustellung — bitte die endgültige Adresse eintragen.
v0.99.804
28. Oktober 2026

Rechnungsliste lädt nach und erklärt die Suche

  • Die Anfragenliste unter Rechnungen endet nicht mehr still nach den ersten Einträgen: Ist eine Seite voll, steht darunter „Weitere laden".
  • Sucht man in der Sicht „Zu tun", sagt die Liste jetzt, dass die Suche auch erledigte Anfragen findet, und der Knopf „Zu tun" tritt zurück.
  • Der Verlauf eines Aufenthalts benennt Buchungsquellen nach derselben Liste wie die Rechnungsseite.
v0.99.803
27. Oktober 2026

Rechnungsliste als Arbeitsansicht

  • Die Anfragenliste unter Rechnungen öffnet jetzt mit „Zu tun": alles, was noch nicht erledigt ist, die älteste Abreise zuerst.
  • Eine Suche findet weiterhin jede Anfrage, auch erledigte — außer es ist gezielt ein einzelner Status gewählt.
  • Fehlt einer Anfrage die Rechnungsadresse, sagt die Zeile das jetzt ausdrücklich („Adresse fehlt").
  • Auf breiten Schirmen stehen die Spaltenköpfe einmal über der Liste statt in jeder Zeile.
v0.99.802
27. Oktober 2026

Direktangebot mit Zahlungslink per Mail

  • Zusätzliche Nächte lassen sich einem Gast direkt anbieten: Foyer hält das Zimmer 24 Stunden und schickt dem Gast eine Mail mit Zahlungslink.
  • Der Preis wird aus dem Preisplan vorgeschlagen und kann vor dem Versand angepasst werden.
  • Am Aufenthalt zeigt eine Statuszeile, ob das Angebot offen, bezahlt, abgelaufen oder der Versand fehlgeschlagen ist. Bei fehlgeschlagenem oder unklarem Versand lässt sich die Mail direkt dort erneut …
  • Dieselbe Funktion steht über die MCP-Schnittstelle bereit; das Versenden verlangt eine ausdrückliche Bestätigung.
v0.99.801
27. Oktober 2026

Rechnungs-Leiste zeigt, wenn eine Rechnung nach dem Formular neu ausgestellt wurde

  • Wartet eine Rechnung in der Versand-Warteschlange, weil der Gast nach der Abreise das Rechnungsformular ausgefüllt hat, steht das jetzt in der Zeile: „nach Formular neu ausgestellt — wird am … versch…
v0.99.800
27. Oktober 2026

Rechnungsliste — lesbarer Status, Namen und Buchungsquelle

  • Der Status einer Rechnungsanfrage steht jetzt auch im zugeklappten Auswahlfeld als Wort („In Bearbeitung") statt als interner Schlüssel.
  • Der Reiter für Anfragen ohne Rechnung heißt „Ohne Rechnung" und ist nicht mehr mit dem Filter „Offen" zu verwechseln.
  • Gastnamen, die eine Buchungsplattform ganz in Großbuchstaben liefert, erscheinen in gewohnter Schreibweise; die Buchungsquelle steht als Name da („Booking.com", „Direktbuchung", „Manuell").
  • Neuer, verständlicher Untertitel auf der Rechnungsseite.
v0.99.799
27. Oktober 2026

Rechnungs-Autopilot hält geplante Rechnungen eine Stunde statt vier

  • Der Rechnungs-Autopilot verschickt eine geplante Rechnung weiterhin frühestens 24 Stunden nach der Abreise. Wird sie erst später geplant, wartet sie jetzt mindestens eine Stunde statt vier. Bis dahin…
v0.99.798
27. Oktober 2026

Rechnung nach Formular-Abgabe geht über die Versand-Warteschlange

  • Füllt ein Gast das Rechnungsformular erst nach der Abreise aus, wird die neu ausgestellte Rechnung nicht mehr sofort verschickt. Sie wartet in der Versand-Warteschlange (frühestens 24 Stunden nach de…
v0.99.797
27. Oktober 2026

Rechnungs-Leiste kennt zwei früher verschickte Rechnungen

  • Zwei Rechnungen, die vor der Umstellung auf den Rechnungs-Autopiloten auf dem alten Weg verschickt wurden, zeigen in der Rechnungs-Leiste jetzt „versendet“.
v0.99.796
27. Oktober 2026

Rechnungsanfrage in der Seitenleiste nur noch einmal, auch wenn der Gast erneut fragt

  • Fragt ein Gast ein zweites Mal nach seiner Rechnung, zeigt die Seitenleiste des Gesprächs die Rechnungsanfrage nur noch einmal. Im Verlauf steht der Fortschritt weiter an jeder Nachricht, in der der …
  • Schickt ein Gast das Rechnungsformular erneut ab, nachdem die Rechnung mit seinen Angaben schon erstellt war, bleibt „Erstellt“ abgehakt.
v0.99.795
27. Oktober 2026

Rechnungsfortschritt zeigt eine Rechnung von vor dem Formular nicht mehr als erstellt

  • Ist eine Rechnung entstanden, bevor der Gast das Rechnungsformular ausgefüllt hat, zeigt der Rechnungsfortschritt sie nicht mehr als „Erstellt“ an. Sie trägt die Angaben aus dem Formular ja nicht. De…
v0.99.794
27. Oktober 2026

Rechnungsformular ein zweites Mal abgeschickt – das Team entscheidet über den Versand

  • Schickt ein Gast das Rechnungsformular ein zweites Mal ab, stellt Foyer die Rechnung nicht mehr selbst neu aus und verschickt sie nicht. Das Team bekommt einen Hinweis und entscheidet. Beim ersten Ab…
v0.99.793
27. Oktober 2026

Rechnung nach dem Rechnungsformular automatisch neu ausgestellt und verschickt

  • Schickt ein Gast nach dem Check-out das Rechnungsformular vollständig ab und gibt es schon eine Rechnung ohne diese Angaben, stellt Foyer die Rechnung sofort neu aus und schickt die neue Fassung an d…
  • Rechnungsdaten, die ein Gast nur im Chat nennt, bleiben ein Entwurf, den das Team freigibt.
v0.99.792
27. Oktober 2026

Automatische Antworten — die Schlüsselrückgabe beim Check-out geht raus, wenn sie im Hauswissen steht

  • Fragt ein Gast, was er beim Check-out tun muss, darf die automatische Antwort jetzt sagen, wo der Schlüssel hinkommt — aber nur, wenn das Haus genau das im Hauswissen als Check-out-Angabe hinterlegt …
  • Nennt die Antwort dabei einen Code, Ziffern, einen anderen Ort oder das Abholen eines Schlüssels, bleibt sie wie bisher ein Vorschlag fürs Team.
v0.99.791
26. Oktober 2026

Automatische Antworten — sehr kurze Nachrichten werden nicht mehr wegen der Sprache zurückgehalten

  • Sehr kurze Gastnachrichten (zwei, drei Wörter wie „For check out") werden nicht mehr nur wegen der Sprache zurückgehalten: es gilt die Sprache der fertigen Antwort, wenn die Nachricht des Gastes dazu…
  • Hat das Team während der Rückhol-Frist selbst geantwortet, steht am Vorschlag jetzt „Mensch antwortete" statt „Versand gescheitert".
v0.99.790
26. Oktober 2026

Entfernte Teammitglieder verlieren die Anmeldung sofort

  • Ein entferntes Teammitglied verliert seine Anmeldung jetzt sofort auf allen Wegen, auch bei Exporten, Fotos, Meldeschein und Zahlungseinrichtung. Bisher blieb die Anmeldung dort bis zu ihrem Ablauf g…
  • Anmeldungen laufen jetzt nach etwa einer Woche ohne Nutzung ab, statt 30 Tage nach der Anmeldung.
v0.99.789
26. Oktober 2026

KI-Hinweis auch unter automatisch gesendeten FAQ-Antworten

  • Ist eine automatisch gesendete FAQ-Antwort die erste automatische Antwort im Gespräch, steht darunter jetzt ebenfalls der Hinweis, dass der KI-Assistent sie verfasst hat — in der Sprache der Antwort.
  • Der Hinweis erscheint je Gespräch nur einmal, egal ob die erste automatische Antwort von der SI oder aus einer FAQ-Vorlage kam.
v0.99.788
26. Oktober 2026

Preiskalender — Monatsansicht scrollt in ganzen Tagen

  • Monatsansicht im Preiskalender: Beim seitlichen Scrollen rasten die Tage an der festen ersten Spalte ein, kein Tag steht mehr halb verdeckt darunter. Eine Kante zeigt, wo die Tage durchlaufen.
v0.99.787
26. Oktober 2026

Preiskalender — neue Ansicht Markt

  • Preiskalender: neue Ansicht Markt — eigene Preise neben Budget-Gruppe, Markt und jedem Wettbewerber; Nächte direkt auf Budget- oder Marktniveau setzen.
  • Preisstrategie: Budget-Gruppe wählen — die Häuser, mit denen sich das Haus preislich direkt vergleicht.
v0.99.786
25. Oktober 2026

Anmeldung per Link und Vorbereitung eigener Anmeldeadressen

  • Die Anmeldeseite bietet zusätzlich einen Anmeldelink per E-Mail an.
  • Nach der Anmeldung geht es zurück zu der Seite, von der aus man zur Anmeldung geschickt wurde.
  • Vorbereitet: getrennte Anmeldeadressen für Hotels und Apartment-Vermietung, mit eigenem App-Namen auf dem Handy.
v0.99.785
25. Oktober 2026

Tagesliste mit Check-in-Spalte und Wechsel um 9 Uhr, Zimmertausch zurücknehmen prüft die Belegung

  • In der Tagesliste zeigt eine neue Spalte „Check-in“ bei jeder Ankunft, ob der Gast schon da ist und seit wann. Ist er noch nicht da, steht dort die angegebene Ankunftszeit, fehlt auch die, ein ✗.
  • Die Tagesliste wechselt erst um 9 Uhr morgens auf den neuen Tag. Gäste, die spät in der Nacht noch anreisen, bleiben bis dahin sichtbar.
  • Wer einen Zimmertausch zurücknimmt, wird gewarnt, wenn im ursprünglich gebuchten Zimmer inzwischen ein anderer Gast liegt. Die Warnung nennt den Gast und, wenn möglich, ein freies Zimmer. Zurücknehme…
  • „Alle Tausche zurücksetzen“ lässt Tausche mit einem solchen Konflikt stehen und sagt, wie viele es sind.
v0.99.784
25. Oktober 2026

Eingehende Gastnachrichten werden eingeordnet — dringende zuerst, Handy-Hinweis bei Gast ohne Zugang oder Gefahr

  • Foyer kann jede eingehende Gastnachricht einordnen: Muss das Team etwas tun, um welches Thema geht es, wie dringend ist es. Dank, Gruß und automatische Antworten werden erkannt und rutschen im Postfa…
  • Im Postfach zeigt „Zuerst beantworten“ die dringendsten offenen Gespräche; Kategorie und Dringlichkeit stehen am Gespräch. Es wird nichts automatisch als erledigt markiert.
  • Steht ein Gast vor Ort und kommt nicht hinein, oder meldet er akute Gefahr, klingelt das Handy des Hauses über die bestehenden Benachrichtigungsregeln für Vorfälle.
  • Der Inhaber schaltet die Einordnung je Haus in den Einstellungen: aus, nur beobachten (nichts wird sichtbar) oder an. Standard ist aus.
v0.99.783
25. Oktober 2026

Gäste sehen ihre Buchungsnummer — auf der Bestätigung, in Nachrichten und auf dem Kontoauszug

  • Die Bestätigungsseite einer Direktbuchung zeigt die Buchungsnummer, die auch im Stripe-Dashboard und in Foyer steht — statt einer technischen Sitzungskennung. Das gilt auch für „Zahlung im Haus".
  • Neuer Platzhalter %booking_code% für Gästenachrichten; die Standard-Buchungsbestätigung für neue Häuser nennt die Buchungsnummer. Hat eine Buchung keine Nummer, entfällt die Zeile.
  • Bei Kartenzahlungen steht die Buchungsnummer auf dem Kontoauszug des Gastes, so findet er die Abbuchung wieder.
  • Buchungen über „Zahlung im Haus" und telefonische Reservierungen bekommen ihre Buchungsnummer gleich beim Anlegen.
v0.99.782
25. Oktober 2026

Zahlungen im Stripe-Dashboard tragen den Buchungscode

  • Im Stripe-Dashboard steht bei jeder Zahlung wieder, wofür sie war: „Booking", „Kaution" oder „Upsell" mit dem Buchungscode statt einer technischen Zahlungskennung.
  • Direktbuchungen und andere Foyer-eigene Buchungen bekommen einen kurzen Buchungscode, der in Foyer und in Stripe gleich lautet. Kanal-Buchungen behalten den Code ihres Kanals.
v0.99.781
25. Oktober 2026

Vermietung — Nebenkosten auch „optional zubuchbar“ mit Monatspreis

  • Für Strom, Wasser, Heizung und Internet gibt es neben „inklusive“ und „separat“ jetzt „optional, zubuchbar“ mit einem Preis pro Monat.
  • Die Wohnungsseite zeigt dafür eine eigene Zeile unter „Gut zu wissen“, z. B. „Internet kannst Du für … im Monat dazubuchen.“
v0.99.780
24. Oktober 2026

Rechnungsanfragen — die Antwort richtet sich danach, was der Gast schon getan hat

  • Bittet ein Gast um eine Rechnung, richtet sich die Antwort danach, was zwischen Gast und Rechnungsformular schon passiert ist: Link noch nicht gesendet, Link gesendet, Formular abgeschickt, Rechnung …
  • Eine Rechnung, die nach dem Check-out automatisch angelegt wurde, gilt nicht mehr als „Gast hat schon geantwortet“. Wer noch keinen Formularlink bekommen hat, bekommt ihn.
  • Nennt der Gast in seiner Nachricht Rechnungsdaten (Name, Firma, Anschrift, E-Mail, USt-IdNr.), trägt das Rechnungsformular sie vorbelegt ein. Der Gast prüft und bestätigt; aus Nachrichtendaten allein…
  • Hat der Gast das Formular mit anderen Angaben abgeschickt, als die Rechnung trägt, bereitet Foyer die neu ausgestellte Rechnung als Vorschlag vor. Ein Mensch gibt sie frei, vorher geht nichts hinaus.…
v0.99.779
24. Oktober 2026

Rechnungskarte im Gesprächsverlauf erscheint immer

  • Eine erkannte Rechnungsbitte des Gastes zeigt die Rechnungskarte im Verlauf, egal wann die Rechnungsanfrage angelegt wurde.
  • Auch ohne angelegte Rechnungsanfrage erscheint die Karte an der Gastnachricht, mit „Formular schicken“ als nächstem Schritt; ist die Rechnung des Aufenthalts schon erstellt oder versendet, zeigt die …
  • Eine Rechnungsanfrage ohne erkannte Gastnachricht steht weiter in der linken Leiste und hängt im Verlauf an der letzten Gastnachricht davor.
  • „Formular geschickt“ zählt auch, wenn die lange Formular-Adresse statt des Kurzlinks verschickt wurde.
  • Fragt der Gast ein zweites Mal, zeigt die neue Karte den Stand der bestehenden Anfrage; nach dem Versand der Rechnung fragt keine Karte mehr nach dem Formular.
v0.99.778
24. Oktober 2026

Unbeantwortete Anfragen laufen nach drei Tagen ab

  • Eine Kanalanfrage, die drei Tage lang weder angenommen noch abgelehnt wurde, wird in Foyer als abgelaufen geschlossen — überall, nicht nur im Kalender. Beim Kanal selbst ändert sich nichts; bucht der…
  • Solche Anfragen tragen das Etikett „Abgelaufen" statt „Storniert".
  • Der Belegungskalender blendet abgelaufene Anfragen auch bei stundenlang geöffneter Seite rechtzeitig aus.
v0.99.777
24. Oktober 2026

SI-Antworten: Hinweis auf den KI-Assistenten

  • Die erste Antwort, die die SI in einem Gespräch selbst sendet, sagt dem Gast in seiner Sprache, dass ein KI-Assistent sie verfasst hat (EU AI Act Art. 50).
v0.99.776
24. Oktober 2026

Kalender blendet liegengebliebene Anfragen aus

  • Eine Anfrage, die seit mehr als drei Tagen weder angenommen noch abgelehnt wurde, erscheint nicht mehr im Belegungskalender. Mit „Stornierte anzeigen“ ist sie weiter sichtbar.
v0.99.775
24. Oktober 2026

Gastportal zeigt nur die gültige Rechnung, Aufgabe für den Haustür-Code ohne Kontaktweg

  • Im Gastportal erscheint je Rechnungsnummer nur noch die gültige Fassung; ältere Fassungen bleiben über ihren Link erreichbar.
  • Erreicht die Nachricht mit dem Haustür-Code einen Gast nicht, weil keine E-Mail-Adresse hinterlegt ist, legt Foyer eine Aufgabe „Haustür-Code persönlich übergeben“ an — sofort beim gescheiterten Vers…
v0.99.774
24. Oktober 2026

Wohnungsseiten ruhiger — 2 × 2 Kacheln, lesbarer Titel auf dem Foto, Nebenkosten in einer Zeile, einheitliche Überschriften

  • Bei genau vier Wohnungen stehen die Kacheln 2 × 2 statt drei plus eine allein.
  • Die Überschrift auf dem Titelfoto bekommt einen kräftigeren Verlauf und ist auf hellen Fotos lesbar.
  • „Gut zu wissen“ fasst die Nebenkosten in eine Zeile zusammen („In der Miete enthalten: Strom, Wasser, Heizung und Internet.“).
  • Abschnittsüberschriften sind einheitlich halbfett.
v0.99.773
24. Oktober 2026

SI: Erstattungswünsche sicher erkannt, Versand prüft Freigaben erneut

  • Fragen wie „Können wir das Geld zurückbekommen?" gelten jetzt in allen Wegen als Erstattungswunsch und gehen ans Team.
  • Die SI pausiert erst an der harten Tageskappe, nicht schon an der weichen, die sie mit anderen KI-Funktionen teilt. Die Startseite unterscheidet beide: an der weichen pausieren nur die KI-Entwürfe.
  • Eine SI-Antwort, die nach der Rückhol-Frist rausgehen soll, wird nicht gesendet, wenn Sprache oder Haus inzwischen nicht mehr freigegeben sind — sie bleibt als Vorschlag stehen.
v0.99.772
24. Oktober 2026

Nacht-Bestätigung entfernt

  • Der Schalter „Nachts automatisch bestätigen" ist weg: Foyer schickt Gästen nachts keine automatische Eingangsbestätigung mehr. Einfache Fragen beantworten weiter der FAQ-Autoversand und die SI.
  • Die Servicezeit lässt sich weiter unter Nachrichten → Fragen einstellen; sie füllt die Platzhalter %service_from% und %service_until% in Texten an Gäste.
v0.99.771
24. Oktober 2026

Wohnungsseiten ohne „frei ab“-Datum; Fußzeile mit getrennten Menüpunkten und ohne Hotel-Zahlungssatz bei Vermietung

  • Wohnungskacheln und Wohnungsseite nennen kein „frei ab“-Datum mehr; ob ein Zeitraum passt, zeigt die Suche bzw. die Anfrage.
  • Die Menüpunkte der Fußzeile stehen untereinander, statt in Versalien zu einem Wort zusammenzulaufen (Buchungs- und Wohnungsseiten).
  • Auf Wohnungsseiten steht in der Fußzeile kein Satz mehr über Bezahlung und Stornierungsbedingungen „des Hotels“; die Datenschutzerklärung ist dort ein Menüpunkt.
v0.99.770
24. Oktober 2026

Direktbuchung beachtet Zimmertausch

  • Ein Zimmer, in das ein Gast von Hand umgelegt wurde, gilt auf der Buchungsseite, in der Zimmerwahl, beim Telefon-Assistenten und bei Ausweichzimmern jetzt als belegt — es kann nicht mehr ein zweites …
v0.99.769
23. Oktober 2026

Tagesliste zählt einen entfallenen Meldeschein als erledigt

  • In der Tagesliste steht der Meldeschein jetzt auch dann auf erledigt, wenn er entfällt, etwa weil alle Gäste Inländer sind. Bisher sahen diese Anreisen aus, als fehle etwas.
v0.99.768
23. Oktober 2026

Tagesliste springt um Mitternacht des Hauses um

  • Die Tagesliste (Anreisen, Abreisen, im Haus) zeigt nach Mitternacht sofort den neuen Tag. Bisher hing sie bis 2 Uhr nachts noch am Vortag.
v0.99.767
23. Oktober 2026

Gäste-Code direkt nach Zimmer und Datum abrufen

  • Den persönlichen Haustür-Code eines Gastes kann man jetzt über den Assistenten direkt nach Zimmer und Datum abrufen („Zimmer 23 heute“), ohne erst die Buchung zu suchen. Am Wechseltag gilt der anreis…
v0.99.766
23. Oktober 2026

Zimmer- und Wohnungsfotos laden in passender Größe; Wohnungsseite — Balkon und Terrasse unter „Wohnen“, genauere Hinweise, Lage für Screenreader benannt

  • Balkon, Dachterrasse und Garten stehen in der Ausstattung unter „Wohnen“ statt unter „Weiteres“; Merkmale wie „Nachttisch“ oder „Schwimmbad“ landen in der richtigen Gruppe.
  • Der Hinweis zu einem ungültigen Zeitraum nennt auch die Höchstdauer von 48 Monaten.
  • Der Abschnitt „Lage“ ist für Screenreader als Bereich benannt.
  • Die Fotogalerie der Zimmer- und Wohnungsseiten lädt jedes Foto in der Größe, in der es gezeigt wird — am Handy ein Bruchteil der bisherigen Datenmenge.
v0.99.765
23. Oktober 2026

Wohnungsseite für Monatsmieten — Kalender im Anfrage-Kasten, Gesamtmiete, Karte und Ausstattung in Gruppen

  • Der Anfrage-Kasten der Wohnungsseite hat denselben Kalender wie die Startseite. Als Auszug sind nur Tage zwischen Mindest- und Höchstdauer wählbar, und wer ohne Zeitraum sendet, erfährt, was fehlt.
  • Unter den Monatsmieten steht die Gesamtmiete für den gewählten Zeitraum.
  • Die Lage zeigt eine Karte, die erst auf Klick lädt; vorher wird keine Verbindung zu Google aufgebaut. Die Wege stehen als Liste darunter.
  • Die Ausstattung ist nach Wohnen, Schlafen, Küche, Bad, Technik & Haushalt und Weiteres gruppiert, jede Gruppe mit Symbol.
  • Fotos tragen einen Bildtext für Screenreader; ein ungültiger Zeitraum in der Adresse führt zu einem neutralen Hinweis.
v0.99.764
23. Oktober 2026

Wünsche ins Zimmer werden zur Aufgabe

  • Bittet ein Gast darum, dass jemand etwas ins Zimmer bringt – einen Ventilator, eine Decke, Kissen, Handtücher, einen Föhn –, schickt die KI-Antwort nicht mehr von selbst ab. Sie liegt als Vorschlag b…
  • Für den Wunsch entsteht gleich beim Eingang eine Aufgabe fürs Housekeeping, mit Zimmer und der Nachricht des Gastes.
  • Antworten, die zusagen, dass ein Kollege etwas bringt oder der Wunsch ans Team geht, werden ebenfalls angehalten.
v0.99.763
23. Oktober 2026

WhatsApp-Anleitung kommt auch nach, wenn der Gast seine Nummer erst später einträgt

  • Hatte ein Gast beim Versand der Check-in-Anleitung noch gar keine Telefonnummer hinterlegt und trägt sie danach im Portal ein, bekommt er die Anleitung jetzt ebenfalls sofort per WhatsApp. Trägt der …
v0.99.762
23. Oktober 2026

Rechnung kommt sofort, auch wenn noch eine andere Frage offen ist

  • Meldet ein Gast, dass seine Rechnung nicht angekommen ist, schickt Foyer sie sofort noch einmal — auch wenn im selben Gespräch noch eine ältere Frage auf eine Antwort wartet. Die Antwort im Chat blei…
  • Auf ein reines „Danke" schickt Foyer nachts keine Bestätigung mehr.
v0.99.761
23. Oktober 2026

Gästeportal bleibt nach dem Meldeschein offen

  • Nach dem Absenden des Meldescheins sieht der Gast wieder das ganze Gästeportal: Ankunftszeit ändern, späten Check-out buchen, WLAN und Hausinfos bleiben erreichbar. Der Meldeschein steht als erledigt…
  • Ein ungültiger Link sagt dem Gast jetzt, wie er Hilfe bekommt: einfach auf die Nachricht mit dem Link antworten.
v0.99.760
23. Oktober 2026

Wohnen auf Zeit — Hinweis auf das Widerrufsrecht im Angebot

  • Das Angebot weist vor dem Bezahlen darauf hin, dass die Mietbedingungen des Vermieters auch die Widerrufsbelehrung für Verbraucher enthalten.
v0.99.759
23. Oktober 2026

Kachel „Gesparte Provision“ bei den Direktbuchungen

  • Die Insights der Direktbuchungen zeigen jetzt, wie viel Provision die eigenen Buchungen gespart haben. Gerechnet wird mit dem tatsächlichen Durchschnittssatz, den Booking.com und Airbnb in den letzte…
v0.99.758
23. Oktober 2026

Wohnen auf Zeit — freie Daten und eine neue Wohnungsseite

  • Einzug und Auszug sind frei wählbar, auf der Startseite wie im Anfrageformular; abgerechnet wird je angefangenem Kalendermonat.
  • Die Wohnungsseite zeigt die Fotos als Galerie mit Vollansicht (Wischen, Pfeiltasten, Escape) statt untereinander.
  • Die wichtigsten Eckdaten stehen in einer Zeile unter dem Titel; lange Beschreibungen und Ausstattungslisten klappen hinter „Mehr anzeigen“ zusammen.
  • Ein neuer Abschnitt erklärt mit einem Rechenbeispiel, wie die Miete berechnet wird.
  • Auf dem Telefon führt eine Leiste unten mit Monatsmiete und „Anfragen“ direkt zum Formular.
v0.99.757
23. Oktober 2026

Kartenzahlungen der Buchungsseite im Filter „Direkt“

  • Per Karte bezahlte Buchungen über die Buchungsseite tragen jetzt ebenfalls den Kanal „foyer-direct“. Damit finden der Postfach-Filter „Direkt“ und Nachrichtenregeln für Direktbuchungen sie wie die Bu…
v0.99.756
23. Oktober 2026

Wohnen auf Zeit — ein Feld für Einzug und Auszug

  • Auf der Startseite der Wohnungen wählen Gäste Einzug und Auszug jetzt in einem Feld mit Kalender über zwei Monate, statt Datum und Mietdauer getrennt anzugeben.
  • Als Auszug lassen sich nur Tage wählen, die volle Mietmonate ergeben; die Mindestdauer steht im Kalender.
v0.99.755
23. Oktober 2026

Eigener Kanal für Buchungen der Buchungsseite

  • Buchungen über Foyers eigene Buchungsseite tragen jetzt einen eigenen Kanal („foyer-direct“). Sie heißen in Nachrichten weiterhin „Direktbuchung“, und der Postfach-Filter „Direkt“ findet sie mit.
  • Direktbuchungen, die über Hospitable kamen, stehen in Kalender, Karte und Buchungsseite jetzt als „Hospitable-Direktbuchung“. So sind sie von den eigenen Direktbuchungen zu unterscheiden.
v0.99.754
23. Oktober 2026

Nachrichten ohne erkennbare Frage landen beim Team statt als offene Frage im Knowledge Hub

  • Ist für die SI unklar, was ein Gast möchte (etwa bei „Guten Morgen" oder einer Abwesenheitsnotiz), legt sie keine offene Frage im Knowledge Hub mehr an. Die Nachricht erscheint beim Team. Echte Wisse…
v0.99.753
23. Oktober 2026

Sicherheitsupdate des Web-Frameworks

  • Das Web-Framework, auf dem Foyer läuft, ist auf den neuesten Stand gebracht; damit sind mehrere vom Hersteller gemeldete Sicherheitslücken geschlossen.
v0.99.752
23. Oktober 2026

Angefochtene Kartenzahlungen erscheinen als Aufgabe

  • Ficht ein Gast eine Kartenzahlung an, legt Foyer dem Haus eine Aufgabe mit der Frist für die Beweise an — und eine zweite, falls die Anfechtung verloren geht. Geld und Buchung bleiben unverändert.
v0.99.751
23. Oktober 2026

AGB- und Impressum-Link auch in FAQ-Antworten

  • Die Platzhalter für den AGB- und den Impressum-Link funktionieren jetzt auch in automatischen FAQ-Antworten, nicht nur in geplanten Nachrichten.
v0.99.750
23. Oktober 2026

Klare Meldung, wenn ein Stripe-Konto schon verbunden ist

  • Wer beim Verbinden mit Stripe ein Konto wählt, das schon mit einem anderen Haus verbunden ist, bekommt jetzt eine verständliche Meldung, wie es weitergeht.
v0.99.749
23. Oktober 2026

SI beantwortet „Bin da" nicht mehr selbst und kennt bei Code-Fragen den echten Versandstand

  • Schreibt ein Gast nur „Bin da" oder „Bin unterwegs" ohne Frage, antwortet die SI nicht selbst. Die Nachricht landet beim Team.
  • Fragt ein Gast nach seinem Zugangscode oder dem Check-in-Ablauf, kennt die SI den echten Stand: wann der Code gesendet wurde und wann er automatisch kommt. „Code nicht erhalten" mit geplantem Versand…
v0.99.748
23. Oktober 2026

Direktbuchung — Online-Check-in direkt nach der Buchung, Direktanteil in den Insights

  • Nach einer Direktbuchung führt ein Knopf auf der Bestätigungsseite gleich in den Online-Check-in. Wer kurzfristig bucht, muss nicht mehr auf die Vorab-Mail warten.
  • Hat ein Gast „alle Reisenden sind Inländer“ angegeben, Telefonnummer oder Buchungsland deuten aber aufs Ausland, zeigt die Buchung einen Hinweis zum Nachfragen. Die Angabe des Gastes bleibt bestehen.
  • „Am Anreisetag gebucht“ richtet sich jetzt nach der Uhrzeit des Hauses statt nach UTC.
  • Die Insights der Buchungsseite zeigen den Direktanteil, also den Anteil der Direktbuchungen an allen Buchungen im Zeitraum.
v0.99.747
23. Oktober 2026

Nach dem Rechnungsversand bekommt der Gast einen Hinweis im Chat

  • Geht eine Rechnung per E-Mail an den Gast – automatisch oder per Knopf –, bekommt er kurz danach im Buchungs-Chat einen Hinweis: welche Rechnung an welche Adresse ging, bitte auch im Spam-Ordner nach…
  • Der Text lässt sich wie die übrigen Rechnungsantworten im Fragen-Editor anpassen, in allen Sprachen der Rechnungsvorlage.
v0.99.746
23. Oktober 2026

SI-Antworten zu Zugangscodes und Schlüsseln gehen nie automatisch raus

  • Erwähnt eine Antwort der SI Zugangscodes oder Schlüssel, verschickt die SI sie nicht selbst, sondern legt sie dem Team als Vorschlag vor. Die geplanten Nachrichten mit den Codes laufen unverändert we…
v0.99.745
22. Oktober 2026

Links auf AGB und Impressum in Gästenachrichten

  • Nachrichten an Gäste: Die neuen Platzhalter %agb_url% und %impressum_url% setzen Links auf AGB und Impressum Deiner Buchungsseite ein — etwa in die Buchungsbestätigung. Solange ein Text nicht veröffe…
  • Englische Oberfläche: Der Hinweis zu fehlenden AGB im Webseiten-Editor ist klarer formuliert.
v0.99.744
22. Oktober 2026

Rechnungsversand im Gesprächsverlauf sichtbar, Antwort nennt den Versandtermin

  • Im Gesprächsverlauf eines Gastes steht jetzt, wann welche Rechnung an welche Adresse ging — automatisch, von Hand oder auf Nachfrage des Gastes. Die Zeile sieht nur das Team, nicht der Gast.
  • Fragt ein Gast nach seiner Rechnung, während der Rechnungs-Autopilot sie noch zurückhält, nennt die Antwort den geplanten Versandtermin, statt die Rechnung vorzeitig zu schicken. Der Text lässt sich …
  • Bleibt eine geplante Rechnung länger als zwei Stunden nach ihrem Termin liegen, meldet Foyer das einmal per E-Mail.
v0.99.743
22. Oktober 2026

SI-Antworten — Prüfnetz gegen ungefragte Extras und Zusagen, Spanisch freigegeben

  • Bevor die SI selbst antwortet, prüft Foyer die Antwort jetzt zusätzlich: nennt sie einen Preis oder ein Extra, nach dem der Gast nicht gefragt hat, verwechselt sie früher und später oder sagt sie zu,…
  • Bei einer bloßen Ankunfts- oder Abreisezeit bestätigt die SI nur noch und nennt die regulären Zeiten, ohne „falls Sie früher kommen möchten …“.
  • Ist unklar, was der Gast meint (z. B. eine Uhrzeit ohne Bezug), wird die Antwort zum Vorschlag.
  • Die SI antwortet jetzt auch auf Spanisch selbst.
v0.99.742
22. Oktober 2026

Mietbedingungen vor dem Bezahlen verlinkt

  • Die Angebotsseite für Mietinteressenten verweist vor dem Bezahlen auf die Mietbedingungen des Vermieters, sobald sie veröffentlicht sind.
v0.99.741
22. Oktober 2026

Gästeportal und Buchungsansicht — kleine Korrekturen nach der ersten Direktbuchung

  • Antwortet ein Gast im Online-Check-in auf „Haben Sie besondere Wünsche?“ mit „nein“, „keine“ oder „no thanks“, entsteht keine Aufgabe mehr.
  • Die Buchungsansicht zeigt die Zahl der Nächte jetzt auch, wenn der Kanal sie nicht mitliefert.
  • Buchungen über die eigene Buchungsseite tragen in der Buchungsansicht ihren Buchungszeitpunkt; Last-Minute-Buchungen am Anreisetag werden als solche erkannt.
  • Buchungen über die eigene Buchungsseite haben im Kalender eine eigene Farbe — Schwarz mit Foyer-Gold, mit eigenem Eintrag in der Legende — und heißen in Karte und Buchungsansicht „Foyer-Buchung“.
  • Die lange Zahlungsnummer solcher Buchungen erscheint in der Karte gekürzt; kopiert wird weiterhin die vollständige.
v0.99.740
22. Oktober 2026

Rechnungs-Autopilot verschickt frühestens 24 Stunden nach der Abreise

  • Der Rechnungs-Autopilot verschickt eine Rechnung jetzt frühestens 24 Stunden nach der Abreise des Gastes statt zu einer festen Uhrzeit am Abend. Bis dahin lässt sich der Versand weiterhin stoppen; ko…
v0.99.739
22. Oktober 2026

Möblierte Wohnungen auf Zeit direkt vermieten

  • Neue Mandantenart für die Vermietung möblierter Wohnungen auf Zeit: Monatsmiete mit Mindestdauer, Anfrage durch den Gast, Angebot durch den Vermieter, Bezahlung über Stripe.
  • Eigene Gastseiten je Wohnung mit Belegungsübersicht, Anfrageformular, Angebotsseite und Datenschutzseite.
  • Belegung gleicht sich per iCal in beide Richtungen mit Vermietungsportalen ab.
  • Alle Funktionen stehen auch über MCP bereit.
  • Aufrufe der Datenschutzseite werden wie Impressum und AGB gezählt.
v0.99.738
22. Oktober 2026

SI-Antworten — eigene Sprachfreigabe, keine ungefragten Extras, keine Zusagen

  • In welchen Sprachen die SI selbst antwortet, wird jetzt getrennt von den Vorlagen-Antworten freigegeben. Zunächst Deutsch, Englisch und Niederländisch; weitere Sprachen erst, wenn sie im Prüfstand sa…
  • Die SI bietet kostenpflichtige Extras (Early-Check-in, Late-Check-out, Handtücher, Parken …) nur noch an, wenn der Gast danach fragt.
  • Sie verwechselt eine späte Anreise nicht mehr mit Early-Check-in und eine frühe Abreise nicht mit Late-Check-out.
  • Sie sagt nicht mehr zu, etwas sei „schon für Sie erledigt“ (z. B. die Betten) — sie nennt, was möglich ist, den Rest regelt das Team.
v0.99.737
22. Oktober 2026

Hauswissen — Hinweis bei übernommener Team-Antwort

  • Wird das Formular „Hotel-Fakt hinzufügen“ aus einem Lernvorschlag mit einer früheren Antwort des Teams vorbelegt, steht am Wertfeld jetzt ein Hinweis, vor dem Speichern zu prüfen, ob Zahlen und Zeite…
v0.99.736
22. Oktober 2026

SI-Antworten — genauere Rückhol-Frist und weniger ungefragte Angebote

  • Sendet das Team einen geplanten SI-Entwurf selbst, geht er nicht ein zweites Mal raus; am Gespräch steht „Mensch antwortete“.
  • Liegt im Gespräch inzwischen ein neuerer Entwurf vor, wird der ältere geplante nicht mehr automatisch gesendet.
  • Hat sich der automatische Versand um mehr als zehn Minuten verzögert, sendet die SI nicht mehr selbst — der Entwurf bleibt als Vorschlag mit dem Grund „zu spät“. Die Karte am Gespräch aktualisiert si…
  • Nennt ein Gast nur seine Ankunftszeit, bestätigt die SI sie und nennt bei Bedarf die regulären Check-in-Zeiten, bietet aber keinen kostenpflichtigen Early- oder Late-Check-in mehr ungefragt an.
  • „Danke, können wir das Gepäck dalassen“ (eine Frage ohne Fragezeichen) wird im Postfach nicht mehr automatisch als erledigt abgelegt.
  • Schreibt ein Gast „Code kam nicht“ oder „no code yet“, erkennt die SI das jetzt auch ohne Wort wie „erhalten“ als Frage nach dem Zugangscode.
v0.99.735
22. Oktober 2026

AGB-Hinweis vor dem Bezahlen, Rechtsseiten im Sitemap

  • Buchungsseite: Hat das Haus AGB veröffentlicht, steht direkt über dem Bezahlknopf „Mit Deiner Buchung akzeptierst Du die AGB von …" mit Link — beim Bezahlen per Karte wie beim Zahlen im Hotel.
  • Das Sitemap der Gast-Adresse und der eigenen Domain nennt Impressum und AGB des Hauses, sobald sie veröffentlicht sind.
  • Webseiten-Editor: Der Hinweis oben meldet jetzt auch fehlende oder noch nicht veröffentlichte AGB.
v0.99.734
22. Oktober 2026

Putzliste: Aufklapp-Zeichen und klarere Meldung bei Überlast

  • Jede Etage der Putzliste zeigt ein Aufklapp-Zeichen, damit eine zugeklappte Etage als antippbar erkennbar ist.
  • Kommen kurzzeitig zu viele Aufrufe aus einem Netz, sagt die Putzliste „Bitte gleich nochmal versuchen" statt den Link für ungültig zu erklären.
v0.99.733
22. Oktober 2026

Hinweis im Editor, solange die Buchungsseite kein Impressum hat

  • Der Editor der Buchungsseite zeigt oben einen Hinweis, solange Gäste kein Impressum sehen: wenn noch keins eingetragen ist oder es nur im Entwurf steht. Ein Link führt direkt zum Abschnitt „Impressum…
v0.99.732
22. Oktober 2026

Putzliste mit Etagenfortschritt, QR-Code und täglichem Abgleich

  • Jede Etage der Putzliste zeigt ihren Fortschritt („2/3 fertig"). Eine Etage, die beim Öffnen schon fertig ist, steht zugeklappt.
  • Ein neuer Reinigungslink erscheint in den Einstellungen mit QR-Code zum Abscannen.
  • Jeden Morgen gleicht Foyer die Putzliste mit den Abreisen des Tages ab und trägt fehlende Auszugsreinigungen nach.
  • Das Abreisedatum zählt in der Zeitzone des Hauses. Wird eine Buchung verschoben, bleibt eine vorherige Sichtkontrolle samt Notiz erhalten.
  • Die Putzliste und ihr Kurzlink sind gegen massenhaftes Durchprobieren gebremst.
v0.99.731
22. Oktober 2026

Impressum und AGB des Hauses auf der eigenen Buchungsseite

  • Im Editor der Buchungsseite gibt es zwei neue Felder für Dein Impressum und Deine AGB. Sobald sie veröffentlicht sind, stehen sie unter Deiner Gast-Adresse (…foyer.rentals) und Deiner eigenen Domain …
  • Die Website und die Zahlungseinstellungen nennen die richtige Adresse der Buchungsseite (<dein-haus>.foyer.rentals) statt einer Adresse, die es nicht gibt.
v0.99.730
22. Oktober 2026

Reinigungslinks noch kürzer

  • Kurze Reinigungslinks lauten jetzt getfoyer.app/r/… statt getfoyer.app/reinigung/…. Schon verschickte Links funktionieren weiter.
v0.99.729
22. Oktober 2026

Putzliste wieder nach Etage, Reinigungslinks mit kurzem Code

  • Die Putzliste für das Reinigungsteam ist wieder nach Etage gegliedert. Erledigte Zimmer bleiben abgeblendet an ihrem Platz, die Anreisezeit steht weiter in der Zeile.
  • Reinigungslinks gibt es jetzt in kurz: zwölf Zeichen statt vierundsechzig. Neue und erneuerte Links sind gleich kurz, ein bestehender Link bekommt seinen Kurzlink per Knopf in den Einstellungen und b…
v0.99.728
21. Oktober 2026

Die KI beantwortet Gastfragen, die keine feste Antwort haben — aus dem Hauswissen

  • Erkennt keine feste FAQ-Antwort eine Gastfrage, schreibt eine KI eine Antwort aus dem Hauswissen (Einstellungen → Hotel-Info). Je Haus schaltbar: aus, nur als Vorschlag im Postfach, oder automatisch …
  • Stornierung, Erstattung, Umbuchung, Zugeständnisse, Beschwerden, Recht und Gesundheit beantwortet die KI nie selbst — solche Nachrichten gehen an das Team.
  • Fehlt das Wissen für eine Antwort, schreibt die KI nichts und meldet die Frage als offene Wissenslücke unter „Verbesserungen", mit einem Knopf, der den Eintrag in der Hotel-Info vorbereitet.
  • Ein zweites Netz prüft jede Antwort vor dem Senden auf Zusagen und Angaben, die nicht im Hauswissen stehen; unsichere Antworten bleiben ein Vorschlag mit Markierung.
  • Im Postfach lässt sich jede KI-Antwort mit 👍/👎 bewerten. Der tägliche Lernlauf wertet aus, ob die Antworten geholfen haben, und zeigt je Thema die Trefferquote.
v0.99.727
21. Oktober 2026

Verbesserungen melden Gespräche, die von Hand erledigt werden mussten

  • Der tägliche Lernlauf zeigt auf „Verbesserungen", welche Gespräche jemand von Hand auf „erledigt" setzen musste, obwohl niemand geantwortet hatte — mit Link zu jedem Gespräch. So lässt sich die autom…
v0.99.726
21. Oktober 2026

Putzliste macht aus einer Sichtkontrolle die fällige Reinigung

  • Kommt ein Zimmer erst im Lauf des Abreisetags zu einer Buchung hinzu, macht die Putzliste aus der schon angelegten Sichtkontrolle die Auszugsreinigung, samt Notiz und Zuweisung. Eine begonnene Sichtk…
v0.99.725
21. Oktober 2026

Entwicklungsprozess — reine Dokumentation wartet nicht mehr auf laufende Prüfungen

  • Interne Auslieferung: Reine Dokumentationsänderungen gehen in etwa einer Minute durch, auch während eine Codeprüfung läuft, und verlängern diese nicht mehr.
v0.99.724
21. Oktober 2026

Betriebsmessung erkennt Speicherbereinigung

  • Die Betriebsmessung erfasst jetzt auch die Pausen der Speicherbereinigung, damit kurze Hänger eindeutig einer Ursache zugeordnet werden können.
v0.99.723
21. Oktober 2026

Ein längerer Dank zum Abschluss setzt das Gespräch auf „Erledigt“

  • Bedankt sich ein Gast zum Abschluss in ein, zwei Sätzen („Hab’s gefunden, danke für die Hilfe“), wird das Gespräch von selbst auf „Erledigt“ gesetzt. Enthält die Nachricht eine Frage, eine Bitte, ein…
v0.99.722
21. Oktober 2026

Putzliste kennt alle Zimmer einer Mehrzimmerbuchung

  • Bei Mehrzimmerbuchungen aus den Buchungsportalen bekommt jetzt jedes gebuchte Zimmer seine Auszugsreinigung. Bisher stand nur das erste Zimmer auf der Putzliste; die übrigen galten als leer und bekam…
  • Wird ein einzelnes Zimmer einer solchen Buchung storniert, verschwindet seine offene Reinigung von selbst.
v0.99.721
21. Oktober 2026

Zahlungsereignisse der Häuser ohne Gastdaten gespeichert

  • Ereignisse zu Gastzahlungen aus den Stripe-Konten der Häuser werden nur noch mit Kennung und Art gespeichert, nicht mehr mit Name, E-Mail, Telefon oder Anschrift des Gastes (Datensparsamkeit).
v0.99.720
21. Oktober 2026

Aus einem gemeldeten Mangel wird garantiert nur eine Aufgabe

  • Meldet ein Gast einen Mangel, entsteht auch dann nur eine Aufgabe, wenn zwei Prüfungen gleichzeitig laufen.
  • Jede Aufgabe aus einem Vorfall weiß jetzt, aus welchem Vorfall sie stammt.
v0.99.719
21. Oktober 2026

Gast hängt im Online-Check-in fest

  • Die Rezeption sieht am Aufenthalt, wenn ein Gast im Online-Check-in an einem Schritt scheitert oder abbricht.
v0.99.718
21. Oktober 2026

Entwicklungsprozess — mehr geprüfte Änderungen fahren gemeinsam durch die Prüfung

  • Interne Auslieferung: Mehr wartende Änderungen werden gemeinsam geprüft, und reine Dokumentation fährt zusätzlich mit; das gemeinsame Prüfen schaltet sich nicht mehr wegen einzelner Ausreißer ab.
v0.99.717
21. Oktober 2026

Bezahlte Extras werden täglich gegen Stripe abgeglichen

  • Hat ein Gast ein Extra online bezahlt, die Zahlungsbestätigung von Stripe aber Foyer nicht erreicht, holt ein täglicher Abgleich die Buchung nach — mit denselben Folgen wie sonst (Zeiten, Erinnerunge…
  • Ist ein Extra als bezahlt gebucht, Stripe kennt die Zahlung aber nicht, wird das gemeldet statt still geändert.
v0.99.716
21. Oktober 2026

Feste Löschfristen für Protokolle mit Gastdaten

  • Technische Protokolle mit Gastdaten werden jetzt nach festen Fristen gelöscht: Kanal-Zustellungen nach 180 Tagen, ausgehende Webhooks und Kanal-Abgleiche nach 90 Tagen. Was für Rechnungen und Buchung…
  • Zahlungsereignisse aus den Stripe-Konten der Häuser behalten nach der Verarbeitung keine Gastdaten mehr und werden nach 30 Tagen gelöscht; der Haus-Export enthält sie jetzt.
v0.99.715
21. Oktober 2026

Datenschutz — Unterauftragsverarbeiter präziser ausgewiesen, TTLock gesperrt

  • AVV Anlage 2 führt Groq und Mistral unter „Stets eingesetzt“, weil Abschrift von Sprachnachrichten und Texterkennung eingehender Dokumente ohne Schalter je Haus laufen.
  • SMS-Versand über Twilio: Datenschutzerklärung und AVV nennen die Verarbeitung in den USA auf Grundlage von Standardvertragsklauseln.
  • Die TTLock-Anbindung ist gesperrt, bis eine Übermittlungsgrundlage für China belegt ist; eine neue Verbindung richtet nur Foyer selbst ein. TTLock steht deshalb nicht mehr in AVV und Datenschutzerklä…
v0.99.714
21. Oktober 2026

Freie Zimmer am Abreisetag werden richtig gemeldet

  • Reist ein Gast am Morgen ab, zählt sein Zimmer für den Telefonassistenten und die Verfügbarkeitsabfrage ab diesem Tag als frei — vorher hieß es für Anfragen ab dem Abreisetag zu früh „ausgebucht“.
v0.99.713
21. Oktober 2026

Nachrichten nennen die gebuchte Check-in- und Check-out-Zeit

  • Nachrichtenvorlagen können die gebuchte Check-in- und Check-out-Zeit des Gastes einsetzen: %booked_check_in_from% und %booked_check_out_until%. Ein bezahlter früher Check-in oder später Check-out ste…
v0.99.712
21. Oktober 2026

Kürzere Unterbrechung bei Updates

  • Bei einem Update beendet sich der Server geordnet: laufende Hintergrundaufgaben dürfen fertig werden, statt mitten drin abgebrochen zu werden, und die Live-Aktualisierung im Postfach verbindet sich d…
v0.99.711
21. Oktober 2026

Postfach räumt sich selbst auf, Mängel werden Aufgaben, kurze Fragen in der richtigen Sprache

  • Nachrichten, auf die niemand antworten muss (ein Dank, eine Abreisemeldung, eine Abwesenheitsnotiz), setzen das Gespräch von selbst auf „Erledigt“. Schreibt der Gast danach wieder, ist es von selbst …
  • Meldet ein Gast einen technischen Mangel, Schmutz oder Ungeziefer im Zimmer, entsteht sofort eine Aufgabe für Haustechnik bzw. Housekeeping, mit Zimmer, Zitat und Fotos des Gastes. Pro Vorfall entste…
  • Kurze Fragen wie „Wi-Fi password?“ werden in der Sprache des Gastes beantwortet: Verrät die Nachricht selbst nichts, gelten seine früheren Nachrichten, danach die Sprache der Buchung.
  • Die FAQ-Erkennung behandelt „Wi-Fi“ und „WiFi“ gleich.
v0.99.709
21. Oktober 2026

Rechnungsfragen werden nach dem Stand der Buchung beantwortet

  • Fragt ein Gast nach seiner Rechnung, prüft Foyer zuerst den Stand der Buchung: Liegt die Rechnung schon vor, schickt Foyer sie selbst noch einmal per E-Mail und nennt Datum und Uhrzeit des ersten Ver…
  • Liegen die Rechnungsdaten schon vor, bestätigt Foyer das, statt das Formular noch einmal zu schicken.
  • Neue E-Mail-Adressen und Änderungswünsche kommen als Vorschlag zur Freigabe; bei der Freigabe einer neuen Adresse wird sie gespeichert und die Rechnung dorthin gesendet.
  • Dieselbe Rechnung geht höchstens einmal in 24 Stunden an dieselbe Adresse; der Knopf „Rechnung senden" fragt vorher nach.
  • Vorschläge lassen sich bearbeiten, ohne sie zu senden.
  • Die Antworttexte gibt es in 13 Sprachen.
v0.99.708
21. Oktober 2026

Abgelehnte Zahlungen bei Extras werden sichtbar

  • Wird beim Bezahlen eines Extras (etwa früher Check-in) die Karte abgelehnt, steht das jetzt mit Grund im Änderungsverlauf der Buchung. So lässt sich ein Abbruch von einer Ablehnung unterscheiden.
v0.99.707
21. Oktober 2026

Hausordnung auf Englisch

  • Englischsprachige Gäste lesen und unterschreiben die Hausordnung im Gästeportal auf Englisch; auch die englische Zimmerseite zeigt sie auf Englisch. Maßgeblich bleibt die deutsche Fassung.
v0.99.706
21. Oktober 2026

Fehler im Browser werden wieder gemeldet

  • Fehler, die bei Gästen oder im Betrieb direkt im Browser auftreten (Buchungsseite, Gastportal, Betreiber-Oberfläche), erreichen jetzt die Fehlerüberwachung — ohne Sitzungsaufzeichnung, personenbezoge…
v0.99.705
21. Oktober 2026

Kein Punkt „Online-Check-in nicht ausgefüllt“ mehr, Fenster am Zeitstrahl bedienbarer

  • Unter „Auf einen Blick“ erscheint „Online-Check-in nicht ausgefüllt“ nicht mehr als offener Punkt — viele Gäste machen ihn nicht; den Stand zeigt das Fenster am Punkt „Check-in-Portal“.
  • Es ist immer nur ein Fenster am Zeitstrahl offen; mit der Tastatur springt der Fokus hinein und nach Escape zurück.
v0.99.704
21. Oktober 2026

Betriebsmessung je Minute

  • Foyer misst seine eigene Laufzeit genauer (Speicher, Reaktionszeit), damit Verbesserungen und Probleme nach Updates belegbar sind.
v0.99.703
21. Oktober 2026

„Auf einen Blick“ ohne Doppelungen zum Zeitstrahl

  • Unter dem Zeitstrahl stehen nur noch Angaben, die der Strahl nicht zeigt (Buchung, Preis, Extras, erwartete Ankunft). „Angekommen …“, „Haustür-Code eingerichtet“, „Der Online-Check-in fehlt noch“ und…
v0.99.702
21. Oktober 2026

Laufzeit auf Node 26

  • Foyer läuft auf Node 26 — Sicherheitsupdates bis April 2029.
v0.99.701
21. Oktober 2026

Zeitstrahl ohne eigene Zeile „Ziel erreicht“

  • Der Zeitstrahl „Auf einen Blick“ zeigt keine eigene Zeile „Ziel erreicht“ mehr — der grüne Haken bei „Code zugestellt“ sagt dasselbe und spart Platz.
v0.99.700
21. Oktober 2026

Zeitstrahl mit Klick-Fenstern und neuer Station „Eingecheckt“

  • „Auf einen Blick“ zeigt jetzt Buchung → Bestätigung → Portal → Anleitung & Code → Eingecheckt — der letzte Punkt wird mit der ersten Öffnung mit dem persönlichen Code grün, mit Uhrzeit.
  • Jeder Punkt ist anklickbar: Nachricht im Verlauf zeigen, erneut oder jetzt senden (mit Rückfrage), Stand im Check-in-Portal und Link kopieren, Code anzeigen, Code übergeben.
  • Ging mit der Anleitung nur der allgemeine Haustür-Code raus, steht dort „nur allgemeiner Code“.
  • Gründe erscheinen als Satz („nicht geplant – die Buchung kam erst danach“) statt als Kürzel.
  • Das Fenster mit den Rechnungsdaten schließt auch mit Escape oder einem Klick daneben.
v0.99.699
21. Oktober 2026

Storno- und Erstattungswünsche gehen immer ans Team

  • Schreibt ein Gast, dass er stornieren, absagen oder Geld zurück möchte, antwortet Foyer nicht mehr automatisch mit einer Vorlage — die Nachricht landet beim Team. Das gilt in acht Sprachen und auch f…
  • Zitierte frühere Nachrichten, Signaturzeilen, verneinte Formulierungen („keine Stornierung nötig") und automatische Eingangsbestätigungen lösen das nicht aus.
v0.99.698
21. Oktober 2026

KI-Antwortentwürfe treffen Sprache und Uhrzeit, sagen nichts zu Storno zu

  • KI-Antwortentwürfe antworten in der Sprache, in der der Gast selbst schreibt, und kennen Ortszeit und Wochentag des Hauses — Öffnungszeiten der Rezeption werden gegen die aktuelle Zeit geprüft.
  • Zu Stornierungen und Erstattungen entsteht kein KI-Entwurf mehr; die Nachricht geht an das Team.
  • Frühere Team-Nachrichten, an denen die KI den Ton lernt, gehen ohne Namen und Zugangscodes anderer Gäste ins Modell.
  • KI-Entwürfe kommen als Klartext ohne Markdown-Zeichen und ohne interne Zimmerkennungen.
v0.99.697
21. Oktober 2026

Ablauf zeigt keine überflüssigen Erinnerungen mehr

  • Erinnerungen, deren Ziel schon erreicht ist — der Gast hat den Online-Check-in erledigt oder schon bewertet —, erscheinen im Ablauf der Buchung nicht mehr als „übersprungen“. Andere übersprungene Nac…
v0.99.696
21. Oktober 2026

Check-in-Portal im Zeitstrahl auch abgehakt, wenn der Link in einer anderen Nachricht kam

  • „Check-in-Portal“ wird grün, sobald der Gast seinen Portal-Link in irgendeiner verschickten Nachricht bekommen hat — bei Buchungen am Anreisetag etwa erst mit der Check-in-Anleitung.
v0.99.695
21. Oktober 2026

Auslieferung prüft die Laufzeitversion

  • Interne Auslieferung: Prüfläufe starten nicht mehr versehentlich mit einer falschen Node-Version.
v0.99.694
21. Oktober 2026

Zeitstrahl nach der Abreise richtig, Rechnungsdaten verschieben den Verlauf nicht mehr

  • „Code zugestellt“ bleibt nach dem Check-out erreicht — auch wenn der persönliche Code dann gelöscht ist.
  • Ein Schritt, der nie geplant war (z. B. das Check-in-Portal bei einer Buchung am Anreisetag), zeigt „entfällt“ statt „offen“; „jetzt“ steht hinter dem weitesten erledigten Schritt und fehlt nach der …
  • Die Rechnungsdaten an einer Rechnungsanfrage öffnen sich als schwebendes Fenster und schieben die Nachricht nicht mehr nach unten.
v0.99.693
21. Oktober 2026

Auf einen Blick zeigt den Weg bis zum zugestellten Haustür-Code

  • Der Zeitstrahl in „Auf einen Blick“ zeigt die Schritte bis zum Ziel: Buchung bestätigt, Buchungsbestätigung, Check-in-Portal, Check-in-Anleitung, Code zugestellt — jeweils erledigt, geplant, nicht zu…
  • Erreicht ist das Ziel, wenn der Gast seinen persönlichen Haustür-Code in einer Nachricht bekommen hat.
  • Neuer Knopf „Code übergeben“: Die Rezeption bestätigt, dass sie den Code persönlich gegeben hat — für Buchungen ohne Kontaktweg; hervorgehoben, wenn der Code nicht zugestellt werden konnte.
v0.99.692
20. Oktober 2026

Preis beim Anlegen einer Buchung ist Pflicht für Mitarbeitende

  • Wer nicht Inhaber ist, gibt beim Anlegen einer Buchung einen Preis über 0 € an — im Walk-in-Formular (neu mit Preisfeld), im Kalender und über die Schnittstelle. Der Inhaber darf den Preis weiter off…
  • Auch beim Ändern einer Buchung kann nur der Inhaber den Preis auf 0 € setzen.
v0.99.691
20. Oktober 2026

„Jetzt per WhatsApp senden“ schickt die Check-in-Anleitung mit aktuellen Angaben

  • Der Knopf „Jetzt per WhatsApp senden“ in der Buchung schickt die Check-in-Anleitung jetzt mit den aktuellen Angaben (Zimmer, Codes, Nummer) statt mit denen vom ursprünglichen Versand — und sagt, waru…
v0.99.690
20. Oktober 2026

WhatsApp-Check-in-Anleitung kommt nach, sobald der Gast im Portal zustimmt

  • Trägt ein Gast seine Nummer erst nach dem Versand der Check-in-Anleitung im Portal für WhatsApp ein, bekommt er sie jetzt sofort per WhatsApp — mit den aktuellen Angaben und nur bis zur Abreise.
v0.99.689
20. Oktober 2026

Rechnungsfragen sind ein Anliegen, kein Problem

  • In der Buchungsansicht steht eine Rechnungsanfrage in einem eigenen Abschnitt „Rechnung“ mit ihrem Fortschritt — nicht mehr unter „Probleme“.
  • Rechnungsfragen lösen keine Push-Meldung mehr aus und erscheinen nicht mehr unter „Nur Vorfälle“ im Postfach und auf „Heute“; das Etikett am Gespräch bleibt.
  • „Auf einen Blick“ zeigt für eine Rechnungsfrage keinen offenen Vorfall mehr — der Rechnungs-Fortschritt zeigt den Stand.
  • Eine Rechnungsfrage schließt sich von selbst, sobald die Rechnung versendet ist; ging sie außerhalb von Foyer raus, gibt es im Abschnitt „Rechnung“ einen Knopf „Erledigt“.
v0.99.688
20. Oktober 2026

WhatsApp-Check-in-Anleitung nur mit Zustimmung des Gastes

  • Die Check-in-Anleitung geht automatisch nur noch an Gäste per WhatsApp, die ihre Nummer im Check-in-Portal dafür eingetragen oder dem Haus selbst per WhatsApp geschrieben haben. Nummern, die nur von …
  • In der Buchung steht bei einer so übersprungenen WhatsApp der Knopf „Jetzt per WhatsApp senden": nach einer Rückfrage mit der Zielnummer geht genau diese eine Nachricht raus.
  • Im Check-in-Portal fragt der Abschnitt „WhatsApp" jetzt auch Gäste, deren Nummer schon vom Buchungsportal bekannt ist.
v0.99.687
20. Oktober 2026

Keine automatischen Rechnungen mehr für stornierte Buchungen

  • Stornierte Buchungen und Teilstornierungen mit Stornogebühr werden nicht mehr automatisch an das Rechnungssystem übertragen, bis Stornogebühren dort richtig ausgewiesen werden.
  • Beim Aufklappen einer Rechnungsanfrage erscheint der Abgleich mit dem Rechnungssystem jetzt ohne spürbare Wartezeit.
v0.99.686
20. Oktober 2026

Faden — Ablauf links und automatische Nachrichten auf einen Blick

  • „Auf einen Blick“ zeigt die automatischen Nachrichten als Kästchen auf dem Zeitstrahl: gesendet, geplant, ausgelassen oder nicht zugestellt — ein Klick springt zur gesendeten Nachricht.
  • Offene Punkte sagen, ob sich das System schon kümmert: „Erinnerung geht automatisch … raus – du musst nichts tun“, mit „Jetzt erinnern“.
  • Eine nicht zugestellte automatische Nachricht erscheint oben als offener Punkt mit Grund und „Erneut senden“.
  • Nach Abreise oder Storno klappt der Block auf eine Zeile zusammen; im Haus stehen offene Extras mit den Kassier-Knöpfen oben.
  • Links heißt die Liste jetzt „Ablauf“: volle Titel, Erledigtes eingeklappt, Anreise und Abreise als Trennzeilen, Aktionen hinter „⋯“.
  • Die zuletzt gesendete Nachricht mit dem aktuellen Türcode bleibt im Ablauf angeheftet — „Ansehen“, „Kopieren“ und „Erneut senden“ mit einem Klick.
v0.99.685
20. Oktober 2026

Eine Gastsprache für Nachrichten, Gästeprofil und Gastportal

  • „Über den Gast", die automatischen Nachrichten und das Gastportal verwenden jetzt dieselbe Gastsprache — was das Profil anzeigt, ist die Sprache, in der der Gast angeschrieben wird.
  • Von Booking.com vorformulierte Anfragen (früher einchecken, Rechnung anfordern) gelten nicht mehr als Sprache des Gastes; sie sind immer englisch, auch wenn der Gast es nicht ist.
  • Ohne andere Angabe zeigt „Über den Gast" die Sprache aus der Ländervorwahl, als solche gekennzeichnet.
v0.99.684
20. Oktober 2026

Automatische Nachrichten folgen der Sprache des Gesprächs

  • Schreibt ein Gast in einer anderen Sprache als der, die die Buchung nahelegt, gehen geplante Nachrichten, Check-in-Mail und Rechnungserinnerung jetzt in der Sprache, in der er schreibt — so wie „Über…
v0.99.683
20. Oktober 2026

Telefon-Anfragen klarer, keine automatische Erstattung bei Überbuchung

  • Telefon-Anfragen sind im Kalender jetzt auch auf Ein- und Zwei-Nächte-Balken erkennbar (Telefon-Zeichen).
  • „Stimmt das so?“ im Online-Check-in merkt sich „Passt“ und steht danach nicht mehr bei jedem Besuch offen.
  • Der Abschnitt zeigt den Zimmertyp mit seinem Anzeigenamen.
  • Ist ein bezahltes Zimmer bei der Direktbuchung inzwischen vergeben, erstattet Foyer nicht mehr selbst: der Betrieb bekommt eine Aufgabe und entscheidet (erstatten oder umbuchen).
v0.99.682
20. Oktober 2026

EU-Hosting-Seite und Marketing nennen die KI-Dienstleister wie die Datenschutzerklärung

  • Die EU-Hosting-Seite behauptet keinen „Anthropic-EU-Endpoint“ und kein „Kein Inhalt verlässt die EU“ mehr, sondern nennt die KI-Dienstleister (Mistral AI in der EU, Anthropic, Groq) und verweist auf …
  • Vergleichsseiten, FAQ und Startseite werben nicht mehr mit „KI über EU-Server — kein US-Transfer“.
  • Die KI-Demo auf der Startseite nennt das tatsächlich genutzte Modell (Llama 3.1 auf Groq) statt Claude Haiku.
v0.99.681
20. Oktober 2026

Ruhigere Fehlermeldungen bei Telefonanlagen-Ausfall

  • Fällt die Verbindung zur Telefonanlage aus, meldet Foyer das einmal beim Ausfall und einmal bei der Rückkehr, statt bei jedem Abruf erneut.
v0.99.680
20. Oktober 2026

KI-Prüfung „Problem vom Gast erledigt?“ im Betrieb

  • Schreibt ein Gast nach einer Problemmeldung frei formuliert, dass sich der Zugang oder die Beschwerde erledigt hat, erkennt Foyer das jetzt auch über die feste Formelliste hinaus — bei Häusern, die d…
v0.99.679
20. Oktober 2026

Datenschutzerklärung und AVV nennen die KI-Prüfung „Problem vom Gast erledigt?“

  • Datenschutzerklärung und Auftragsverarbeitungsvertrag nennen jetzt die KI-Prüfung, ob ein Gast ein kurz zuvor gemeldetes Problem (Zugang oder Beschwerde) selbst für erledigt erklärt: Sie läuft nur be…
v0.99.678
20. Oktober 2026

Buchungsansicht aufgeräumt, Rechnungsangaben aus Gastnachrichten, Telefonnummern-Stapel

  • Rechnungs-Panel und Postfach zeigen Firma und Steuernummer aus der Gastnachricht, grün markiert; klare Angaben (volle Anschrift, gekennzeichnete Steuernummer) werden automatisch übernommen, das Land …
  • Neu erkannt: „To:“ vor einer Anschrift, italienische Partita IVA und Codice fiscale.
  • Buchungsansicht: klebender Kopf, Concierge-Log als Fenster, Gästeportal, Haustür und Aufgaben kompakt mit Symbol-Knöpfen, „Über den Gast“ komplett per Stift bearbeitbar (auch Land und Sprache), Änder…
  • Offene Extras lassen sich direkt erledigen: Zahlungslink senden oder vor Ort bezahlt buchen.
  • „Nummern holen“: Telefonnummern mehrerer Booking.com-Anreisen nacheinander aus dem Extranet übernehmen (Lesezeichen „Foyer: Nummern-Stapel“).
v0.99.677
20. Oktober 2026

Beträge, Daten und Uhrzeiten im Format der eigenen Sprache

  • In der englischen Oberfläche erscheinen Beträge, Daten und Uhrzeiten jetzt im englischen Format: Währungszeichen vorn mit Dezimalpunkt, Datum als Monat/Tag/Jahr, Uhrzeit mit AM/PM. Die deutsche Oberf…
  • Zeiten in Listen, Einstellungen und Kalender richten sich nach der Zeitzone des Hauses, nicht nach der des Geräts.
v0.99.676
20. Oktober 2026

Check-in-Seite zeigt die Ankunftszeit des Gastes

  • Auf der Check-in-Seite steht unter dem Anreisedatum, wann der Gast ankommen will — sofern er es angegeben hat.
v0.99.675
20. Oktober 2026

Automatische Antworten auch auf Portugiesisch und Türkisch

  • Foyer kann Gastnachrichten auf Portugiesisch und Türkisch jetzt mit denselben Sicherheitsprüfungen beantworten wie auf Spanisch oder Französisch — freigeschaltet wird je Haus.
  • Beschwerden, Stornowünsche und Defekte werden auch auf Portugiesisch und Türkisch als Vorfall erkannt.
  • Die Rechnungs-Erinnerung gibt es jetzt auch auf Portugiesisch und Türkisch.
  • Begriffe in den Hausvorlagen werden in Sprachen mit Sonderbuchstaben (z. B. „ś", „ı") zuverlässig erkannt.
v0.99.674
20. Oktober 2026

Rechnungs-Erinnerung erreicht jetzt auch Gäste mit bereits ausgestellter Rechnung

  • Gäste, die eine Rechnung angefragt, das Formular aber nicht ausgefüllt haben, werden nach der Abreise einmal erinnert — auch wenn die Rechnung auf den Buchungsnamen schon ausgestellt ist.
v0.99.673
20. Oktober 2026

Buchungsübersicht zeigt nur noch eine Zeitangabe zur Anreise

  • In der Übersicht einer Buchung steht entweder die vom Gast angegebene Ankunftszeit oder, solange er keine angegeben hat, die Check-in-Zeit des Hauses — nicht mehr beides nebeneinander.
v0.99.672
20. Oktober 2026

Ankunftszeit am Tag der Zeitumstellung richtig gespeichert

  • Eine im Gästeportal gewählte Ankunftszeit wird auch am Tag der Zeitumstellung zur richtigen Uhrzeit gespeichert, ebenso eine Ankunft nach Mitternacht.
  • Der Gesamtbetrag stornierter Buchungen wird beim Abgleich mit dem früheren Channel-Manager nicht mehr auf den ursprünglichen Preis zurückgesetzt.
v0.99.671
19. Oktober 2026

Rechnungsanfragen klappen schneller auf

  • Beim Aufklappen einer Rechnungsanfrage erscheinen Rechnungsdaten und Nachrichtenverlauf sofort; nur die Aktionen für stay laden kurz nach.
v0.99.670
19. Oktober 2026

Telefonnummer im Gästeportal — Ländervorwahl wird ergänzt

  • Trägt ein Gast seine Telefonnummer im Gästeportal ohne Ländervorwahl ein, ergänzt Foyer sie anhand seines Landes. WhatsApp-Nachrichten erreichen ihn dann, und seine Antworten landen bei seiner Buchun…
v0.99.669
19. Oktober 2026

Booking.com-Telefonnummern ohne Ländervorwahl werden ergänzt

  • Liefert Booking.com eine Telefonnummer im Inlandsformat (ohne Ländervorwahl), ergänzt Foyer sie anhand des Gastlandes. Damit erreichen WhatsApp-Nachrichten den Gast, und seine Antworten landen bei de…
v0.99.668
19. Oktober 2026

WhatsApp ohne Buchung — ein Faden je Nummer, Antworten möglich

  • Schreibt eine unbekannte Nummer per WhatsApp, landen alle ihre Nachrichten in einem Gespräch, die Nummer steht im Kopf, und die Antwort aus dem Postfach geht raus.
v0.99.667
19. Oktober 2026

Rechnungsanfrage auch in der linken Leiste als Strahl

  • Unter „Probleme“ erscheint eine Rechnungsanfrage jetzt als kompakter Fortschritt mit fünf Symbolen und dem nächsten Schritt, statt als zwei Zeilen „erkannt“ und „erledigt“.
v0.99.666
19. Oktober 2026

Rechnungsanfrage im Verlauf — verlinkt und mit Kurzbefehlen

  • Der Fortschritt einer Rechnungsanfrage an der Gastnachricht ist größer und beschriftet: Anfrage und Formular springen in den Verlauf, „ausgefüllt“ zeigt die Rechnungsdaten, „erstellt“ öffnet die Rech…
  • Kurzbefehle direkt daneben: Formular erneut schicken, Rechnungsdaten ansehen, Rechnung an den Gast senden (mit Rückfrage), Antwort „Rechnung kommt nach der Abreise“, Formularlink kopieren.
  • Das Wort, an dem die Anfrage erkannt wurde, ist in der Nachricht blau unterlegt.
v0.99.665
19. Oktober 2026

Rechnungsanfrage — „erstellt“ nur bei echter Rechnung

  • Der Fortschritt einer Rechnungsanfrage zeigt „Rechnung erstellt“ erst, wenn die Rechnung tatsächlich vorliegt, und „versendet“ erst mit Versandzeit — nicht mehr schon, wenn die Rechnungsdaten versand…
v0.99.664
19. Oktober 2026

Rechnungsanfrage direkt an der Gastnachricht

  • Bittet ein Gast im Chat um eine Rechnung, trägt seine Nachricht jetzt das Etikett „Rechnungsanfrage“. Daneben (auf dem Telefon darunter) zeigen fünf Symbole, wie weit die Anfrage ist: angefragt, Form…
v0.99.663
19. Oktober 2026

Plattform-Logo statt Name in der Buchungsleiste

  • Oben links in der Buchung steht das Logo der Plattform statt ihres Namens — Booking.com, Airbnb und, für Buchungen über die eigene Buchungsseite, das Foyer-Zeichen. Andere Herkünfte bleiben als Text.
v0.99.662
19. Oktober 2026

Uhrzeit rückt in die letzte Textzeile

  • Wie bei WhatsApp stehen Etikett, Uhrzeit und Haken einer Nachricht jetzt in der letzten Textzeile, wenn dort Platz ist — keine eigene Zeile mehr dafür. Bei Bildern und Anhängen bleibt alles wie bishe…
v0.99.661
19. Oktober 2026

Faden-Feinschliff — Handy, Kurzzeile, Tastatur, echte Check-in-Zeit

  • Auf dem Handy lässt sich jede Station des Zeitstrahls antippen: ihre Einzelheiten erscheinen unter dem Strahl, mit Sprung in den Verlauf.
  • Eingeklappt nennt „Auf einen Blick“ das Dringendste konkret: offene Punkte, fehlender Online-Check-in, offener Betrag vor Ort, Ankunft.
  • Bei vielen Stationen bleiben Probleme und die aktuelle Station immer beschriftet.
  • Mit j und k springt man im Gesprächsverlauf zum nächsten bzw. vorigen Eintrag.
  • Oben links steht bei „Check-in“ die tatsächliche Ankunftszeit, sobald der Gast die Haustür mit seinem Code geöffnet hat; „Check-in ab“ entfällt danach.
v0.99.660
19. Oktober 2026

Echte Ankunftszeit aus der ersten Haustür-Öffnung

  • Hat der Gast die Haustür mit seinem persönlichen Code geöffnet, zeigen Zeitstrahl und „Auf einen Blick“ die tatsächliche Ankunftszeit statt der erwarteten „ca.“-Zeit.
v0.99.659
19. Oktober 2026

Stornierungen — keine Rechnung trotz offenem Rechnungsweg, Hinweise bei Mehrzimmer-Stornos

  • „Bei stay Rechnung ausstellen“ und „An stay nachliefern“ folgen jetzt derselben Sperre wie der Versand: für stornierte Aufenthalte und solche mit Stornogebühr wird keine Rechnung ausgestellt oder ang…
  • Wird bei einer Mehrzimmerbuchung ein Nebenzimmer storniert oder die ganze Buchung mit Gebühr storniert, steht im Verlauf ein Prüfhinweis, wo nicht belegt ist, ob der Kanal die Gebühr je Zimmer oder j…
v0.99.658
19. Oktober 2026

„Auf einen Blick“ und Zeitstrahl zusammengelegt

  • „Auf einen Blick“ sagt nicht mehr doppelt, was der Zeitstrahl schon zeigt: oben steht ein Satz mit dem bezahlten Gesamtbetrag, die Einzelheiten (Betrag eines Extras, fehlender Online-Check-in, erwart…
  • Eingeklappt verschwindet auch der Zeitstrahl.
v0.99.657
19. Oktober 2026

Zeitstrahl oben im Gesprächsverlauf

  • Oben im Gesprächsverlauf zeigt ein schmaler Zeitstrahl die Stationen der Buchung — erledigt, offen, jetzt, geplant — mit offenen Anliegen als Punkten.
  • Eine Markierung wandert beim Lesen mit und zeigt, wo im Ablauf die Nachricht steht; ein Klick auf eine Station springt zur Stelle im Verlauf.
v0.99.656
19. Oktober 2026

Stornos stehen auf dem richtigen Tag, Teilstornos behalten ihren Kanal-Status

  • Gegenbuchungen einer Stornierung stehen jetzt auf dem Kalendertag des Hauses (Europe/Berlin), auch wenn der Kanal kurz nach Mitternacht meldet.
  • Nachträglich gebuchte Stornos werden auf den Tag der Stornierung datiert, nicht auf den Tag des Nachtrags.
  • Fällt bei einer Buchung mit mehreren Zimmern nur ein Zimmer weg, bleibt der Kanal-Status der Buchung erhalten, statt auf „storniert“ zu springen.
  • ADR und RevPAR zählen die Stornogebühr eines Teilstornos nicht mehr als Zimmererlös; im Gesamtumsatz bleibt sie enthalten. Über API und MCP steht ihr Betrag als eigenes Feld bereit.
v0.99.655
19. Oktober 2026

Gesprächsverlauf — Filter platzsparend im Kopf

  • Der Filter „Alles · Nachrichten · Ereignisse“ sitzt jetzt als kleines Symbol im Kopf des Gesprächs (auf dem Telefon im Menü) und belegt keine eigene Zeile mehr; ein aktiver Filter bleibt sichtbar.
v0.99.654
19. Oktober 2026

Stornierte Buchungen: Stornogebühr im Buchungsfeld, Rechnungsversand angehalten

  • Stornierungen von Booking.com-Buchungen aus früheren Monaten wurden nachträglich korrigiert: wo Booking.com eine Stornogebühr einbehalten hat, steht sie jetzt als eigene Position im Folio, Zimmer und…
  • Das Buchungsfeld einer stornierten Buchung mit Stornogebühr zeigt auf der Gastseite genau eine Zeile "Stornogebühr", ohne Unterkunft und ohne Mehrwertsteuer; der Betrag in der Kopfzeile entspricht de…
  • Rechnungen zu stornierten Aufenthalten werden grundsätzlich nicht mehr automatisch oder manuell an den Gast versandt, bis der Rechnungsweg für Stornos entschieden ist, auch wenn der Gesamtbetrag null…
v0.99.653
19. Oktober 2026

„Auf einen Blick“ ohne doppelte Angabe der Plattform

  • „Auf einen Blick“ nennt die Plattform nur noch einmal; die Aufschlüsselung des bezahlten Betrags erscheint nur, wenn Geld aus mehreren Quellen kam (z. B. Plattform und direkt).
v0.99.652
19. Oktober 2026

„Auf einen Blick“ zeigt den bezahlten Betrag auch nach Stornos und Preisänderungen

  • Nach einer Stornierung mit Stornogebühr oder einer Preisänderung durch den Kanal zeigt „Auf einen Blick“ jetzt den tatsächlich bezahlten Betrag statt dauerhaft „Betrag wird geprüft“.
v0.99.651
19. Oktober 2026

„Auf einen Blick“ — Korrekturen

  • „Auf einen Blick“ nennt die Zahl der Nächte richtig, erkennt einen Widerspruch zur gebuchten Check-in-Zeit auch dann, wenn dieselbe Nachricht den frühen Check-in als Angebot nennt, und zeigt bei offe…
v0.99.650
19. Oktober 2026

Gesprächsverlauf — „Auf einen Blick“

  • Oben im Gesprächsverlauf fasst ein einklappbarer Block die Buchung zusammen: bezahlter Betrag, offener Betrag vor Ort, Ankunft, gebuchte Check-in-Zeit, offene Punkte mit Sprung zur Nachricht und Hinw…
v0.99.649
19. Oktober 2026

Gesprächsverlauf — Anliegen der Gäste im Faden

  • Unbeantwortete Fragen und Wünsche von Gästen werden im Gesprächsverlauf rot markiert und lassen sich als erledigt abhaken oder als falsch erkannt entfernen.
  • Nachrichten, die das Haus automatisch verschickt hat (Bestätigung über Nacht, automatisch gesendete KI-Antwort, automatische Nachrichten des Kanals), erscheinen im Verlauf als automatisch.
  • Eine Aufgabe, die über die Schnittstelle (MCP) erledigt wird, löst jetzt dieselben Benachrichtigungsregeln aus wie in der Oberfläche.
v0.99.648
18. Oktober 2026

Stornogebühr als eigene Position ohne Umsatzsteuer

  • Behält der Kanal bei einer Stornierung Geld ein, steht die Stornogebühr im Folio als eigene Position „Stornogebühr“ ohne Umsatzsteuer. Sie erscheint nicht mehr als Zimmerpreis mit 7 % und nicht als B…
  • Bei einer Teilstornierung bleibt das verbleibende Zimmer beim Zimmerpreis, die Gebühr der stornierten Zimmer steht daneben. Das Buchungsfeld zeigt Unterkunft, Steuern und Stornogebühr getrennt.
  • Der Umsatzbericht erkennt Stornoerlöse an der Stornogebühr selbst, auch wenn der Zimmerpreis der Buchung schon auf 0 steht. Gebühren einer Teilstornierung bleiben im Umsatz der lebenden Buchung.
  • Für Aufenthalte, die storniert sind und einen Betrag tragen, oder deren Folio eine Stornogebühr enthält, wird vorerst keine Rechnung versendet: weder automatisch noch per Knopf noch per Schnittstelle…
v0.99.647
18. Oktober 2026

Ereignisse im Gesprächsverlauf

  • Im Gesprächsverlauf einer Buchung stehen jetzt auch die Ereignisse: Buchungseingang, Zahlungen, bezahlte und erstattete Extras, Stornierung, Änderungen von Datum, Zimmer und Preis, Online-Check-in un…
  • Geld ist farbig markiert: grün, was eingeht, rot, was zurückgeht.
  • Anreise- und Abreisetag sind am Tagestrenner benannt.
  • Ein Filter über dem Verlauf zeigt alles, nur Nachrichten oder nur Ereignisse.
v0.99.646
18. Oktober 2026

Stornierte Buchungen zeigen Betrag und Finanzen wie jede Buchung

  • Eine stornierte Buchung zeigt im Buchungsfeld ihren Betrag wie jede andere Buchung; der Status „Storniert“ oben bleibt.
  • „Reservierungs-Finanzen“ erscheinen bei einer stornierten Buchung, sobald es Gastgeber-Zeilen gibt; der Hinweis „Auszahlung nicht übermittelt“ entfällt.
v0.99.645
18. Oktober 2026

Stornogebühren bei Teilstornierungen über Booking.com

  • Wird bei einer Booking.com-Buchung mit mehreren Zimmern nur ein Zimmer storniert, übernimmt Foyer jetzt die Stornogebühr, die Booking.com dafür meldet — auch wenn der Zimmerpreis danach auf null steh…
v0.99.644
18. Oktober 2026

Teilstornierungen behalten den Betrag, den der Kanal weiter führt

  • Wird bei einer Buchung mit mehreren Zimmern nur ein Zimmer storniert, zählt Foyer jetzt auch den Betrag, den der Kanal für dieses Zimmer weiter führt, etwa eine Stornogebühr. Gesamtbetrag, Folio, Gas…
  • Lebt eine stornierte Buchung wieder auf, wird die Beherbergungssteuer für die übernachtenden Gäste wieder richtig ausgewiesen.
v0.99.643
18. Oktober 2026

Stornierungen zeigen den Betrag, den der Kanal meldet

  • Bei einer Stornierung über einen Kanal übernimmt Foyer jetzt den Betrag, den der Kanal für die Buchung weiter führt, etwa eine Stornogebühr. Ob ganz, teilweise oder gar nicht erstattet wurde, entsche…
v0.99.642
17. Oktober 2026

Aufgaben über die Schnittstelle mit Fälligkeit anlegen

  • Über die Schnittstelle (MCP) angelegte Aufgaben können jetzt tatsächlich gleich ein Fälligkeitsdatum mitbekommen.
v0.99.641
17. Oktober 2026

Vor Ort fällige Beträge

  • Überweist Booking.com weniger als den Buchungspreis, steht der Rest jetzt deutlich im Buchungspanel: „Vor Ort zu kassieren“, mit Grund und Weg zur Zahlungserfassung im Folio.
  • Für solche Buchungen entsteht automatisch eine Aufgabe für die Rezeption, fällig am Anreisetag zur Check-in-Zeit. Sie folgt Teilzahlungen und Datumsänderungen und erledigt sich, sobald das Folio ausg…
  • Ein täglicher Wächter meldet abgereiste Aufenthalte, bei denen der Rest nie erfasst wurde.
v0.99.640
17. Oktober 2026

iCal-Doppelungen am Wechseltag bleiben stehen

  • Nach dem Umstieg von iCal auf eine Kanal-Anbindung wird eine iCal-Buchung am Wechseltag nicht mehr wegen des abreisenden Vorgängers storniert. Sie bleibt stehen, bis die eigene Buchung über den Kanal…
v0.99.639
17. Oktober 2026

Zahlungslink eines Extras direkt senden

  • Ein Extra (früher Check-in, später Check-in, später Check-out) lässt sich aus dem Faden jetzt mit einem Klick samt Zahlungslink an den Gast senden. Auf Wunsch kommt der Link wie bisher nur ins Antwor…
  • Scheitert der Versand, steht der Link im Antwortfeld und geht nicht verloren.
  • Im Extras-Menü steht „Link schon verschickt“ nur noch, wenn der Link den Gast tatsächlich erreicht hat; sonst „Link erstellt, nicht verschickt“.
v0.99.638
17. Oktober 2026

Aufgaben „Heute" zeigt, was heute dran ist — Fälligkeit frei setzbar

  • Die Aufgabenliste „Heute" zeigt nur noch, was heute fällig oder überfällig ist, dazu Aufgaben ohne Datum — sortiert nach Fälligkeit. Alle offenen Aufgaben stehen weiter unter „Aktiv".
  • Jede offene Aufgabe lässt sich auf ihrer Seite terminieren: Datum und Uhrzeit setzen, ändern oder entfernen.
  • Aufgaben können beim Anlegen über die Schnittstelle (MCP) gleich ein Fälligkeitsdatum bekommen.
v0.99.637
17. Oktober 2026

Vor Ort fällige Beträge bei Booking.com bleiben offen

  • Überweist Booking.com weniger als den Buchungspreis, weil ein Teil vor Ort zu zahlen ist, verbucht Foyer nur den überwiesenen Betrag als bezahlt. Der Rest steht im Folio offen, damit die Rezeption ih…
v0.99.636
16. Oktober 2026

Check-in-Links überleben das Abschalten eines Kalender-Links

  • Wird ein doppelter Kalender-Eintrag storniert, weil die Kanalbuchung derselben Nacht ihn ersetzt, gilt der Check-in-Link, den der Gast schon hat, weiter, jetzt für die Kanalbuchung. Das geschieht nur…
  • Neue Gastnachrichten landen bei einer bestätigten Buchung, auch wenn derselbe Gast zusätzlich eine offene Anfrage mit späterem Datum hat.
v0.99.635
16. Oktober 2026

Antworten in der Sprache, in der der Gast schreibt

  • Antwortvorschläge, Schnelltexte und Übersetzungshilfe richten sich nach der Sprache, in der der Gast geschrieben hat — die Sprache seines Plattformprofils gilt nur noch, wenn er nichts geschrieben ha…
v0.99.634
16. Oktober 2026

Türcode-Folgen — Nachrichten und Guide nennen nur gebuchte Zimmer

  • Schreibt ein Gast, hängt die neue Unterhaltung an seine laufende oder kommende Buchung statt an eine stornierte mit späterer Abreise.
  • Anreise-Guide, Nachrichten und geplante Nachrichten nennen bei einer teilstornierten Mehrzimmer-Buchung nur noch die Zimmer, die der Gast noch gebucht hat.
  • Antworten auf häufige Fragen ziehen Zimmer und Schlüsselbox bei einer teilstornierten Buchung vom noch gebuchten Zimmer.
v0.99.633
16. Oktober 2026

Aufgeräumt, und der Web-Server läuft ohne Administratorrechte

  • Der Web-Server läuft ohne Administratorrechte. Hochgeladene Dokumente bleiben unverändert les- und schreibbar.
  • Der Antwortvorschlag für Gästenachrichten kennt nur noch einen Weg; der veraltete Regelweg über ein Fremdsystem ist entfernt.
  • Alte, unberechtigt eingegangene Meldungen eines Kanalmanagers tragen keine persönlichen Angaben mehr.
  • Nicht mehr benutzte Programmteile sind entfernt.
v0.99.632
16. Oktober 2026

Fundsachen nur aus dem eigenen Aufenthalt, bestätigte E-Mail-Adressen, Zugänge des Hauses im Blick

  • Die Fundsachen-Seite zeigt Gästen nur Funde aus ihren eigenen Zimmern und ihrem Aufenthaltszeitraum und bleibt bis nach der Abreise erreichbar.
  • Bei der Selbstanmeldung gilt die E-Mail-Adresse erst nach Klick auf den Bestätigungslink als bestätigt; die Zahlungsanbindung lässt sich erst danach starten.
  • Eine geänderte Benutzer-E-Mail muss neu bestätigt werden.
  • Der Inhaber sieht und widerruft die verbundenen Zugänge aller Benutzer seines Hauses; jeder Widerruf wird protokolliert.
v0.99.631
16. Oktober 2026

Bestellungen im Folio sauber gegenbuchen, Rechnungsstorno nur für Foyer-Nummern

  • Wird eine Bestellung storniert, bucht Foyer sie im Folio des Gastes mit einer Gegenbuchung zurück, mit dem Datum und dem Steuersatz der ursprünglichen Buchung.
  • Bestellungen lassen sich nur noch für einen Aufenthalt aufgeben, dessen Folio noch offen ist. Das Gast-Formular erklärt den Grund verständlich; die Bestellseite für das Personal zeigt bei einer Statu…
  • Rechnungen, die ein anderes System nummeriert hat, lassen sich in Foyer nicht mehr nur lokal stornieren. Der Storno-Knopf entfällt, ein Hinweis erklärt warum.
  • Jedes Storno einer Rechnung wird im Protokoll festgehalten.
v0.99.630
16. Oktober 2026

WhatsApp-Nachrichten werden bei Überlastung und Serverfehlern von Meta wiederholt

  • Meldet WhatsApp vorübergehend Überlastung oder einen Serverfehler, versucht Foyer die geplante Nachricht erneut, statt sie sofort als gescheitert zu markieren.
  • Lehnt WhatsApp eine Nachricht endgültig ab, steht im Posteingang und im Verlauf eine verständliche Ursache statt „keine Zugangsdaten“.
v0.99.629
16. Oktober 2026

Telefonassistent — Reservierungen nur als Halt, WLAN nur für den richtigen Gast

  • Telefonische Reservierungen entstehen nur noch als befristeter Halt, der ohne Zahlung wieder verfällt; sie sperren kein Zimmer dauerhaft.
  • Der Halt prüft vorab, ob der gewünschte Zimmertyp existiert und noch frei ist; jede Verfügbarkeitsauskunft am Telefon rechnet mit derselben Zählung und nennt die freien Zimmer je Zimmertyp.
  • Der Zahlungslink einer telefonischen Reservierung läuft direkt über das Konto des Hauses und verfällt kurz vor dem Halt — danach lässt er sich nicht mehr bezahlen. Die SMS nennt die Frist.
  • Die Zahlung einer telefonischen Reservierung steht nach der Bestätigung im Folio des Aufenthalts; eine Erstattung, in Foyer oder im Stripe-Dashboard, wird dort gegengebucht.
  • WLAN-Zugangsdaten nennt der Telefonassistent einem Gast mit aktueller Buchung, die über seine Rufnummer eindeutig zugeordnet ist, ab der Freigabezeit wie im Chat (davor sagt er, ab wann). Mitarbeiter…
v0.99.628
16. Oktober 2026

Gast-Probleme erledigen — per Knopf, vom Gast gemeldet, mit Verlauf

  • „Über den Gast": ein gemeldetes Problem lässt sich per Knopf „Problem erledigt" schließen, jede Art von Problem — danach geht auch die Bitte um eine Bewertung wieder. „wieder öffnen" macht es rückgän…
  • Die graue Zeile nennt, wer das Problem erledigt hat: der Gast selbst, die automatische Erkennung oder ein Mitarbeiter, mit Zeitpunkt.
  • Meldet der Gast „hat sich erledigt", wird auch der Vorfall geschlossen — das Label im Postfach und der Eintrag unter Heute verschwinden.
  • Neuer Abschnitt „Probleme" in der Buchung: wann ein Problem erkannt, von wem es erledigt und wieder geöffnet wurde. Unter Heute stehen die erledigten Vorfälle der letzten 7 Tage mit Quelle.
  • Vorbereitet, noch nicht eingeschaltet: eine KI-Prüfung, ob ein Gast in freien Worten mitteilt, dass sein Zugangsproblem oder seine Beschwerde gelöst ist.
v0.99.627
16. Oktober 2026

Datenschutzerklärung und AVV nennen das YouTube-Video im Anreiseguide

  • Datenschutzerklärung und Auftragsverarbeitungsvertrag nennen jetzt ausdrücklich, dass im Anreiseguide ein YouTube-Video eingebettet sein kann, wenn das Haus eines hinterlegt hat: Es wird erst nach ei…
v0.99.626
16. Oktober 2026

Die Nachrichten-Warteschlange lädt schneller

  • Die Seite mit den geplanten und fehlgeschlagenen Nachrichten belastet das System deutlich weniger, weil die Zimmer aller Einträge gemeinsam geladen werden.
v0.99.625
16. Oktober 2026

Die Anbindung an Beds24 erholt sich selbst, wenn die Zugangsberechtigung früher ungültig wird

  • Wird die Zugangsberechtigung zu Beds24 vorzeitig ungültig, holt Foyer sie automatisch einmal neu, statt bis zu einem Tag lang jeden Abruf scheitern zu lassen. Geplante Gastnachrichten gehen dadurch n…
v0.99.624
16. Oktober 2026

Die Ausweis-Rückseite lässt sich erst nach der Vorderseite hochladen

  • Im Gästeportal ist das Feld für die Ausweis-Rückseite gesperrt, bis die Vorderseite hochgeladen ist; ein Hinweis erklärt die Reihenfolge. Dadurch bleiben keine Ausweisfotos ohne zugehörigen Eintrag l…
v0.99.623
16. Oktober 2026

Portal-Auswertung bleibt auch bei wachsendem Protokoll schnell

  • Die Auswertung, wie weit Gäste im Online-Check-in gekommen sind, bleibt auch bei einem wachsenden Aktivitätsprotokoll schnell: dafür ist ein zusätzlicher Datenbankindex angelegt worden.
v0.99.622
16. Oktober 2026

WLAN-Zugangsdaten in automatischen Antworten erst ab der Freigabezeit

  • Automatische Antworten auf WLAN-Fragen nennen Netzwerk und Passwort erst ab der eingestellten Freigabezeit am Anreisetag. Vorher steht dort ein Satz, ab wann die Daten verfügbar sind — in der Sprache…
  • Das gilt jetzt für jeden Weg, auf dem eine Vorlage WLAN-Daten einbindet: eigene Codes, auch verschachtelt, der WLAN-Abschnitt und die WLAN-Hausangaben.
v0.99.621
16. Oktober 2026

Gescheiterte Gastnachrichten mit offenem Versand-Alarm bleiben sichtbar

  • Gescheiterte Gastnachrichten mit offenem Versand-Alarm bleiben in der Warteschlange sichtbar, bis der Alarm erledigt ist.
  • Ein Versand-Alarm verschwindet nicht mehr unbemerkt, wenn zu einer Gastnachricht ein KI-Entwurf angenommen oder verworfen wird.
v0.99.620
16. Oktober 2026

WhatsApp-Nachrichten werden nach einem Netzaussetzer erneut versucht

  • Geplante Nachrichten, die per WhatsApp gesendet werden, kommen nach einem kurzen Netzaussetzer von selbst nach 10, 30 und 60 Minuten sowie 2 Stunden erneut dran, statt für immer als fehlgeschlagen zu…
  • Antwortet WhatsApp nicht und ist offen, ob die Nachricht angekommen ist, versucht Foyer es genau ein weiteres Mal und meldet sich danach — so bekommt kein Gast dieselbe Nachricht mehrfach.
  • Bei einem Zeitablauf meldet Foyer nicht mehr fälschlich, die WhatsApp-Zugangsdaten fehlten.
v0.99.619
16. Oktober 2026

Rechnungsabgleich schreibt nur noch Geändertes

  • Der regelmäßige Abgleich der Rechnungen aus dem Rechnungssystem vergleicht vor dem Schreiben und schreibt nur noch neue und geänderte Rechnungen und Positionen — er läuft damit in einem Bruchteil der…
  • Mindestens einmal täglich gleicht er weiterhin vollständig ab, als Sicherheitsnetz — fällt ein solcher Lauf aus, holt der nächste ihn nach.
v0.99.618
16. Oktober 2026

Die Auslastungsmessung der Datenbank bleibt über Updates hinweg erhalten

  • Die minütliche Messung, wie stark die Datenbankverbindungen ausgelastet sind, wird jetzt dauerhaft gespeichert. Ein Update löscht sie nicht mehr, sodass sich vorher und nachher vergleichen lassen.
v0.99.617
16. Oktober 2026

Vorbereitung für eine genauere Messung der Datenbanklast

  • Vorbereitet: Der Betrieb kann künftig sehen, welche Datenbankabfragen am meisten Zeit kosten, und gezielt beschleunigen.
v0.99.616
16. Oktober 2026

Folio zeigt nur, was die eigene Rolle darf

  • Im Folio sehen Mitarbeitende nur noch die Knöpfe, die sie auch benutzen dürfen: Positionen und Zahlungen erfassen die Betriebsrollen, Korrekturen (Position ändern, Zahlung entfernen, Zurücksetzen, Fo…
  • Lehnt das System eine Aktion im Folio ab, steht jetzt ein verständlicher Satz an der Stelle, an der man sie ausgelöst hat, statt keiner oder einer Rohmeldung.
v0.99.615
16. Oktober 2026

Die Anbindung an das Rechnungssystem hängt nicht mehr fest

  • Die Anbindung an das Rechnungssystem bricht hängende Verbindungen und Abfragen nach einer festen Zeit ab, statt andere Abgleiche und das Ausstellen von Rechnungen stillschweigend zu blockieren.
  • Ist die Anbindung ausgelastet, meldet sie das nach kurzer Wartezeit als Fehler; der nächste Lauf versucht es erneut.
v0.99.614
16. Oktober 2026

Fehlerberichte enthalten keine Zugangslinks, Telefonnummern und E-Mail-Adressen mehr

  • Fehlerberichte an die Fehlerüberwachung werden jetzt auf dem Server und im Browser gleich bereinigt, bevor sie das System verlassen.
  • Zugangslinks von Gästen (Check-in, Rechnungsanfrage, Portal), Adressbestandteile hinter dem Fragezeichen, Telefonnummern und E-Mail-Adressen sind darin nicht mehr lesbar.
v0.99.613
16. Oktober 2026

Wartungen am Datenbankschema blockieren den Betrieb nicht mehr

  • Eine Änderung am Datenbankschema wartet beim Ausliefern nur kurz auf laufende Vorgänge. Klappt es nicht, wird sie abgebrochen und später wiederholt, statt das Haus anzuhalten.
v0.99.612
16. Oktober 2026

Ausfälle der automatischen Nachrichten werden gemeldet

  • Scheitert die automatische Planung oder der automatische Versand von Gastnachrichten für ein Haus zwei Takte in Folge, wird der Betreiber benachrichtigt — einmal je Ausfall, mit Entwarnung, sobald es…
v0.99.611
16. Oktober 2026

Folio-Korrekturen nur mit Finanzrecht, FritzBox-Anbindung nur für den Inhaber

  • Zahlungen und Positionen im Folio buchen weiterhin alle am Empfang. Ändern, Löschen, Zurücksetzen und Abschließen setzen jetzt das Finanzrecht voraus, Housekeeping und Wartung buchen gar nicht mehr.
  • Eine gelöschte Zahlung oder Position bleibt mit Betrag, Zeitpunkt und Person im Änderungsverlauf nachvollziehbar.
  • Die FritzBox-Anbindung richtet nur noch der Inhaber ein und testet sie. Adressen im internen Netz werden abgewiesen.
v0.99.610
16. Oktober 2026

Verbindungen zu Kanälen und Messengern warten nicht mehr unbegrenzt

  • Antwortet ein angebundener Dienst nicht (Kanalmanager, WhatsApp, Buchungsportale, Rechnungssystem), bricht Foyer den Aufruf nach einer festen Zeit ab, statt minutenlang zu warten. Nachrichten an Gäst…
  • Der Preisabgleich mit dem Kanalmanager hält während seiner Abfragen keine Datenbankverbindung mehr fest — andere Abläufe bleiben auch dann flüssig, wenn der Kanalmanager langsam antwortet.
v0.99.609
16. Oktober 2026

Vom Gast erledigte Probleme gelten nicht mehr als offen

  • Meldet ein Gast, dass sich ein Problem erledigt hat, wird es nicht mehr als offenes Problem angezeigt — „Über den Gast" zeigt dann eine dezente graue Zeile mit dem Zeitpunkt.
  • Ein so erledigtes Problem hält die Bewertungsbitte nicht mehr zurück; ein späteres neues Problem schon.
  • „Der Code funktioniert irgendwie nicht" löst jetzt einen Zugangsalarm aus.
v0.99.608
16. Oktober 2026

KI-Antworten an stornierte Buchungen nur noch als Entwurf

  • Eine KI-formulierte Antwort an eine Buchung ohne Zugang (storniert, gehalten, nicht bestätigt) geht nicht mehr automatisch hinaus, sondern liegt als Entwurf beim Team; das WLAN erscheint darin nur al…
  • Im Protokoll steht bei zurückgehaltenen Antworten jetzt der Grund: Buchung ohne Zugang, keine Buchung an der Unterhaltung oder ein Fehler beim Aufbereiten der Antwort.
v0.99.607
15. Oktober 2026

Rechte, Grenzen und Fehlerseiten nachgeschärft

  • Kamera- und Klingelbilder sehen nur Teammitglieder mit dem Bereich „Sicherheit"; entfernte Teammitglieder sehen sie nicht mehr.
  • Rechnungs-PDFs öffnen nur Teammitglieder mit dem Bereich „Finanzen".
  • Der SMS-Login für Mitarbeiter ist gegen massenhaftes Auslösen begrenzt.
  • Eine Rechnung lässt sich nicht mehr versehentlich zweimal kurz hintereinander neu ausstellen — auch nicht aus einem zweiten Tab oder über den Assistenten.
  • Die Frühstücks-Erinnerung geht nur noch an bestätigte Buchungen, und ein Gast mit mehreren Buchungen bekommt sie einmal.
  • Buchungsseite, Gastportal und Rechnungsformular zeigen bei einer Störung eine verständliche Fehlerseite in Deutsch oder Englisch mit Hinweis, wie es weitergeht.
  • Übersetzungen im Postfach laufen ausschließlich über die in der Datenschutzerklärung genannten Dienste.
v0.99.606
15. Oktober 2026

Keine Türcodes im Chat für stornierte oder nicht bestätigte Buchungen

  • Stornierte, gehaltene oder noch nicht bestätigte Buchungen bekommen im Chat keine Türcodes, Schlüsselbox-Codes oder WLAN-Daten mehr — die Frage landet beim Team.
  • Welche Codes als Zugangsdaten gelten, lässt sich je Haus unter Einstellungen → Anreise-Guide festlegen.
  • Auch eine Unterhaltung ohne zugehörige Buchung bekommt keine Zugangsdaten automatisch.
v0.99.605
15. Oktober 2026

Strengere Trennung zwischen Häusern auch bei Hintergrundaufgaben

  • Automatische Hintergrundaufgaben eines Hauses sehen und ändern nur noch die Daten dieses Hauses — die Trennung wird jetzt zusätzlich von der Datenbank selbst durchgesetzt.
v0.99.604
15. Oktober 2026

KI-Schnittstelle: Aktionen werden dem tatsächlich Handelnden zugeschrieben

  • Aktionen eines API-Schlüssels werden nicht mehr dem Inhaber zugeschrieben; über OAuth verbundene Werkzeuge handeln als der verbundene Nutzer.
  • Folio-Positionen und -Zahlungen, die ein API-Schlüssel anlegt, tragen den Schlüssel als Urheber statt eines Mitarbeiters; Kassenbuch und Aktivitätsprotokoll bleiben dabei ohne Person.
  • API-Schlüssel mit der Rolle Housekeeping oder Wartung sehen keine persönlichen Aufgaben mehr; Mitarbeiter verbinden ihr KI-Werkzeug dafür per OAuth.
v0.99.603
15. Oktober 2026

Gästeportal-Links folgen der Abreise und lassen sich auch nach dem Meldeschein sperren

  • Ein Gästeportal-Link gilt bis zehn Tage nach der Abreise — auch ältere Links und Buchungen, die weit im Voraus oder verschoben wurden.
  • Für stornierte und gehaltene Buchungen sind im Gästeportal keine Aktionen mehr möglich (Meldeschein, Ausweis-Upload, Kaution, Extras, Bestellungen); Anreise-Guide und Hausfotos bleiben zu. Rechnungsd…
  • Für eine stornierte oder gehaltene Buchung wird kein neuer Portal-Link mehr angelegt; eine geplante Nachricht mit Portal-Link entfällt dann mit sichtbarem Grund, statt einen Satz ohne Link zu verschi…
  • „Link erneut senden“ schickt denselben Link, auch nachdem der Gast den Meldeschein ausgefüllt hat — es entsteht kein zweiter Meldeschein.
  • Der Portal-Link lässt sich jetzt auch nach dem Ausfüllen sperren; der Meldeschein bleibt erhalten, der Gast bekommt mit der nächsten Nachricht einen neuen Link.
  • Ausweisfotos sieht das Team über die eigene Anmeldung; über den Gast-Link sind sie nur noch abrufbar, solange der Link gilt.
v0.99.602
15. Oktober 2026

Rechnungsabgleich robuster gegen einzelne fehlerhafte Zeilen

  • Der Abgleich übernommener Rechnungen und Rechnungsdaten (Anschrift, Steuernummer) bricht nicht mehr ab, wenn eine einzelne Zeile nicht passt — sie wird übersprungen und gemeldet, alle anderen kommen …
  • Interne Absicherung der Mandantentrennung beim Rechnungsabgleich.
v0.99.601
15. Oktober 2026

Direktbuchungen und ihre Erstattungen erscheinen im Folio

  • Eine über die eigene Buchungsseite bezahlte Buchung steht mit ihrer Zahlung im Folio — der Saldo ist ausgeglichen statt offen.
  • Erstattungen, ob beim Stornieren in Foyer oder direkt bei Stripe ausgelöst, erscheinen als Rückzahlung im Folio; nach einem Storno zeigt das Folio, was das Haus behält.
v0.99.600
15. Oktober 2026

Geplante Gastnachrichten gehen nie doppelt hinaus

  • Scheitert eine einzelne geplante Nachricht an einem internen Fehler, bleiben die schon verschickten Nachrichten desselben Laufs verschickt — sie gehen nicht erneut an den Gast.
  • Hat der Kanal eine Nachricht angenommen, gilt sie als gesendet, auch wenn danach intern noch etwas scheitert; „Jetzt senden" meldet dann „gesendet" statt „fehlgeschlagen".
  • Fehlermeldungen an geplanten Nachrichten nennen nur noch Fehlercode und betroffene Tabelle, nie Nachrichtentext oder Codes.
v0.99.599
15. Oktober 2026

Direktbuchungen entstehen nur in einem freien Zimmer des Hauses

  • Eine bezahlte Direktbuchung entsteht nur in einem Zimmer, das es im Haus gibt und das in diesem Zeitraum frei ist. Ist das gewählte Zimmer inzwischen belegt, umbenannt oder abgeschaltet, wird die Zah…
  • Die Buchungsseite lehnt eine Anfrage ab, wenn Zimmer und Zimmertyp nicht zusammenpassen.
v0.99.598
15. Oktober 2026

KI-Schnittstelle ändert keine Konten mehr

  • Über die KI-Schnittstelle (MCP) lassen sich keine Konten, E-Mail-Adressen, Rollen, Kennwörter, Benachrichtigungen oder Geräte mehr ändern — das geht nur noch angemeldet in Foyer selbst. Agenten lesen…
  • members.update über MCP macht niemanden mehr zum Inhaber und ändert keinen Inhaber.
  • Entfallen sind die REST-Lesepfade /team, /team/by-id, /team/list-for-recipients, /team/list-rooms, /team/me, /team/preferred-rooms, /users/ical-token/status und /users/notification-prefs; die Mitglie…
v0.99.597
15. Oktober 2026

Stornierte Buchungen zeigen im Anreise-Guide keine Türcodes mehr

  • Der Anreise-Guide zeigt für stornierte oder nur vorgemerkte Buchungen keine Haustür-, Schlüsselbox- und WLAN-Daten mehr; der Link meldet wie nach der Abreise "abgelaufen". Wird die Buchung wieder bes…
v0.99.596
15. Oktober 2026

Beds24-Zustellungen ohne gültiges Geheimnis werden nur noch als Beleg protokolliert

  • Meldungen an den Beds24-Webhook, die ohne gültiges Geheimnis ankommen, hinterlassen nur noch einen Beleg (Zeit, Grund, Absender-Kennung) und keinen Inhalt. Angaben aus solchen Meldungen werden nirgen…
  • Pro Haus werden höchstens 30 solcher abgewiesenen Meldungen je Minute protokolliert; beantwortet werden sie unverändert.
v0.99.595
15. Oktober 2026

Zahlungen über Stripe wirken nur noch im eigenen Haus

  • Eine über Stripe gemeldete Zahlung, Erstattung oder abgelaufene Bezahlseite wirkt nur noch in dem Haus, dessen Stripe-Konto sie gemeldet hat. Passt das Konto nicht zum Haus, wird nichts angelegt oder…
v0.99.594
15. Oktober 2026

Buchungsabruf bei Beds24 mit deutlich weniger Anfragen

  • Foyer holt Buchungen bei Beds24 jetzt mit wenigen gebündelten Anfragen statt vieler einzelner. Das schont das Abrufkontingent und vermeidet, dass Beds24 kurz blockiert — eine Ursache für verzögerte G…
v0.99.593
15. Oktober 2026

Entwicklungsprozess — schnellere Doku-Auslieferung, weniger Überlastung beim Testen

  • Reine Dokumentationsänderungen gehen schneller live.
  • Testläufe überlasten die Entwicklungsmaschine nicht mehr gegenseitig — weniger wackelige Prüfungen, weniger Wiederholungen.
v0.99.592
15. Oktober 2026

„Bei Airbnb öffnen“ auch für Anfragen mit Bestätigungscode

  • „Bei Airbnb öffnen“ erscheint jetzt auch bei Airbnb-Anfragen, für die Airbnb statt einer Gesprächsnummer schon einen Bestätigungscode vergeben hat. Der Link führt dann zur Reservierung bei Airbnb.
v0.99.591
15. Oktober 2026

Ein-Klick-Knopf führt direkt in den Gesprächsfaden

  • Nach dem Übernehmen einer Booking.com-Telefonnummer per Ein-Klick-Knopf öffnet Foyer sofort den Gesprächsfaden der Buchung — ohne Zwischenseite.
v0.99.590
15. Oktober 2026

Ein-Klick-Knopf speichert die Telefonnummer ohne Rückfrage

  • Der Ein-Klick-Knopf für Booking.com-Telefonnummern speichert jetzt sofort — ohne „Übernehmen“. Abgesichert über einen persönlichen Schlüssel im Lesezeichen; dafür einmal neu aus Einstellungen → Kanäl…
  • Steht beim Gast schon eine andere Nummer, fragt Foyer weiterhin nach, statt zu überschreiben.
v0.99.589
15. Oktober 2026

Telefonnummer aus Booking.com mit einem Klick übernehmen

  • Neuer Knopf für die Lesezeichenleiste (Einstellungen → Kanäle): Auf einer Buchungsseite im Booking.com-Extranet deckt ein Klick die Telefonnummer auf und öffnet Foyer mit Gast und Nummer. Mit „Überne…
  • Foyer fragt vor dem Speichern immer nach: welcher Gast, welche Buchung, bisherige und neue Nummer.
v0.99.588
15. Oktober 2026

Telefonnummern von Booking.com-Gästen mit einem Klick finden

  • Booking.com gibt Telefonnummern nicht mehr an Channel-Manager weiter. Fehlt bei einer Booking.com-Buchung die Nummer, führt in „Über den Gast“ ein Link direkt auf die Buchungsseite im Booking.com-Ext…
  • Die Startseite listet Booking.com-Anreisen von heute bis übermorgen ohne Telefonnummer, je mit diesem Link. Mit Nummer erreicht die WhatsApp-Anleitung den Gast auch dann, wenn die Nachricht über Book…
  • Neue Einstellung unter Einstellungen → Kanäle: die Booking.com-Hotel-ID, damit die Links auf die richtige Unterkunft zeigen.
v0.99.587
15. Oktober 2026

Entwicklungsprozess — im Hintergrund gestartete Auslieferungen blockieren sich nicht mehr selbst

  • Interne Auslieferung: Eine im Hintergrund gestartete Auslieferung hält die Sitzung, die sie gestartet hat, nicht mehr für eine fremde und bricht deshalb nicht mehr grundlos ab.
v0.99.586
15. Oktober 2026

Abgebrochene Nachrichten wieder aktivieren

  • In den Aktivitäten einer Buchung lässt sich eine abgebrochene automatische Nachricht wieder aktivieren. Sie geht dann zum ursprünglich geplanten Zeitpunkt raus, so als wäre sie nie gestoppt worden. L…
v0.99.585
14. Oktober 2026

Gäste-Code-Takt wartet nicht mehr bei jedem Lauf drei Minuten

  • Persönliche Haustür-Codes: ein Code, den Nuki noch nicht bestätigt hat, wird in jedem Takt einmal nachgeprüft, statt jedes Mal drei Minuten zu warten — der Lauf dauert wieder Sekunden.
  • Last-Minute-Anreise: ist der persönliche Haustür-Code 30 Minuten nach der Buchung nicht bestätigt, entsteht eine dringende Aufgabe „Haustür-Code fehlt“ — sie erledigt sich selbst, sobald Nuki den Cod…
  • Der Datenbank-Wächter meldet gewollte Sperren rund um Haustür-Codes und stay-Versand nicht mehr als Hänger, eine wirklich hängende Sperre aber weiter (ab 15 Minuten).
v0.99.584
14. Oktober 2026

Entwicklungsprozess — Prüfläufe vor einer Auslieferung werden seltener durch parallele Testläufe gestört

  • Interne Auslieferung: Während eine Änderung vor der Auslieferung geprüft wird, warten große lokale Testläufe, bis die Prüfung fertig ist — weniger Fehlalarme, weniger Wiederholungen.
v0.99.583
14. Oktober 2026

Entwicklungsprozess — die Warteschlange vor einer Auslieferung ist schneller wieder frei

  • Interne Auslieferung: Die nächste geprüfte Änderung kann schon starten, während die vorige noch ausgeliefert wird.
v0.99.582
14. Oktober 2026

Gastnachrichten bleiben nicht mehr still liegen

  • Wird eine Nachricht an Gäste vom Kanal kurz abgewiesen, versucht Foyer es automatisch erneut — nach wenigen Sekunden und danach im gewohnten Rhythmus.
  • Kommt eine geplante Nachricht wie die Check-in-Anleitung zweimal nicht durch, erscheint sie als Vorfall „Nachricht nicht zugestellt“; kurz vor der Anreise als Notfall mit Meldung aufs Handy. Der Vorf…
  • Hat eine Regel eine WhatsApp-Vorlage (etwa die Check-in-Anleitung), geht sie auch dann raus, wenn die Hauptnachricht scheitert — als zweiter Weg zum Gast, nie doppelt.
  • Der Grund eines gescheiterten Versands bleibt im Verlauf nachvollziehbar, auch nach „Erneut senden“.
v0.99.581
14. Oktober 2026

Stornoerlöse mit 7 % Umsatzsteuer ausgewiesen

  • Der Bericht weist Stornoerlöse laut Kanal mit 7 % Umsatzsteuer aus, wie die Übernachtung.
v0.99.580
14. Oktober 2026

Stornoerlöse mit 7 % Umsatzsteuer ausgewiesen

  • Der Bericht weist Stornoerlöse laut Kanal mit 7 % Umsatzsteuer aus, wie die Übernachtung.
v0.99.579
14. Oktober 2026

Abgebrochene Nachrichten lassen sich erneut senden

  • In den Aktivitäten einer Buchung lässt sich eine abgebrochene Nachricht, etwa die Check-in-Anleitung, wieder auslösen. Sie wird neu erstellt, mit den aktuellen Codes dieses Gastes, und geht nach eine…
v0.99.578
14. Oktober 2026

Booking.com-Stornierungen — Stornogebühr laut Kanal

  • Behält Booking.com bei einer Stornierung Geld ein, führen Folio und Buchung jetzt diesen Betrag — die gemeldete Zahlung, sonst die Stornogebühr, höchstens der gemeldete Preis. Die Provision wird nich…
  • Jede solche Stornierung trägt im Änderungsverlauf „Bitte prüfen“ mit den gemeldeten Werten, damit der erste echte Fall auffällt.
  • Meldet eine Stornierung noch den vollen Buchungsbetrag als Zahlung, bucht Foyer nichts und bittet stattdessen um Prüfung; im Beds24-Konto erfasste Zahlungen zählen nicht als Stornoerlös.
v0.99.577
14. Oktober 2026

Stornierungen mit Stornogebühr — Betrag brutto wie jede Buchung

  • Behält der Kanal bei einer Stornierung Geld, führen Folio und Buchung jetzt den Betrag, den der Gast laut Kanal gezahlt hat — brutto, wie bei jeder anderen Buchung, statt des Betrags nach Kanalprovis…
  • Das Buchungsfeld zeigt „Storniert · Betrag laut Kanal“, der Satz unter „Reservierungs-Finanzen“ und die Kachel „Stornoerlöse laut Kanal“ im Umsatzbericht sagen dasselbe: brutto, nicht die Auszahlung;…
  • Sieht eine Stornierung nach einer Teilerstattung aus oder greift die Preisgrenze, steht im Änderungsverlauf „Bitte prüfen“ mit den gemeldeten Werten.
v0.99.576
14. Oktober 2026

Entwicklungsprozess — gebündelte Prüfläufe nutzen ihre Plätze voll

  • Interne Auslieferung: Wenn mehrere Änderungen gleichzeitig auf ihre Prüfung warten, werden freie Plätze in einem gemeinsamen Prüflauf jetzt vollständig genutzt.
v0.99.575
14. Oktober 2026

Entwicklungsprozess — reine Dokumentationsänderungen gehen schneller durch

  • Interne Auslieferung: Änderungen, die nur die Dokumentation betreffen, durchlaufen eine schlanke Prüfung und halten die Auslieferung anderer Änderungen nicht mehr auf.
v0.99.574
14. Oktober 2026

Alle Daten eines Hauses als Export herunterladen

  • Alle Daten eines Hauses als Export herunterladen: Inhaber fordern unter Einstellungen → Datenexport einen vollständigen Export an — Aufenthalte, Gäste, Nachrichten, Rechnungen, Einstellungen, Zimmer …
  • Auch nach Ende der Testphase oder des Abos: der Export steht direkt auf der Seite „Abrechnung pausiert".
  • Passwörter, Zugangsdaten und die Werte von Tür- und Gäste-Codes sind nie im Export enthalten.
v0.99.573
14. Oktober 2026

Datenschutzerklärung und AVV nennen die Auswertung unbeantworteter Gästefragen

  • Datenschutzerklärung und Auftragsverarbeitungsvertrag (Anlage 2) nennen bei Mistral AI jetzt auch die nächtliche Auswertung von Gästefragen, die Foyer nicht automatisch beantworten konnte — nur für H…
v0.99.572
14. Oktober 2026

Offene Extras zeigen, ob der Gast den Zahlungslink hat

  • Ein offenes Extra in „Über den Gast“ sagt jetzt, wo es steht: Link verschickt, Link noch im Entwurf, oder vom Gast im Gästeportal angefragt.
  • Ein verworfener Vorschlag mit Zahlungslink erscheint nicht mehr als offenes Extra.
v0.99.571
14. Oktober 2026

Löschfrist — Antwort-Katalog bleibt beim Konto, Ankündigung nur bei echten Gastdaten

  • Der Katalog der Antworten auf häufige Gastfragen zählt zum Konto und bleibt bis zu dessen Löschung erhalten.
  • Eine Ankündigung zur Löschung der Gastdaten geht nur an Häuser, die tatsächlich Gastdaten haben.
v0.99.570
14. Oktober 2026

Löschfrist-Probelauf zählt jetzt auch die Konten vollständig

  • Der Probelauf der Löschfrist zählt die Kontodaten abgelaufener Häuser vollständig.
v0.99.569
14. Oktober 2026

Stornierungen mit Stornogebühr — Bericht, Hinweise und ehrliche Auszahlung

  • Der Umsatzbericht zeigt Stornierungen, bei denen der Kanal Geld behält, in einer eigenen Kachel „Stornoerlöse laut Kanal“ mit Summe und Anzahl — getrennt vom Umsatz, nicht in Belegung, ADR oder RevPA…
  • Preis und Zeitraum eines stornierten Aufenthalts lassen sich nicht mehr ändern (das Folio folgt der Gegenbuchung). Name, Kontakt, Zimmer und Gästezahl schon — dann mit dem Hinweis, dass das Folio nic…
  • „Folio zurücksetzen“ an einem stornierten Aufenthalt nennt den wahren Grund (storniert, das Folio folgt der Gegenbuchung) statt „es fehlen Preis oder Daten“ — auch über die Agenten-Schnittstelle.
  • Bei einer Stornierung mit Einbehalt steht unter „Reservierungs-Finanzen“ ehrlich, dass der Kanal die Auszahlung nicht übermittelt hat, statt einer geschätzten Zahl.
v0.99.568
14. Oktober 2026

Löschfrist nach Vertragsende — zunächst als Probelauf

  • Nach dem Ende eines Vertrags werden Gastdaten 30 Tage später gelöscht, das Konto ein Jahr später — so wie im Auftragsverarbeitungsvertrag und in der Datenschutzerklärung beschrieben.
  • Die Inhaber bekommen 30 und 7 Tage vor jeder Löschung eine E-Mail mit dem Termin und dem Angebot eines Exports; wer ein Abo abschließt, behält alles.
  • Der Lauf startet als Probelauf: er löscht noch nichts und verschickt nichts, sondern erstellt einen Bericht, was er täte.
  • Datenschutzerklärung: Speicherdauer des Kontos nach Vertragsende ergänzt.
v0.99.567
14. Oktober 2026

Zahlungslinks für Extras kurz und ohne Ablauf, Zahlstand beim Gast

  • Der Zahlungslink für ein Extra geht als kurzer Link auf der eigenen Domain hinaus, wie Portal- und Rechnungslinks.
  • Der Link verfällt nicht mehr nach einem Tag: beim Öffnen wird bei Bedarf eine neue Zahlung angelegt; ist schon bezahlt, erscheint die Bestätigung.
  • In „Über den Gast" steht jetzt auch ein angebotenes, noch nicht bezahltes Extra — mit dem Zeitpunkt, zu dem der Link verschickt wurde.
v0.99.566
14. Oktober 2026

Nimmt ein Gast ein Extra an, liegt der Zahlungslink schon bereit

  • Sagt ein Gast im Gespräch zu, einen angebotenen frühen oder späten Check-in oder späten Check-out zu buchen, legt Foyer einen Antwortentwurf mit dem passenden Zahlungslink an. Das Team prüft ihn und …
  • Hatte das Angebot die Zahlung vor Ort genannt, steht im Entwurf ausdrücklich, dass sie weiterhin möglich ist.
v0.99.565
14. Oktober 2026

Rechnungs-Autopilot – Erinnerung, automatischer Status und Probelauf für den Rechnungsversand

  • Gäste, die nach der Abreise ihre Rechnungsdaten noch nicht eingetragen haben, bekommen einmalig eine freundliche Erinnerung mit dem Formular-Link – nur wenn der Link vorher wirklich verschickt wurde …
  • Rechnungsanfragen schalten ihren Status selbst weiter: nach Abgabe des Formulars auf „in Bearbeitung“, nach dem Versand der Rechnung auf „erledigt“.
  • Jede Rechnung zeigt im Anfrage-Panel, ob der Autopilot sie verschicken würde oder warum nicht (Name, Summe, Datenstand und weitere Prüfungen).
  • Der automatische Rechnungsversand mit Haltefenster und Stopp-Knopf ist eingebaut und läuft zunächst im Probelauf.
v0.99.564
14. Oktober 2026

Stornierung mit Stornogebühr zeigt den einbehaltenen Betrag

  • Behält ein Kanal bei einer Stornierung Geld ein, trägt die Buchung diesen Betrag jetzt als Gesamtbetrag statt 0 — passend zum Folio.
  • Das Buchungsfeld im Postfach kennzeichnet ihn als „Storniert · einbehalten …“ (andere stornierte Buchungen mit Betrag als „Storniert · …“), damit er nicht wie eine gültige Buchung aussieht.
  • Aus dem Betrag einer stornierten Buchung entsteht nie ein neues Folio mit Übernachtung oder Beherbergungssteuer.
v0.99.563
14. Oktober 2026

Gescannte Dokumente werden in der EU gelesen

  • Liest Foyer ein gescanntes Dokument nicht selbst, übernimmt das jetzt Mistral AI in der EU statt eines US-Anbieters. Namen mit Umlauten werden zuverlässiger erkannt, Tabellen bleiben Tabellen.
  • Datenschutzerklärung und Auftragsverarbeitungsvertrag nennen den neuen Stand.
v0.99.562
14. Oktober 2026

Verbesserungsvorschläge mit KI-Unterstützung (EU)

  • Die tägliche Auswertung unter Nachrichten → Verbesserungen kann auf Wunsch ein Sprachmodell in der EU hinzuziehen: Es fasst unbeantwortete Gästefragen über Sprachen hinweg zusammen, benennt das Thema…
  • Gehören die Fragen zu einem Thema, das Foyer schon beantworten kann, schlägt die Auswertung stattdessen eine zusätzliche Erkennungsphrase vor — erst nachdem die eingebaute Erkennung sie an den echten…
  • Gastnamen, E-Mail-Adressen, Telefon- und Buchungsnummern werden vor dem Versand entfernt; nichts ändert sich ohne Klick.
v0.99.561
14. Oktober 2026

Webhooks entdoppelbar, Seitengrößen im API-Dokument

  • Webhooks: x-foyer-event-id bleibt über alle Wiederholungen eines Ereignisses gleich. Empfänger können damit doppelte Zustellungen erkennen.
  • Öffentliche API: Jeder limit-Parameter nennt im OpenAPI-Dokument sein Maximum. Ein zu großer Wert wird mit 400 abgelehnt, bevor die Abfrage läuft.
  • Preis- und Verfügbarkeitsänderungen legen nur noch dann Synchronisationsaufträge für Booking.com/Expedia an, wenn eine Direktanbindung aktiv ist.
v0.99.560
14. Oktober 2026

Gesperrte Häuser werden auch beim Beds24-Buchungsabruf übersprungen

  • Der regelmäßige Buchungsabruf über Beds24 ruft für Häuser mit gesperrtem Abo keine Buchungen mehr ab.
v0.99.559
14. Oktober 2026

AGB-Stand nennt beide Änderungen vom Oktober

  • Der Stand-Hinweis der AGB nennt jetzt beide Änderungen vom Oktober 2026 (steuerliche Pflichten und Auftragsverarbeitungsvertrag) und ab wann sie für bestehende Verträge gelten.
v0.99.558
14. Oktober 2026

Keine Antwortvorschläge mehr, die schon Gesagtes wiederholen

  • Hat ein Gast auf eine Frage schon die Standardantwort bekommen und schreibt wieder dazu — etwa um ein Angebot anzunehmen —, schlägt Foyer dieselbe Antwort nicht noch einmal vor und sendet sie auch ni…
  • Die Auswertung „Antwort wiederholt schon Gesagtes" meldet nur noch echte Wiederholungen derselben Frage, keine ähnlich klingenden Antworten zu einem anderen Thema.
v0.99.557
14. Oktober 2026

Kanäle — Beds24 oder Direktanbindung, nie beides; Hospitable-Reste entfernt

  • Eine Beds24-Verbindung und eine Direktanbindung an Booking.com oder Expedia lassen sich nicht mehr gleichzeitig scharf schalten — zwei Systeme am selben Kanal würden Überbuchungen erzeugen. Die Ableh…
  • Unter Einstellungen → Kanäle sind die Reste der gekündigten Hospitable-Anbindung entfernt: Zuordnungstabelle, Sync-Status und der Eintrag in der Kanalliste.
v0.99.556
14. Oktober 2026

Stornierungen mit einbehaltenem Geld stehen richtig im Folio

  • Storniert ein Gast über den Kanal und behält der Kanal nach seiner Stornoregel Geld ein, steht dieser Betrag jetzt im Folio, statt auf null gebucht zu werden. Die Beherbergungssteuer entfällt weiterh…
  • Der Änderungsverlauf sagt bei Stornierungen ehrlich, welcher Betrag von einer Foyer-Regel stammt und was der Kanal gemeldet hat.
v0.99.555
14. Oktober 2026

Developer-Portal — Werkzeugbeschreibungen ohne interne Verweise

  • Die Beschreibungen in der Public-API-Referenz, auf den Connect-Werkzeugseiten und in llms-full.txt enthalten keine internen Entwicklungsverweise mehr. Über MCP bekommen Agenten weiterhin die vollstän…
v0.99.554
14. Oktober 2026

MCP — Rechnungen lesen, Kamerabilder, Auszahlungen und Kalender; Rechnungs-PDFs nur im eigenen Haus

  • KI-Agenten können per MCP den Text einer ausgestellten Rechnung lesen, wie Gast und Steuerberater sie bekommen.
  • Der Inhaber kann einen Agenten das aktuelle Bild einer Kamera oder Türklingel abrufen lassen — nur mit ausdrücklicher Bestätigung und im Zugriffsprotokoll vermerkt — und Kamera- und Klingelverbindung…
  • Auszahlungen aus Direktbuchungen sind per MCP lesbar, ebenso die verbundenen Fremdkalender (iCal), die sich dort auch entfernen lassen.
  • Rechnungs-PDFs werden nur noch an angemeldete Nutzer des Hauses ausgeliefert, zu dem die Rechnung gehört.
  • MCP-Werkzeuge, die nur dem Inhaber vorbehalten sind, bleiben das auch für Schlüssel von Team und Rezeption.
v0.99.553
14. Oktober 2026

Developer-Portal — englische Werkzeugbeschreibungen und korrigierte Anleitung

  • Die Werkzeugbeschreibungen im Developer-Portal stehen auf Englisch, passend zum Rest des Portals.
  • Die Anleitung ist an mehreren Stellen korrigiert: Rollen und Module gelten für REST genauso wie für MCP, das curl-Beispiel für API-Schlüssel funktioniert jetzt wie abgedruckt, Seitenparameter sind ri…
  • Neu dokumentiert: Webhook-Ereignisse, die Prüfung der Signatur samt Beispielcode und die Wiederholungen bei fehlgeschlagener Zustellung.
v0.99.552
14. Oktober 2026

Pausierte Abos halten auch die Automatik an

  • Ist das Abo eines Hauses pausiert (Testphase abgelaufen, gekündigt, unbezahlt), ruht jetzt auch die Automatik: keine Gastnachrichten, kein Buchungs- und Nachrichtenabruf, keine Türcodes, keine KI-Auf…
  • Die Abrechnungsseite zeigt den Status, der wirklich gilt — eine abgelaufene Testphase heißt dort jetzt „Testphase abgelaufen" statt „Testphase".
  • Die Schnittstellen für Assistenten und Entwickler sperren pausierte Häuser einheitlich.
v0.99.551
14. Oktober 2026

Verbesserungen erkennen Wiederholungen und doppelte Nachrichten

  • Die tägliche Auswertung unter Nachrichten → Verbesserungen meldet jetzt Antwortvorschläge, die fast wörtlich wiederholen, was im selben Gespräch schon gesendet wurde — etwa ein Angebot, das der Gast …
  • Sie meldet außerdem, wenn dieselbe automatische Nachricht zweimal an dieselbe Buchung ging, mit der Ursache (von Hand erneut gesendet oder nach einer Datumsänderung neu geplant) und einem Link zur Bu…
v0.99.550
14. Oktober 2026

Preisvorschläge rechnen den eigenen Gastpreis genauer um

  • Preisvorschläge vergleichen den eigenen Preis mit Mitbewerbern jetzt über den gemessenen Aufschlag auf das Zimmer, das Booking.com zeigt, statt über einen festen Prozentsatz. An teuren Tagen wie Mess…
v0.99.549
14. Oktober 2026

Erstattete Extras werden erkannt

  • Wird ein bezahltes Extra in Stripe erstattet, erkennt Foyer das selbst: das Extra steht als „erstattet“ beim Gast, das Folio bucht den Betrag gegen, und im Gästeportal ist es nicht mehr „gebucht“, so…
  • Teilerstattungen werden im Folio gegengebucht; das Extra bleibt gebucht, bis es ganz erstattet ist.
v0.99.548
14. Oktober 2026

MCP — Tarifnamen je Sprache in der Werkzeugbeschreibung

  • Die MCP-Werkzeuge zum Anlegen und Bearbeiten von Tarifen beschreiben jetzt, dass der Name automatisch übersetzt wird und wie sich der englische Gästename von Hand setzen lässt.
v0.99.547
14. Oktober 2026

AGB regeln die steuerlichen Aufzeichnungspflichten

  • Die AGB stellen klar, dass steuerliche Aufzeichnungs- und Aufbewahrungspflichten beim Hotel liegen und Foyer ohne angebundene TSE keine Bargeld- oder Gutscheinzahlungen erfasst. Für bestehende Verträ…
  • Die Entwicklerseite nennt Barzahlung nicht mehr als allgemeine Folio-Funktion.
v0.99.546
14. Oktober 2026

Versendete und stornierte Rechnungen behalten ihren Status

  • Eine über Foyer verschickte Rechnung bleibt als „Versendet“ markiert, eine stornierte als „Storniert“ – der regelmäßige Abgleich mit dem Rechnungssystem setzt beide nicht mehr auf „Erstellt“ zurück.
  • Bestehende Rechnungen bekommen ihren richtigen Status beim nächsten Abgleich von selbst zurück.
v0.99.545
13. Oktober 2026

Genauere Preisvorschläge — Belegung, Zimmerarten und gut gebuchte Nächte

  • Preisvorschläge zählen Gäste, die am Morgen abreisen, nicht mehr als Belegung der folgenden Nacht. Der Buchungsstand stimmt damit auch an Tagen nach vollen Nächten.
  • Vorschläge für Einzel- und Dreierzimmer folgen jetzt der eingestellten Preisstrategie und werden aus dem Doppelzimmer-Vorschlag abgeleitet.
  • Gut gebuchte normale Nächte, die unter dem Marktdurchschnitt liegen, bekommen einen Anhebungsvorschlag — in kleinen Stufen und höchstens bis zum Marktniveau. Gesenkt wird an normalen Nächten weiterhi…
v0.99.544
13. Oktober 2026

Regel-Bedingungen gelten beim Versand

  • Wird eine Buchung verkürzt oder die Gästezahl geändert, prüft Foyer die Bedingungen einer Nachricht wie „ab 2 Nächten“ beim Versand erneut. Trifft eine Bedingung nicht mehr zu, entfällt die Nachricht…
v0.99.543
13. Oktober 2026

Übersetzen und Bewertungs-KI laufen in der EU

  • Übersetzungen im Postfach, Antwortentwürfe auf Bewertungen und die Mängel-Zusammenfassung je Zimmer laufen jetzt über Mistral AI in der EU statt über einen US-Anbieter.
  • Die Datenschutzerklärung beschreibt den neuen Stand.
v0.99.542
13. Oktober 2026

Vorbereitung: Textfunktionen können über Mistral AI (EU) laufen

  • Keine sichtbare Änderung: Übersetzen, Antwortentwürfe auf Bewertungen und die Mängel-Zusammenfassung je Zimmer können künftig über Mistral AI mit Verarbeitung in der EU laufen. Eingeschaltet wird das…
v0.99.541
13. Oktober 2026

Datenschutzhinweise: Mistral AI (EU) als Dienstleister für Textfunktionen

  • Datenschutzerklärung und Auftragsverarbeitungsvertrag nennen Mistral AI (Frankreich) als Dienstleister für Übersetzungen, Antwortentwürfe auf Gästebewertungen und die Mängel-Zusammenfassung je Zimmer…
v0.99.540
13. Oktober 2026

Übersetzungen und Mängel-Zusammenfassung zuverlässiger

  • Übersetzen im Postfach zeigt keine unlesbare Rohantwort mehr, wenn der Übersetzungsdienst ein unerwartetes Format liefert; Foyer fragt dann einmal neu.
  • Die Mängel-Zusammenfassung je Zimmer fragt einmal neu, wenn die erste Antwort leer ist.
v0.99.539
13. Oktober 2026

Vorbereitung für einen KI-Anbieter mit Sitz in der EU

  • Keine sichtbare Änderung: Übersetzen, Antwortentwürfe auf Bewertungen und die Mängel-Zusammenfassung je Zimmer laufen jetzt über einen gemeinsamen Baustein. Das bereitet den Vergleich mit einem KI-An…
v0.99.538
13. Oktober 2026

Bargeld, Gutscheine und Kassenbuch nur mit zertifizierter Sicherheitseinrichtung; Datenschutzhinweise ergänzt

  • Zahlungen per Bargeld oder Gutschein und das Kassenbuch stehen nur noch Häusern zur Verfügung, die eine zertifizierte technische Sicherheitseinrichtung (TSE) angebunden haben. Karte, Überweisung und …
  • Datenschutzerklärung und Auftragsverarbeitungsvertrag nennen jetzt auch die Antwortentwürfe auf Gästebewertungen und die Zusammenfassung der Mängel je Zimmer.
  • Die Entwicklerseite beschreibt das Kassenbuch korrekt: Einträge werden storniert, nicht gelöscht.
v0.99.537
13. Oktober 2026

Teilstorno einer Mehrzimmerbuchung storniert nicht mehr den ganzen Aufenthalt

  • Fällt bei einer Mehrzimmerbuchung ein einzelnes Zimmer weg, bleibt der Aufenthalt bestätigt — die übrigen Gäste behalten ihren Türcode.
  • Storniert ist ein Aufenthalt erst, wenn alle Zimmer der Buchung storniert sind.
  • War das weggefallene Zimmer das Hauptzimmer des Aufenthalts, rückt ein verbleibendes Zimmer nach.
v0.99.536
13. Oktober 2026

Direktbuchung — Tarifnamen in der Sprache des Gastes

  • Tarifnamen erscheinen auf der Buchungsseite in der Sprache des Gastes und wechseln mit, wenn der Gast zwischen Deutsch und Englisch umschaltet — in der Zimmerwahl wie in der Buchungsübersicht.
  • Beim Anlegen oder Umbenennen eines Tarifs übersetzt Foyer den Namen automatisch; in den Tarifeinstellungen lässt sich die englische Fassung von Hand überschreiben.
  • Auch der Standard-Tarif lässt sich jetzt umbenennen.
v0.99.535
13. Oktober 2026

„Erneut senden" fragt vorher nach

  • „Erneut senden" in den Schnellaktionen über dem Antwortfeld schickt eine Nachricht erst nach einer Rückfrage — ein versehentlicher Klick geht nicht mehr an den Gast.
  • Jedes erneute Senden einer Regel-Nachricht wird im Protokoll des Aufenthalts festgehalten, mit Auslöser und Ursprungsnachricht.
v0.99.534
13. Oktober 2026

Mitbewerber, die nur nach unten zählen

  • In der Preisstrategie lassen sich Mitbewerber markieren, die im Marktdurchschnitt nur zählen, wenn sie ihn senken. Ein Haus, das fast immer weit über dem Feld liegt, verzerrt den Markt damit nicht me…
  • Die Preise dieser Häuser bleiben erhalten und sichtbar; die Regel gilt gleich für Preiskalender, Preisvorschläge, Hochpreistage, Obergrenze und Ereignis-Aufschläge.
v0.99.533
13. Oktober 2026

Geplante Nachrichten ab Buchung sichtbar und bearbeitbar

  • Alle automatischen Nachrichten einer Buchung sind ab der Buchung eingeplant und lassen sich einzeln bearbeiten, absagen oder vorziehen, auch Monate vor der Anreise.
  • Ändert sich An- oder Abreise, wandern die eingeplanten Nachrichten mit. Kein Gast bekommt eine Nachricht mehr zum alten Termin oder doppelt.
v0.99.532
13. Oktober 2026

Beherbergungssteuer auf dem Preis der Buchungsseite

  • Die Buchungsseite zeigt und berechnet die Beherbergungssteuer zusätzlich zum Zimmerpreis, nach der Regel des Hauses (zum Beispiel je Erwachsenem und Nacht).
  • Auf der Zimmerkarte steht unter dem Gesamtpreis, wie viel davon Beherbergungssteuer ist; die Zusammenfassung vor dem Buchen zeigt Übernachtung und Steuer als eigene Zeilen.
  • Ein Rabattcode wirkt nur auf den Zimmerpreis, nicht auf die Steuer.
  • Die Preisabfrage der Buchungs-Schnittstelle liefert die Steuer als eigenes Feld, wenn die Gästezahl mitgegeben wird.
v0.99.531
13. Oktober 2026

Gäste, die nicht ins Haus kommen, lösen jetzt zuverlässig einen Alarm aus

  • Schreibt ein Gast, dass er vor der Tür steht, die Eingangstür nicht aufbekommt, den Code an der Unterkunft braucht, meldet Foyer das jetzt als dringenden Zugangsfall — auch auf Englisch und Spanisch.
v0.99.530
13. Oktober 2026

Automatische Antworten: Unterschriften und Zimmerangebote sicherer erkannt, "Heute" springt nicht mehr

  • Automatische Antworten gehen nur noch raus, wenn hinter der Grußformel wirklich eine Unterschrift steht. Ein Wunsch wie "Bitte Parkplatz" auf der Zeile nach "Viele Grüße" wird nicht mehr mit einem Na…
  • Fragt ein Gast nach einem Zimmer, das das Haus anbietet ("Haben Sie ein Zimmer mit eigenem Bad?", "Do you have a room with a private bathroom?", "Avez-vous une chambre …", "Hebben jullie een kamer …"…
  • In "Heute" erscheint die Zeile "N Vorschläge warten auf Freigabe" zusammen mit der Vorfälle-Karte statt vorher und springt nicht mehr nach unten, wenn die Karte nachlädt. Ein früher Tipp trifft damit…
v0.99.529
13. Oktober 2026

Kontaktdaten nach bestätigter Anfrage

  • Bestätigt ihr eine Buchungsanfrage, übernimmt Foyer Telefonnummer und E-Mail des Gasts, sobald der Kanal sie herausgibt. Bisher fehlten sie bei Anfragen dauerhaft. Was ihr selbst eingetragen habt, bl…
v0.99.528
13. Oktober 2026

Buchungsbestätigung auch nach bestätigter Anfrage

  • Gäste, die eine Buchungsanfrage stellen, bekommen die Buchungsbestätigung jetzt auch dann, wenn die Anfrage erst Stunden später angenommen wird. Bisher ging sie nur raus, wenn die Bestätigung innerha…
v0.99.527
13. Oktober 2026

Auftragsverarbeitungsvertrag online und Prüfstand für die automatische Auswertung

  • Der Auftragsverarbeitungsvertrag steht jetzt öffentlich unter /avv, mit technischen und organisatorischen Maßnahmen, Unterauftragsverarbeitern und einer Anlage zur Verbesserung der automatischen Ausw…
  • Neu in den Einstellungen unter KI: Der Inhaber kann der Verbesserung der automatischen Auswertung zustimmen oder sie widerrufen. Ein Widerruf löscht die gesammelten Fälle sofort.
  • Mit Zustimmung vergleicht Foyer jede Nacht, was die Regeln aus Gastnachrichten gelesen haben, mit dem, was später bestätigt wurde. Firma, USt-ID, E-Mail, Telefon und Rechnungsadresse bekommen je eine…
  • Gespeichert werden nur kurze, maskierte Ausschnitte ohne Namen, Firmen, Adressen und Ziffern. Nachrichten mit Gesundheitsangaben werden nie gespeichert, nach zwölf Monaten wird alles gelöscht, und es…
  • Gäste können der Auswertung widersprechen; das Team setzt den Widerspruch direkt am Aufenthalt.
  • AGB und Datenschutzerklärung verweisen auf den neuen Vertrag und beschreiben die Verbesserung.
v0.99.526
12. Oktober 2026

Rechnungsformular übernimmt auch die Umsatzsteuer-ID aus der Nachricht

  • Nennt die Buchungsplattform in der Gastnachricht die Umsatzsteuer-ID der Firma, steht sie im Rechnungsformular schon im Feld — der Gast sieht und bestätigt sie.
v0.99.525
12. Oktober 2026

Bezahlte Extras im Folio, keine Extras nach dem Aufenthalt, Bestätigung nach dem Bezahlen

  • Ein im Gästeportal oder per Zahlungslink bezahltes Extra (früher/später Check-in, später Check-out) steht jetzt im Folio — als Leistung und als Kartenzahlung in derselben Höhe — und damit auf der Rec…
  • Extras sind nur noch buchbar, solange sie Sinn ergeben: früher Check-in bis zum Anreisetag, später Check-in bis zur Nacht danach, alles andere bis zum Abreisetag. Danach bietet das Portal sie nicht m…
  • Nach dem Bezahlen landet der Gast im Abschnitt, in dem er bezahlt hat, sieht „Danke! Ihre Zahlung ist eingegangen.“ und das gebuchte Extra — auch wenn er danach eine andere Uhrzeit wählt. Ist die Zah…
  • Das Gästeportal heißt im Browser-Tab nach dem Hotel und wird nicht mehr von Suchmaschinen erfasst.
v0.99.524
12. Oktober 2026

Erledigte Vorfälle bleiben erledigt

  • Ein Vorfall, den das Team als erledigt markiert, kommt nicht mehr zurück, nur weil der Gast vorher zweimal zur selben Sache geschrieben hat. Schreibt der Gast danach erneut, erscheint er wieder.
v0.99.523
12. Oktober 2026

„Heute" ohne Dreibettzimmer-Preishinweis

  • Der Hinweis „Dreibettzimmer unter dem Doppelzimmerpreis" steht nicht mehr auf „Heute". Die tägliche Prüfung dahinter entfällt; die Preisregel selbst gilt weiter, wo Foyer Dreierpreise ableitet.
v0.99.522
12. Oktober 2026

Direktbuchung — Bezahlschritt wieder in einer Spalte

  • Der Bezahlschritt der Direktbuchung steht wieder in einer Karte untereinander: Details, Summe, Rabattcode und Buchungsknopf. Die durchgehende Summenlinie, die ausgerichteten Zeilen und der Knopf „Zah…
v0.99.521
12. Oktober 2026

Direktbuchung — Tarifname nur, wenn er Tarife unterscheidet

  • Hat ein Haus nur einen Tarif, zeigt die Buchungsübersicht keinen Tarifnamen mehr — die Stornobedingungen darunter stehen in der Sprache des Gastes und sagen dasselbe.
v0.99.520
12. Oktober 2026

Mängel je Zimmer zuverlässiger

  • Bewertungen: Die Mängel-Zusammenfassung je Zimmer liefert verlässlich die vollständige Liste.
v0.99.519
12. Oktober 2026

Direktbuchung — Bezahlschritt in zwei Spalten mit mitlaufender Preisübersicht

  • Im Bezahlschritt der Direktbuchung stehen auf dem Rechner links die Buchungsdetails und rechts eine Preisübersicht mit Aufschlüsselung, Rabattcode und Buchungsknopf; sie bleibt beim Scrollen sichtbar.
  • Logo, Suchleiste, Schrittanzeige und Karten stehen im Bezahlschritt auf einer Linie, statt dass eine schmale Spalte mittig unter der breiten Kopfleiste steht.
  • Auf dem Telefon stehen beide Karten untereinander.
v0.99.518
12. Oktober 2026

Mängel je Zimmer aus den Bewertungen, Defekte in allen Gastsprachen, Übersetzen auf dem Telefon

  • Bewertungen: Die Übersicht „Zimmer mit Kritik“ lässt sich nach Kritik, Zimmernummer oder Note sortieren. Sie zählt jetzt auch gute Bewertungen mit Kritikpunkten.
  • Bewertungen: Je Zimmer fasst ein Knopf die Mängel aus den Bewertungstexten zu einer kurzen Liste zusammen, zum Beispiel „Duschvorhang schimmelig, Matratzen zu weich“.
  • Gastnachrichten: Meldet ein Gast auf Französisch, Spanisch, Portugiesisch, Italienisch, Niederländisch, Polnisch, Türkisch oder Dänisch, dass etwas nicht funktioniert, entsteht wie bei deutschen und …
  • Gesprächsverlauf auf dem Telefon: „Übersetzen“ steht als Link unter fremdsprachigen Gastnachrichten und ist nicht mehr nur über den langen Druck erreichbar.
v0.99.517
12. Oktober 2026

Direktbuchung — aufgeräumte Buchungsübersicht und eindeutiger Buchungsknopf

  • Die Buchungsübersicht der Direktbuchung steht sauber in einer Flucht: Bezeichnung und Wert teilen eine Grundlinie, die Stornobedingungen haben dieselbe Schrift wie die übrigen Angaben.
  • Die Gesamtsumme steht abgesetzt unter einer durchgehenden Linie, groß und rechtsbündig — mit Preis vor Rabatt und Rabatt darüber, wenn ein Code eingelöst ist.
  • Der Buchungsknopf heißt „Zahlungspflichtig buchen" und nennt den Betrag; der Hinweis darunter spricht nicht mehr von Einrichtung und Gebühren des Systems.
v0.99.516
12. Oktober 2026

Alte Zimmerlinks funktionieren unter der neuen Buchungsadresse

  • Alte Zimmerlinks aus dem bisherigen Buchungsportal funktionieren unter der neuen Adresse: Es reicht, im Link den Domainnamen zu tauschen. Zeitraum und Gästezahl bleiben erhalten.
  • Linkvorschauen in WhatsApp, Mail und sozialen Netzwerken zeigen das Titelbild jetzt von der Adresse des Hauses.
v0.99.515
12. Oktober 2026

Nachrichtenmenü auf dem Telefon nicht mehr vom Antwortfeld verdeckt

  • Gesprächsverlauf auf dem Telefon: Das Menü nach langem Druck auf eine Nachricht (Antworten, Kopieren, Übersetzen) klappt über der Nachricht auf, wenn darunter kein Platz ist. Bei der letzten Nachrich…
v0.99.514
12. Oktober 2026

Anfragen mit belegtem Zimmer — Meldung aufs Handy, mehr Sprachen, klare Auszahlung

  • Liegt ein Antwortentwurf für eine Anfrage mit inzwischen belegtem Zimmer bereit, erscheint im Postfach ein gelbes Etikett „Anfrage: Zimmer belegt – Entwurf bereit“, und es kommt eine Meldung aufs Han…
  • Der Antwortentwurf gibt es jetzt auch auf Spanisch, Französisch, Italienisch, Niederländisch und Polnisch.
  • Bei einer Airbnb-Anfrage heißt die Preisübersicht „Auszahlung laut Airbnb (Anfrage)“ und nennt daneben den Preis, den der Gast zahlt.
  • E-Mail-Adressen von Gästen ändern in der Kontaktkarte nur noch Rollen mit Betriebsrechten.
v0.99.513
12. Oktober 2026

Überwachung der Buchungsadresse unter foyer.rentals

  • Die Buchungsseite unter ihrer foyer.rentals-Adresse wird jetzt laufend überwacht, das Zertifikat eingeschlossen. Fällt sie aus, geht sofort eine Meldung raus.
v0.99.512
12. Oktober 2026

Telefonnummern ausländischer Gäste ohne Ländervorwahl eintragen

  • In „Über den Gast“ lassen sich Telefonnummern auch so eintragen, wie ausländische Gäste sie nennen — etwa eine niederländische Handynummer mit „06 …“. Foyer ergänzt die Ländervorwahl nach den Regeln …
v0.99.511
12. Oktober 2026

Postfach-Filter auf schmalen Telefonen vollständig sichtbar

  • Auf schmalen Telefonen sind alle Postfach-Filter vollständig zu sehen; der Filter „Vorschläge" ragt nicht mehr aus dem Bild.
v0.99.510
12. Oktober 2026

Antwortentwurf bei belegtem Anfrage-Zimmer nennt den Preis, den der Gast bei Airbnb zahlt

  • Der Antwortentwurf für eine Airbnb-Anfrage, deren Zimmer inzwischen belegt ist, nennt wieder einen Betrag — jetzt den Preis, den der Gast bei Airbnb zahlt, nicht die Auszahlung an das Haus.
v0.99.509
12. Oktober 2026

Jede Buchungsseite unter eigener Adresse bei foyer.rentals

  • Jedes buchbare Haus bekommt für seine Buchungsseite eine eigene Adresse unter foyer.rentals, zum Beispiel ihr-hotel.foyer.rentals. Eine eigene Domain braucht es dafür nicht.
  • Alte Links auf die bisherige Buchungsadresse führen automatisch dorthin. Gewählter Zeitraum und Zahlungsrückkehr bleiben erhalten.
  • Gästeseiten und das Betreiber-Konto liegen jetzt auf getrennten Domains.
  • Wer eine eigene Domain hinterlegt hat, behält sie als Hauptadresse.
v0.99.508
12. Oktober 2026

Zimmerfragen werden auch auf Spanisch, Französisch, Italienisch, Niederländisch und Polnisch beantwortet

  • Fragt ein Gast auf Spanisch, Französisch, Italienisch, Niederländisch oder Polnisch nach Bad, Personenzahl, Betten oder Ausstattung seines Zimmers, antwortet Foyer jetzt in dieser Sprache aus dem Zim…
  • Auch Fragen wie „ich wollte bestätigt haben, dass ich ein Zimmer mit Bad gebucht habe" werden als Zimmerfrage verstanden, ohne Fragezeichen.
  • Was das Haus nicht erfasst hat, wird weiter nicht geraten: ohne Eintrag gibt es keine Antwort, nur den Entwurf für den Menschen. Beschwerden, Wünsche und Zusätze („für meine Mutter", „mit Rollstuhl")…
  • Automatisch gesendet wird in einer dieser Sprachen weiter nur, wenn sie für den Autoversand freigegeben ist, der Schalter „Automatisch senden“ der Zimmerfrage an ist und die Antwort-Vorlage dort über…
v0.99.507
12. Oktober 2026

Ankunftsangaben und Frühwünsche werden zuverlässiger erkannt

  • „Wir wären gegen 16 Uhr da" und „Wir sind gegen 16 Uhr da" werden wie „Wir kommen gegen 16 Uhr an" als Ankunftszeit verstanden und mit dem passenden Check-in-Fenster beantwortet.
  • Eine Grußformel mit Namen am Ende („Mit freundlichen Grüßen Vorname Nachname", „Viele Grüße, Jan") hindert die automatische Antwort auf eine reine Ankunftsangabe nicht mehr.
  • Die Bitte um einen früheren Check-in ohne Uhrzeit wird in allen Antwortsprachen als solche erkannt, auch mit Tippfehler im Wort „Check-in" („cheking"), und bekommt einen Entwurf mit den Check-in-Zeit…
v0.99.506
12. Oktober 2026

KI-Vorschläge sind im Postfach und in „Heute“ sichtbar

  • Wartet zu einer Unterhaltung ein Antwortvorschlag der KI, zeigt die Postfach-Liste jetzt „Vorschlag bereit“ an der Zeile — bisher sah man ihn nur, wenn man den Faden öffnete.
  • Neuer Filter „Vorschläge“ im Postfach: alle Unterhaltungen, in denen ein Vorschlag auf Freigabe wartet.
  • „Heute“ nennt, wie viele Vorschläge auf Freigabe warten, und führt mit einem Tipp ins gefilterte Postfach. Gibt es keine, erscheint die Zeile nicht.
  • Hat die KI bewusst keinen Text vorgeschlagen, sondern den Fall an einen Menschen übergeben, steht an der Zeile „Bitte prüfen“.
  • Ein Vorschlag, auf den das Haus inzwischen selbst geantwortet hat, oder der zu einem seit über einem Tag abgereisten Gast gehört, zählt nicht mehr als offen.
v0.99.505
12. Oktober 2026

Entwicklungsprozess — robustere automatische Prüfung vor jeder Auslieferung

  • Die automatische Prüfung vor jeder Auslieferung unterscheidet jetzt sichtbar zwischen einem echten Fehler und einer überlasteten Prüfmaschine.
v0.99.504
12. Oktober 2026

Interne Qualitätssicherung — Buchungskalender an Monatsenden geprüft

  • Der Buchungskalender wird jetzt automatisiert auch an Monats- und Jahresgrenzen geprüft, damit er an keinem Kalendertag überraschend anders reagiert.
v0.99.503
12. Oktober 2026

Antwortentwurf bei belegtem Anfrage-Zimmer nennt bei Airbnb keinen Betrag mehr

  • Der Antwortentwurf für eine Airbnb-Anfrage, deren Zimmer inzwischen belegt ist, sagt nur noch „zum gleichen Preis“ — den Betrag zeigt Airbnb dem Gast im Angebot.
v0.99.502
12. Oktober 2026

Anfragen mit inzwischen belegtem Zimmer — Ausweichzimmer und fertige Antwort

  • Ist das Zimmer einer offenen Anfrage inzwischen über einen anderen Kanal gebucht, zeigt die Buchungskarte das an und nennt freie Zimmer derselben Kategorie — mit Kennzeichnung, welche denselben Preis…
  • Foyer legt dazu einmal eine fertige Antwort an den Gast als Entwurf in den Verlauf: gleichwertiges Zimmer, und der Preis, wenn er gleich ist. Gesendet wird erst nach Prüfung.
v0.99.501
12. Oktober 2026

Kein Notfall-Alarm mehr bei „Schlüssel liegt in der Schlüsselbox"

  • Erwähnt ein Gast die Schlüsselbox oder den Türcode nur nebenbei, etwa beim Auschecken („der Schlüssel liegt in der Schlüsselbox"), löst das keinen kritischen Zugangsalarm mehr aus. „Schlüsselbox leer…
  • Solche Abreisemeldungen stehen damit auch nicht mehr in „Unbeantwortet".
v0.99.500
12. Oktober 2026

„Unbeantwortet" ohne Abreisemeldungen und Abwesenheitsnotizen

  • Meldet ein Gast nur seine Abreise („Wir sind ausgecheckt, der Schlüssel liegt in der Box") oder antwortet eine Abwesenheitsnotiz, steht das Gespräch nicht mehr als wartend in „Unbeantwortet". Steht i…
  • Mehr Dankformen werden erkannt, etwa „Thank you, everything went smoothly!" oder „Ich habe es erhalten, vielen Dank".
v0.99.499
12. Oktober 2026

Rechnungsformular startet mit bekannten Angaben

  • Das Rechnungsformular für Gäste startet vorausgefüllt: Name, und bei Geschäftsreisenden „Firma“ samt Firmenname, wenn er bekannt ist — etwa aus dem Hinweis, den die Buchungsplattform an die Nachricht…
  • „Über den Gast“ zeigt den Firmennamen aus einer Gastnachricht, wenn die Buchung selbst keinen nennt.
v0.99.498
12. Oktober 2026

Automatische Antwort auf italienische Ankunftszeiten mit „per le …"

  • Nennt ein italienischsprachiger Gast seine Ankunft als „arriverò per le 16", geht die Antwort zur Check-in-Zeit jetzt automatisch raus, statt als Vorschlag liegen zu bleiben.
v0.99.497
12. Oktober 2026

Kontaktliste ohne verschachtelte Schaltflächen

  • In der Kontaktliste öffnet ein Klick auf eine Zeile weiter die Karte, die Telefonnummer lässt sich daneben anrufen oder kopieren — technisch jetzt sauber getrennt.
v0.99.496
11. Oktober 2026

Airbnb-Anfragen direkt bei Airbnb öffnen

  • Eine Airbnb-Anfrage heißt in der Buchungskarte jetzt „Anfrage“ (bzw. „Buchungsanfrage“) statt „Ausstehend“.
  • Darunter führt „Bei Airbnb öffnen“ direkt zum Gespräch bei Airbnb — dort wird vorab freigegeben, angenommen oder abgelehnt. Antworten geht weiter direkt aus dem Gespräch.
v0.99.495
11. Oktober 2026

Automatischer Neustart bei Ausfall, mit Schutz vor Fehlauslösungen

  • Antwortet Foyer zweimal hintereinander nicht, startet der Server die Anwendung jetzt selbst neu und benachrichtigt den Betreiber.
  • Während einer Aktualisierung und kurz nach dem Start bleibt dieser Neustart aus, damit eine geplante Umstellung nicht als Ausfall zählt.
v0.99.494
11. Oktober 2026

Gästekarte zeigt die frühere Adresse des Gasts

  • Die Gästekarte unter Kontakte zeigt unter der E-Mail-Adresse auch die frühere, etwa die Weiterleitung der Buchungsplattform, und eine frühere Telefonnummer.
v0.99.493
11. Oktober 2026

E-Mail und Telefon des Gasts direkt im Gespräch eintragen

  • In „Über den Gast“ lassen sich E-Mail-Adresse und Telefonnummer direkt eintragen und ändern, ohne das Gespräch zu verlassen.
  • Die eingetragene Adresse wird die gültige: Rechnung, Portal-Link und automatische Mails gehen dorthin, WhatsApp an die Nummer.
  • Die bisherige Adresse — etwa die Weiterleitung der Buchungsplattform — geht dabei nicht verloren, sondern steht darunter.
  • Schreibt ein Gast seine E-Mail-Adresse in den Chat, übernimmt ein Klick sie, wie schon bei Telefonnummern.
v0.99.492
11. Oktober 2026

Ruhigerer Abgleich mit dem Channel-Manager

  • Der regelmäßige Abgleich mit dem Channel-Manager speichert eine Buchung nur noch, wenn sich an ihr wirklich etwas geändert hat. Offene Fenster laden dadurch nicht mehr alle paar Minuten grundlos neu,…
  • Die Putzliste wird nur noch neu berechnet, wenn sich etwas ändert, das sie betrifft – Status, Abreise oder Zimmer einer Buchung. Wird ein Zimmer neu angelegt, umbenannt oder aktiviert, ziehen die Rei…
v0.99.491
11. Oktober 2026

Hintergrund-Tabs laden neue Nachrichten erst beim Zurückkehren

  • Ein Browser-Tab im Hintergrund lädt neue Nachrichten und geänderte Buchungen nicht mehr sofort nach, sondern erst, wenn man zu ihm zurückkehrt. Das Postfach bleibt dadurch auch bei vielen offenen Fen…
  • Treffen mehrere Nachrichten kurz nacheinander ein, aktualisiert sich die Ansicht einmal gesammelt statt mehrfach (spätestens 5 Sekunden nach der ersten).
v0.99.490
11. Oktober 2026

Schnellere Speicherung von Aufenthaltsänderungen

  • Änderungen an Aufenthalten werden deutlich schneller gespeichert, auch beim regelmäßigen Abgleich mit dem Channel-Manager. Kalender und Postfach reagieren dadurch flüssiger, wenn viel gleichzeitig pa…
v0.99.489
11. Oktober 2026

Datensicherungen reichen wieder zwei Wochen zurück

  • Die täglichen Datensicherungen reichen wieder verlässlich zwei Wochen zurück, auch an Tagen mit vielen Aktualisierungen.
v0.99.488
11. Oktober 2026

Die Ankunftszeit aus dem Chat wird jetzt in die Buchung übernommen

  • Die Übernahme der Ankunftszeit aus dem Chat ist eingeschaltet: Schreibt ein Gast seine Ankunftszeit in den Chat, erscheint sie in Heute-Liste, Buchungsansicht und Reinigungsplan mit dem Zusatz „laut …
v0.99.487
11. Oktober 2026

Nachrichten-Codes und -Regeln nur für Betriebsrollen

  • Nachrichten-Codes und -Regeln sind nur noch für Betriebsrollen (Inhaber, Mitarbeiter, Rezeption) sichtbar.
  • Die aktiven Türcodes eines Aufenthalts ebenso.
v0.99.486
11. Oktober 2026

Buchungsdatum neuer Aufenthalte wird wieder erfasst

  • Neue Aufenthalte aus dem Kanalmanager tragen wieder ihr Buchungsdatum. Das Buchungstempo der Preisvorschläge kann damit wieder gemessen werden.
  • Aufenthalte, die bisher ohne Buchungsdatum angelegt wurden, bekommen es aus der Beds24-Meldung nachgetragen.
v0.99.485
11. Oktober 2026

Die Ankunftszeit aus dem Chat landet in der Buchung (vorbereitet, noch aus)

  • Schreibt ein Gast seine Ankunftszeit in den Chat — über Booking.com, Airbnb, WhatsApp oder E-Mail —, kann Foyer sie jetzt in die Buchung übernehmen. Heute-Liste, Buchungsansicht, Tagesübersicht der R…
  • Eine im Gästeportal gewählte oder bezahlte Ankunftszeit hat immer Vorrang; eine spätere Chat-Angabe ersetzt nur eine frühere aus dem Chat.
  • Fragen nach einem früheren Check-in, Flug- und Zugzeiten, Gepäck- oder Frühstückszeiten und Nachrichten nach der Anreise werden nicht als Ankunft gelesen.
  • Die Übernahme ist vorbereitet und noch ausgeschaltet; sie wird nach einer Messung an echten Nachrichten eingeschaltet.
v0.99.484
11. Oktober 2026

Anrufabruf meldet sich nicht mehr bei jedem Durchlauf an der FritzBox an

  • Foyer merkt sich die Anmeldung an der FritzBox und meldet sich nur noch neu an, wenn die Sitzung abgelaufen ist. Das Ereignisprotokoll der FritzBox füllt sich dadurch nicht mehr mit Anmeldungen.
  • Eine abgelaufene Sitzung wird jetzt sicher erkannt; der Abruf meldet sich dann einmal neu an, statt eine leere Anrufliste zu übernehmen.
v0.99.483
11. Oktober 2026

Anrufe erscheinen nach wenigen Minuten statt am nächsten Morgen

  • Die Anrufliste holt neue Anrufe von der FritzBox jetzt alle fünf Minuten — bisher einmal am Tag. Ein verpasster Anruf steht damit kurz danach in der Liste und als Rückruf-Aufgabe bereit.
  • Beim Öffnen der Anrufliste wird zusätzlich sofort abgerufen, ein Klick auf „Aktualisieren" ist nicht mehr nötig.
v0.99.482
11. Oktober 2026

Automatische Antworten — Spanisch, Niederländisch, Französisch, Italienisch und Polnisch vorbereitet

  • Die Prüfung vor einer automatischen Antwort kennt jetzt auch Spanisch, Niederländisch, Französisch, Italienisch und Polnisch: Grüße, Dank, Schlussformeln, Beschwerden, reine Ankunftsangaben („a las 1…
  • Eine automatische Antwort geht nur noch raus, wenn jeder eingesetzte Hausfakt in der Sprache des Gastes vorliegt; sonst bleibt sie Entwurf.
  • Die Zeile „Gesendet von meinem iPhone" (und ihre Geschwister in allen sieben Sprachen) hält eine automatische Antwort nicht mehr auf.
  • Die automatische Antwort auf eine Rechnungsbitte bleibt Entwurf, wenn daneben ein zweites Anliegen steht (eine andere Frage, Ankunftszeit, Gepäck, Check-in oder Check-out außer als Zeitpunkt der Rech…
v0.99.481
11. Oktober 2026

Längere automatische Wiederholung bei Versandfehlern

  • Scheitert eine Gastnachricht an einem kurzen Netz- oder Kanalausfall, versucht Foyer es nach 10, 30 und 60 Minuten sowie nach 2 Stunden erneut.
v0.99.480
11. Oktober 2026

Portal-Trichter auf der Check-in-Seite

  • Neue Übersicht „Portal-Trichter" auf der Check-in-Seite: wie viele Gäste den Link bekommen, das Portal öffnen, etwas ausfüllen, den Meldeschein abschicken und den Ausweis hochladen - mit Zahl und Ant…
  • Je Stufe aufklappbar: die Aufenthalte, die dort hängen geblieben sind (Vorname, Zimmer, Anreise, Kanal), damit die Rezeption gezielt nachhaken kann.
  • Das Öffnen des Portals wird jetzt verlässlich gezählt: Link-Vorschauen von WhatsApp, iMessage und anderen Messengern zählen nicht als Besuch.
v0.99.479
11. Oktober 2026

Offene Fenster verbinden sich nach einem Neustart zeitversetzt neu

  • Nach einem Update der Anwendung verbinden sich offene Fenster nacheinander neu statt alle im selben Augenblick; das Postfach ist dadurch auch direkt nach einem Update schnell.
  • Wer zwischenzeitlich getrennt war, bekommt Nachrichten und Aufenthalte, die in der Lücke eingegangen sind, nach dem Wiederverbinden nachgeladen.
v0.99.478
11. Oktober 2026

Fehlgeschlagene Nachrichten automatisch wiederholen und erneut senden

  • Scheitert eine automatische Gastnachricht an einer kurzen Störung der Verbindung, versucht Foyer es selbst noch dreimal (nach 5, 15 und 45 Minuten), bevor sie als fehlgeschlagen gilt.
  • In der Aktivität einer Buchung hat jede fehlgeschlagene Nachricht jetzt einen Knopf „Erneut senden" (mit Rückfrage, weil die Nachricht sofort an den Gast geht).
  • Das Menü „Erneut senden" über dem Antwortfeld listet auch fehlgeschlagene Nachrichten, die zuerst.
  • Die Fehlermeldung bei Verbindungsproblemen nennt jetzt den eigentlichen Grund.
v0.99.477
11. Oktober 2026

Beantwortete Bewertungen erledigen ihre Aufgabe selbst

  • Wer eine schlechte Bewertung im Extranet von Booking.com oder Airbnb beantwortet, muss die Aufgabe in Foyer nicht mehr abhaken — sie schließt sich beim nächsten Abruf selbst.
  • Bewertungen werden dreimal täglich abgerufen statt einmal.
v0.99.476
11. Oktober 2026

Kurzlinks räumen sich selbst auf

  • Kurze Gästelinks verschwinden nach einer Weile von selbst, sobald ihr Ziel nicht mehr existiert oder die Portal-Sitzung abgelaufen ist und der Link 30 Tage nicht geöffnet wurde.
  • Links zu Rechnungsformularen bleiben, solange die zugehörige Anfrage existiert.
v0.99.475
10. Oktober 2026

Kurze Links für Gäste

  • Gäste bekommen in Nachrichten und E-Mails statt eines sehr langen Links einen kurzen Link auf Foyers eigener Adresse.
  • Das gilt für das Gästeportal, den Gästeführer und das Rechnungsformular.
  • Bereits verschickte lange Links funktionieren unverändert weiter.
  • Kein externer Kürzungsdienst: die Links laufen über Foyer selbst, damit sie weder als Spam eingestuft noch von Dritten mitgelesen werden.
v0.99.474
10. Oktober 2026

Meldeschein im Gästeportal zuverlässiger

  • Das Gästeportal sagt beim Meldeschein genau, welche Angabe noch fehlt, statt eine technische Fehlermeldung zu zeigen.
  • Das Land wird aus einer Liste gewählt.
  • Eingaben bleiben erhalten, wenn die Seite neu lädt, etwa nach dem Wechsel in die Kamera für das Ausweisfoto.
  • Mitreisende werden vor dem Absenden geprüft; leere Zeilen stören nicht mehr.
  • Bei einem unerwarteten Fehler erscheint eine verständliche Seite mit „Neu laden“ auf Deutsch oder Englisch.
v0.99.473
10. Oktober 2026

Stabilere Auslieferung

  • Interne Auslieferung: Tests, die an einem festen Datum zu scheitern drohen, werden vor dem Commit abgefangen.
v0.99.472
10. Oktober 2026

Bewertungen zeigen das Zimmer, das man prüfen muss

  • Offene Bewertungen nennen jetzt das bewertete Zimmer, soweit es sich ermitteln lässt.
  • Neu in den Kritikpunkten: „Zimmer mit den meisten Kritikpunkten" — je Zimmer die Zahl schlechter Bewertungen, die Durchschnittsnote, die häufigsten Themen und die zugehörigen Bewertungen zum Aufklapp…
  • Bei Mehrzimmer-Buchungen zählt die Bewertung bei jedem gebuchten Zimmer und ist als „Mehrzimmer-Buchung" gekennzeichnet; Bewertungen ohne ermittelbares Zimmer werden als Zahl ausgewiesen statt weggel…
v0.99.471
10. Oktober 2026

Schnellere Auslieferung bei paralleler Arbeit

  • Interne Auslieferung: Konflikte zwischen parallelen Änderungen fallen früher auf, und eine häufige Konfliktquelle entfällt.
v0.99.470
10. Oktober 2026

Airbnb-Bewertungen genauer zugeordnet

  • Airbnb-Bewertungen werden ihrem Aufenthalt auch bei täglichem Gästewechsel zugeordnet.
v0.99.469
10. Oktober 2026

Schlechte Gästebewertungen fallen auf — Aufgabe, Übersicht der Kritikpunkte und Antwortentwurf

  • Eine neue schlechte Bewertung (höchstens 3 Sterne, bei Booking.com unter 7 von 10) legt automatisch eine Aufgabe mit hoher Priorität an: Note, Plattform, Vorname des Gastes, gekürzter Text und — wenn…
  • Neuer Abschnitt „Kritikpunkte" auf der Bewertungsseite: Durchschnittsnote je Plattform, Zahl der schlechten Bewertungen und die häufigsten Themen (Sauberkeit, Lärm, Bett, Bad, Temperatur, WLAN, Check…
  • „Antwortentwurf" bei jeder offenen Bewertung: ein höflicher Entwurf in der Sprache der Bewertung, editierbar. Für Bewertungen von Booking.com und Airbnb gibt es „Kopieren" und einen Link ins Extranet…
  • Neue Bewertungen von Booking.com und Airbnb mit schlechter Note erscheinen in der Liste der offenen Bewertungen auch ohne Text.
v0.99.468
10. Oktober 2026

Kurze Netzaussetzer fallen im Hintergrund nicht mehr auf

  • Kurze Aussetzer der Namensauflösung im Netz werden abgefangen: Abrufe bei Partnerdiensten (Buchungskanäle, Türschlösser, Übersetzung) scheitern dadurch seltener.
v0.99.467
10. Oktober 2026

Störungen werden schneller bemerkt

  • Foyer erkennt hängende Abläufe in der Datenbank jetzt selbst und meldet sie dem Betrieb innerhalb einer Minute, statt dass es erst beim Arbeiten auffällt.
v0.99.466
10. Oktober 2026

Telefonnummern aus Gästenachrichten mit einem Klick übernehmen

  • Schreibt ein Gast seine Telefonnummer in den Chat, bietet Foyer sie unter der Nachricht zum Übernehmen an: ein Klick, und sie gilt als WhatsApp-Nummer des Gastes. Danach geht die Check-in-Anleitung a…
  • Übernommen wird nie automatisch. Ist dieselbe Nummer schon hinterlegt, steht dort nur ein Häkchen; eine andere hinterlegte Nummer wird im Knopf genannt, bevor man sie ersetzt.
  • In „Über den Gast" erscheint derselbe Knopf, solange noch gar keine Nummer hinterlegt ist.
  • Erkannt werden internationale Schreibweisen (+49 …, 0049 …) und nationale mit führender Null, sobald das Land des Gastes bekannt ist. Buchungsnummern, Daten, Preise, Zimmernummern, Codes, Uhrzeiten u…
v0.99.465
10. Oktober 2026

Früher und später Check-in direkt im Ankunftsrad bezahlen

  • Wählt der Gast im Ankunftsrad eine Zeit mit Aufpreis (früher oder später Check-in), führt „Weiter zur Zahlung“ direkt zum Bezahlen; nach der Zahlung ist das Extra gebucht und die Ankunftszeit gespeic…
  • Ohne hinterlegtes Extra oder ohne verbundenes Zahlungskonto bleibt alles wie bisher: die Zeit wird gespeichert, der Hinweis des Hauses wird angezeigt.
  • Der Gast sieht im Portal, dass das Extra gebucht ist; die Buchungsansicht zeigt die gewählte Ankunftszeit.
  • Portal-Texte auf Deutsch und Englisch.
v0.99.464
10. Oktober 2026

Bewertungsbitte entfällt auch bei Airbnb-Gästen, die schon bewertet haben

  • Die Bedingung „nur wenn noch nicht bewertet" gilt jetzt auch für Airbnb-Gäste: hat ein Gast bereits bewertet, geht die Bewertungsbitte nicht mehr hinaus. Wo sich eine Bewertung nicht sicher einem Auf…
v0.99.463
10. Oktober 2026

Lernlauf findet knapp verpasste Gastfragen und zeigt, wie viele Fragen Foyer abdeckt

  • Der nächtliche Lernlauf erkennt jetzt Gastfragen, die zu einem vorhandenen Thema gehören und nur knapp unter der Erkennungsschwelle landen, weil dem Thema ein passender Wortlaut fehlt. Er schlägt daf…
  • Jede vorgeschlagene Phrase wird vor dem Vorschlag mit der echten Erkennung gegen alle Nachrichten der letzten 30 Tage geprüft: Sie muss die Nachricht dem richtigen Thema zuordnen und darf keine ander…
  • Jeder Lauf zählt, wie viele Gastfragen Foyer erkannt hat, wie viele es bewusst einem Menschen überlässt und wie viele Vorfälle sind. Der Stand der Verbesserungen zeigt „x von y Gastfragen ohne KI erk…
  • Neue Fragen werden früher erkannt: schon zwei gleichartige Fragen aus zwei Gesprächen genügen, und Fragen in verschiedenen Sprachen oder Wortformen („Fahrräder"/„Leihfahrräder", „Wasser im Pool"/„wat…
  • Fragen zum gebuchten Zimmer (eigenes Bad, Ausstattung), die Foyer aus dem Zimmerwissen beantwortet, zählen als erkannt und werden nicht mehr als Lücke oder neue Frage gemeldet.
v0.99.462
10. Oktober 2026

Rechnungsanfragen ohne sinnlosen Neuversand, Warnung bei knappem Übersetzungskontingent, Protokoll mit Postfach-Einträgen

  • Rechnungsanfragen: „nochmal senden" erscheint nicht mehr, solange das Rechnungssystem die Buchung noch gar nicht kennt — die Daten werden dann ohnehin automatisch nachgeliefert, sobald die Buchung do…
  • Übersetzung, Sprachnachrichten-Abschrift und Texterkennung melden es jetzt, wenn das gemeinsame Kontingent des Sprachdienstes wiederholt erschöpft ist, statt dass sich die Ablehnungen unbemerkt häufe…
  • Protokoll: Gespräche, die als erledigt, wieder offen, gelesen oder ungelesen markiert wurden, stehen dort jetzt mit Klartext statt mit technischem Namen. Protokollseite und Änderungsverlauf an der Bu…
v0.99.461
10. Oktober 2026

Automatische Nachrichten finden die Sprache des Gastes auch ohne Buchungsangabe

  • Automatische Nachrichten an Gäste, bei denen die Buchung keine Sprache nennt, richten sich jetzt nach der Landesvorwahl der Telefonnummer und nach der Sprache, in der der Gast geschrieben hat. Sprich…
  • Hotelinfos, die in Nachrichten eingesetzt werden (etwa WLAN), folgen derselben Sprache wie der Text darum.
  • Der Ankunftsguide öffnet sich in der Sprache der Buchung, nicht mehr nach dem Browser.
  • Die Vorab-E-Mail vor der Anreise wählt die Sprache auf dieselbe Weise.
v0.99.460
10. Oktober 2026

Gästenachrichten ohne Doppelungen — und Bewertungen wieder aktuell

  • Nachrichten-Regeln können jetzt „nur solange der Online-Check-in offen ist" und „nur wenn der Gast noch nicht bewertet hat" — geprüft beim Versand.
  • Verschickt eine Regel den Link zum Gästeportal, entfällt die zusätzliche Portal-Mail; Gäste bekommen den Link nicht mehr doppelt.
  • Bewertungen von Booking.com und Airbnb kommen wieder täglich in Foyer an — auch auf der Buchungsseite.
v0.99.459
10. Oktober 2026

Datenschutzerklärung: Angaben zu KI-Diensten berichtigt

  • Die Datenschutzerklärung nennt für die KI-Demo den tatsächlich genutzten Dienst und beschreibt die Verarbeitung durch Anthropic richtig (USA).
  • Neu festgehalten: im Online-Check-in hochgeladene Ausweisfotos werden ausschließlich auf unseren eigenen Servern gelesen und an keine KI-Dienste übermittelt.
v0.99.458
09. Oktober 2026

Portal-Mail im Verlauf, ruhigeres Neuladen, weniger Datenbankverbindungen

  • Der Verlauf „Aktivität" einer Buchung zeigt jetzt auch die E-Mail mit dem Link zum Gästeportal.
  • Bei neuen Nachrichten laden offene Fenster gebündelt und leicht versetzt nach, statt alle gleichzeitig.
v0.99.457
09. Oktober 2026

Stabilität — Foyer kann sich unter Last nicht mehr selbst blockieren

  • Viele gleichzeitige Aktionen können Foyer nicht mehr zum Stehen bringen (Ursache des Ausfalls am 09.10. ab 12:00).
v0.99.456
09. Oktober 2026

Zimmerfragen — eine zweite Personenzahl führt zum Entwurf

  • Fragt ein Gast, ob ein Zimmer für eine bestimmte Personenzahl geeignet ist, und nennt im selben Atemzug eine andere Zahl („wir sind drei"), beantwortet Foyer das nicht mehr automatisch, sondern legt …
v0.99.455
09. Oktober 2026

Zimmerfragen automatisch nur, wenn genau danach gefragt ist

  • Eine Zimmerfrage wird nur noch ohne Freigabe beantwortet, wenn sie schlicht nach dem Zimmer fragt („Gibt es einen Föhn im Zimmer?"). Fragen zu anderen Räumen, Zeiten, Kindern oder besonderem Bedarf g…
  • „Eigenes Bad oder Gemeinschaftsbad?" und „Ist das Bad im Zimmer oder auf dem Flur?" werden direkt mit dem Zustand des Zimmers beantwortet.
v0.99.454
09. Oktober 2026

Zimmerfragen genauer — Duschen, andere Räume, geteiltes Bad

  • Wer vor dem Check-in oder nach dem Check-out duschen oder die Toilette nutzen möchte, bekommt keine automatische Antwort über das Bad des Zimmers mehr.
  • Fragen zu einer Küche, Lounge oder anderen Räumen werden nicht mehr als Frage zum Zimmer beantwortet.
  • „Ist das Bad geteilt?" wird ohne irreführendes „Ja" beantwortet.
  • Die Antwortsprache richtet sich nur nach dem, was der Gast selbst geschrieben hat — nicht nach einer zitierten Nachricht des Hauses.
v0.99.453
09. Oktober 2026

Automatische Antworten nur in der Sprache des Gastes

  • Eine Antwort geht nur noch ohne Freigabe raus, wenn sie in der Sprache des Gastes vorliegt (Deutsch oder Englisch) und die Sprache am Text selbst bestätigt ist — sonst bleibt sie Entwurf.
  • Fragt ein Gast mit einer Uhrzeit, einem Datum oder einer Dauer („bis 19 Uhr", „für 2 Tage"), bleibt die Antwort auf eine feste Vorlage ein Entwurf.
  • „Wer bringt neue Handtücher?" und „Wo ist der Föhn?" werden nicht mehr als Frage verstanden, ob es das im Zimmer gibt.
v0.99.452
09. Oktober 2026

Automatische Antworten nur auf die schlichte Frage

  • Eine feste Antwort (z. B. Gepäck) geht nur noch ohne Freigabe raus, wenn die Nachricht genau die Frage stellt, die sie beantwortet — ein Wunsch dazu („bis abends", „für eine Woche", „für meine Freund…
  • Zimmerfragen mit besonderem Bedarf (Medikamente, Rollstuhl, Kinderwagen, Allergie) oder einem Zusatz („für …", „weil …") beantwortet ein Mensch.
  • Kurze Nachrichten, deren Sprache bisher nicht erkannt wurde („Wir kommen um 18 Uhr an."), bekommen die Antwort in ihrer Sprache — auch als Entwurf.
v0.99.451
09. Oktober 2026

Tagesübersicht und Reinigungsplan zeigen die Abreisezeit des Gastes

  • Hat der Gast im Portal eine Abreisezeit gewählt, steht sie in der Tagesübersicht und im Reinigungsplan statt der vereinbarten Check-out-Zeit.
v0.99.450
09. Oktober 2026

Gästeportal zeigt die Gepäck-Infos wieder

  • Der Gepäck-Reiter im Gästeportal zeigt, wo Gäste ihr Gepäck vor dem Check-in und nach dem Check-out lassen können.
  • Der Check-out-Reiter nennt die reguläre Check-out-Zeit wieder.
v0.99.449
09. Oktober 2026

Behoben — Foyer reagierte zeitweise nicht

  • Foyer hing am 09.10. ab 12:00 zeitweise bei allen Aktionen mit Datenbank; behoben.
v0.99.448
09. Oktober 2026

Rechnungsanfragen zeigen nur noch die stay-Aktion, die gerade Sinn hat

  • Aufgeräumte Rechnungsanfragen: Der Bereich zum Rechnungssystem erscheint nur noch, wenn dort etwas zu tun ist — vor der Abreise ein kurzer Hinweis, danach genau die eine passende Aktion, und bei fert…
v0.99.447
09. Oktober 2026

Ausweisdaten werden häufiger erkannt

  • „Felder aus Ausweis übernehmen" erkennt die Zeilen mit <<< auf Pass und Personalausweis-Rückseite deutlich häufiger — weiterhin direkt auf dem Server.
  • Vor- und Nachname werden dabei zuverlässiger getrennt.
v0.99.446
09. Oktober 2026

Abreisezeit im Gästeportal wählen — mit spätem Check-out zum Bezahlen

  • Im Gästeportal wählt der Gast seine Abreisezeit mit demselben Rad wie die Ankunft, ab 06:00.
  • Eine Zeit nach dem regulären Check-out führt direkt zur Zahlung des späten Check-outs; nach der Zahlung ist er gebucht, Reinigung und Erinnerungen richten sich danach.
  • Die Buchungsansicht zeigt die vom Gast genannte Abreisezeit.
v0.99.445
09. Oktober 2026

Ausweisdaten werden lokal aus der maschinenlesbaren Zone gelesen

  • „Felder aus Ausweis übernehmen" im Gästeportal liest die Zeilen mit <<< auf Pass und Personalausweis-Rückseite direkt auf dem Server — ohne KI, ohne externe Dienste.
  • Prüfziffern sichern die gelesenen Daten ab: ist eine Zeile falsch gelesen, gibt es keinen Vorschlag statt eines falschen.
  • Vor- und Nachname kommen dabei getrennt an — vertauschte Namen gibt es auf diesem Weg nicht.
v0.99.444
09. Oktober 2026

Kurzfristige Anreisen bekommen eine Nachricht mit eigenem Türcode

  • Neue Regelbedingung „Mindestvorlauf (Std.)": lag zwischen Buchung und Check-in weniger, entfällt die Nachricht — aber nur, wenn die Willkommensnachricht mit dem Türcode schon gesendet ist. Damit beko…
  • Kurzfristige Anreisen (gebucht weniger als eine Stunde vor dem Check-in) bekommen ihren persönlichen Haustür-Code jetzt auch am Nachmittag und Abend des Anreisetags; die Nachricht mit dem Türcode war…
  • Kommt der persönliche Code nicht rechtzeitig, geht wie bisher der gemeinsame Haustür-Code hinaus — der persönliche wird dann verworfen, damit der Gast nicht zwei verschiedene Codes erhält.
  • Eine neue Buchung für heute stößt das Anlegen des persönlichen Codes sofort an, statt auf den nächsten Viertelstunden-Lauf zu warten.
  • Der Gästeführer-Link und der Check-in-Link werden auch dann eingesetzt, wenn sie in einem Textbaustein stehen, der in die Nachricht eingebettet ist.
v0.99.443
09. Oktober 2026

Gästeportal fragt ganz oben nach der WhatsApp-Nummer

  • Das Gästeportal fragt als ersten Abschnitt nach der WhatsApp-Nummer — für den Check-in-Code per WhatsApp und Neuigkeiten zum Aufenthalt. Unabhängig von der Ankunftszeit.
  • Der Abschnitt erscheint nur bei Häusern, die den Check-in-Code tatsächlich per WhatsApp verschicken; sonst bleibt das Telefonfeld wie bisher bei der Ankunftszeit.
v0.99.442
09. Oktober 2026

Gästeportal springt beim Aufklappen nicht mehr in der Breite

  • Das Gästeportal behält seine Breite, wenn man einen Abschnitt auf- oder zuklappt, und die Status-Symbole stehen bündig untereinander.
v0.99.441
09. Oktober 2026

Ankunftszeit öffnet sich erst auf Tipp

  • Im Online-Check-in zeigt die Ankunftszeit zuerst nur ein Feld; ein Tipp öffnet das Rad — auf dem Telefon von unten, am Rechner unter dem Feld, wie der Kalender. „Fertig" speichert und schließt, ein T…
v0.99.440
09. Oktober 2026

Objekt-Detail wie zuvor, kleinere Filter bei den Reservierungen

  • Die Detailseite eines Objekts sieht auf dem Telefon wieder aus wie vor dem 8. Oktober; nur lange Objektnamen brechen jetzt um, statt abgeschnitten zu werden.
  • Die Filter der Reservierungsliste sind auf dem Telefon so klein wie im Postfach.
v0.99.439
09. Oktober 2026

Mehr Gastangaben aus Booking.com, Ankunftszeit als Rad, Telefon im Online-Check-in

  • Bei Buchungen über Booking.com zeigt die Buchungsansicht jetzt Wohnland, Wohnort, Firma, die ungefähre Ankunftszeit laut Buchung, die Hinweise des Gastes (z. B. Zimmerwunsch, Kinderalter) und ob bere…
  • Booking.com gibt seit dem 28.09.2026 keine Telefonnummern mehr an Hotelsysteme weiter. Die Buchungsansicht sagt das bei betroffenen Buchungen, und Gäste können ihre Nummer im Online-Check-in selbst e…
  • Die Ankunftszeit im Online-Check-in wählt der Gast jetzt mit einem Rad — Stunden links, Minuten rechts, wie beim Wecker — und bestätigt mit „Fertig".
  • Die Mail mit dem Check-in-Link trägt den Betreff in der Sprache des Gastes und sagt richtig „in zwei Tagen".
v0.99.438
09. Oktober 2026

Objekte, Schlösser, Check-ins, Übergabe und Kassenbuch wie zuvor

  • Objekte, Schlösser, Check-ins, Übergabe und Kassenbuch sehen auf dem Telefon wieder aus wie vor dem Umbau vom 8. Oktober.
  • Zimmernamen brechen nicht mehr mitten im Wort um, und der Zimmertyp ist lesbar.
  • Tür- und Schlossnamen stehen vollständig da; Bearbeiten und Löschen der Zimmerschlösser sind ohne seitliches Wischen erreichbar.
  • Check-ins zeigen das Anreisedatum kurz und einzeilig; der Gastname führt zur Buchung.
  • Das Kassenbuch zeigt die Notiz unter der Kategorie und scrollt auch auf kleinen Telefonen nicht mehr seitlich.
v0.99.437
09. Oktober 2026

Zimmerwissen kennt jetzt auch „nicht vorhanden“ und Hinweise

  • Je Ausstattung gibt es in den Hotelinfos (Tab „Zimmer“) drei Zustände: vorhanden, nicht vorhanden oder unbekannt. Was Sie ausdrücklich als „nicht vorhanden“ eintragen, beantwortet Foyer Gästen mit ei…
  • Zu jeder Ausstattung lässt sich ein Hinweis in Deutsch und Englisch hinterlegen („Handtücher werden nicht täglich gewechselt, sondern nach dem Check-out.“). Er wird der Antwort in der Sprache des Gas…
  • Fragen nach dem Rauchen („Darf ich im Zimmer rauchen?“, „Is smoking allowed?“) werden aus dem Merkmal „Nichtraucherzimmer“ beantwortet, samt Hinweis. Meldungen wie „Es riecht nach Rauch im Zimmer“ be…
v0.99.436
08. Oktober 2026

Gästeportal auf Englisch

  • Das Gästeportal vor der Anreise gibt es jetzt vollständig auf Englisch: Meldeschein, Ausweis-Upload, Ankunftszeit, Hausordnung, Kaution, Sonderwünsche, WLAN, Anreise, Fundsachen und Bestellungen.
  • Gäste sehen das Portal automatisch in ihrer Sprache: Deutsch für deutschsprachige Gäste, Englisch für alle anderen. Maßgeblich ist zuerst die Sprache der Buchung, sonst die Spracheinstellung des Brow…
  • Oben im Portal steht ein kleiner DE/EN-Schalter. Die Wahl wird gemerkt.
  • Hinterlegt das Haus Texte wie WLAN, Gepäck oder die Check-in-Zeiten auch auf Englisch, erscheinen sie dem Gast in dieser Sprache.
  • Der Anreise-Guide startet in der Sprache des Portals statt immer auf Deutsch.
v0.99.435
08. Oktober 2026

Zimmerfragen beantwortet Foyer selbst

  • Einfache Fragen zum gebuchten Zimmer beantwortet Foyer jetzt selbst, ohne externen Dienst: ob das Bad im Zimmer oder auf dem Flur liegt, für wie viele Personen das Zimmer ausgelegt ist, welche Betten…
  • Foyer antwortet nur, was dort eingetragen ist. Fehlt eine Angabe, bleibt die Frage bei Ihnen; nie wird aus einer fehlenden Angabe ein „Nein". Bei einer Beschwerde oder Störungsmeldung in der Nachrich…
  • Die Antwort erscheint wie jede andere Antwort als Entwurf. In den Fragen steht dafür der neue Eintrag „Zimmer-Merkmale" mit dem Schalter „Automatisch senden", zunächst aus.
  • Fragt ein Gast in einer Nachricht mehrere Dinge (zum Beispiel nach der Zimmergröße und dem Weg zum Flughafen), schreibt Foyer eine einzige Antwort mit einem Gruß und allen Antworten. Das geschieht nu…
  • Automatisches Senden ist für Fragen zur Ankunftszeit jetzt an eine sichere Erkennung gebunden: nur wenn Foyer eine Uhrzeit aus der Nachricht gelesen hat und sie zum Thema passt. Fragen ohne Uhrzeit, …
v0.99.434
08. Oktober 2026

Anrufliste aufgeräumt

  • Die Anrufliste zeigt „Unbekannt“ nicht mehr an jedem Anruf — nur noch bekannte Anrufer wie Gäste oder das Reinigungsteam tragen eine Marke.
  • Verpasste Anrufe zeigen auf dem Telefon keine Dauer „0:00“ mehr.
  • Auf dem Telefon steht die Zeit eines Anrufs als „Heute 19:50“, „Gestern 18:10“ oder „Mo 05.10. 20:10“.
  • Auf dem Telefon ist der Kopf der Anrufliste schlanker und das Suchfeld nutzt die volle Breite.
v0.99.433
08. Oktober 2026

Die Übersicht zeigt, was ohne KI-Schlüssel läuft

  • Klarere KI-Anzeige: Ohne eigenen KI-Schlüssel sagt die Übersicht jetzt, was trotzdem läuft — FAQ-Antworten, Autoversand, Nacht-Bestätigung, Vorfall-Erkennung und Übersetzen — und dass nur freie Antwo…
v0.99.432
08. Oktober 2026

Rechnungsangaben kommen auch an, wenn der Gast sie vor der Abreise schickt

  • Rechnungsangaben gehen nicht mehr verloren: Schickt ein Gast Firmenanschrift, Steuernummer oder Rechnungs-E-Mail schon vor der Abreise, landen sie jetzt zuverlässig auf der Rechnung. Bis die Buchung …
v0.99.431
08. Oktober 2026

Zimmerwissen in den Hotelinfos

  • Neuer Tab „Zimmer" unter Einstellungen → Hotelinfos: Je Zimmertyp lässt sich festhalten, ob das Bad im Zimmer oder auf dem Flur liegt, für wie viele Personen das Zimmer taugt, welche Betten es hat un…
  • Einzelne Zimmer können vom Zimmertyp abweichen, zum Beispiel ein Zimmer mit Gemeinschaftsbad in einem sonst gleichen Typ; alles andere übernimmt es vom Typ.
  • „Vorschläge aus den Zimmertypen" füllt leere Felder vor (Bad aus dem Typnamen, Personenzahl aus den Objektdaten oder dem Namen des Typs). Gespeichert wird erst, nachdem die Vorschläge angesehen und e…
  • Die Angaben sind die Grundlage dafür, dass Foyer einfache Gastfragen nach Bad, Personenzahl und Ausstattung später selbst beantworten kann.
v0.99.430
08. Oktober 2026

Stabilere Verbindungen zu Buchungskanälen und Diensten

  • Zuverlässigere Verbindungen: Foyer löst die Adressen externer Dienste (Buchungskanäle, WhatsApp, Zahlungen) jetzt über einen eigenen, stabilen Namensdienst auf. Kurze Aussetzer beim Übersetzen werden…
v0.99.429
08. Oktober 2026

Warteschlange zeigt „Entfällt“ statt „Geplant“

  • Die Liste unter Nachrichten › Warteschlange zeigt eine anstehende Nachricht, die der Versand wegen eines gemeldeten Gästeproblems auslassen würde (etwa die Bewertungsanfrage), jetzt ebenfalls als „En…
  • Die Kacheln „In Warteschlange“ und „Heute geplant“ zählen nur, was auch tatsächlich rausgeht.
  • Das Werkzeug messaging_rules.list_queue liefert dasselbe Feld entfaelltWegen.
v0.99.428
08. Oktober 2026

Anrufliste auf dem Telefon wie zuvor

  • Die Anrufliste auf dem Telefon zeigt Anrufe wieder als Karten wie vor dem Umbau des 8. Oktober.
v0.99.427
08. Oktober 2026

Datenschutzerklärung vollständig, Übersetzen ohne Datenweitergabe zum Training

  • Datenschutzerklärung aktualisiert: Sie nennt jetzt alle Dienstleister, die Foyer tatsächlich nutzt, und wie man eine Kopie der Garantien für Übermittlungen außerhalb der EU erhält.
  • Übersetzen im Postfach: Gästenachrichten werden über einen Dienst übersetzt, der die Texte weder speichert noch zum Training verwendet.
  • Standortkarte im Postfach: Ein geteilter Standort lädt die Karte erst nach einem Klick — vorher besteht keine Verbindung zum Kartendienst.
v0.99.426
08. Oktober 2026

Anrufliste auf dem Telefon kompakt

  • Die Anrufliste auf dem Telefon zeigt jeden Anruf wieder als kompakte Zeile mit Name, Uhrzeit, Nummer und Dauer bzw. Rückrufstand; ein Tipp öffnet Anrufen, WhatsApp, Gast, Buchung, Rückruf und Notiz.
  • Die Filter der Anrufliste stehen auf dem Telefon in einer Reihe.
  • Auf den Seiten Anrufe und Reservierungen steht oben der Seitenname statt „Liste“.
v0.99.425
08. Oktober 2026

Bewertungsanfrage zeigt „Entfällt“, Booking.com-Fotos als Hinweis

  • Eine geplante Nachricht, die der Versand wegen eines gemeldeten Gästeproblems auslassen würde (etwa die Bewertungsanfrage), steht jetzt als „Entfällt · Gast hatte ein Problem“ da statt als „Geplant“ …
  • Fotos, die ein Booking.com-Gast per E-Mail-Antwort schickt, kommen nur als Dateinamen an. Im Faden stehen sie nicht mehr als Zeilen „[IMG]“ und Dateiname im Text, sondern als ein Hinweis mit der Zahl…
v0.99.424
08. Oktober 2026

Interne Auslieferung prüft vor dem Start, ob ihre Sicherung läuft

  • Die interne Auslieferung neuer Versionen prüft vor dem Start, ob ihre automatische Prüfung vor dem Veröffentlichen überhaupt aktiv ist, und richtet sie bei Bedarf selbst ein. Am Produkt ändert sich n…
v0.99.423
08. Oktober 2026

Ein Zeitraumfeld und ein Gästefeld im Dialog „Buchung anlegen"

  • Im Dialog „Buchung anlegen" sind Check-in und Check-out jetzt EIN Feld: ein Tipp öffnet den Kalender, der erste Tag ist die Anreise, der zweite die Abreise, danach schließt er sich. Am Rechner stehen…
  • Erwachsene und Kinder sind ein Feld („2 Erwachsene · 1 Kind"); ein Tipp öffnet − und +.
  • Die Einheit steht jetzt vor dem Zeitraum, und die bereits belegten Nächte dieser Einheit sind im Kalender gesperrt: nicht als Anreise wählbar, als Abreise schon, und kein Zeitraum reicht über eine be…
  • Wer die Einheit wechselt und im neuen Zimmer schon belegte Nächte erwischt, bekommt einen Hinweis statt einer stillen Doppelbuchung.
v0.99.422
08. Oktober 2026

Gästeportal — Ankunftszeit mit einem Tipp, automatisch zum nächsten Schritt

  • Die Ankunftszeit ist im Gästeportal jetzt EIN Feld: ein Tipp öffnet die Liste in 15-Minuten-Schritten, gegliedert nach frühem, regulärem und spätem Check-in mit dem Aufpreis aus den Hausregeln. Zeite…
  • Mit der Wahl ist die Zeit gespeichert — der Speichern-Knopf entfällt. Das Feld zeigt kurz „Speichert…" und danach „Gespeichert · 16:30"; schlägt es fehl, bleibt die Wahl stehen, und eine neue Wahl ve…
  • Wer die Ankunftszeit gespeichert, den Meldeschein abgeschickt oder die Hausordnung unterschrieben hat, wird automatisch zum nächsten offenen Abschnitt geführt: er klappt auf und rückt sanft ins Bild.…
  • Die gespeicherte Ankunftszeit erscheint für Gäste in anderen Zeitzonen jetzt in der Uhrzeit des Hauses, nicht in der des Geräts.
  • Eine Ankunft nach Mitternacht (bis zum Ende des späten Check-ins) zählt jetzt zur Nacht nach dem Anreisetag — in der Heute-Liste und bei der Reinigung steht der Gast damit als Letzter, nicht als Erst…
  • Deutsch und Englisch.
v0.99.421
08. Oktober 2026

Ein Zeitraumfeld statt zweier Datumsfelder — in der Buchungskarte, bei Walk-ins, im Meldeschein und in allen Filtern

  • Buchungskarte „Daten ändern", Walk-in erfassen und Meldeschein: Anreise und Abreise sind jetzt EIN Feld. Ein Tipp öffnet den Kalender, der erste Tag ist die Anreise, der zweite die Abreise, danach sc…
  • In der Buchungskarte sind die belegten Nächte der gewählten Einheit gesperrt (nicht als Anreise wählbar, als Abreise schon) — die Nächte der Buchung selbst bleiben frei, damit sie sich um einen Tag v…
  • Rabattcodes: „Qualifizierende Aufenthaltsdaten" und „Buchbar im Zeitraum" sind je ein Zeitraumfeld mit „Zeitraum entfernen". Einstellungen › Preise: „Preis pro Nacht setzen" und „Zimmer blocken" eben…
  • Filter mit Schnellwahl (Heute, Morgen, Diese Woche, Nächste 7 Tage, Dieser Monat): Postfach „Anreise", Kassenbuch-Verlauf, Nachrichten-Verlauf, Custom Codes (Buchungsdatum), Aufgabenkalender und der …
  • Walk-in und neue Postfach-Filter beginnen „heute" nach der Uhr des Hauses statt nach UTC — abends stimmte der Tag zuvor nicht.
v0.99.420
08. Oktober 2026

Buchungsseite — Anreise und Abreise in einem Feld

  • Auf der Buchungsseite für Gäste sind Anreise und Abreise jetzt auch im ersten Schritt EIN Feld: ein Tipp öffnet den Kalender, der erste Tag ist die Anreise, der zweite die Abreise, danach schließt er…
  • Es ist dasselbe Feld wie in der Suchleiste über dem Titelbild: ausgebuchte Nächte sind gesperrt (nicht als Anreise wählbar, als Abreise schon), ein bereits gewählter Zeitraum steht vorausgefüllt im F…
  • Die Seite bleibt zweisprachig (Deutsch/Englisch); das Feld trägt die Beschriftung „Zeitraum" bzw. „Dates".
v0.99.419
08. Oktober 2026

Reinigung sieht offene Schäden am Zimmer

  • Im Reinigungs-Link steht an jedem Zimmer, ob dort ein Schaden offen ist — auch wenn ihn die Rezeption erfasst hat, nicht nur die eigene Meldung. Das Werkzeug-Symbol ist dann farbig, und neben der Zim…
  • Zimmer in Wartung oder außer Betrieb sind in der Putzliste als solche markiert.
  • Ein Tipp auf das Werkzeug zeigt die offenen Schäden des Zimmers (eigene Meldungen gekennzeichnet) und darunter den Weg „Neuen Schaden melden". Ist nichts offen, öffnet der Tipp wie bisher direkt das …
  • Der Link zeigt dabei nur den kurzen Titel: keine Beschreibung, keine Namen, keine Telefonnummern oder Codes.
v0.99.418
08. Oktober 2026

Wischgesten im Postfach

  • Im Postfach auf dem Telefon nach links wischen markiert ein Gespräch als erledigt: es verschwindet aus „Unbeantwortet“ und zeigt keine Wartezeit mehr — bis der Gast wieder schreibt. Für einige Sekund…
  • Nach rechts wischen markiert ein Gespräch als ungelesen: die Zeile steht fett mit Punkt, bis jemand den Faden öffnet. Noch einmal wischen nimmt es zurück.
  • Am Rechner erscheinen dieselben zwei Aktionen als kleine Knöpfe, sobald man die Zeile mit der Maus überfährt; per Tastatur und Screenreader sind sie überall erreichbar.
  • Auch Agenten über MCP können Gespräche als erledigt oder ungelesen markieren; „unbeantwortete Nachrichten“ lassen erledigte Gespräche aus.
v0.99.417
08. Oktober 2026

Objekte, Anrufe, Kennzahlen, Einstellungen und Geräte auf dem Telefon

  • Objekte: Zimmernummer, Typ und Name für Gäste stehen auf dem Telefon in eigenen, gut tippbaren Zeilen statt gequetscht in einer Reihe; die Marke „Aktiv" entfällt.
  • Anrufe: eine Zeile je Anruf statt einer Karte, „Unbekannt" und „Verbunden" erscheinen nur noch bei Abweichung, WhatsApp ist ein Zeichen, Nummer und Notiz sind groß genug zum Tippen.
  • Kennzahlen und Belegungsanalyse: kein doppelter Titel mehr, Regelnamen und Zimmertypen brechen um statt mit „…" zu enden, die Aufschlüsselung nach Zimmertyp ist eine Liste statt einer abgeschnittenen…
  • Einstellungen: die Bereichsliste ist auf dem Telefon eingeklappt und nennt den aktuellen Bereich, der Inhalt steht sofort sichtbar darunter.
  • Geräte: Zimmerschlösser als Liste, Türnamen brechen um, alle Knöpfe und Felder sind mindestens 44 Pixel hoch.
v0.99.416
08. Oktober 2026

Reservierungen, Check-ins, Gästeblatt, Übergabe und Kassenbuch auf dem Telefon

  • Reservierungen und Check-ins sind auf dem Telefon Listen mit Zeilen statt Tabellen: Gast, Zeitraum und Zimmer stehen ohne seitliches Wischen im Bild, ein Status nur, wenn er vom Normalfall abweicht.
  • Das Kassenbuch zeigt die Buchungen des Tages als Zeilen mit Kategorie, Notiz und Betrag; Stornieren geht jetzt auch auf dem Telefon, und der Kopf mit Kassenstand und Tagessummen ist deutlich kompakte…
  • „Portal senden“ steht in der Liste der erwarteten Check-ins als eigener großer Knopf unter dem Gast.
  • Gästeblatt, Check-in-Detail und Schichtübergabe: lange Namen brechen um statt abgeschnitten zu werden, alle Knöpfe haben Daumengröße, die Überschrift steht nicht mehr doppelt unter der Kopfzeile.
  • Am Rechner bleiben alle Seiten, wie sie waren.
v0.99.415
08. Oktober 2026

KI-Hinweis auf der Startseite erkennt echte Probleme

  • Die Startseite meldet jetzt, wenn die KI nicht arbeitet: ausgeschaltet, Tageslimit erreicht oder gehäufte Fehlschläge – mit einem Satz, was los ist, und einem Link zu den KI-Einstellungen.
  • Bei ordentlich laufender KI bleibt die Karte weg.
v0.99.414
08. Oktober 2026

Aufräumen hinter der Aufgabenliste

  • Interne Aufräumarbeit an der Aufgabenansicht. Für Nutzer ändert sich nichts.
v0.99.413
08. Oktober 2026

Jede Seite nennt ihren Namen

  • Auf dem Telefon steht oben auch auf Unterseiten ihr Name: Folio, Aufgabe, Gast, KI-Agent, Fundsachen, Aufenthalte und Walk-in. Vorher stand dort nur „Foyer“.
v0.99.412
08. Oktober 2026

Übersicht auf dem Telefon aufgeräumt

  • Die Übersicht zeigt zuerst, was zu tun ist: Alarme und Operatives stehen vor den Kennzahlen.
  • Der Titel steht auf dem Telefon nicht mehr doppelt; der Erklärsatz entfällt.
  • Der KI-Status erscheint nur noch, wenn etwas zu tun ist (kein Schlüssel hinterlegt), nicht mehr als große grüne Karte.
  • Der Schnellzugriff steht auf dem Telefon in einer Spalte, und Beschriftungen brechen um statt mit „…“ abgeschnitten zu werden.
v0.99.411
08. Oktober 2026

Reinigungsliste im Stil von Foyer, dringende Zimmer zuerst

  • Die Liste für das Reinigungsteam sieht jetzt aus wie der Rest von Foyer: heller, ruhiger Grund mit den Farben der App. Dunkel wird sie nur, wenn das Telefon dunkel eingestellt ist.
  • „Fertig" ist ein klarer Hauptknopf im Foyer-Stil; die Zählerfarben sind zurückhaltender. Der ganze Tag passt weiter auf einen Bildschirm.
  • Zimmer, in die heute noch ein Gast anreist, stehen oben — nach Anreisezeit sortiert, mit dem Hinweis „Anreise 15:00". Danach folgt der Rest nach Etage, Erledigtes steht unten.
  • „Schaden melden" trägt nicht mehr in jeder Zeile ein gelbes Warndreieck, sondern ein ruhiges Werkzeug-Symbol. Gefärbt ist es nur, wenn zu dem Zimmer wirklich eine offene Meldung vorliegt.
v0.99.410
08. Oktober 2026

Rechnungen auf dem Telefon mit kompaktem Kopf

  • Auf dem Telefon steht über den Rechnungsanfragen nur noch eine Reihe Reiter statt zwei Reihen; die Anfragen rücken weiter nach oben.
  • Die Unterfilter (Alle, Offen, In Bearbeitung, Versandbereit, Erledigt) liegen dort hinter einem Filter-Symbol neben der Suche; ein Punkt am Symbol zeigt, dass ein Filter gesetzt ist.
  • Die Reiterreihe blendet am Rand aus, solange es weitergeht, und rückt den gewählten Reiter in die Mitte.
  • Ab Tabletbreite bleibt alles wie bisher.
v0.99.409
08. Oktober 2026

Heute auf dem Telefon als Liste

  • „Heute" zeigt auf dem Telefon jeden Gast als Zeile statt als Tabelle: Name und Uhrzeit, darunter Zimmer und Portal-Stand, die offenen Punkte als kleine Marken nebeneinander. Nichts läuft mehr rechts …
  • Ein Tipp auf die Zeile öffnet die Unterhaltung mit dem Gast.
  • Die Kopfzeile auf dem Telefon nennt auf der Aufgabenseite jetzt „Aufgaben" statt „Heute".
v0.99.408
08. Oktober 2026

Folio auf dem Telefon als lesbare Rechnungsansicht

  • Das Folio ist auf dem Telefon eine ruhige Rechnungsansicht: Positionen als Zeilen mit dem Betrag rechts, Gesamt, Bezahlt und Saldo als Block oben.
  • Alle Beträge sind ohne seitliches Wischen sichtbar; Position hinzufügen, Zahlung erfassen und Zurücksetzen liegen als Leiste mit großen Tippflächen bereit.
  • Eine Position lässt sich per Tipp auf die Zeile bearbeiten; die Summe der Zeile rechnet beim Tippen mit.
  • Am Rechner bleibt die Ansicht, wie sie war.
v0.99.407
08. Oktober 2026

Aufgabenliste auf dem Telefon als kompakte Liste

  • Die Aufgabenliste ist auf dem Telefon eine kompakte Liste: zwei Zeilen je Aufgabe statt einer großen Karte, so passen deutlich mehr Aufgaben auf den Bildschirm.
  • Ein Tipp auf den Kreis links erledigt eine Aufgabe sofort; in der Ansicht „Aktiv" verschwindet sie.
  • Fälligkeit („Heute", „Morgen" oder Datum) steht rechts neben dem Titel, die Priorität nur noch bei hoch und dringend.
  • Die zuständige Person erscheint als kleiner Kreis mit Initiale; ein Tipp darauf öffnet die Auswahl zum Zuweisen.
v0.99.406
08. Oktober 2026

Gezielt antworten, neue Nachrichten markiert, lose WhatsApp-Gespräche im neuen Gewand

  • Gezielt antworten: Eine WhatsApp-Nachricht nach rechts wischen oder lange drücken → „Antworten“. Am Rechner gibt es dafür einen Knopf an der Blase. Die zitierte Nachricht steht über dem Antwortfeld, …
  • Neue Nachrichten: Ein Trenner „3 neue Nachrichten“ markiert, was seit der letzten Antwort des Hauses gekommen ist. Beim Öffnen springt das Gespräch dorthin statt ganz nach unten.
  • WhatsApp-Gespräche ohne Buchung sehen jetzt aus wie alle anderen: Blasen mit Haken, Tagestrenner, Kopfzeile und Antwortfeld in einer Zeile. Auf dem Telefon nehmen sie den ganzen Bildschirm ein.
  • Der Knopf „zur neuesten Nachricht“ erscheint erst, wenn man wirklich weiter oben ist.
v0.99.405
08. Oktober 2026

Kalender auf dem Telefon — „Mehrere wählen“ wieder vorne

  • Auf dem Telefon steht „Mehrere wählen“ wieder direkt über dem Kalender, nicht mehr im Filterblatt. Das Datumsfeld und die Belegung liegen jetzt dort.
v0.99.404
08. Oktober 2026

Das Postfach als kompakte Gesprächsliste

  • Doppelt so viele Gespräche auf einen Blick: Jedes Gespräch steht in zwei Zeilen ohne Kartenrahmen. Oben stehen Name, Kanal-Zeichen und Zeit, darunter die letzte Nachricht und das Zimmer.
  • Haken statt „Du:“: Hast du zuletzt geschrieben, zeigen Haken, ob die Nachricht angekommen ist und gelesen wurde.
  • Wartende Gäste fallen auf: Ihre Zeit erscheint farbig, rechts steht, wie lange sie schon warten.
  • Weniger Rauschen: Ein Status steht nur noch, wenn er auffällt: Anfrage, Haltefrist, Angereist oder Storniert.
  • Ältere Gespräche zeigen „Gestern“, den Wochentag oder das Datum.
  • Kompakter Kopf: Der Filter sitzt als Symbol neben der Suche. Gesetzte Filter erscheinen darunter.
v0.99.403
08. Oktober 2026

Kalender auf dem Telefon — mehr Plan, weniger Kopf

  • Mehr Plan auf dem Telefon: Oben stehen nur noch zwei Zeilen: die Ansicht (Belegung, Aufgaben, Zimmer tauschen) und darunter Blättern, Datum, Belegung, Filter und „+“. Alles Weitere liegt im Filterbla…
  • Datum und Zimmer bleiben stehen: Der Plan scrollt in beide Richtungen. Datumszeile und Zimmerspalte bleiben immer sichtbar.
  • Namen statt Kürzel: Die Buchungsbalken zeigen kein „BK“/„AB“ mehr, die Farbe zeigt die Plattform. Kurze Aufenthalte zeigen dadurch mehr vom Namen. Ab drei Nächten steht das Zeichen von Booking.com od…
  • Auf dem Telefon zeigt die Zimmerspalte nur die Nummer. Die Legende sagt „Direkt“ statt „Direct“, und die Zimmer-Sortierung ist als solche beschriftet.
v0.99.402
08. Oktober 2026

Auslieferung zuverlässiger

  • Interne Verbesserung an der Auslieferung neuer Versionen.
v0.99.401
08. Oktober 2026

Foyer hat ein Zeichen — den Torbogen

  • Neues Zeichen: Foyer trägt jetzt einen Torbogen, den Eingang, durch den der Gast ins Haus kommt. Er ersetzt den goldenen Punkt.
  • Wo er steht: auf der Website, in der App (Seitenleiste, Kopfzeile auf dem Telefon, Login), im Browser-Tab, als App-Symbol auf dem Homescreen und im Vorschaubild geteilter Links.
v0.99.400
08. Oktober 2026

Zeichen statt Wörter, Foyer-Farben im Gespräch, Einklappen nach Wahl

  • Zeichen statt Wörter: Im Antwortfeld, an jeder Nachricht und an eingeklappten automatischen Nachrichten steht das Zeichen des Wegs: Booking.com, Airbnb, WhatsApp oder E-Mail. Das Antwortfeld heißt nu…
  • Postfach: Schreibt ein Gast über Booking.com und WhatsApp, zeigt seine Zeile beide Zeichen.
  • Foyer-Farben: Der Gesprächsverlauf steht auf weißem Grund. Eigene Nachrichten sind hellgrau, die des Gastes weiß mit Rahmen.
  • Einklappen nach Wahl: Unter Profil → Ansicht lässt sich das Einklappen automatischer Nachrichten ab- und wieder einschalten. Es ist standardmäßig an.
v0.99.399
08. Oktober 2026

Im Gespräch steht die Plattform, und Nachrichten überlappen nicht mehr

  • Antwortfeld und eingeklappte automatische Nachrichten nennen nur noch die Plattform, etwa „Nachricht über Booking.com“ oder „über Airbnb“, ohne „Beds24“ davor.
  • Zwei gesendete Nachrichten hintereinander überlappen sich nicht mehr.
v0.99.398
08. Oktober 2026

Die Postfach-Suche findet auch, was in Dokumenten steht

  • Suche im Dokumenttext: Die Suche im Postfach findet einen Vorgang jetzt auch über den Text der PDFs, die Gäste geschickt haben — etwa eine Ausweis- oder Rechnungsnummer aus einem Scan.
v0.99.397
08. Oktober 2026

Längere Scans auch über den Ersatzweg lesbar

  • Ersatzweg der Texterkennung zuverlässiger: Kann Foyer einen Scan nicht selbst lesen, geht er Seite für Seite an den Ersatzdienst — auch längere Dokumente kommen so vollständig an.
v0.99.396
08. Oktober 2026

Gescannte Dokumente sind schon gelesen, wenn man sie öffnet

  • Scans gleich beim Eingang gelesen: Schickt ein Gast ein gescanntes PDF, liest Foyer es sofort im Hintergrund. Im Postfach lässt sich der Text unter der Dokumentkarte aufklappen und kopieren, und Agen…
v0.99.395
08. Oktober 2026

Der Gesprächsverlauf sieht aus wie WhatsApp

  • Sprechblasen: Eigene Nachrichten stehen rechts in Grün, die des Gastes links in Weiß. Uhrzeit und Kanal-Symbol stehen unten rechts in der Blase.
  • Haken wie bei WhatsApp: Ein grauer Haken heißt gesendet, zwei graue zugestellt, zwei blaue gelesen. Ein rotes Zeichen heißt, dass die Nachricht nicht ankam.
  • Tagestrenner: Zwischen den Tagen steht „Heute“, „Gestern“, der Wochentag oder das Datum. Auf dem Telefon bleibt der aktuelle Tag beim Scrollen oben stehen.
  • Auf dem Telefon gehört der Bildschirm dem Gespräch:
  • Oben steht eine Zeile mit Zurück, Name, Zimmer und Aufenthalt.
  • Unter ⋮ liegen Reservierung, Gast & Details, Concierge-Log und Folio.
  • Die Foyer-Leisten sind im Gespräch ausgeblendet, der Senden-Knopf ist immer sichtbar.
  • Antwortfeld in einer Zeile: Anhang, Kamera und Senden sitzen direkt am Feld, das mit dem Text wächst. Textbausteine und Schnellaktionen liegen auf dem Telefon hinter ⚡. Im Feld steht, über welchen Ka…
v0.99.394
08. Oktober 2026

Lange Scans kommen beim Agenten an

  • Lange Scans brechen nicht mehr ab: Braucht die Texterkennung eines mehrseitigen Scans länger, meldet Foyer „läuft noch" und liest im Hintergrund zu Ende — beim nächsten Abruf ist der Text da.
v0.99.393
08. Oktober 2026

Gescannte PDFs werden auf dem eigenen Server gelesen

  • Gescannte Dokumente lesbar — auf dem eigenen Server: Scans, die Gäste schicken, liest Foyer jetzt selbst (lokale Texterkennung). Das Dokument verlässt dafür den Server nicht.
v0.99.392
08. Oktober 2026

Gescannte PDFs werden lesbar

  • Gescannte PDFs: schickt ein Gast ein eingescanntes Dokument, kann ein KI-Assistent jetzt auch dessen Text lesen — nicht nur PDFs mit Textebene.
v0.99.391
08. Oktober 2026

Wochenbilanz der WhatsApp-Zustellung

  • Lohnt sich WhatsApp? Oben auf der Seite „Automatische Nachrichten" steht jetzt eine Bilanz für die letzten 7 oder 30 Tage. Sie zeigt, wie viele WhatsApp-Vorlagen gesendet, zugestellt und nicht zustel…
v0.99.390
08. Oktober 2026

Gäste bezahlen Extras direkt im Gästeportal

  • Direkt bezahlen: Im Gästeportal steht bei einem Extra „Jetzt bezahlen", sobald das Haus Stripe verbunden hat. Der Gast zahlt sofort per Karte und landet danach wieder im Portal.
  • Sofort wirksam: Ein bezahlter später Check-out oder früher Check-in wirkt genauso wie beim Zahlungslink aus dem Nachrichtenverlauf. Uhrzeit, Erinnerungen und Reinigungshinweis werden angepasst.
  • Ohne verbundenes Stripe-Konto bleibt es bei Buchen oder Anfragen wie bisher.
v0.99.389
08. Oktober 2026

Alte Kanalmanager-Anbindung vollständig zurückgebaut

  • Die Anbindung an den früheren Kanalmanager ist jetzt auch auf der Empfangsseite zurückgebaut: Die Adressen für dessen Meldungen sind geschlossen.
  • Im Editor der Buchungsseite entfällt der Knopf, der Zimmertexte bei dem früheren Kanalmanager abholte; die Texte schreibt man direkt dort.
  • Die Einstellungen zeigen die alte Zugangsdaten-Maske für den früheren Kanalmanager nicht mehr.
v0.99.388
08. Oktober 2026

KI-Assistenten erreichen jetzt jedes Foyer-Werkzeug

  • KI-Assistenten (MCP) können jedes Foyer-Werkzeug aufrufen, das sie über die Werkzeugsuche finden — auch solche, die nicht in der Standardliste stehen. Es gelten dieselben Rechte und Bestätigungen wie…
v0.99.387
08. Oktober 2026

Alle Werkzeuge für KI-Assistenten (MCP) sind jetzt beschrieben

  • Jedes Werkzeug, das KI-Assistenten über MCP in Foyer sehen, trägt jetzt eine verständliche Beschreibung: was es liefert oder ändert, welche Eingaben es braucht und welche Rolle es aufrufen darf.
  • Damit wählen Assistenten auch bei Einstellungen, Regeln, Preisansichten und Team-Verwaltung das passende Werkzeug, statt aus dem Namen zu raten.
  • Die Beschreibungen erscheinen ebenso in der Entwickler-Dokumentation der Lese-Schnittstelle.
v0.99.386
08. Oktober 2026

Postfach zeigt, wie lange ein Gast wartet; PDFs mit Seitenzahl

  • Wer wartet, seit wann: im Postfach steht statt eines Punkts „wartet 25 Min", „wartet 3 Std" — ab 12 Stunden rot.
  • Ein „Danke" wartet nicht: reine Dank- und Bestätigungsnachrichten („Danke!", „Perfect", 👍) gelten nicht mehr als unbeantwortet, damit echte Fragen auffallen.
  • PDFs mit Seitenzahl: die Dokumentkarte zeigt „3 Seiten · 11,8 MB · PDF" wie in WhatsApp.
v0.99.385
08. Oktober 2026

KI-Assistenten sehen Anhänge, laden Dateien hoch und kennen den Tag

  • Anhänge lesen: KI-Assistenten (MCP) sehen Fotos von Gästen als Bild, lesen Sprachnachrichten als Abschrift und PDFs als Text.
  • Hochladen: Hauslogo, Video der Buchungsseite und Fotos der Anreise-Anleitung lassen sich jetzt auch über MCP hochladen — mit denselben Prüfungen wie in den Einstellungen.
  • Hintergrundjobs: Der Inhaber kann fragen, ob die Abgleiche laufen — je Job letzter Erfolg, letzter Fehler und ob er überfällig ist.
  • Kontext ohne Suchen: neue MCP-Ressourcen für Hausinfos, den heutigen Tag und offene Aufgaben, dazu ein Prompt „Tagesüberblick".
v0.99.384
08. Oktober 2026

Aussagekräftigere Werkzeugbeschreibungen für KI-Assistenten (MCP)

  • Agenten und KI-Assistenten, die Foyer über MCP ansprechen, sehen für viele Werkzeuge jetzt eine echte Beschreibung statt eines mechanischen Einzeilers — sie wählen damit sicherer das richtige Werkzeu…
  • Jede Beschreibung nennt weiterhin, ob das Werkzeug nur liest oder Daten ändert.
v0.99.383
07. Oktober 2026

Stabilere Verbindung zum Altsystem

  • Die Abgleiche mit dem Altsystem stoßen nicht mehr gleichzeitig an dessen Verbindungsgrenze.
v0.99.382
07. Oktober 2026

Veraltete Anbindungs-Wege des früheren Kanalmanagers entfernt

  • Schaltflächen und Werkzeuge, die nur noch auf den abgeschalteten Kanalmanager zugriffen und dabei ausschließlich Fehler lieferten, sind entfernt.
  • Die Einstellungsseite für Zugangsdaten zeigt keinen Nachrichten-Import für den früheren Kanalmanager mehr an; der E-Mail-Import bleibt unverändert.
v0.99.381
07. Oktober 2026

Aufräumen nach dem Abschalten von Hospitable (Versand)

  • Interne Aufräumarbeiten nach dem Abschalten eines früheren Kanalmanagers; keine sichtbare Änderung.
v0.99.380
07. Oktober 2026

Bezahlte Extras wirken im Betrieb

  • Zahlt ein Gast einen späten Check-out, verschiebt Foyer die Abreise auf das Ende des späten Check-outs, plant die Check-out-Erinnerung neu und vermerkt es bei der Reinigung des Tages. Ein bezahlter f…
  • Bezahlte Extras stehen in „Über den Gast“.
  • Eingeklappte automatische Nachrichten nennen die Buchungsplattform („über Beds24 · Booking.com“).
v0.99.379
07. Oktober 2026

Dokumentation auf den aktuellen Stand gebracht

  • Die Werkzeugbeschreibung für KI-Agenten (MCP) nennt jetzt auch: WhatsApp-Status je Rufnummer setzen, Gastnachrichten übersetzen, kommende automatische Nachrichten eines Aufenthalts und den Zahlungsli…
v0.99.378
07. Oktober 2026

Videos öffnen sich groß

  • Videos groß: ein Tipp auf ein Video im Gespräch öffnet es groß auf dunklem Hintergrund und spielt es sofort ab — genau wie ein Foto, das man antippt. „Schließen", Escape oder ein Tipp daneben schließ…
v0.99.377
07. Oktober 2026

Einheitliche Ecken für Fotos, Videos und Dokumente

  • Fotos im Gespräch haben jetzt dieselben abgerundeten Ecken wie Videos und Dokumente.
v0.99.376
07. Oktober 2026

Videos und Dokumente im Faden wie in WhatsApp

  • Videos: Vorschau mit rundem Abspielknopf und Länge, ohne schwarze Balken — ein Tipp spielt ab.
  • Dokumente: Karte mit PDF-Symbol, Dateiname und Größe; ein Tipp öffnet das Dokument.
  • Aufgeräumt: unter reinen Anhängen steht kein „Übersetzen" mehr.
v0.99.375
07. Oktober 2026

Geplante Nachrichten im Verlauf nur auf Wunsch

  • Die geplanten Nachrichten am Ende des Gesprächsverlaufs erscheinen nur noch, wer sie unter Einstellungen → Profil → Ansicht einschaltet. Standard ist aus; die Aktivitäten links zeigen sie immer.
v0.99.374
07. Oktober 2026

WhatsApp — blaue Haken, Antwortbezug, Dokumente, „hat WhatsApp" automatisch

  • Blaue Haken für Gäste: öffnet jemand im Team das Gespräch, sieht der Gast in WhatsApp, dass seine Nachricht gelesen wurde.
  • Antwortbezug: antwortet ein Gast auf eine bestimmte Nachricht, steht im Faden darüber „↪ Antwort auf: …".
  • Dokumente: PDFs, die Gäste per WhatsApp schicken, sind im Faden zu öffnen.
  • „Hat WhatsApp" automatisch: wird eine WhatsApp-Nachricht zugestellt oder schreibt der Gast selbst per WhatsApp, ist der grüne Haken gesetzt — mit dem Hinweis „von Meta bestätigt".
v0.99.373
07. Oktober 2026

Übersichtlicher Gesprächsverlauf

  • Automatisch verschickte Nachrichten (Buchungsbestätigung, Check-in-Anleitung …) stehen im Verlauf als eine Zeile mit Name, Zeit und Weg und lassen sich aufklappen. Nachrichten des Gastes und des Team…
  • Am Ende des Verlaufs stehen die geplanten Nachrichten grau mit „geht am … raus“ — mit „Jetzt senden“, „Bearbeiten“ und „Aussetzen“ direkt dort.
v0.99.372
07. Oktober 2026

Extras mit Zahlungslink

  • Über dem Antwortfeld bietet „Extras ▾“ alle aktiven Angebote an — später Check-out, früher und später Check-in. Ein Klick legt eine Antwort mit Zahlungslink ins Feld; der Gast zahlt direkt, und erst …
  • Bezahlte Extras sind markiert und bekommen keinen zweiten Link.
v0.99.371
07. Oktober 2026

Antworten gehen nie mehr an Hospitable

  • Foyer wählt Hospitable nicht mehr als Antwortkanal. Was Beds24 nicht erreicht, geht per E-Mail; ein Gesprächsverlauf, der früher über Hospitable lief, bekommt seine Antwort auf dem lebenden Weg.
v0.99.370
07. Oktober 2026

Interne Auslieferung übersteht kurze Netzwerkstörungen

  • Die interne Auslieferung neuer Versionen wiederholt den Upload eines Images bei einer kurzen Netzwerkstörung selbst, statt abzubrechen. Am Produkt ändert sich nichts.
v0.99.369
07. Oktober 2026

Videos von Gästen im Faden, ohne doppelten Platzhalter

  • Videos: schickt ein Gast per WhatsApp ein Video, ist es im Faden direkt abspielbar — auch auf dem iPhone.
  • Ohne Platzhalter: ein Foto, Video oder eine Sprachnachricht ohne Begleittext steht im Faden ohne „[Bild angehängt]"-Zeile.
v0.99.368
07. Oktober 2026

Standort als Karte, Links anklickbar

  • Standort als Karte: teilt ein Gast seinen Standort, zeigt der Faden eine kleine Karte mit Markierung.
  • Links anklickbar: Adressen in Nachrichten öffnen sich per Klick in einem neuen Tab.
v0.99.367
07. Oktober 2026

WhatsApp-Sprachnachrichten mit Abschrift, lesbare Standorte und Kontakte

  • Sprachnachrichten: Schickt ein Gast per WhatsApp eine Sprachnachricht, liegt sie im Faden als abspielbare Datei — und darüber steht, was gesagt wurde (automatische Abschrift).
  • Standort, Kontakt, Sticker, Knopf-Antworten: statt Platzhaltern wie [location] steht im Faden ein Kartenlink, der Name und die Nummer des Kontakts oder die gewählte Antwort.
  • Einstellungen → Zugangsdaten: die Webhook-Adressen für WhatsApp und Hospitable zeigen die eigene Adresse statt eines Platzhalters.
v0.99.366
07. Oktober 2026

WhatsApp-Reaktionen der Gäste

  • Reagiert ein Gast in WhatsApp mit einem Emoji (etwa 👍) auf eine Nachricht oder die Check-in-Anleitung, zeigt Foyer das Emoji an genau dieser Nachricht im Gesprächsverlauf. Reaktionen erscheinen nich…
v0.99.365
07. Oktober 2026

WhatsApp-Zustellstatus in Echtzeit

  • Ob eine WhatsApp-Nachricht zugestellt und gelesen wurde, zeigt Foyer jetzt sofort an.
v0.99.364
07. Oktober 2026

Gastsprache auch bei Booking.com

  • Für Buchungen über Booking.com kennt Foyer jetzt die Sprache des Gastes, abgeleitet aus seinem Land. Automatische Nachrichten und „Übersetzen → …“ richten sich danach. Bei Ländern mit mehreren Landes…
v0.99.363
07. Oktober 2026

Interne Korrektur

  • Interne Korrektur am Build.
v0.99.362
07. Oktober 2026

Kein Fehler mehr bei Gästen ohne Kontaktweg

  • Hat ein Gast weder E-Mail-Adresse noch Buchungsplattform (etwa bei Buchungen an der Rezeption), wird eine automatische Nachricht als „übersprungen — kein Kontaktweg“ angezeigt statt als Fehler. Wird …
v0.99.361
07. Oktober 2026

Interne Aufräumarbeiten

  • Interne Aufräumarbeiten ohne sichtbare Änderung.
v0.99.360
07. Oktober 2026

Aktualisierte Zahlungsanbindung

  • Die Anbindung an den Zahlungsdienst ist auf dem neuesten Stand. Direktbuchungen werden weiterhin per Karte bezahlt.
v0.99.359
07. Oktober 2026

Schnellere Typprüfung

  • Interne Umstellung auf den neuen, schnelleren TypeScript-Compiler.
v0.99.358
07. Oktober 2026

doppelt vergeben

  • Diese Nummer wurde versehentlich ein zweites Mal für „Anfrage offen“ vergeben. Der Inhalt steht unter v0.99.357; ausgeliefert wurde er einmal.
v0.99.357
07. Oktober 2026

Label „Anfrage offen“

  • Schreibt ein Gast mit einer offenen Buchungsanfrage und antwortet 24 Stunden niemand, bekommt das Gespräch das Label „Anfrage offen“ — ohne Push-Meldung. Es verschwindet von selbst, sobald geantworte…
v0.99.356
07. Oktober 2026

Referenzhaus als Obergrenze in den Preisvorschlägen

  • Das Referenzhaus aus der Preisstrategie ist jetzt die Obergrenze der Preisvorschläge, solange ein Tag nicht gut gebucht ist: an Hochpreistagen, wenn das Buchungstempo im Soll oder zu langsam ist, an …
  • Liegt euer Gastpreis dann mehr als 5 % darüber, schlägt Foyer eine Senkung Richtung Referenzhaus vor — in Stufen von höchstens 10 %, wenn nötig auch unter den Marktpreis. Anhebungen enden beim Refere…
  • Foyer setzt keinen Preis; jeder Vorschlag wartet auf eure Freigabe.
v0.99.355
07. Oktober 2026

Strengere Code-Prüfung

  • Interne Verbesserung der automatischen Code-Prüfung.
v0.99.354
07. Oktober 2026

Persönliche Haustür-Codes leicht zu merken

  • Persönliche Haustür-Codes sind jetzt leicht zu merken (z. B. 447799 oder 479479) statt zufällig gewürfelt.
  • Ein gelöschter Code wird an derselben Tür 30 Tage lang nicht noch einmal vergeben.
v0.99.353
07. Oktober 2026

Stabilerer Build

  • Interne Verbesserung am Build-Vorgang.
v0.99.352
07. Oktober 2026

Aktualisierte Bibliotheken

  • Interne Bibliotheken auf den aktuellen Stand gebracht (Oberfläche, Schnittstellen, Hintergrundaufgaben, Tests).
v0.99.351
07. Oktober 2026

Neue Seite Hochpreistage

  • Neue Seite Hochpreistage: die teuren Nächte der nächsten 90 Tage auf einen Blick — wie viel gebucht ist, wie viel es nach der Soll-Kurve sein sollte (30 % bei 45 Tagen), ob das Tempo zu langsam, im S…
  • Zeigt genau das, was der nächtliche Preisvorschlagslauf rechnet — auch dort, wo ein Tag zu langsam bucht, ihr aber schon auf Marktniveau seid und Foyer deshalb keinen Preis vorschlägt.
v0.99.350
07. Oktober 2026

Kurze Gastnachrichten werden wieder wörtlich angezeigt

  • Eine Gastnachricht, die nur aus einem Punkt besteht, erscheint wieder genau so. Nur wirklich leere Nachrichten zeigen „(leere Nachricht)“.
v0.99.349
07. Oktober 2026

Anfragen sind keine Anreisen

  • Unbeantwortete Buchungsanfragen und stornierte Buchungen erscheinen nicht mehr als Anreise oder Abreise — weder in der Aufgaben-Ansicht des Kalenders noch auf dem Dashboard, der Heute-Seite oder in d…
v0.99.348
07. Oktober 2026

Sicherheitsupdates für den E-Mail-Versand

  • Sicherheitsupdates für den E-Mail- und SMS-Versand.
v0.99.347
07. Oktober 2026

Antwortkanal sichtbar, Notiz zum Gast, leere Nachrichten erklärt

  • Über dem Antwortfeld steht, über welchen Kanal die Antwort hinausgeht („Antwort geht über Beds24 · Booking.com“) — mit Warnung, wenn das WhatsApp-Fenster geschlossen ist oder dem Gast eine E-Mail-Adr…
  • „Notiz zum Gast“ in „Über den Gast“: bleibt beim Gast und erscheint bei jeder künftigen Buchung („ruhiges Zimmer gewünscht“).
  • Leere Gastnachrichten (nur ein Punkt) zeigen jetzt einen Hinweis: vermutlich ein Foto, das die Buchungsplattform nicht weitergibt.
v0.99.346
07. Oktober 2026

Geplante Nachrichten abbrechen nur für das Betriebsteam

  • Geplante Gastnachrichten (etwa die Check-in-Anleitung) kann nur noch das Betriebsteam abbrechen, nicht mehr Housekeeping oder Wartung.
v0.99.345
07. Oktober 2026

Störungen werden dem Betrieb zuverlässig gemeldet

  • Betriebsstörungen und Neustarts der Anwendung werden nun zuverlässig per E-Mail an den Betrieb gemeldet.
v0.99.344
07. Oktober 2026

Preisvorschläge nach Buchungstempo an Hochpreistagen

  • An Hochpreistagen (Messen, Events) vergleicht Foyer den Buchungsstand ab 90 Tagen vorher mit einer Soll-Kurve — 30 % gebucht bei 45 Tagen. Ist ein Tag zu langsam gebucht, schlägt Foyer früh eine Senk…
  • Bucht sich ein Hochpreistag zu schnell, schlägt Foyer eine Anhebung vor — bis zur bestehenden Obergrenze.
  • Normale Nächte fasst die Regel nicht mehr an. Das Referenzhaus wird im Vorschlag zur Einordnung genannt. Foyer setzt keinen Preis; jeder Vorschlag wartet auf eure Freigabe.
v0.99.343
07. Oktober 2026

Sicherheitsupdates

  • Sicherheitsupdates für das Web-Framework, die Bildverarbeitung und die Programmierschnittstellen.
v0.99.342
07. Oktober 2026

Aktivitäten: „Jetzt senden“ und kommende Nachrichten

  • In den Aktivitäten einer Buchung lässt sich jede geplante Nachricht mit „Jetzt senden“ sofort verschicken — mit einer Rückfrage. Der Gast bekommt genau die Nachricht, die er zum geplanten Zeitpunkt b…
  • Nachrichten, die mehr als 30 Tage in der Zukunft liegen, erscheinen jetzt ausgegraut mit Datum („wird ab … eingeplant“).
  • Die Vorschau im Bearbeiten-Stift zeigt Tage vor Anreise ebenfalls die Fassung mit Codes.
v0.99.341
07. Oktober 2026

Labels werden nachgeholt

  • Kommt eine neue Erkennung dazu (etwa „Stornoanfrage“), prüft Foyer auch die Nachrichten der letzten 30 Tage von Gästen, die noch nicht abgereist sind, und holt fehlende Labels nach. Bereits erledigte…
v0.99.340
07. Oktober 2026

WhatsApp ✓ / ✗ in den Gast-Infos

  • Neben der WhatsApp-Nummer in den Gast-Infos stehen jetzt ein grüner Haken („hat WhatsApp“) und ein rotes Kreuz („kein WhatsApp“). Ein Klick auf den aktiven Knopf setzt wieder auf „offen“.
  • Bei „kein WhatsApp“ geht die Check-in-Anleitung nicht per WhatsApp hinaus, sondern nur über die Buchungsplattform. Ein Haken hebt ein Kreuz auf.
v0.99.339
07. Oktober 2026

„Kein WhatsApp" je Nummer

  • Meldet WhatsApp eine Nummer als nicht zustellbar, versucht Foyer es dort 90 Tage lang nicht mehr per WhatsApp — die Nachricht geht weiter über die Buchungsplattform.
  • In den Gast-Infos markiert „Kein WhatsApp“ eine Nummer von Hand, etwa wenn der WhatsApp-Link „nicht bei WhatsApp registriert“ meldet; „Doch WhatsApp“ hebt das wieder auf.
v0.99.338
07. Oktober 2026

Übersetzen für alle Sprachen

  • „Übersetzen“ erscheint jetzt unter jeder Gastnachricht, die nicht auf Deutsch ist — auch bei Sprachen wie Kroatisch, die Foyer selbst nicht sicher erkennt.
  • Nach der ersten übersetzten Nachricht kennt Foyer die Sprache des Gastes und bietet an, die eigene Antwort hineinzuübersetzen.
v0.99.337
07. Oktober 2026

Gastnachrichten übersetzen

  • Unter jeder fremdsprachigen Gastnachricht steht „Übersetzen“: ein Klick zeigt die Nachricht auf Deutsch darunter.
  • Über dem Antwortfeld übersetzt „Übersetzen → {Sprache}“ die eigene Antwort in die Sprache des Gastes; „Original wiederherstellen“ holt den deutschen Text zurück. Gesendet wird erst, wenn man selbst a…
  • Ohne eingerichteten Übersetzungsdienst erscheinen keine Knöpfe.
v0.99.336
07. Oktober 2026

Mehr über den Gast und Schnellaktionen in der Buchung

  • „Über den Gast“ zeigt jetzt Land, Sprache, einen WhatsApp-Link, die im Gästeportal angegebene Ankunftszeit, frühere Aufenthalte und — rot hervorgehoben — ob der Gast ein Problem gemeldet hat. Vermutu…
  • Über dem Antwortfeld: Zugangsdaten, Rechnungslink und Angebot für einen späten Check-out mit einem Klick als Text ins Feld — in der Sprache des Gastes, zum Prüfen vor dem Senden. Inhaber können eine …
v0.99.335
07. Oktober 2026

Stabilerer Betrieb unter Last

  • Der Server-Prozess hat mehr Arbeitsspeicher; Hintergrundaufgaben, die gleichzeitig um Mitternacht anlaufen, bringen ihn nicht mehr an die Grenze.
v0.99.334
06. Oktober 2026

Preisvorschläge zeigen auch nach unten

  • Preisvorschläge zeigen jetzt auch nach unten: Ist ein Tag in den letzten drei Wochen schwach gebucht (unter 25 %) und liegt euer Gastpreis über dem Markt, schlägt Foyer eine Senkung auf Marktniveau v…
  • Neu unter Einstellungen → Preisstrategie: ein Referenzhaus (z. B. das Haus, das ihr als Obergrenze seht). Liegt es unter dem Markt, zeigt der Vorschlag auf seinen Preis.
  • Foyer setzt dabei keinen Preis — jeder Vorschlag wartet auf eure Freigabe.
v0.99.333
06. Oktober 2026

Preise per KI-Assistent gehen sofort an die Buchungsportale

  • Preise, die über den KI-Assistenten oder die Schnittstelle gesetzt werden, gehen jetzt sofort an Booking.com und Airbnb — genau wie aus dem Preiskalender, mit Änderungsprotokoll und „Rückgängig“.
  • Neu: Preise aus dem Doppelzimmer-Preis setzen. Man nennt je Tag nur den Doppelzimmer-Preis; Einzel-, Dreier- und Gemeinschaftsbad-Zimmer leitet Foyer nach der eigenen Preisstrategie ab, Zimmer mit ei…
v0.99.332
06. Oktober 2026

Zustellstatus der WhatsApp-Check-in-Nachrichten jetzt sichtbar

  • Ob die WhatsApp-Check-in-Nachricht zugestellt oder gelesen wurde — oder nicht zugestellt werden konnte —, steht jetzt wirklich im Gesprächsverlauf und im Messaging-Verlauf.
v0.99.331
06. Oktober 2026

Bewertungsbitte nur an zufriedene Gäste

  • Nachrichtenregeln haben die neue Bedingung „Nur an Gäste ohne gemeldete Probleme“. Hat ein Gast während des Aufenthalts ein Problem gemeldet — ein Vorfall wie Sauberkeit oder Technik, oder eine Besch…
  • Geprüft wird beim Versand, nicht beim Einplanen: auch eine Beschwerde, die erst während des Aufenthalts kommt, verhindert die Bitte.
v0.99.330
06. Oktober 2026

WhatsApp-Check-in-Nachricht direkt im Gesprächsverlauf

  • Die WhatsApp-Kurzfassung der Check-in-Anleitung erscheint im Gesprächsverlauf der Buchung — mit dem Text, den der Gast bekommen hat, dem Zimmer und dem Stand (gesendet, zugestellt, gelesen oder warum…
v0.99.329
06. Oktober 2026

Zustellstatus der WhatsApp-Vorlagen im Verlauf

  • Im Messaging-Verlauf steht bei jeder gesendeten Nachricht mit WhatsApp-Kopie je Zimmer, ob die WhatsApp gesendet, zugestellt oder gelesen wurde — oder warum nicht (etwa keine internationale Handynumm…
v0.99.328
06. Oktober 2026

Geplante Nachrichten finden einen Ersatzweg

  • Kann der übliche Kanal eine geplante Nachricht dauerhaft nicht zustellen — etwa ein gekündigter Zugang oder ein geschlossenes WhatsApp-Fenster —, schickt Foyer sie einmal über Beds24 oder per E-Mail,…
  • Die Nacht-Bestätigung geht nicht mehr raus, wenn eine nachts geschriebene Nachricht erst nach Beginn der Servicezeit ankommt.
  • Servicezeit: ein Fehler beim Speichern lässt die Eingaben stehen und erklärt, was nicht stimmt.
  • Messaging → Verbesserungen und die Schalter „Automatisch“ und Nacht-Bestätigung zeigen Inhaber-Aktionen nur noch dem Inhaber.
v0.99.327
06. Oktober 2026

Check-in-Anleitung zusätzlich per WhatsApp

  • Nachrichtenregeln können zusätzlich eine von Meta freigegebene WhatsApp-Vorlage schicken — etwa die Kurzfassung der Check-in-Anleitung mit Haustür-Code, Zimmernummer und Keybox-Code.
  • Bei mehreren gebuchten Zimmern geht je Zimmer eine Vorlage raus. Fehlt ein Wert, geht für dieses Zimmer nichts raus; die eigentliche Nachricht kommt trotzdem.
  • Jede WhatsApp-Vorlage wird höchstens einmal je Nachricht und Zimmer verschickt.
v0.99.326
06. Oktober 2026

Verbesserungsvorschläge nur noch für echte Lücken

  • Der Lernlauf schlägt keine neue Frage mehr vor, wenn die heutige Erkennung die Nachrichten längst beantworten würde oder das Thema bewusst dem Team überlassen ist (z. B. Ankunftsfenster über zwei Pre…
v0.99.325
06. Oktober 2026

Verbesserungsvorschläge erkennen Themen statt Grußformeln

  • Die Vorschläge „Neue Frage“ gruppieren Gästenachrichten nach ihrem Thema, nicht mehr nach Grußformeln wie „Mit freundlichen Grüßen“ oder „Could you let me know“.
  • „Check-in“ und „Check-out“ werden als eigene Begriffe erkannt und nicht mehr vermischt.
v0.99.324
06. Oktober 2026

Geänderte Sendezeit gilt auch für bereits geplante Nachrichten

  • Ändert man den Zeitpunkt einer automatischen Nachricht (Bezugstermin, Versatz, Uhrzeit oder Tagesversatz), verschieben sich auch die schon eingeplanten Nachrichten — bisher galt die neue Zeit nur für…
  • Die Uhrzeit bleibt über Zeitumstellungen erhalten: 14:00 Ortszeit bleibt 14:00, auch wenn dazwischen die Uhr umgestellt wird.
  • Läge die neue Sendezeit länger als eine Stunde zurück, wird die Nachricht abgesagt, statt unerwartet sofort zu gehen; liegt sie nur knapp zurück, geht sie beim nächsten Versandtakt hinaus.
  • Nachrichten, deren Zeit der Betreiber selbst gesetzt hat, sowie „Nochmal senden“-Nachrichten bleiben unverändert.
  • Inhalt, Bearbeitungen und bereits gesendete Nachrichten bleiben unangetastet. Jede Zeitänderung steht mit Alt- und Neuwert im Protokoll.
v0.99.323
06. Oktober 2026

Automatische Antworten — vier Nachschärfungen

  • Nach einer Nacht-Bestätigung behält das Gespräch im Posteingang seine Markierung „wartet auf Antwort“ und zeigt die Nachricht des Gastes als letzte.
  • Eine automatische Antwort geht nicht mehr raus, solange im selben Gespräch eine andere oder frühere Frage des Gastes noch offen ist — keine Frage geht mehr unter.
  • Automatische Nachrichten des Buchungsportals zählen nicht mehr als Antwort des Teams.
  • „Phrase entfernen“ in den Verbesserungen findet die Phrase auch mit Umlauten und meldet, wenn es nichts zu entfernen gab.
v0.99.322
06. Oktober 2026

Verbesserungsvorschläge aus der Gästekommunikation

  • Neu unter Messaging → Verbesserungen: Foyer wertet täglich die Gästenachrichten der letzten 30 Tage aus und schlägt Verbesserungen vor — ohne KI-Dienst, nur mit Stichworten und Textvergleich. Auf Kno…
  • Sechs Arten von Vorschlägen: neue häufige Fragen (mit Beispielen und der typischen Antwort des Teams), verpasste Erkennungen, oft bearbeitete Antworten, zu breite Erkennung, Fragen bereit für den Aut…
  • Nichts ändert sich ohne Klick: „Übernehmen“ geht über dieselben Wege wie der Fragen-Editor, ein verworfener Vorschlag kommt nicht wieder.
v0.99.321
06. Oktober 2026

Foyer merkt sich, was aus jeder vorbereiteten Antwort wurde

  • Für jede vorbereitete Antwort auf eine erkannte Frage hält Foyer fest, ob sie unverändert oder bearbeitet gesendet, verworfen, automatisch gesendet wurde oder verfallen ist — die Grundlage für Verbes…
v0.99.320
06. Oktober 2026

Nachts automatisch den Eingang bestätigen

  • Schreibt ein Gast außerhalb der Servicezeit und erkennt Foyer keine bekannte Frage, bekommt er nach 10–30 Sekunden eine kurze Eingangsbestätigung in seiner Sprache — höchstens einmal je Gespräch und …
  • Die Bestätigung zählt nicht als Antwort: das Gespräch bleibt unter „Unbeantwortet“, bis jemand wirklich antwortet.
  • Servicezeit und Schalter unter Messaging → Fragen; der Text ist ein Custom Code und je Sprache änderbar. Neue Variablen %service_from% und %service_until%.
v0.99.319
06. Oktober 2026

Veraltete Antwort-Entwürfe räumen sich selbst auf

  • Vorbereitete Antwort-Entwürfe verschwinden von selbst, wenn sie niemand mehr braucht: einen Tag nach der Abreise des Gastes, oder 24 Stunden nachdem die Frage anderweitig beantwortet wurde.
  • Entwürfe zu laufenden Aufenthalten, auf die noch niemand geantwortet hat, bleiben stehen. Von Hand gespeicherte Entwürfe werden nie angefasst.
v0.99.318
06. Oktober 2026

Automatisch antworten — je Frage einstellbar

  • Unter Messaging → Fragen hat jede erkannte Frage einen eigenen Schalter „Automatisch“: ist er an, geht die vorbereitete Antwort nach 10–30 Sekunden von selbst raus.
  • Dieselben Sicherungen wie bisher bei der Rechnungsantwort: kein Versand, wenn in der Zeit jemand antwortet, wenn die Nachricht noch ein zweites Anliegen enthält oder wenn dieselbe Frage zu dieser Buc…
  • Das Protokoll zeigt jetzt auch, um welche Frage es ging.
v0.99.317
06. Oktober 2026

Beherbergungssteuer – unentgeltlich ab einem Datum

  • Für einen bezahlten Aufenthalt lässt sich festhalten, ab welchem Tag die Nächte unentgeltlich waren, etwa bei Eigennutzung. Der Monatsbericht der Beherbergungssteuer meldet diese Nächte nicht und wei…
  • Folio und Kopfzahl-Abgleich rechnen die Beherbergungssteuer nur über die bezahlten Nächte.
  • Die Einstellung steht auch Agenten über MCP zur Verfügung und verlangt eine Bestätigung.
v0.99.316
06. Oktober 2026

Releases laufen schneller hintereinander

  • Wenn mehrere Änderungen gleichzeitig bereitstehen, werden sie gemeinsam geprüft und veröffentlicht — Änderungen erreichen die Produktion schneller.
v0.99.315
06. Oktober 2026

Lange Texte weiten die Seite nicht mehr

  • Sehr lange Wörter, Links oder Kennungen in einer Nachricht, einer Notiz oder einem Gästenamen machen die Seite nicht mehr breiter als das Fenster: Kopfzeilen und Karten behalten ihre Größe, die waage…
  • Breite Tabellen (Anrufe, Kennzahlen, Nachfrage, Restliste, Unbepreist, Obergrenze, Auszahlungen, Preisstrategie) scrollen jetzt in ihrem eigenen Rahmen, statt die ganze Seite mitzuziehen.
  • Die E-Mail-Adresse im Gästeprofil bricht bei sehr langen Adressen um.
v0.99.314
06. Oktober 2026

Namen-Hinweis verschwindet nach der Korrektur

  • Nach der Korrektur im Meldeschein verschwindet der Hinweis auf vertauschte Namen; stattdessen steht ein kurzer Vermerk, dass korrigiert wurde.
v0.99.313
06. Oktober 2026

Nachrichtenregeln je Buchungsplattform greifen wieder

  • Nachrichtenregeln, die nur für Airbnb- oder nur für Booking.com-Gäste gelten, erreichen diese Gäste wieder auch dann, wenn die Buchung über den Channel-Manager kam.
v0.99.312
06. Oktober 2026

Foyer fragt den abgeschalteten Kanal nicht mehr ab

  • Nach dem Abschalten des früheren Kanals fragt Foyer dort keine Reservierungen, Nachrichten, Bewertungen und Wissenseinträge mehr ab. Bereits übernommene Daten bleiben erhalten.
v0.99.311
06. Oktober 2026

Vorder- und Rückseite des Ausweises als Miniatur

  • Die Check-in-Ansicht zeigt Vorder- und Rückseite des Ausweises nebeneinander, jede mit eigenen Drehknöpfen.
v0.99.310
06. Oktober 2026

Mehrere Labels je Gespräch

  • Ein Gespräch kann jetzt mehrere Labels gleichzeitig tragen, etwa „Rechnungsfrage" und „Stornoanfrage". Eine Nachricht mit zwei Anliegen bekommt beide Labels, und ein offenes Label verdeckt kein späte…
v0.99.309
06. Oktober 2026

Label „Stornoanfrage"

  • Gastnachrichten mit Stornowunsch tragen im Postfach jetzt das Label „Stornoanfrage“, passend zu „Rechnungsfrage“.
v0.99.308
06. Oktober 2026

Hinweis bei vertauschtem Vor- und Nachnamen

  • Stehen Vor- und Nachname im Meldeschein andersherum als in der Buchung, zeigt die Check-in-Ansicht einen Hinweis mit Link zum Korrigieren.
v0.99.307
06. Oktober 2026

Ausweisfotos stehen von selbst gerade und laden schneller

  • Ausweisfotos werden nach dem Hochladen automatisch gerade gestellt — direkt auf dem Server, ohne externe Dienste. Ist die Lage nicht eindeutig, bleibt das Foto unverändert; von Hand drehen geht weite…
  • Die Kacheln mit Ausweisfotos laden eine kleine Vorschau statt des ganzen Fotos — in der Check-in-Ansicht und im Gästeportal.
  • Der Knopf „Felder aus Ausweis übernehmen" erscheint im Gästeportal nur noch, wenn die Ausweis-Erkennung eingeschaltet ist.
v0.99.306
06. Oktober 2026

Reichweitenmessung: Feinschliff

  • Interne Auswertung der eigenen Website-Reichweite: genauere Beschriftung und vollständigere Zusammenfassung der Herkünfte.
  • Für Hotels ändert sich nichts.
v0.99.305
06. Oktober 2026

Kein irreführendes MCP-Werkzeug mehr für Haustür-Zeitfenster

  • Das MCP-Werkzeug zum Ändern des Zeitraums eines Haustür-Eintrags ist entfernt: Foyer schreibt keine Zeitfenster in das Türschloss, das Werkzeug hätte jeden Aufruf abgelehnt und KI-Assistenten in die …
  • Das Verlängern oder Verkürzen eines persönlichen Gäste-Codes um Tage bleibt unverändert verfügbar.
v0.99.304
06. Oktober 2026

Kopierknopf in Nachrichten lässt sich am Telefon besser treffen

  • Der Kopierknopf an Nachrichten hat auf Touch-Geräten eine größere Tippfläche und lässt sich am Telefon zuverlässiger treffen. Am Computer sieht und verhält sich alles wie bisher.
  • Sehr lange Links in Nachrichten (etwa der Check-in-Link) umbrechen jetzt in der Blase, auch im WhatsApp-Verlauf, statt über den Rand hinauszulaufen oder die Seite zu verbreitern.
v0.99.303
06. Oktober 2026

Haustür - alte Codes mit Zeitfenster bleiben unangetastet

  • Der tägliche Lauf, der abgelaufene alte Haustür-Codes abschaltet, überspringt Einträge, die in der Nuki-App ein Zeitfenster tragen, statt sie zu verändern.
  • Für einen übersprungenen Eintrag erscheint eine Aufgabe für den Inhaber: den alten Code in der Nuki-App selbst ausschalten oder löschen.
v0.99.302
06. Oktober 2026

Check-in- und Check-out-Zeiten als Variablen in Nachrichten

  • Nachrichtenvorlagen und automatische Antworten können die Check-in- und Check-out-Zeiten des Hauses als Variablen einsetzen: %check_in_from%, %check_in_until%, %early_check_in_from%, %late_check_in_u…
v0.99.301
06. Oktober 2026

Interne Auslieferung robuster

  • Die interne Auslieferung neuer Versionen ist robuster gegen gleichzeitig laufende Prüfungen.
v0.99.300
06. Oktober 2026

Gedrehte Ausweisfotos bleiben beim Neuladen gedreht

  • Ein gedrehtes Ausweisfoto erscheint nach dem Neuladen der Seite sofort in der gespeicherten Lage.
  • Das Foto dreht sich direkt beim Klick, während die gespeicherte Fassung im Hintergrund nachlädt.
v0.99.299
06. Oktober 2026

Reichweite der eigenen Website, Hinweis bei ungewöhnlich viel Betrieb

  • Für Hotels ändert sich nichts. Foyer misst die Reichweite der eigenen Website ohne Cookies und meldet dem Betreiber nun am Morgen danach, wenn ein Tag ungewöhnlich viel Besuch hatte — nicht erst im W…
v0.99.298
05. Oktober 2026

Interne Reichweiten-Auswertung aussagekräftiger

  • Die interne Auswertung der Website-Reichweite ist übersichtlicher geworden. Für Hotels ändert sich nichts.
v0.99.297
05. Oktober 2026

Reichweitenmessung zählt keine Aufrufe angemeldeter Nutzer

  • Die Reichweitenmessung der Foyer-Webseite zählt Aufrufe angemeldeter Foyer-Nutzer nicht mehr mit; die Datenschutzerklärung nennt das ausdrücklich.
  • Für Hotels ändert sich nichts.
v0.99.296
05. Oktober 2026

Haustür-Zugang — klarere Hinweise bei Code-Wechsel, weniger tote Bedienung

  • Wenn Nuki einen neuen gemeinsamen Haustür-Code nicht rechtzeitig bestätigt, sagt Foyer jetzt konkret, was gilt: Die Änderung wurde nicht bestätigt, der gemeinsame Gäste-Code bleibt der alte. Dazu ste…
  • In „Haustür-Zugang“ entfällt die Bedienung für Zeitfenster, die ohnehin nicht benutzbar war („Zeitraum ändern“ und die Datumsfelder beim Bearbeiten). Ein Zeitfenster, das ein Zugang schon hat, wird w…
v0.99.295
05. Oktober 2026

Ältere persönliche Haustür-Codes werden zuverlässig entfernt

  • Persönliche Haustür-Codes, die noch mit dem früheren, längeren Namen angelegt wurden, findet Foyer jetzt auch dann an der Tür, wenn Nuki den Namen gekürzt gespeichert hat: Sie werden bei Storno, nach…
  • Foyer löscht oder übernimmt dabei nie den Code einer anderen Buchung, auch wenn beide Namen an der Tür gleich gekürzt erscheinen; ist der Name nicht eindeutig, löscht Foyer nichts; die Aufgabe an die…
  • Ein neuer persönlicher Haustür-Code bekommt nie den Namen eines anderen, noch nicht bestätigten Codes derselben Tür.
v0.99.294
05. Oktober 2026

Überwachung der Gäste-Codes

  • Die Betriebsüberwachung prüft jetzt alle 15 Minuten, ob die automatische Deaktivierung persönlicher Haustür-Codes läuft. Bei einem Ausfall wird das Foyer-Team benachrichtigt (nicht das Hotel) — sofor…
  • Das gilt auch, wenn die Prüfung zwar läuft, aber mehrfach hintereinander mit Fehlern endet.
  • Betroffen sind nur Häuser mit eingeschalteten Gäste-Codes; Häuser ohne diese Funktion lösen keine Meldung aus.
v0.99.293
05. Oktober 2026

Ausweisfotos dauerhaft drehen

  • Ausweisfotos lassen sich direkt in der Check-in-Ansicht mit ↺ und ↻ drehen — unter dem Vorschaubild und in der Großansicht.
  • Die Drehung wird gespeichert: Vorschaubild, neuer Tab, Meldeschein-Druck und Texterkennung zeigen das Foto danach richtig herum.
  • Jede Drehung steht im Änderungsverlauf des Aufenthalts.
v0.99.292
05. Oktober 2026

Fotos lassen sich in der Großansicht drehen

  • Ausweisfotos in der Check-in-Ansicht öffnen sich groß auf der Seite und lassen sich in 90°-Schritten drehen — hilfreich, wenn ein Gast das Foto quer oder auf dem Kopf aufgenommen hat.
  • Dasselbe gilt für Fotos, die Gäste im Postfach schicken.
v0.99.291
05. Oktober 2026

Wochenbericht der Reichweite als gestaltete E-Mail

  • Der wöchentliche Reichweitenbericht für das Foyer-Team kommt jetzt als gestaltete E-Mail mit Kennzahlen, Tagesbalken und Top-Listen. Für Hotels ändert sich nichts.
v0.99.290
05. Oktober 2026

Haustür-Code-Wechsel mit kurzen Eintragsnamen

  • Der Haustür-Code-Wechsel benennt neue Nuki-Einträge „Foyer Gäste TT.MM“ — kurz genug, dass Nuki nichts abschneidet; mehrere Wechsel am selben Tag bleiben unterscheidbar („ 2“ … „ 9“).
  • Liegengebliebene Einträge abgebrochener Wechsel räumt der Tageslauf zuverlässig ab — auch ältere „Foyer Gäste ab …“-Einträge.
  • Umbenennen in „Haustür-Zugang“ schützt beide Namensformen.
v0.99.289
05. Oktober 2026

Reichweitenbericht mit Verlauf und Wochenmail

  • Interne Auswertung der Website-Reichweite: Verlaufsgrafik, Vergleich mit dem Vorzeitraum und ein wöchentlicher Bericht per E-Mail an das Foyer-Team. Für Hotels ändert sich nichts.
v0.99.288
05. Oktober 2026

Schriften aus dem eigenen Haus

  • Die drei Schriften der Seite (Geist, Source Serif 4, JetBrains Mono) werden jetzt von Foyer selbst ausgeliefert statt beim Seitenaufbau von Google-Servern geladen. Es fließt keine Anfrage mehr an Goo…
  • Aussehen und Zeilenumbrüche bleiben unverändert; die Schriftdateien sind insgesamt kleiner als zuvor.
v0.99.287
05. Oktober 2026

Gleichzeitig fertige Änderungen werden gemeinsam geprüft

  • Liegen mehrere Änderungen gleichzeitig zur Auslieferung bereit, können sie gemeinsam geprüft und in einem Schritt ausgeliefert werden. Neue Versionen erscheinen dadurch schneller; schlägt die gemeins…
v0.99.286
05. Oktober 2026

Automatische Rechnungsantwort nur einmal je Buchung, mit Protokoll

  • Die automatische Antwort auf eine Rechnungsanfrage geht je Buchung höchstens einmal raus. Fragt der Gast zur selben Buchung erneut, liegt die Antwort als Entwurf bereit und kann von Hand geschickt we…
  • Unter dem Schalter zeigt ein Protokoll, wem die Antwort automatisch ging und wem nicht — mit Grund und Link zum Gespräch.
v0.99.285
05. Oktober 2026

Die Zimmerseite zeigt die aktuelle Hausordnung

  • Die Zimmerseite zeigt unter „Hausregeln" die Hausordnung, die Gäste beim Check-in bestätigen — mit den Zeiten und Regeln, die das Haus in Foyer pflegt. Ändert das Haus sie, steht die neue Fassung sof…
  • Wer für die Buchungsseite eigene Hausregeln schreibt, sieht diese statt der Hausordnung.
v0.99.284
05. Oktober 2026

Stornowünsche erkennen, Rechnungsantwort automatisch senden

  • Schreibt ein Gast, dass er stornieren möchte, trägt die Unterhaltung im Postfach das Label „Stornierungswunsch“, so wie Rechnungsfragen schon heute markiert werden.
  • Die vorbereitete Antwort auf eine Rechnungsanfrage kann jetzt von selbst rausgehen, 10–30 Sekunden nach der Nachricht und damit nicht wie ein Automat. Einschalten unter Messaging → Fragen. Antwortet …
v0.99.283
05. Oktober 2026

Reichweitenbericht für das Foyer-Team

  • Das Foyer-Team sieht die Reichweite von getfoyer.app jetzt auf einer internen Seite statt per Skript. Für Hotels ändert sich nichts.
v0.99.282
05. Oktober 2026

Aufräumen — eingefrorener Hospitable-Kalenderspiegel entfernt

  • Ein seit der Abschaltung von Hospitable ungenutzter Kalender-Zwischenspeicher wurde aus der Datenbank entfernt. Kalender, Buchungsseite und Preise sind unverändert — sie lesen ausschließlich Foyers e…
v0.99.281
05. Oktober 2026

Nachrichten im Gesprächsverlauf mit einem Tipp kopieren

  • Jede Nachricht mit Text im Gesprächsverlauf hat einen kleinen Kopierknopf. Ein Tipp legt den Text der Nachricht in die Zwischenablage, zum Beispiel die Check-in-Anleitung, um sie in einem anderen Pro…
  • Auf dem Handy ist der Knopf immer sichtbar, am Computer erscheint er, sobald man mit der Maus über die Nachricht fährt oder sie per Tastatur anspringt.
  • Nach dem Kopieren zeigt ein Häkchen und die Meldung „Kopiert", dass es geklappt hat. Lässt der Browser das Kopieren nicht zu, steht dort, dass der Text von Hand markiert und kopiert werden kann.
v0.99.280
05. Oktober 2026

Ausweisfotos ohne Standort- und Gerätedaten

  • Ausweis- und Meldeschein-Fotos werden ohne Metadaten gespeichert: Standort, Aufnahmezeit und Gerätedaten, die Handys in Fotos schreiben, werden entfernt. Das Bild selbst bleibt unverändert.
  • Bereits gespeicherte Fotos wurden ebenso bereinigt.
v0.99.279
05. Oktober 2026

Zuverlässigere Auslieferung bei hoher Rechnerlast

  • Interne Verbesserung der Auslieferung: Die Prüfläufe vor einer Auslieferung laufen zuverlässiger, wenn der Entwicklungsrechner gerade stark ausgelastet ist. Am Produkt ändert sich nichts.
v0.99.278
05. Oktober 2026

Haustür-Codes mit kurzem Namen

  • Persönliche Haustür-Codes erscheinen in der Nuki-App nur noch mit Anreisedatum und Buchungsnummer, zum Beispiel „05.10 F_…“. Der Gastname und das Zimmer stehen nicht mehr im Namen.
  • Der Name passt jetzt sicher in die Längengrenze, die Nuki bei Tastatur-Codes tatsächlich anwendet; bei zu langen Buchungsnummern bleiben deren letzte Zeichen.
  • Beim Umbenennen eines Tastatur-Codes in der Haustür-Verwaltung gilt dieselbe Grenze von 20 Zeichen (Umlaute zählen doppelt); die Eingabe und die Fehlermeldung nennen sie.
v0.99.277
05. Oktober 2026

Fotos ohne Text werden im Nachrichtenverlauf sauber erkannt

  • Wer über Beds24 ein Foto ohne Begleittext verschickt, sieht es im Nachrichtenverlauf weiterhin genau einmal; spätere Abrufe erkennen die eigene Nachricht jetzt zuverlässig wieder.
v0.99.276
05. Oktober 2026

Fotos in losen WhatsApp-Gesprächen senden

  • Auch in WhatsApp-Gesprächen, die noch keiner Buchung zugeordnet sind, lässt sich jetzt ein Foto an den Gast schicken. Der Knopf „Foto anhängen“ sitzt neben dem Antwortfeld; der Text wird zur Bildunte…
  • Das Foto wird vor dem Senden verkleinert, mit Vorschau und Entfernen-Knopf angezeigt und im Verlauf abgelegt. Kann der Browser ein Foto nicht öffnen oder lehnt WhatsApp es ab, steht der Grund neben d…
v0.99.275
05. Oktober 2026

Ausweisfotos laden beim Check-in schneller hoch

  • Gäste laden Fotos ihres Ausweises beim digitalen Check-in jetzt deutlich schneller hoch: Das Foto wird schon auf dem Handy auf eine Größe gebracht, die für das Auslesen der Daten passt, statt in voll…
  • Fotos in voller Handy-Auflösung, die bisher zu groß sein konnten und abgelehnt wurden, kommen jetzt an. Ist eine Datei trotzdem zu groß, erscheint der Hinweis sofort statt erst nach dem Hochladen.
  • Standortangaben, die Handyfotos oft mitschicken, werden dabei entfernt und nicht gespeichert.
v0.99.274
05. Oktober 2026

Persönliche Haustür-Codes mit lesbaren Namen in der Nuki-App

  • Persönliche Haustür-Codes erscheinen in der Nuki-App mit Anreisedatum, Buchungsnummer, Gastname und Zimmer, statt nur mit der Buchungsnummer. Die Rezeption findet einen Gast dort damit auf einen Blic…
  • Der Name bleibt richtig, wenn ein Aufenthalt verlängert wird, und passt immer in Nukis Längengrenze; ist der Platz knapp, wird der Gastname gekürzt.
v0.99.273
05. Oktober 2026

Auslieferungen mehrerer Arbeitsstränge kollidieren nicht mehr an der Versionsnummer

  • Werden mehrere Änderungen kurz nacheinander ausgeliefert, bekommt jede ihre Versionsnummer erst im Moment der Auslieferung. Zwei Änderungen, die parallel entstanden sind, blockieren sich dadurch nich…
v0.99.272
05. Oktober 2026

Keine Formulareingaben mehr in der Adresszeile

  • Was in Formularen eingegeben wird — etwa bei einer Walk-in-Buchung, im Meldeschein, im Kontaktbuch oder beim Login der Reinigungskräfte —, kann nicht mehr in der Adresszeile des Browsers landen, auch…
v0.99.271
05. Oktober 2026

Ein Foto mit Text steht im Faden nur einmal

  • Schickt man über Airbnb oder Booking.com ein Foto mit Text, macht der Kanal daraus zwei Nachrichten. Foyer zeigte den Text dadurch manchmal doppelt im Faden; jetzt steht die Nachricht einmal da, mit …
v0.99.270
05. Oktober 2026

Persönliche Haustür-Codes je Buchung (vorbereitet, standardmäßig aus)

  • Häuser mit Nuki-Keypad an der Haustür können künftig jeder Buchung einen eigenen Code geben: Foyer legt ihn am Anreisetag an, prüft beim Schloss nach, ob er angekommen ist, und schickt ihn mit der Ch…
  • Foyer schaltet den Code am Ende des Aufenthalts selbst ab und löscht ihn danach; bei Storno sofort. Verlängert sich die Buchung, gilt der Code entsprechend länger. Mehrzimmer-Buchungen teilen sich ei…
  • Öffnet ein Gast mit seinem Code die Tür, steht das bei der Buchung und auf der Tagesliste. Diese Einträge werden 30 Tage nach dem Ende des Codes gelöscht.
  • Der Inhaber kann den Zugang eines Gastes sperren — auch schon vor der Anreise —, wieder freigeben und um einzelne Tage verlängern oder verkürzen; in der App und über angebundene Agenten.
  • Die Funktion ist standardmäßig ausgeschaltet und wird je Haustür in den Geräteeinstellungen eingeschaltet; sie gilt dann für Anreisen ab dem Folgetag.
  • Nachrichtenvorschau und Warteschlange sind nur noch für Inhaber, Mitarbeiter und Rezeption sichtbar, nicht mehr für Reinigung und Wartung.
v0.99.269
05. Oktober 2026

Anmelden und Registrieren: Passwort nie in der Adresszeile

  • Wer sehr schnell auf „Einloggen" oder „Gratis testen" klickte, solange die Seite noch lud, konnte sein Passwort in der Adresszeile des Browsers wiederfinden. Die Formulare übertragen es jetzt immer i…
v0.99.268
05. Oktober 2026

Fotos der Rezeption erscheinen im Faden

  • Schickt die Rezeption oder ein anderes Teammitglied ein Foto an einen Gast, erscheint es jetzt auch im eigenen Faden — bisher nur bei Inhabern. Reinigung und Wartung bleiben, wie bei Nachrichten, aus…
v0.99.267
05. Oktober 2026

Betriebsprotokoll meldet nur noch, was wirklich aufgeräumt wurde

  • Beim Start räumt Foyer stillgelegte Hintergrundaufträge auf. Es sieht jetzt erst nach und schreibt nur dann einen Eintrag ins Betriebsprotokoll, wenn tatsächlich etwas entfernt wurde — bisher stand b…
v0.99.266
05. Oktober 2026

Feinschliff beim Foto-Senden

  • Solange ein Foto noch vorbereitet wird, ist „Senden“ gesperrt — vorher konnte der Text allein hinausgehen.
  • Transparente Bilder (etwa Screenshots) bekommen einen weissen statt schwarzen Hintergrund.
  • Fotos kommen auch aus älteren Browsern richtig herum an.
  • Ein zu grosses Foto über die Schnittstelle bekommt die klare Meldung „zu groß“.
v0.99.265
05. Oktober 2026

Fotos an Gäste senden

  • Im Antwortfeld einer Buchung gibt es „Foto anhängen“: Das Foto geht an den Gast — über Airbnb und Booking.com sowie per WhatsApp — und erscheint danach im eigenen Faden.
  • Foyer rechnet das Foto vorher im Browser auf eine handliche Größe; Fotos vom Telefon gehen damit ohne Umweg. Kann der Browser ein Format nicht öffnen, sagt Foyer das, statt still nichts zu tun.
  • Über E-Mail und die übrigen Kanäle lehnt Foyer ein Foto ab, bevor irgendetwas verschickt wird — es geht nie Text ohne das angekündigte Foto hinaus.
v0.99.264
05. Oktober 2026

Fotos auch in der Posteingangsliste lesbar

  • Ältere Nachrichten mit Airbnb-Fotos zeigen jetzt auch in der Posteingangsliste und in den Werkzeugen für KI-Agenten lesbaren Text statt eines langen Linktexts.
  • Eine Nachricht, die nur aus einem Foto besteht, erscheint in der Posteingangsliste als „📷 Foto“ statt als leere Zeile.
v0.99.263
05. Oktober 2026

Booking.com: gezahlter Betrag als Grundlage der Rechnung

  • Bei Booking.com-Buchungen gilt jetzt immer der Betrag, den der Gast tatsächlich bezahlt hat — einschließlich der Übernachtungssteuer, die Booking.com berechnet. Fehlt dieser Posten in den Daten des C…
  • Eine fehlende Steuerposition wird nicht mehr als Preisänderung des Kanals gegengebucht.
  • Die Beherbergungssteuer folgt der Gästezahl auch bei bereits abgereisten Aufenthalten, solange noch keine Rechnung ausgestellt ist.
  • Das Buchungspanel zeigt Booking.coms Abrechnung so, wie Booking.com sie geschickt hat, und erklärt, warum die Rechnung die Beherbergungssteuer nach der gesetzlichen Regel ausweist.
v0.99.262
05. Oktober 2026

Haustür-Zugänge verwalten

  • Auf der Geräteseite lässt sich jeder Zugang der Haustür jetzt direkt in Foyer verwalten: Keypad-Code anzeigen (30 Sekunden, nur für den Inhaber, jeder Abruf protokolliert), umbenennen, Code ändern, a…
  • Foyer übernimmt eine Änderung erst, wenn das Schloss sie bestätigt hat, und prüft später noch einmal nach, wenn es länger dauert. Würde ein Code dadurch unbegrenzt gültig, schaltet Foyer ihn sicherhe…
  • Der aktuelle Gäste-Code und alte Codes, die Gäste noch benutzen, sind geschützt; sie ändern sich nur über „Haustür-Code wechseln".
  • Alle Funktionen stehen auch angebundenen Agenten über MCP zur Verfügung — nur für den Inhaber und mit ausdrücklicher Bestätigung.
  • Verbindungen über OAuth tragen jetzt die tatsächliche Rolle des Nutzers statt pauschal Inhaberrechte; Zugänge entfernter Mitglieder gelten nicht mehr.
v0.99.261
05. Oktober 2026

Fotos von Airbnb-Gästen erscheinen als Bild

  • Schickt ein Gast über Airbnb ein Foto, zeigt der Faden es jetzt als Bild statt als langen Linktext. Foyer lädt das Foto beim Eingang sofort herunter — Airbnbs Links dazu gelten nur eine Stunde.
  • Lässt sich ein Foto nicht laden, bleibt die Nachricht vollständig erhalten; an seiner Stelle steht ein Hinweis, es in Airbnb anzusehen. Ältere Nachrichten, deren Fotolinks bereits abgelaufen sind, ze…
  • Das Postfach zeigt Foto-Anhänge jetzt auch im Faden.
  • Die KI-Antworten und die Vorfallprüfung lesen nur noch den Text des Gastes, nicht den Fotolink.
v0.99.260
05. Oktober 2026

Kontaktformular und vollständiges Impressum

  • Neu: ein Kontaktformular unter getfoyer.app/kontakt. Anfragen kommen als E-Mail an, „Antworten" geht direkt an den Absender; gespeichert wird nichts. Schutz gegen automatisierte Einsendungen ohne Cap…
  • Impressum, AGB und Datenschutzerklärung tragen jetzt die vollständige Anschrift; das Impressum zusätzlich die Umsatzsteuer-Identifikationsnummer und das Kontaktformular als zweiten Kontaktweg.
  • Der Hinweis auf die EU-Plattform zur Online-Streitbeilegung ist entfernt — die Europäische Kommission hat sie im Juli 2025 eingestellt.
  • Die Datenschutzerklärung beschreibt das Kontaktformular.
v0.99.259
04. Oktober 2026

Abschied vom Kalenderabgleich des früheren Kanals

  • Preise, Verfügbarkeit und Sperren führt Foyer jetzt ausschließlich selbst. Alle Wege, die Preise zum früheren Kanal schickten oder seinen Kalender abriefen, sind entfernt — samt den zugehörigen Hinte…
  • Im Kalender entfallen der Hinweis „Preis-Push abgeschaltet" und der Knopf zum Freigeben beim früheren Kanal.
  • Buchungen und Nachrichten aus dem früheren Kanal kommen unverändert an.
v0.99.258
04. Oktober 2026

Eigene Reichweitenmessung statt Plausible

  • Die Website zählt ihre Aufrufe jetzt selbst auf dem Server, ohne Skript eines Drittanbieters, ohne Cookies und ohne auf das Gerät der Besucher zuzugreifen. Plausible ist entfernt.
  • Gezählt werden echte Seitenaufrufe, die verweisende Website (nur deren Adresse) und ausgewählte Bedienschritte wie der Klick auf „Testen"; gespeichert wird nur ein täglich wechselnder Hash, die Zeit …
  • Die Datenschutzerklärung beschreibt die neue Messung.
v0.99.257
04. Oktober 2026

Buchungsseiten ohne Analyse-Skript

  • Auf den Buchungsseiten der Häuser — auch unter einer eigenen Domain — läuft kein Analyse-Skript mehr. Die Reichweite der Direktbuchungsseite misst weiterhin der serverseitige Besucherzähler, ohne Coo…
  • Die Datenschutzerklärung nennt für diesen Zähler das Hotel als Verantwortlichen und das Widerspruchsrecht.
v0.99.256
04. Oktober 2026

Türöffnung aus Foyer wird wieder bestätigt

  • Öffnet jemand die Tür aus Foyer, prüft Foyer im Protokoll des Schlosses, ob sie wirklich aufging. Diese Prüfung fand den Eintrag bisher nie und meldete jede Öffnung als „keine Bestätigung" — das Schl…
v0.99.255
04. Oktober 2026

Haustür-Code: mehr Geduld beim Bestätigen

  • „Haustür-Code wechseln" wartet jetzt bis zu drei Minuten darauf, dass das Schlosssystem den neuen Code bestätigt, statt nach etwa einer Minute aufzugeben. Neue Codes brauchen dort gemessen länger als…
v0.99.254
04. Oktober 2026

Haustür-Code per Knopfdruck wechseln

  • Der Inhaber sieht auf der Geräteseite, wer Zugang zur Haustür hat — App-Nutzer, Keypad-Codes, Zeitfenster —, direkt aus dem Schlosssystem gelesen und nicht in Foyer gespeichert.
  • „Haustür-Code wechseln" legt einen neuen, zufälligen Code am Keypad an, prüft, dass er wirklich angekommen ist, und übernimmt ihn erst dann in die Nachrichten an die Gäste. Schlägt etwas fehl, bleibt…
  • Der alte Code bleibt gültig, bis der letzte Gast abgereist ist, der ihn bekommen hat, längstens 30 Tage; danach schaltet Foyer ihn ab, statt ihn zu löschen.
  • Der neue Code wird einmal angezeigt, damit die Rezeption ihn kennt. Er erscheint in keinem Protokoll.
v0.99.253
04. Oktober 2026

Auszahlungen vollständig, Abreise per Agent gibt Zimmer frei

  • Der Reiter „Auszahlungen" zeigt zu jeder Auszahlung alle enthaltenen Buchungen — auch über Zahlungslinks —, dazu Erstattungen und Gebühren, und gleicht die Summe mit dem ausgezahlten Betrag ab. Lange…
  • Wird ein Gast über einen angebundenen Agenten ausgecheckt, gibt Foyer frei gewordene Nächte jetzt sofort an die Kanäle weiter — wie beim Auschecken in der Oberfläche. Der Änderungsverlauf zeigt diese…
  • Lädt der Erstattungsvorschlag beim Stornieren nicht, lässt sich der Betrag trotzdem von Hand eintragen, auch 0.
  • Ein Wechsel der Sprache auf der Buchungsseite zählt nicht mehr als zusätzlicher Besuch — ohne Cookie.
v0.99.252
04. Oktober 2026

Wächter für den nächtlichen Preisabgleich, Rabattcodes bei Storno, Datenschutz

  • Der tägliche Betriebsbericht meldet jetzt auch den nächtlichen Abgleich mit dem Channel-Manager: wenn er ausbleibt oder scheitert, wenn sich Abweichungen über zwei Nächte nicht abbauen, oder wenn Näc…
  • Der Kalender markiert eine Nacht, wenn der Channel-Manager sie zu einem anderen Preis verkauft als eingetragen — etwa weil eine Preisuntergrenze oder der Höchstpreis greift.
  • Ein inaktives Zimmer wird auf den Buchungsportalen nicht mehr verkauft. Das Aufheben einer Verkaufssperre öffnet nicht mehr den ganzen Zimmertyp, sondern stößt einen Abgleich an, der nur Nächte mit P…
  • Der Hinweis „Preise setzen" und die Prüfung des Dreibett-Abstands rechnen mit dem Datum in der Zeitzone des Hauses.
  • Ein Rabattcode, der in einer stornierten Buchung steckt, gilt wieder als frei.
  • Die Datenschutzerklärung beschreibt die cookielose Reichweitenmessung jetzt auch für die Buchungsseiten, einschließlich des Besucherzählers der Häuser.
v0.99.251
04. Oktober 2026

Nuki: Öffnung bestätigt, falsche Codes und abmontiertes Keypad werden gemeldet

  • Nach „Tür öffnen" prüft Foyer im Nuki-Protokoll, ob die Tür wirklich aufging, und zeigt „bestätigt" oder „keine Bestätigung von Nuki".
  • Drei falsche Code-Eingaben innerhalb von zehn Minuten werden gemeldet und stehen in der Übergabe. Nächtliches Klingeln erscheint dort als Hinweis.
  • Ein abmontiertes oder manipuliertes Keypad wird zur dringenden Aufgabe. Steht der Opener nachts auf Daueröffnung, ebenso — eine Aufgabe je Episode, tagsüber nur ein Hinweis.
  • Batterie- und Erreichbarkeitsprüfung laufen für jedes Haus, sobald ein Nuki-Zugang hinterlegt ist.
  • Die nicht mehr nutzbare Anbindung über die Nuki Bridge im Hausnetz ist entfernt.
  • Aus dem Nuki-Protokoll speichert Foyer keine Namen, nur Zeitpunkte und Anzahl.
v0.99.250
04. Oktober 2026

Foyer ruft den Kalender des früheren Kanals nicht mehr ab

  • Preise, Verfügbarkeit und Sperren des früher angebundenen Kanals werden nicht mehr abgerufen und nicht mehr übernommen; Foyer führt seinen Kalender vollständig selbst. Buchungen und Nachrichten aus d…
  • Bereits bezahlte Buchungen aus dem früheren Direktbuchungsportal bleiben gültig, auch wenn der Kanal sie nicht mehr meldet.
v0.99.249
04. Oktober 2026

Aufgaben: eine Sichtregel für alle Wege; Job-Wächter je Haus

  • Wer welche Aufgabe sehen darf, entscheidet jetzt an allen Stellen dieselbe Regel — in der App, auf der Aufgabenseite, bei Fotos und in den Werkzeugen für Agenten.
  • Der Wächter für Hintergrundaufgaben erkennt einen dauerhaften Fehler jetzt auch dann, wenn er nur ein einzelnes Haus betrifft, und nennt das Haus in der Meldung.
v0.99.248
04. Oktober 2026

Der Hinweis „Daten bei der Rechnungsstellung veraltet" meldet nur noch, was eine Rechnung ändert

  • Das Rechnungs-Panel vergleicht nur noch, was auf einer Rechnung steht: Betrag, Rabatt, Zeitraum, Status, Zimmer, Zahl der Erwachsenen, Gastname und Buchungscode. Plattformgebühren, Kinderzahl und Nac…
  • Der Hinweis nennt jetzt, welche Angabe sich geändert hat.
v0.99.247
04. Oktober 2026

Bericht „Buchungen und Preise"; Preisverlauf ohne Ablaufdatum

  • Neuer Bericht unter Berichte: je Buchung das belegte Zimmer, die Nächte, das Buchungsdatum, der bezahlte Preis pro Nacht und der Preis, der am Buchungstag im Kalender stand — mit Differenz, Filtern u…
  • Verglichen wird der reine Übernachtungspreis, wo er vorliegt. Enthält ein Betrag Gebühren oder Steuern, ist die Differenz als nicht direkt vergleichbar gekennzeichnet.
  • Foyer bewahrt den Verlauf der Kalenderpreise jetzt dauerhaft auf und speichert dafür nur noch Änderungen statt täglicher Kopien — so bleibt jeder frühere Preisstand abrufbar, bei einem Bruchteil des …
  • CSV-Exporte schützen sich gegen Zellinhalte, die eine Tabellenkalkulation als Formel ausführen würde.
v0.99.246
04. Oktober 2026

Eine eigene Seite für jede Aufgabe; genau ein Standardtarif

  • Jede Aufgabe hat jetzt eine eigene Seite mit Beschreibung, Fotos, Verlauf und Kommentaren. Hinweise wie „Batterie wechseln" oder „Tür gestört" führen direkt dorthin, ebenso die Titel in der Aufgabenl…
  • Auf der Aufgabenseite lässt sich eine Aufgabe erledigen und zuweisen — mit denselben Rechten wie in der Liste.
  • Ein Haus hat genau einen Standardtarif. Kalender, Preisabgleich mit dem Channel-Manager, Stornovorschlag und Telefonassistent lesen ihn an einer einzigen Stelle.
v0.99.245
04. Oktober 2026

Rechnungen: Foyer sieht, was bei der Rechnungsstellung fehlt

  • Ein täglicher Wächter meldet abgereiste Buchungen, für die zwei Tage später noch keine Rechnung vorliegt — egal, woran es liegt.
  • Im Rechnungs-Panel steht, wenn sich Buchungsdaten nach der Übergabe an die Rechnungsstellung geändert haben. Von dort lässt sich eine fehlende Buchung nachliefern und eine Rechnung ausstellen, jeweil…
  • Die Rechnungs-E-Mail zeigt denselben Zustellstand wie Anschrift und Steuernummer. Fehlt die Buchung bei der Rechnungsstellung noch, sagt die Marke das ausdrücklich.
  • Gruppenbuchungen über mehrere Zimmer gehen mit allen Zimmern und dem Namen der buchenden Person an die Rechnungsstellung.
v0.99.244
04. Oktober 2026

Foyer meldet eine gestörte Tür

  • Foyer prüft alle 15 Minuten, ob die Nuki-Türen erreichbar sind. Ist eine Tür seit mindestens 30 Minuten offline, nicht mehr angemeldet oder der Motor blockiert, entsteht eine dringende Aufgabe „Tür g…
  • Ist die Tür wieder erreichbar, erledigt sich die Aufgabe von selbst. Ein kurzer Aussetzer löst nichts aus.
  • Über eine Benachrichtigungsregel für „Tür gestört" kann sich das Team per Push informieren lassen.
  • Fällt die Verbindung zum Schlosshersteller selbst aus, bekommt der Inhaber einen Hinweis statt einer falschen Türstörung.
  • Housekeeping und Wartung sehen den Stand der Türen und Batterien jetzt ebenfalls.
v0.99.243
04. Oktober 2026

Batterie-Aufgaben auch auf dem Dashboard

  • Offene Aufgaben „Batterie wechseln" stehen jetzt auch auf dem Dashboard mit ihrem Namen, nicht nur als Zahl in der Kachel der offenen Aufgaben.
v0.99.242
04. Oktober 2026

Batteriewarnungen der Nuki-Türen werden zur Aufgabe

  • Foyer fragt jeden Morgen bei Nuki nach, ob die Batterie einer Tür, ihres Keypads oder ihres Türsensors bald leer ist. Wenn ja, entsteht eine Aufgabe „Batterie wechseln" für die Rezeption — höchstens …
  • Meldet Nuki die Batterie wieder als in Ordnung, erledigt Foyer die Aufgabe selbst. Wird eine Tür in Foyer entfernt oder abgeschaltet, wird ihre offene Batterie-Aufgabe storniert.
  • Überwacht werden nur Geräte, die in Foyer als Tür eingetragen sind.
  • Die Übergabe zeigt offene Batterie-Aufgaben in einem eigenen Abschnitt. Die Geräteseite zeigt je Tür, was die letzte Prüfung ergeben hat — oder dass der Stand unbekannt ist.
v0.99.241
04. Oktober 2026

Abgereiste Buchungen gehen wieder automatisch an die Rechnungsstellung

  • Buchungen aus dem Channel-Manager werden am Tag nach der Abreise automatisch an die Rechnungsstellung übergeben; die Rechnung entsteht dann im nächsten Rechnungslauf.
  • Übergeben wird nur, was dort noch nicht vorliegt. Bestehende Einträge werden nie überschrieben.
v0.99.240
04. Oktober 2026

Die Rechnungs-E-Mail des Gastes kommt auf der Rechnung an

  • Trägt ein Gast im Rechnungsformular eine E-Mail-Adresse ein, geht sie jetzt zusammen mit Anschrift und Steuernummer sofort an die Rechnungsstellung. Bisher konnte sie unterwegs verloren gehen, wenn d…
  • Dasselbe gilt für E-Mail-Adressen, die das Team im Rechnungs-Panel oder an einer Rechnung einträgt.
  • Eine E-Mail-Adresse, die die Rechnungsstellung nicht annehmen kann, hält Anschrift und Steuernummer nicht mehr auf.
v0.99.239
04. Oktober 2026

Airbnb und Booking.com verkaufen zu den Preisen aus Foyer

  • Der nächtliche Abgleich mit dem Channel-Manager nimmt jetzt die Preise, die im Foyer-Kalender stehen — Zimmerpreis, sonst Preis des Zimmertyps — und Foyers eigene Belegung. Werte eines früher angebun…
  • Eine Nacht ohne Preis in Foyer wird auf den Buchungsportalen geschlossen, statt zu einem geratenen Preis verkauft zu werden. Setzt man im Kalender einen Preis für ein Zimmer, öffnet die Nacht sofort …
  • Eine von Hand gesetzte Verkaufssperre hat Vorrang: kein Abgleich und keine Preisänderung öffnet eine gesperrte Nacht.
  • 90 Tage bevor die Preise eines Zimmers enden, legt Foyer eine Aufgabe „Preise setzen" an.
  • Der Betreiber-Kalender und die Werkzeuge für Agenten zeigen den Preis aus Foyer. Ein Zeitraum im Kalender umfasst höchstens 400 Nächte.
  • Eine Nacht, die der Channel-Manager trotz Freigabe geschlossen hält, wird nicht mehr endlos erneut angestoßen.
v0.99.238
01. Oktober 2026

Die Buchungsseite bietet alle freien Zimmer an

  • Die Direktbuchungsseite, die Zimmerseiten und der Kalender der Suchleiste zeigen jetzt jedes Zimmer, das in Foyer frei ist. Bisher fehlten Zimmer, die ein abgeschalteter früherer Kanal noch als gesch…
  • Belegt bleibt, was gebucht oder gesperrt ist, auch das zweite Zimmer einer Buchung über mehrere Zimmer. Unbestätigte Anfragen belegen kein Zimmer.
v0.99.237
01. Oktober 2026

Hausregeln und Nachbarschaft auf der Zimmerseite, eigene Domain vorbereitet

  • Im Editor der Buchungsseite gibt es fünf Texte für die Zimmerseiten: weitere Hinweise, Hausregeln, Nachbarschaft, Gastzugang sowie Anreise und Verkehrsanbindung. Die Zimmerseite zeigt sie in eigenen …
  • Die eigene Adresse je Haus für die Buchungsseite ist auf dem Server eingerichtet; der Reiter „Domain" unter Direktbuchungen ist sichtbar. Ein Haus trägt dort seine Domain ein, setzt zwei DNS-Einträge…
v0.99.236
01. Oktober 2026

Ein Rabattcode wird beim Abbrechen sofort wieder frei

  • Geht ein Gast auf der Zahlungsseite zurück, statt zu bezahlen, beendet Foyer die offene Zahlung und gibt einen eingegebenen Rabattcode sofort wieder frei. Bisher blieb er bis zu einer Stunde belegt —…
v0.99.235
30. September 2026

Gäste aus dem früheren Direktbuchungsportal bekommen ihre Nachrichten per E-Mail

  • Buchungen, die noch über das Direktbuchungsportal des früheren Kanals gemacht wurden, bekommen ihre automatischen Nachrichten und Antworten aus dem Postfach jetzt per E-Mail — etwa die Check-in-Anlei…
v0.99.234
30. September 2026

Die Zimmerseite: Fotos zum Vergrößern, Ausstattung in Gruppen

  • Die Fotos eines Zimmers stehen als kompaktes Raster oben auf der Seite (acht auf dem Rechner, vier auf dem Telefon). Ein Klick öffnet sie in der Vollansicht — mit Zähler, Pfeilen, Pfeiltasten und Wis…
  • Die Ausstattung ist in Gruppen geordnet (Schlafzimmer und Wäsche, Badezimmer, Sicherheit, Allgemein, Küche und Essen, Parken und Umgebung). Drei Gruppen stehen auf der Seite, alle Merkmale öffnen sic…
  • Die Abschnitte stehen zweispaltig — Überschrift links, Text rechts —, und „Verfügbarkeit prüfen" bleibt beim Scrollen oben erreichbar.
  • Hängt ein Zimmer an zwei Inseraten, erscheint jedes Foto nur noch einmal, und die Seite zeigt Texte und Ausstattung des vollständigeren Inserats.
v0.99.233
30. September 2026

Durch die Zimmerfotos blättern

  • Auf den Karten der verfügbaren Zimmer lässt sich jetzt direkt durch alle Fotos eines Zimmers blättern: mit den Pfeilen im Bild, auf dem Telefon per Wischen. Ein Zähler zeigt, das wievielte Foto zu se…
v0.99.232
30. September 2026

Mehrere Tage und Zimmer auf dem Telefon wählen

  • Im Belegungskalender gibt es den Knopf „Mehrere wählen". Danach die erste Nacht antippen, dann die letzte: markiert sind alle Nächte dazwischen in allen Zimmern dazwischen, und es öffnet sich derselb…
  • Eine Leiste am unteren Rand sagt, welcher Tipp als Nächstes kommt, und bietet „Neu beginnen" und „Fertig". Ohne den Knopf bleibt alles wie bisher.
v0.99.231
30. September 2026

Der Änderungsverlauf der Preise bleibt sauber

  • Der Änderungsverlauf der Preise trug alle 15 Minuten dieselbe vermeintliche Änderung ein, wenn der frühere Kanal für eine Nacht keinen Preis führte, Foyer aber einen gesetzten hatte. Der Preis selbst…
v0.99.230
30. September 2026

Der Kalender zeigt wieder alle Preise

  • Der Belegungskalender zeigt den Preis jeder freien Nacht. Nächte, die der frühere Kanal noch als gesperrt führte, blieben bisher leer — auch nachdem dort ein Preis gesetzt wurde — und trugen fälschli…
  • Beim Setzen eines Preises im Kalender erscheint keine Warnung mehr je Zimmer, weil der abgeschaltete Kanal ihn nicht bekommt. Der Hinweis im Dialog nennt jetzt, wohin der Preis wirklich geht: an Airb…
v0.99.229
30. September 2026

Aufgeräumte Zimmerkarten

  • Die Karten der verfügbaren Zimmer sind neu geordnet: oben Foto und Name, darunter je Tarif eine Zeile — links die Stornobedingungen, rechts der Preis und „Wählen". Auf dem Telefon stehen Preis und Kn…
  • Hat ein Zimmer nur einen Tarif, entfällt dessen Name; die Bedingungen sagen, was gilt. Doppelte Angaben („Nicht erstattbar" und „Keine Erstattung bei Stornierung") stehen nur noch einmal da, und grün…
v0.99.228
30. September 2026

Keine Zimmernummern auf der Buchungsseite

  • Die Buchungsseite zeigt Gästen keine Zimmernummern mehr: nicht in der Liste der verfügbaren Zimmer, nicht auf den Zimmerkarten, nicht in der Zusammenfassung und nicht auf der Zimmerseite. Zu sehen is…
v0.99.227
30. September 2026

Das Modul Direktbuchungen

  • Unter „Direktbuchungen" liegen jetzt die Reiter Webseite, Buchungsbedingungen, Rabattcodes, Auszahlungen, Insights und Zahlungen. Die bisherige Stripe-Anbindung ist der Reiter „Zahlungen".
  • Webseite: Titel, Untertitel, Titelbilder (Auswahl und Reihenfolge), ein Hintergrundvideo, Bewertungen an oder aus, welche Zimmer in welcher Reihenfolge erscheinen, ein Text „Über uns" und Links zu so…
  • Buchungsbedingungen: je Tarif eine gestaffelte Stornoregel — vier Vorlagen (nicht erstattbar, streng, ausgewogen, flexibel) oder eigene Stufen. Gäste sehen die Bedingungen bei der Tarifwahl und in de…
  • Rabattcodes: Prozent- oder Festbetrag, wahlweise mit Mindestaufenthalt, Aufenthalts- und Buchungszeitraum und einer Höchstzahl an Einlösungen. Gäste geben den Code in der Zusammenfassung ein. Der Rab…
  • Insights: Besucher, Seitenaufrufe, Buchungen und Umsatz der Buchungsseite je Zeitraum. Gezählt wird ohne Cookies und ohne gespeicherte IP-Adressen; Besucher werden je Tag gezählt und lassen sich über…
  • Auszahlungen: die Auszahlungen von Stripe mit den Zahlungen, aus denen sie bestehen.
  • Eine eigene Adresse je Haus für die Buchungsseite ist vorbereitet und wird in einer späteren Ausgabe freigeschaltet.
v0.99.226
30. September 2026

Die Zimmerseite lädt schnell

  • Ein Klick auf ein Zimmer öffnet dessen Seite jetzt ohne Wartezeit; vorher dauerte es rund fünf Sekunden, bis sie erschien.
v0.99.225
30. September 2026

Ausgebuchte Nächte erscheinen sofort

  • Der Kalender der Suchleiste zeigt ausgebuchte Nächte jetzt beim Öffnen an. In der vorigen Ausgabe dauerte die Abfrage mehrere Minuten, und die Markierung kam nicht rechtzeitig an.
v0.99.224
30. September 2026

Buchungsseite auf Englisch, Zimmernamen, ausgebuchte Nächte

  • Die Buchungsseite spricht Englisch, wenn der Browser des Gastes Englisch eingestellt hat; ein DE/EN-Schalter in der oberen Leiste wechselt jederzeit, ohne dass die Angaben verloren gehen.
  • Jedes Zimmer hat einen eigenen „Namen für Gäste", im Betrieb unter Objekte änderbar. Er erscheint auf der Buchungsseite, der Zimmerseite, in der Zusammenfassung, an der Kasse und in den automatischen…
  • Der Kalender der Suchleiste zeigt ausgebuchte Nächte durchgestrichen; sie lassen sich nicht als Anreise wählen, und ein Zeitraum kann nicht über eine volle Nacht gehen. Mit den Pfeiltasten lässt er s…
  • Geteilte Links auf die Buchungs- und Zimmerseite zeigen in WhatsApp, Mail und Messengern eine Vorschau mit Foto.
  • Das Logo des Hauses lässt sich in den Einstellungen unter „Logo" hochladen, ersetzen und entfernen.
  • Gästebewertungen tragen den Vornamen des Gastes; für ältere Bewertungen wird er einmalig nachgeholt.
  • Storniert ein Gast ein Zimmer einer Buchung über mehrere Zimmer, zählt es in Kalender, Reinigung und Beleg nicht mehr mit.
v0.99.223
29. September 2026

Die Logo-Leiste bleibt oben

  • Die weisse Leiste mit dem Logo des Hauses bleibt beim Scrollen oben am Bildschirmrand stehen; der Inhalt läuft unter ihr hindurch.
v0.99.222
29. September 2026

Anreise und Abreise in einem Feld

  • Die Suchleiste der Direktbuchungsseite fasst Anreise und Abreise in einem Feld zusammen („Anreise → Abreise"). Ein Klick öffnet einen Kalender — am Rechner mit zwei Monaten, auf dem Telefon mit einem…
  • Über den Feldern der Leiste steht keine Beschriftung mehr; Symbol und Wert genügen.
v0.99.221
29. September 2026

Die Buchungsseite zeigt Bewertungen und Zimmer

  • Die Direktbuchungsseite hat oben eine Leiste mit dem Logo des Hauses; ohne hinterlegtes Logo steht dort sein Name.
  • Unter der Suchleiste stehen Gästebewertungen — Vorname, Sterne, Monat und Text, lange Texte zum Aufklappen. Gezeigt werden Bewertungen mit voller Punktzahl und aussagekräftigem Text.
  • Darunter „Unsere Zimmer": je Zimmer eine Karte mit Foto, Name, Zimmernummer und Gästezahl, die zur Zimmerseite führt. Die Fotos des Hauses (Eingang, Frühstücksraum) stehen dort nicht, nur die des Zim…
  • Unten eine Fusszeile mit Logo, Menü und den Hinweisen zu Stornierung und Datenschutz.
  • Nach dem Suchen treten Bewertungen und Zimmerkarten zurück; dann folgen die verfügbaren Zimmer.
v0.99.220
29. September 2026

Mehrzimmerbuchungen belegen jedes ihrer Zimmer

  • Eine Buchung über mehrere Zimmer, die über den Channel-Manager hereinkommt, steht im Kalender jetzt auf allen ihren Zimmern. Bisher erschien sie nur auf dem ersten, die übrigen standen als frei da.
  • Die Direktbuchungsseite und der Telefonassistent bieten diese weiteren Zimmer nicht mehr als frei an — auch bei Mehrzimmerbuchungen aus älteren Anbindungen.
  • Die Aufenthaltsliste nennt bei solchen Buchungen alle Zimmer.
v0.99.219
29. September 2026

Suchen direkt auf dem Bild

  • Die Direktbuchungsseite ist schlichter: ein grosses Foto des Hauses, darauf nur Anreise, Abreise, Gäste und „Suchen" — ohne Überschrift und Untertitel. Nach dem Suchen wird das Bild zu einem schmalen…
  • Oben laufen jetzt die Fotos des Hauses — Eingang, Empfang, Frühstücksraum, Lounge —, nicht mehr die Zimmer. Erkannt werden sie daran, dass sie in den Galerien der meisten Zimmer stehen. Ein Haus ohne…
v0.99.218
28. September 2026

Die Buchungsseite zeigt das Haus

  • Die Direktbuchungsseite zeigt oben die Zimmer des Hauses: Fotos, die langsam ineinander ueberblenden, darueber der Hotelname, darunter die Buchungskarte. Auf dem Telefon genauso wie am Rechner, ohne …
  • Genommen werden nur Fotos, die gross genug und im Querformat sind — zu kleine Galeriebilder bleiben draussen.
  • Mitarbeitenden lassen sich nur noch Lieblingszimmer aus dem eigenen Haus zuordnen.
  • Die gesetzliche Loeschung von Meldescheinen nach Ablauf der Aufbewahrungsfrist ist jetzt fest eingeplant.
v0.99.217
28. September 2026

Schnellere Abfragen, ein Absturz weniger

  • Die Zugriffsregeln der Datenbank pruefen die Hauszugehoerigkeit jetzt einmal pro Abfrage statt einmal pro Zeile. Grosse Listen wie Kalender, Posteingang und Berichte werden dadurch spuerbar schneller…
  • Behoben: ein seltener Fehler, bei dem ein Hintergrundablauf nach einem vorherigen Zugriff an einer leeren Hauskennung scheiterte.
v0.99.216
28. September 2026

Vorbereitung: die Datenbank soll die Hausgrenze selbst halten

  • Vorbereitung fuer eine grundlegende Absicherung: kuenftig soll die Datenbank selbst dafuer sorgen, dass automatische Ablaeufe nur die Daten ihres eigenen Hauses sehen. Diese Ausgabe aendert daran noc…
  • Sicherungskopien aus frueheren Korrekturen liegen jetzt in einem geschuetzten Bereich, auf den die Anwendung keinen Zugriff hat.
  • Fotos in Gastnachrichten werden wieder angezeigt.
  • Jeder automatische Ablauf nennt im Betriebsprotokoll, wie viele Haeuser er bearbeitet hat — auch wenn es null sind.
v0.99.215
28. September 2026

Stille Ausfaelle melden sich, jedes Haus bleibt bei seinen Daten

  • Neu: ein taeglicher Waechter. Scheitert ein automatischer Ablauf immer wieder, oder feuert eine Benachrichtigungs-Regel, ohne dass eine Nachricht ankommt, meldet Foyer das dem Betreiber — hoechstens …
  • Absicherung: Automatische Ablaeufe — KI-Antworten auf Gastfragen, geplante Gastnachrichten, Aufgabenzuweisung, Tageszusammenfassung und Kanal-Abgleiche — greifen jetzt ausdruecklich nur auf Daten des…
  • Beherbergungssteuer: Aufenthalte ohne Preis lassen sich im Bericht als unentgeltlich markieren und zaehlen dann nicht mehr als offen. Jede Entscheidung steht im Aenderungsverlauf der Buchung.
  • Folio: Aendert sich die Gaestezahl einer anstehenden Buchung, rechnet Foyer die Beherbergungssteuer im Folio jetzt nach — der Gesamtpreis bleibt unveraendert, und die Korrektur steht im Aenderungsver…
  • Der Preis- und Verfuegbarkeitsabgleich mit Hospitable laesst sich abschalten und ist es standardmaessig.
v0.99.214
28. September 2026

Benachrichtigungen bleiben im eigenen Haus

  • Eine Benachrichtigungs-Regel mit Empfaengern wie „alle Owner" konnte Konten anderer Haeuser einschliessen. Gefunden bei einer Probe-Meldung, bevor eine Nachricht ein fremdes Haus erreichte. Behoben: …
v0.99.213
28. September 2026

Beherbergungssteuer je Monat, fertig fuer die Meldung an die Stadt

  • Neu unter Finanzen: ein Bericht zur Beherbergungssteuer. Monat waehlen, und Foyer zeigt die steuerpflichtigen Uebernachtungen, den Betrag und jede Buchung einzeln — gezaehlt nach dem Datum der Uebern…
  • Gerechnet wird nach der Regel aus den Steuer-Einstellungen, nicht nach dem, was ein Kanal eingezogen hat. Rechnet eine Buchungsplattform anders als die Satzung, etwa je Zimmer statt je Person, zaehlt…
  • Der Bericht laesst sich als CSV herunterladen, lesbar in jedem deutschen Tabellenprogramm.
  • Er zeigt auch, was er nicht mitrechnet: Aufenthalte ohne Preis stehen in einem eigenen Abschnitt mit dem Betrag, der anfiele, und Buchungen, deren Folio von der Regel abweicht, sind markiert — damit …
v0.99.212
27. September 2026

Links fuehren wieder ins Gespraech, das Kassenbuch zeigt Stornierungen

  • Im Anrufprotokoll, in der Telefonie-Ansicht, im Gaesteprofil und bei „weitere Aufenthalte des Gastes“ fuehrte der Link zu einer Buchung auf die Reservierung statt in das Gespraech mit dem Gast — Foye…
  • Im Kassenbuch wurde eine stornierte Buchung nicht als storniert gekennzeichnet. Die Summen waren davon nicht betroffen, und eine zweite Stornierung derselben Buchung war auch vorher nicht moeglich.
  • In den Profileinstellungen tragen die Benachrichtigungen jetzt verstaendliche Namen — etwa „Notfall in einer Gastnachricht“ statt eines technischen Bezeichners.
v0.99.211
27. September 2026

Push-Meldungen kommen jetzt an

  • Seit v0.99.209 liess sich ein Geraet fuer Benachrichtigungen anmelden, aber keine Meldung erreichte es: Foyer erkannte angemeldete Geraete nicht und waehlte deshalb nie den Push-Kanal. Im Protokoll e…
  • Behoben. Wer auf einem Geraet Benachrichtigungen angeschaltet hat, bekommt Meldungen jetzt dorthin, und wer keines angemeldet hat, bekommt sie weiterhin ueber die uebrigen Kanaele der Regel.
v0.99.210
27. September 2026

Benachrichtigungs-Regeln bieten nur noch an, was auch ankommt

  • Der Assistent fuer Benachrichtigungs-Regeln bot Ausloeser an, die nie eine Meldung erzeugen konnten: Buchungs- und KI-Ereignisse laufen ueber einen anderen Weg, die Aufgaben-Regeln. Eine solche Regel…
  • Neu auswaehlbar sind dafuer Tuerklingel und Bewegungsmelder der Kameras. Beide wurden laengst gemeldet, liessen sich aber nicht waehlen. Eine Klingel aufs Telefon ist damit eine Regel und keine Anfra…
  • Notfall-Regeln lassen sich jetzt auch in der Oberflaeche anlegen und bearbeiten; die Klasse fehlte in der Auswahl.
  • Eine Regel darf alle vier Kanaele tragen — die Eingabepruefung liess bisher nur drei zu.
v0.99.209
27. September 2026

Notfall-Nachrichten melden sich auf dem Handy

  • Foyer erkennt seit August Notfaelle in Gastnachrichten — „ausgesperrt", Ungeziefer, kein warmes Wasser, in sieben Sprachen. Bisher stand der Alarm in der App und wartete darauf, dass jemand hinsieht.
  • Jetzt meldet er sich: Die Betreiber-Oberflaeche laesst sich als App auf den Startbildschirm legen und Benachrichtigungen empfangen. Der Schalter dafuer steht in den Einstellungen unter Profil und gil…
  • Push ist ein vollwertiger Kanal der Benachrichtigungs-Regeln geworden. Damit gelten dieselben Bedingungen wie sonst — „nur dringende Faelle", „nur bestimmte Zimmer" — und jede Zustellung steht im Pro…
  • Eine Meldung nennt das Zimmer, nicht den Gastnamen: sie steht offen auf dem Sperrbildschirm. Der Klick fuehrt direkt in den Gespraechsfaden, nicht auf die Startseite.
  • Und sie kommt schneller: Die Pruefung laeuft jetzt beim Eingang der Nachricht statt erst im Zehn-Minuten-Takt. Bei einem Gast, der nachts vor der Tuer steht, ist das der Unterschied.
  • Auf dem iPhone funktioniert das nur, wenn die Seite auf dem Startbildschirm liegt — der Schalter sagt das, statt es zu verschweigen.
v0.99.208
27. September 2026

Ein Klick auf Finanzen landet auf den Rechnungen

  • Der Eintrag „Finanzen" in der Seitenleiste fuehrte auf das Kassenbuch. Der Klick auf die Gruppe ist aber der haeufigste Weg in diesen Bereich, und dahinter steht fast immer eine Rechnungsanfrage — da…
  • Er fuehrt jetzt auf die Rechnungen; das Kassenbuch steht unveraendert als zweiter Eintrag darunter, und die Gruppe bleibt auf beiden Seiten hervorgehoben.
v0.99.207
27. September 2026

Mehr Rechnungsanfragen auf einen Telefonschirm

  • Auf dem Telefon passten drei Anfragen auf den Schirm, die dritte nur halb. Zwei Drittel der Kartenhoehe waren Beiwerk: Spaltenbeschriftungen, die auf dem Telefon nichts sagen, was der Wert nicht selb…
  • Jetzt sind es sechs. Die Karte zeigt drei Zeilen statt vier Bloecke, der Zeitraum steht kurz („22.–26. Sept."), und ueber der Liste entfallen die Ueberschrift, die die Kopfleiste ohnehin wiederholt, …
  • Am Schreibtisch bleibt die Tabellenansicht unveraendert — mit Spaltenkoepfen, vollem Datum und allen sechs Spalten.
  • Dabei behoben: die Statusauswahl wuchs mit ihrem laengsten Text und verengte damit die Zeilen darunter, sodass Betrag und Zeitraum abgeschnitten dastanden.
v0.99.206
24. September 2026

Eine stornierte Rechnung verschwindet aus dem Gastportal

  • Wird eine Rechnung storniert, blieb sie im Gastportal unveraendert stehen — mitsamt Datei zum Herunterladen. Die Stornierung wirkte auf der Betreiberseite und nirgends sonst.
  • Der Schaden ist nicht rechnerisch, sondern in der Aussage: der Gast hat weiter ein Dokument vor sich, das das Haus zurueckgenommen hat, und bezahlt im Zweifel danach.
  • Im Betreiber-Bereich bleibt sie sichtbar. Dort ist die Stornierung eine Tatsache, die man sehen muss, keine, die man verbirgt.
v0.99.205
24. September 2026

Eine festgesetzte Korrektur wird nicht doppelt gebucht

  • Seit v0.99.197 ueberlebt eine von Hand festgesetzte Folio-Korrektur jede automatische Neuberechnung. Der Erzeuger der abgeleiteten Korrekturen kannte diese Kennung aber nicht — er schloss daraus „noc…
  • Zwischen Ueberschreiben und Danebenschreiben liegt der richtige Ausgang: gar nichts rechnen. Festgesetzt heisst, dass ein Mensch den Betrag entschieden hat; eine abgeleitete Rechnung daneben ist kein…
  • Der Erzeuger raeumt dabei seine eigene, veraltete Zeile weg, bevor er den Aufenthalt in Ruhe laesst — sonst bliebe der fehlerhafte Zustand fuer immer stehen. Angefasst wird ausschliesslich, was ihm g…
v0.99.204
24. September 2026

Der Aenderungsverlauf sagt, woher die Aenderung kam

  • An einer Aenderung, die ein Kanal gemeldet hat, stand bisher „System". Das stimmt, soweit es Foyer betrifft — es war kein Benutzer — und geht an der Frage vorbei, die im Protokoll gestellt wird: hat …
  • Der Verlauf nennt das jetzt, wo es sich belegen laesst, und schweigt sonst. Kein zusaetzlicher Abruf beim Kanal: die noetige Angabe liegt in der Zustellung, die Foyer ohnehin mitschreibt.
  • Was NICHT geht und auch nicht behauptet wird: einen Namen nennen. Der Kanalmanager liefert eine Kontokennung, keinen Menschen — aus ihr einen Namen zu machen waere eine Erfindung in genau dem Protoko…
v0.99.203
24. September 2026

Eine Mehrzimmer-Buchung zeigt alle ihre Zimmer

  • Das Buchungs-Panel nannte bei einer Buchung ueber mehrere Zimmer genau eines davon — welches, entschied der Zufall des Imports. Betroffen war jede laufende Mehrzimmer-Buchung, die groesste ueber vier…
  • Es zeigt jetzt die ganze Zimmerliste. Die Menge kommt aus derselben Quelle wie Kalender, Reinigung und die Zimmernaechte daneben — das Panel hatte sie laengst berechnet und nur fuer die Zimmernaechte…
v0.99.202
24. September 2026

Auch eine halb gebuchte Aenderung hinterlaesst eine Spur

  • Entsteht beim Gegenbuchen einer Preisaenderung nur ein Teil der geplanten Zeilen, meldet Foyer das seit gestern als Fehler statt als Erfolg. Geschrieben wurde dabei aber kein Verlaufseintrag — ausger…
  • Der Eintrag entsteht jetzt VOR dem Ausstieg, und er nennt, was tatsaechlich gebucht wurde, nicht was geplant war. Ein unvollstaendiger Vorgang ist im Verlauf ausdruecklich als solcher gekennzeichnet.
v0.99.201
24. September 2026

Die Erstattung der Beherbergungssteuer landet im richtigen Topf

  • Zum Gegenbuchen teilt Foyer den Folio-Stand in Zimmeranteil und Beherbergungssteuer auf, weil beide verschiedene Steuersaetze tragen. Die Aufteilung ging nach der Art der Zeile — und eine Erstattung …
  • Eine bereits gebuchte Erstattung der Beherbergungssteuer zaehlte dadurch zum Zimmeranteil. Die naechste Gegenbuchung glich die scheinbare Differenz mit einem Aufschlag aus, den es nicht geben durfte.
  • Massgeblich ist jetzt der Steuersatz der Zeile, nicht ihre Art.
v0.99.200
24. September 2026

Sagt der Kanal ab, wird auch die Verrechnung zurueckgenommen

  • Ein ueber den Kanal vorausbezahltes Folio traegt einen Merkposten, damit es nicht faelschlich offen dasteht. Wurde die Buchung abgesagt und die Forderung gegengebucht, blieb dieser Merkposten stehen …
  • Der Merkposten zieht jetzt mit und wird in derselben Bewegung zurueckgenommen. Das nimmt die Entscheidung aus v0.99.198 zurueck, die Zahlungsseite ganz auszunehmen: sie liess die Buchung unvollstaend…
  • Eine von Hand erfasste Zahlung bleibt unberuehrt. Bargeld an der Rezeption ist echtes Geld; es gegenzubuchen, weil ein Kanal seinen Preis aendert, waere ein Fehler mit Kassenwirkung.
v0.99.199
24. September 2026

Jede Gegenbuchung bekommt ihren eigenen Schluessel

  • Zimmerpreis und Beherbergungssteuer werden getrennt gegengebucht, teilten sich aber den Schluessel, der eine doppelte Buchung desselben Vorgangs verhindert. Je Aufenthalt ist der nur einmal zu vergeb…
  • Geschrieben wurde deshalb nur die erste Zeile; die zweite lief still ins Leere, und gemeldet wurde Erfolg. Das Folio stand danach auf dem Betrag der Beherbergungssteuer statt auf null.
  • Jede Zeile traegt jetzt ihren eigenen Schluessel. Entsteht trotzdem nur ein Teil der geplanten Buchung, meldet Foyer das als Fehler — ein Teilerfolg, der sich als Erfolg ausgibt, ist schlimmer als ei…
v0.99.198
24. September 2026

Aendert der Kanal den Preis, folgt das Folio

  • Sagt ein Kanal eine Buchung ab oder aendert ihren Preis, uebernahm Foyer das bisher nur im Gesamtbetrag — das Folio blieb stehen. Bei abgesagten Buchungen hiess das: der Gesamtbetrag sagte „kostet ni…
  • Das Folio zieht jetzt nach, und zwar als Gegenbuchung: die urspruenglichen Zeilen bleiben unveraendert lesbar, die Aenderung kommt als eigene Zeile daneben. Eine Buchung wird storniert, nicht uebersc…
  • Zimmerpreis und Beherbergungssteuer werden getrennt gegengebucht, weil sie verschiedene Steuersaetze tragen. Die Beherbergungssteuer entfaellt nur bei einer Absage — aendert sich blosss der Zimmerpre…
  • Die Gast-Zahlung bleibt bewusst unangetastet: ob Geld zurueckgeflossen ist, sagt die Auszahlung des Kanals, nicht der Preis. Ein offener Saldo ist die ehrlichere Auskunft als eine erfundene Rueckzahl…
  • Ein wiederholt zugestellter Webhook bucht nicht zweimal: jede Gegenbuchung merkt sich, welchen Vorgang sie bucht.
v0.99.197
24. September 2026

Eine festgesetzte Korrektur bleibt stehen

  • Wird ein Folio von Hand richtiggestellt, konnte die naechste automatische Neuberechnung die Korrektur wieder entfernen — sie lag unter derselben Kennung wie die abgeleiteten Korrekturzeilen, und der …
  • Festgesetzte Korrekturen tragen jetzt eine eigene Kennung, die kein automatischer Lauf anfasst. Fuer die Auswertung zaehlen sie weiter wie jede andere Korrektur — der Folio-Waechter bleibt also schar…
v0.99.196
24. September 2026

Rechnungsdaten gehen ans fuehrende System, egal wer sie eintraegt

  • Seit gestern schickt Foyer erfasste Rechnungsdaten an das System, das die Rechnung ausstellt. Nur galt das fuer genau EINEN Weg: das Betreiber-Panel. Es gibt aber sechs Stellen, an denen eine Rechnun…
  • Darunter die beiden wichtigsten: das Rechnungsformular, das Gaeste per Link ausfuellen, und das Gastportal. Wer dort seine Firmenanschrift eintrug, sah sie in Foyer stehen — auf der Rechnung stand we…
  • Das Tueckische war die Stille: es wurde gar kein Versand angestossen, also gab es auch keine Fehlermeldung und keinen Hinweis am Datensatz. Von aussen sah es aus wie Erfolg.
  • Jetzt haengt der Versand am Speichern selbst statt an der aufrufenden Stelle. Alle sechs Wege stellen zu — auch die nachtraegliche Adresskorrektur an einer fertigen Rechnung und die Adresse, die der …
  • Dasselbe galt fuer den Arbeitszustand einer Anfrage: ueber die Schnittstelle gesetzt, kam er nie im fuehrenden System an. Auch das haelt jetzt.
v0.99.195
24. September 2026

Der Anfragestatus kommt im fuehrenden System wirklich an

  • Seit der letzten Ausgabe schickt Foyer einen umgestellten Arbeitszustand sofort ans fuehrende System. Nur kam er dort nie an: der Weg dorthin war als Zustellung an einen Ablauf entworfen, den es nie …
  • Foyer setzt den Zustand jetzt selbst, ohne Umweg ueber einen Dienst, der erst noch gebaut werden muesste. Die Wiederholungen, die Fehlermeldung an der Anfrage und der Knopf zum erneuten Senden bleibe…
  • Der alte Weg bleibt als Rueckfall bestehen. Kommt drueben eines Tages ein Ablauf dazu, der mehr tut als den Zustand zu setzen, genuegt eine Einstellung, um wieder auf ihn umzuschalten.
v0.99.194
24. September 2026

Preisaenderungen vom Kanal hinterlassen eine Spur

  • Aendert ein Kanal den Preis einer Buchung — etwa weil dem Gast etwas erstattet wurde —, uebernimmt Foyer das an allen Stellen: Gesamtbetrag, Reservierungs-Finanzen, Folio. Im Aenderungsverlauf des Au…
  • Der Verlauf zeigt die Aenderung jetzt mit Vorher und Nachher — Gesamtbetrag, Status, An- und Abreise, Zimmer und Kopfzahlen. Das betrifft nicht nur Geld: Stimmt der Betreiber einer Gaeste-Aenderung z…
  • Ausserdem wurde der alte Preisstand bisher ueberschrieben statt aufgehoben. Protokolliert war nur, wenn Preiszeilen GELOESCHT wurden; der haeufigste Fall — der Kanal meldet einen anderen Preis — vers…
  • Beides schweigt, wenn sich nichts geaendert hat. Der Abgleich laeuft im Minutentakt ueber dasselbe Zeitfenster; ein Eintrag je Lauf haette den Verlauf unbrauchbar gemacht.
v0.99.193
23. September 2026

Der Anfragestatus gilt jetzt in beide Richtungen

  • Wer den Arbeitszustand einer Rechnungsanfrage in Foyer umstellte, sah ihn nach kurzer Zeit von allein zurueckspringen. Der naechtliche Abgleich mit dem fuehrenden System ueberschrieb den Wert bedingu…
  • Jetzt gewinnt, wer zuletzt geschrieben hat: ein in Foyer gesetzter Status haelt, bis drueben wirklich jemand etwas aendert. Aendert es dort jemand spaeter, gilt wieder das.
  • Und der Status geht sofort hinueber, statt nur in Foyer zu stehen. Misslingt das, wird bis zu fuenfmal mit wachsendem Abstand wiederholt.
  • Bleibt es dabei, steht der Grund an der Anfrage. Ohne diesen Hinweis zeigte Foyer einen Stand, den das fuehrende System nicht kennt — und niemand wuesste es.
v0.99.192
23. September 2026

Vorlagen sagen jetzt, dass es den Rechnungslink gibt

  • Der Platzhalter fuer den Rechnungslink war nirgends in der Oberflaeche dokumentiert. Wer eine Antwortvorlage schrieb, konnte nicht erfahren, dass es ihn gibt — und trug stattdessen eine feste Adresse…
  • Er steht jetzt in den Platzhalter-Hinweisen, und der Vorlagen-Editor zeigt ueberhaupt zum ersten Mal an, welche Platzhalter es gibt.
  • Fehlt der Platzhalter in einer Vorlage, haengt Foyer den Link weiterhin an — meldet das aber jetzt im Protokoll, statt es stillschweigend zu tun. Genau dieses stille Anhaengen hatte verdeckt, dass di…
  • Ausserdem im Hintergrund: die Anfragen-Liste waehlt die Formular-Zeile eines Aufenthalts jetzt nach derselben Regel aus wie der Rest des Systems, statt einfach die zuletzt angelegte zu nehmen. Angeze…
v0.99.191
23. September 2026

Der Betreiber sieht, ob der Rechnungslink noch gilt

  • Seit Links nach 90 Tagen ablaufen, konnte ein verschickter Link tot sein, ohne dass es irgendwo stand — aufgefallen waere es erst, wenn ein Gast sich meldet.
  • Die Anfrage zeigt es jetzt neben dem Knopf: „Link abgelaufen — neuen senden" als Hinweis, sonst still das Datum, bis zu dem der Link gilt. Wo nie einer verschickt wurde, steht nichts; das ist der Nor…
  • Die Auskunft unterscheidet „abgelaufen" von „noch keiner". Eintraege, die nur aus dem Alt-System stammen und nie ein Gast-Link waren, gelten als „noch keiner" — sonst haette der Hinweis auf eine Adre…
v0.99.190
23. September 2026

Der Rechnungslink laeuft ab — und fuehrt wieder zum Formular

  • Der Link, mit dem ein Gast seine Rechnungsanschrift eintraegt, traegt seine Berechtigung im Pfad: wer ihn hat, darf die Anschrift dieses Aufenthalts setzen. Er stand damit dauerhaft im Nachrichtenver…
  • Jetzt gilt er 90 Tage. Wer einen alten Link oeffnet, sieht in seiner Sprache eine freundliche Seite: der Link ist abgelaufen, das Hotel stellt in einem Moment einen neuen aus. Kein Fehler, keine leer…
  • Die Frist gilt dort, wo sie zaehlt: nicht nur in der Anzeige, sondern auch fuer jeden Versuch, am Formular vorbei zu senden.
  • Ein abgelaufener Link wird ERSETZT statt abgewiesen, wenn ein Gast gerade nach seiner Rechnung fragt — die automatische Antwort schickt dann einen frischen.
  • Dabei gefunden und behoben: die automatische Antwort haette fuer einen Grossteil der Aufenthalte einen toten Link verschickt. In derselben Tabelle liegen Platzhalter aus dem Alt-System, die wie ein L…
v0.99.189
23. September 2026

Rechnungsdaten aus Foyer erreichen die Rechnung

  • Wer im Postfach eine Firmenanschrift oder eine Steuernummer erfasst, sah sie danach in Foyer stehen — auf der Rechnung stand sie nicht. Die Rechnung wird vom Alt-System ausgestellt, und der Abgleich …
  • Jetzt geht jede Eingabe beim Speichern hinueber. Schlaegt das fehl, wiederholt Foyer es viermal mit wachsender Wartezeit; der Fernzugriff haelt das Speichern dabei weder auf noch kippt er es.
  • Der Datensatz sagt, woran man ist: „geht an die Rechnung …", ein roter Hinweis mit Grund, wenn alle Versuche gescheitert sind — und daneben ein Knopf, der denselben Datensatz erneut schickt statt ein…
  • Die Gegenrichtung lief einmal taeglich. Eine Anschrift, die morgens im Alt-System entstand, erschien in Foyer am naechsten Morgen; jetzt alle fuenfzehn Minuten.
  • Ausserdem: das Eingabefeld fuer die zweite Adresszeile. Speicherpfad, Datenbankspalte und Anzeige trugen sie von Anfang an — nur tippen liess sie sich nicht. Aufgefallen an einer auslaendischen Firme…
v0.99.188
23. September 2026

Ein verpasster Anruf wird zur Aufgabe

  • Aus einem verpassten Anruf entsteht automatisch eine Aufgabe, statt dass jemand ihn im Protokoll wiederfinden muss.
  • Mehrere Versuche derselben Nummer bleiben dabei EINE Aufgabe — wer dreimal hintereinander anruft, erzeugt nicht dreimal Arbeit.
v0.99.187
23. September 2026

Ein Anruf gehoert zum Gast, nicht ins Protokoll

  • Anrufe standen seit einem Monat in der Zeitachse des Gespraechsfadens — kamen dort aber fast nie an. Der Abgleich verglich Rufnummern zeichengenau, waehrend die Telefonanlage national schreibt und de…
  • Die Anrufzeile im Faden trug bisher nur Richtung, Zeitpunkt und Dauer. Sie zeigt jetzt auch die Rufnummer mit Waehl-, Kopier- und WhatsApp-Knopf, bei einem verpassten Anruf den Rueckruf-Stand, und ei…
  • Das Postfach markiert Faeden, an denen ein Anruf haengt. Rot wird die Marke nur bei einem verpassten Anruf, der juenger als sieben Tage und noch offen ist — eine Warnung, die nie ausgeht, wird uebers…
  • Die Anrufliste verlinkt die Buchung jetzt auch dann, wenn die Zuordnung nicht fest eingetragen ist, sondern sich aus Rufnummer und Zeitpunkt ergibt. Dieselbe Regel wie im Faden, damit beide Ansichten…
  • Die WhatsApp-Knoepfe funktionierten nie. Sie wurden aus den blossen Ziffern gebaut, WhatsApp verlangt aber die internationale Form ohne fuehrende Null — und in der Anrufliste steht keine einzige Numm…
  • „Gast" an einem Anrufer heisst jetzt: diese Person hat eine bestaetigte Buchung — vergangen, laufend oder kuenftig. Vorher hiess es „ist gerade im Haus", weshalb fast jeder Anruf als unbekannt galt, …
  • Zwei Schreibweisen desselben Namens gelten nicht mehr als zwei Menschen. Der Schutz gegen Sammelnummern — eine Nummer, ein Name — verglich Namen zeichengenau und sperrte deshalb auch Faelle, in denen…
  • Reservierungs-Links zeigten fuer einen Teil der Buchungen zuverlaessig auf eine Fehlerseite: die Adresse verlangt eine interne Kennung, der neue Vermittler liefert aber eine Buchungsnummer. Behoben i…
v0.99.186
20. September 2026

Preisaenderungen von Beds24 erreichen das Folio

  • Aendert ein Kanal den Preis einer Buchung, zieht Foyer das Folio nach — Zimmerpreis neu aufgeteilt, Beherbergungssteuer neu herausgerechnet, die Verrechnung mitbewegt, damit kein Saldo entsteht, den …
  • Das galt bisher nur fuer Buchungen ueber den alten Vermittler. Seit dem kanalweisen Umzug laufen die beiden groessten Kanaele ueber den neuen — und dort erreichte eine Preisaenderung das Folio nie.
  • Mit behoben: die Buchungen des neuen Vermittlers werden ueber ihre eigene Kennung gefunden. Ueber die alte waere mehr als die Haelfte weiter durchgefallen — lautlos, wie die urspruengliche Luecke.
v0.99.184
19. September 2026

Ein Aufenthalt, der ohne Buecher abreist, faellt nicht mehr durch

  • Foyer legt das Folio einer Buchung automatisch an, sobald der Preis da ist. Wenn das beim ersten Anlauf nicht klappt, holt ein Abgleich es nach — aber nur, solange der Aufenthalt noch bevorsteht oder…
  • Die taegliche Pruefung meldet jetzt jeden abgereisten Aufenthalt, der Geld traegt, aber kein Folio hat — ohne Zeitgrenze, denn das Loch entsteht genau dort, wo das Heil-Netz aufhoert zu schauen.
  • Ob ein Folio ueberhaupt fehlen darf, entscheidet dabei nicht die Pruefung, sondern dieselbe Stelle, die es anlegen wuerde. Ein Aufenthalt, der bewusst keins bekommt, wird deshalb nicht jeden Tag als …
  • Auch eine stille Runde wird protokolliert: „nichts gefunden" muss von „die Pruefung laeuft nicht" unterscheidbar sein.
  • Dazu ein einmaliger Nachtrag fuer die Faelle, die vor Einfuehrung des Abgleichs entstanden sind. Er erzeugt genau das, was beim Anlegen entstanden waere, und laesst die Faelle unberuehrt, die absicht…
v0.99.183
19. September 2026

Beim Verbinden eines KI-Tools steht jetzt da, wohin der Zugang geht

  • Der Zustimmungsschirm nannte bisher nur den Namen, den sich ein Tool selbst gibt. Jetzt steht daneben das Ziel: entweder „ein Programm auf diesem Geraet" oder der Name des fremden Servers — mit Warnh…
  • Neu angemeldete Tools duerfen Zugangsdaten nicht mehr unverschluesselt an einen fremden Rechner leiten. Programme auf dem eigenen Geraet und verschluesselte Verbindungen bleiben unveraendert moeglich.
v0.99.182
19. September 2026

Jedes Haus unterschreibt seine Rechnungen selbst

  • Neu unter Einstellungen → Rechnungsabsender: drei Wege, unter welcher Adresse die Rechnungsmails eines Hauses hinausgehen — ueber Foyer, unter der eigenen Hoteladresse, oder aus dem eigenen Postfach.…
  • Ganz oben auf der Seite steht die Zeile, die heute tatsaechlich im Postfach des Gastes erscheint. Eine Einstellung, die man nur beschreibt statt zu zeigen, wird geraten.
  • Der Schritt steht zusaetzlich in der Startliste nach der Anmeldung und laesst sich dort ueberspringen — die Einstellung ist jederzeit nachholbar.
  • Ohne Wahl aendert sich nichts: ein Haus mit hinterlegtem Postfach schreibt weiter von dort, alle anderen unter ihrem eigenen Hausnamen ueber Foyer. Die Sammeladresse, unter der Rechnungsmails vorher …
  • Abgesichert: der Versandweg, der den Absender technisch auf das angemeldete Konto umschreibt, wird nur noch benutzt, wenn ein Haus genau diesen Weg gewaehlt hat.
v0.99.181
19. September 2026

Das Gastportal: ein Link fuer den ganzen Aufenthalt

  • Ein Gast sieht unter einem einzigen Link seinen Aufenthalt: Anreise, Abreise, Naechte, Zimmer, Gesamtbetrag — dazu die angebotenen Extras, seine hinterlegten Rechnungsdaten und seine Rechnungen als P…
  • Extras lassen sich von dort aus waehlen. Pro Angebot ist hinterlegt, ob ein Klick sofort bucht oder eine Anfrage ans Haus stellt; beides fuehrt zu demselben Vorgang, den die Rezeption heute von Hand …
  • Die Rechnungen kommen als PDF, und zwar nur die eigenen: der Link im Pfad entscheidet, nicht der Dateiname. Ein fremder Name, ein abgelaufener Zugang oder ein geratener Link fuehren gleichermassen in…
  • Der Zugang bleibt bis zehn Tage nach der Abreise gueltig, damit die Rechnung auch nach dem Auschecken noch erreichbar ist.
  • Das Portal spricht die Sprache des Gastes, nicht die des Hauses: Deutsch fuer deutschsprachige Gaeste, sonst Englisch — und Datum und Betrag folgen derselben Wahl. Die Sprache steht am Gast und wird …
v0.99.180
18. September 2026

Rechnungen: PDFs, Versand und Neuausstellung an einer Stelle

  • Das Anfragen-Panel zeigt die Rechnungen einer Reservierung als PDF-Liste und nicht mehr nur den Satz "Rechnung vorhanden".
  • Neu daneben: "Per Mail verschicken", "Rechnung neu ausstellen" und ein "Formular-Link senden", das den Link erzeugt, kopiert UND dem Gast schickt — jeweils mit Rueckfrage, weil dahinter ein echter Ga…
  • Die PDFs kommen wieder: Foyers Dateispiegel war seit dem 1. Juli nicht mehr gefuellt worden, seither fuehrte jeder PDF-Knopf ins Leere und der Mailversand endete im Fehler. Fehlt die Datei lokal, wir…
  • "Rechnung neu ausstellen" laesst das Rechnungssystem nummerieren statt selbst zu zaehlen. Vorher entstand eine Nummer, die dort noch vergeben wird — und ein Entwurf ohne Datei.
  • Eine neu ausgestellte Rechnung erscheint SOFORT statt erst mit dem naechsten Abgleich. Ein Knopf, der eine erfolgreiche Handlung eine halbe Stunde lang nicht zeigt, laedt zum zweiten Klick ein, und h…
v0.99.179
18. September 2026

Rechnungsdaten erreichen das Command Center

  • Was ein Gast ueber den Anmeldelink eintraegt — Firma, Anschrift, Rechnungs-E-Mail, Steuernummer — geht jetzt auch an ein angebundenes Command Center. Bisher wurde dort die ANFRAGE sichtbar, die Daten…
  • Der Weg lief bis hierher nur in eine Richtung: von drueben nach Foyer. Die Gegenrichtung gab es nicht, obwohl der Kern dafuer schon im Baum lag — er war nirgends eingehaengt und hat nie gelaufen.
  • Geschrieben wird nur, wo drueben nichts steht. Die Gegenstelle legt bedingungslos an statt zu ersetzen; ohne Abgleich vorher stuende jede Adresse nach dem zweiten Lauf doppelt da.
  • Eine Steuernummer allein laesst sich nicht nachtragen, solange die Adresse drueben schon liegt — die Gegenstelle verlangt bei jedem Aufruf eine Adresse. Solche Faelle werden gemeldet statt in einen F…
  • Abschaltbar, und ohne Schalter tut der Lauf nichts: kein Netz, keine Datenbank, keine Zeile.
v0.99.178.7
18. September 2026

Stornierte Beds24-Buchungen: die Rechnungskorrektur findet sie jetzt zuverlässig

  • Bei einem Teil der über Beds24 laufenden Buchungen fand der tägliche Korrekturabgleich die Buchung nicht, weil er unter der falschen Kennung suchte — eine Stornierung mit abweichendem Betrag blieb da…
  • Betroffene Fälle werden jetzt gefunden, die Gegenbuchung oder Nachzahlung automatisch angelegt.
v0.99.178.6
17. September 2026

Ein Nachrichtenspiegel bringt Beds24-Gespräche zurück ins Command Center

  • Gespräche aus Buchungen, die über Beds24 laufen, erreichten das angebundene Command Center nicht mehr — Rechnungsanfragen darin blieben deshalb unsichtbar, obwohl der Gast sie im Postfach längst gest…
  • Ein Spiegel liefert diese Gespräche jetzt über denselben Weg nach, über den auch der bisherige Kanal einliefert — inklusive der mehrsprachigen Erkennung, die eine Rechnungsanfrage erkennt.
  • Läuft noch nicht automatisch: die Zustellung wird erst scharfgeschaltet, sobald die Gegenstelle eine bereits von Foyer beantwortete Nachricht sicher erkennt und nicht ein zweites Mal beantwortet.
v0.99.178.5
17. September 2026

Mehrzimmerbuchungen über Beds24: die Beherbergungssteuer zählt wieder richtig

  • Bei einer Mehrzimmerbuchung über Beds24 ohne gemeldete Erwachsenenzahl je Zimmer berechnete die Beherbergungssteuer zuletzt keinen Betrag, wo eine Person unterstellt werden sollte — eine neue Zwische…
  • Die neue Zimmerseite (Galerie, Ausstattung, Karte, Verfügbarkeitskalender) ist jetzt vollständig zweisprachig.
v0.99.178.4
17. September 2026

WLAN-Zugangsdaten: ein eigenes Freigabefenster, überall gleich

  • Netzwerkname und Passwort fürs WLAN erscheinen jetzt in Anreise-Guide, Gastportal, automatischer Nachricht und in KI-Antworten zur selben Uhrzeit am Anreisetag — vorher wichen die Stellen um bis zu z…
  • Das Freigabefenster fürs WLAN ist von dem für die Türcodes getrennt: ein Gast mit bezahltem Early Check-in bekommt seinen Türcode weiterhin früher, ohne dass das WLAN-Passwort vorzeitig mit herausgin…
  • Ein Beschriftungsfehler im Anreise-Guide behoben: der WLAN-Schritt sprach fälschlich von „Zugangscodes" statt Netzwerkname und Passwort.
v0.99.178.3
17. September 2026

Anreisezeiten: nur noch anbieten, was tatsächlich geht

  • Die Anreisezeit-Auswahl zeigt jetzt nur noch Zeiten, zu denen laut den Hausregeln überhaupt ein Check-in möglich ist — vorher ließ sich jede Uhrzeit wählen, auch mitten in der Nacht oder vor Check-in…
  • Der Hinweistext unter der Auswahl (Aufpreis, Sperrzeit, Gepäckablage) wird jetzt aus denselben Regeln abgeleitet, die auch anderswo im Haus gelten, statt einen eigenen, teils veralteten Satz zu zeige…
  • Die Hausordnung, die ein Gast beim Check-in unterschreibt, übernimmt dieselben Zeiten und Regeln automatisch, statt sie ein zweites Mal von Hand zu pflegen.
v0.99.178.2
16. September 2026

Kalenderpreise: verlässlicher geschrieben, mit eigener Historie

  • Ein Preis-Push an Hospitable galt bisher schon dann als erfolgreich, wenn der Kanal die Anfrage entgegennahm — nicht erst, wenn der Preis auch wirklich gespeichert wurde. Ein automatischer Rückleseve…
  • Der eigene Kalenderpreis wird jetzt täglich mitgeschrieben, nicht nur der aktuelle Stand — ein versehentlich falsch gesetzter Preis lässt sich dadurch auf den Vortag zurückführen.
  • Der Marktvergleich für ungewöhnliche Nachbarpreise war am Ende des Kalenders blind, weil dort kaum noch andere Häuser zum Vergleich stehen; ein zweiter, unabhängiger Vergleichsweg deckt diesen Rand j…
  • Zwei neue automatische Prüfungen melden, wenn eine Sperre unbemerkt verschwindet oder die eigene Marktbeobachtung stehen bleibt.
  • Eine ungewöhnliche Nachfragespitze lässt sich jetzt auch eintragen, wenn die Ursache nicht bekannt ist, statt sie unpassend zuzuordnen oder wegzulassen.
v0.99.178.1
16. September 2026

Kanalpreise: größeres Fenster und eine Obergrenze nach oben

  • Ein von Hand für ein bestimmtes Zimmer gesetzter Preis wurde in einem Randfall verworfen, statt an Beds24 zu gehen — behoben.
  • Das Preisfenster, über das Foyer Preise an Beds24 überträgt, reicht jetzt bis zu 365 Tage im Voraus statt vorher deutlich kürzer — ein weit im Voraus gesetzter Preis kommt dadurch sofort an, statt Wo…
  • Neu: eine Preisobergrenze pro Nacht, die einen versehentlich falsch eingegebenen Preis abfängt, bevor er an einen Kanal geht.
  • Verfügbarkeit und Preis laufen jetzt zusammen: hält Foyer eine Nacht für offen und bepreist sie, wird sie bei Beds24 aktiv als verkäuflich markiert, statt bepreist, aber nicht buchbar dazustehen.
v0.99.178
15. September 2026

Neunzig Minuten, um am Telefon zu buchen

  • Wer am Telefon zusagt, hat jetzt 90 Minuten statt 30, um den Zahllink aus der SMS zu öffnen. Die halbe Stunde war an der Technik bemessen und nicht am Gast: bis die SMS da ist, das Handy gefunden, vi…
  • Das Zimmer bleibt in dieser Zeit gesperrt, auch gegenüber Booking.com und Expedia. Läuft der Hold ab, öffnet es sich dort automatisch wieder.
  • Die Dauer steht jetzt an genau einer Stelle im Code; Werkzeugbeschreibung, SMS-Text und Tests lesen sie von dort. Vorher stand die Zahl an sieben Stellen, und eine davon war bereits falsch.
v0.99.177
14. September 2026

Das Kassenbuch vergisst nichts mehr

  • Löschen gibt es im Kassenbuch nicht mehr. Wer eine Zeile aufheben will, storniert sie: die Originalzeile bleibt stehen, daneben entsteht eine Gegenbuchung mit umgekehrtem Vorzeichen, gleichem Betrag …
  • Die Sperre sitzt in der Datenbank, nicht in der Anwendung. kassenbuch_entries nimmt kein UPDATE und kein DELETE mehr an, für keinen Zugriffsweg. Ein neuer Codepfad kann die Regel damit nicht versehen…
  • Tagesabschluss mit Festschreibung. Ein Abschluss schliesst alle offenen Einträge bis zu seinem Datum ab und trägt eine SHA-256-Prüfsumme, die den Wert des vorherigen Abschlusses einbindet. Danach ist…
  • Beides ist über die Oberfläche, die REST-Lesefläche und Connect erreichbar. Was noch fehlt und offen benannt ist: die technische Sicherheitseinrichtung (TSE) nach § 146a AO und der DSFinV-K-Export.
v0.99.176
14. September 2026

Nachbarpreise einzeln statt nur als Median

  • Der Preis-Editor zeigt jetzt jedes Nachbarhaus mit Namen und Preis, aufsteigend sortiert. Der Median allein sagt nicht, ob das Feld eng beieinanderliegt oder weit streut — und das entscheidet, ob man…
  • Es ist genau die Menge, die auch den Median trägt: das eigene Haus und erkannte Platzhalterpreise bleiben draussen.
  • Liegen für den Tag keine Nachbarpreise vor, steht das als Satz da statt als leere Fläche.
v0.99.175
14. September 2026

Kein Preis aus einer Anzeigelücke

  • Jenseits des Buchungsfensters eines Kanals steht im Kalender eine Zahl, die niemand gesetzt hat. Sie wurde bisher an den Kanalmanager weitergereicht und stand damit als Verkaufspreis bei einem Portal…
  • Eine solche Nacht bekommt auch keinen aus den Geschwisterzimmern abgeleiteten Preis. Sie ist kein vergessener Preis, sondern kein Verkaufstag.
  • Verkauft ein Kanal die Nacht trotzdem, meldet der Wächter für ungesteuerte Zimmer sie — abgeriegelt heisst nicht stumm.
v0.99.174
14. September 2026

Ein gesetzter Preis bleibt gesetzt

  • Wer einen Preis im Kalender von Hand setzt, behält ihn. Preisregeln des Kanalmanagers überschreiben ihn nicht mehr, und der nächtliche Abgleich verkauft nicht länger die fremde Zahl.
  • Die Kanalzahl geht dabei nicht verloren: Sie wird getrennt geführt und steht weiter in der Änderungshistorie — man sieht also, dass der Kanal etwas anderes wollte, ohne dass er sich durchsetzt.
  • Die Historie meldet eine solche Abweichung einmal statt bei jedem Abgleich erneut.
  • Für Nächte, die niemand von Hand bepreist hat, ändert sich nichts — dort bleibt der Kanalstand die Grundlage.
v0.99.173
14. September 2026

Mehrzimmerbuchungen aus dem Kanalmanager

  • Bucht ein Gast über eine OTA mehrere Zimmer, liefert der Kanalmanager dafür mehrere Einzelsätze mit derselben Bestätigungsnummer. Foyer führt sie jetzt zu EINER Buchung zusammen — mit summiertem Betr…
  • Der Kalender fächert die Buchung über alle gebuchten Zimmer auf. Vorher galt jedes Zimmer ausser dem ersten als frei und konnte ein zweites Mal verkauft werden.
  • Beleg, Reinigungsaufgaben, Vorab-Nachrichten und die Gastgeber-Finanzen folgen derselben Zusammenfassung: ein Beleg über alle Zimmer, eine Nachricht an den Gast, eine Auszahlungszeile.
  • „Folio zurücksetzen" bricht jetzt ab, statt eine Kanal-Zahlung stehen zu lassen, die nicht mehr zum Betrag passt — mit einem Satz, der sagt, was stattdessen zu tun ist.
v0.99.172
13. September 2026

Jedes Zimmer bekommt seine eigene Seite

  • Die Buchungsseite hat jetzt je Zimmer eine eigene Seite: Galerie, Kurztext, Ausstattung, An- und Abreise, Verfügbarkeitskalender und Karte.
  • Die Bilder liegen in Foyers eigenem Speicher statt beim Kanal — die Direktbuchungsseite überlebt damit eine Kündigung dort. Ein täglicher Abgleich holt Neues nach.
  • Der Kalender zeigt keine Tagespreise; der Preis erscheint, sobald ein Zeitraum gewählt ist. Belegte Nächte sind nicht wählbar.
  • Die Karte lädt erst auf Klick. Ohne diesen Klick geht keine Verbindung zu einem Kartendienst — die Anschrift steht trotzdem da.
v0.99.171
13. September 2026

Wache über die Mandantengrenze

  • Ein Test prüft jetzt an jedem Eingang — API, MCP, tRPC —, ob eine Abfrage ihre Mandantengrenze mitführt. Ausnahmen sind einzeln begründet hinterlegt statt stillschweigend erlaubt.
  • Kamera-Ereignisse tragen ein Geheimnis je Haus statt eines plattformweiten. Zwei Häuser mit gleich benannten Kameras können sich nicht mehr in die Quere kommen.
  • Die SMS-Anmeldung band die Sitzung an die Telefonnummer statt an den Benutzer; der MCP-Willkommenstext konnte Gastdaten eines fremden Hauses zeigen. Beides behoben.
  • Next.js auf 16.3.5 — zwei kritische Meldungen betrafen die vorherige Fassung.
v0.99.170
12. September 2026

Der Nachrichtenstrom sagt die Wahrheit

  • Zustellquittungen des Messengers werden verbucht statt verworfen: man sieht jetzt, ob eine Nachricht angekommen ist.
  • Nachrichten, die Foyer nur gesehen und nicht selbst gesendet hat, sind als solche gekennzeichnet — vorher sahen sie aus wie eigener Versand.
  • Der Wächter meldet auch dann, wenn EINE einzelne Sendung zu lange hängt, nicht erst wenn viele hängen.
v0.99.169
10. September 2026

Preisvorschläge rechnen mit Zimmern

  • Die Prognose zählt belegte ZIMMER je Typ, statt eine Gesamtzahl durch einen festen Faktor zu teilen.
  • Markt und eigener Kalender stehen jetzt auf derselben Seite der Waage; der Auslastungsfaktor lässt sich ausdrücklich anhalten.
  • Der Horizont reicht über 365 Tage, und der Lauf räumt hinter sich auf.
  • Die Marketing-Seite bedient sich auf dem Telefon: 44 px Trefferfläche, das Menü klebt nicht mehr in der Kopfleiste.
v0.99.168
07. September 2026

Preiskalender über zwölf Monate

  • Auslastung, eigener Preis, Nachbarpreise und Vorschlag stehen auf einer Seite, über eine Zeitachse von zwölf Monaten.
  • Bepreisen geht direkt aus der Zelle — ohne Umweg über ein Formular.
  • Der Kalenderpreis kommt je Zimmer aus der Preistabelle und dem Kanalmanager, statt aus einem Zimmertyp-Mittelwert.
v0.99.167
07. September 2026

Tedee als dritter Türanbieter

  • Neben den bisherigen beiden Anbietern spricht Foyer jetzt auch mit Tedee-Schlössern.
  • Die Anmeldung legt beim Einrichten die Zimmer an und meldet sich selbst an — der erste Schritt endet nicht mehr in einem leeren Haus.
v0.99.166
06. September 2026

Ein eigener iCal-Kanal

  • Foyer liest jetzt offene Kalender-Feeds selbst: Parser, Import, Abruf alle 30 Minuten, Einrichtungsseite mit Vorschau vor der Übernahme.
  • Ein leerer Feed storniert nichts. Rezeptionsarbeit bleibt stehen, wenn der Feed etwas anderes behauptet, und eine Stornierung wird nur von ihrer eigenen Quelle angenommen.
  • Jeder Abruf läuft durch einen SSRF-Schutz; Umleitungen sind begrenzt statt pauschal abgelehnt.
  • Doppelbelegungen meldet der Kanal zimmerbasiert und ohne Fristbindung.
  • Das Einrichten besteht jetzt aus zwei ehrlichen Schritten statt vier.
v0.99.165
05. September 2026

WhatsApp sendet nativ

  • Der Versand hängt am nativen Sender statt an einem toten Zwischenweg — das gilt auch für die vier automatischen Absender.
  • Im Postfach ist sichtbar, ob der Nachrichtenstrom lebt.
  • Neue Buchungen erreichen den offenen Kalender von selbst; eine Anfrage bekommt eine Kontur statt einer eigenen Spur.
v0.99.164
04. September 2026

Eine Anfrage ist keine Buchung

  • Anfragen aus dem Kanalmanager kommen als Anfrage an und nicht als bestätigte Buchung — sie blockieren damit kein Zimmer.
  • Eine verfallene Kanalanfrage schliesst sich selbst, statt als offener Posten liegen zu bleiben.
  • Im Postfach trägt jede Zeile ein Etikett, dessen Farbe dem Zustand folgt; der Normalfall leuchtet nicht mehr.
  • Die Auslieferung baut das Abbild parallel zur Testschranke — der Weg von der Freigabe zur Produktion wurde dadurch spürbar kürzer.
v0.99.163
03. September 2026

Ein Folio von Hand auflösen

  • Ein Folio lässt sich von Hand auf null auflösen, wenn eine Buchung nie zustande kam — nachvollziehbar und mit Verlauf statt durch Löschen.
v0.99.162
31. August 2026

Finanzzahlen einer Reservierung neu ziehen

  • Die Finanzzahlen EINER Reservierung lassen sich gezielt neu ziehen, statt auf den nächsten Gesamtlauf zu warten.
  • Das Vergleichswerkzeug prüft Beträge, nicht nur Anzahlen — eine Abweichung in der Summe fiel vorher nicht auf.
  • Die Kopfzeile folgt den Gastgeberzeilen; der Hausbetrag steht nur noch bei Stornierungen darin.
v0.99.161
30. August 2026

Gebühren zeigen ihren Anteil

  • Jede Gebühr weist ihren Anteil am Gesamtpreis aus, statt nur als Betrag dazustehen.
  • Beherbergungssteuer steht immer vor der Mehrwertsteuer, die Zahlungsgebühr immer vor der Kanalgebühr — dieselbe Reihenfolge wie auf der Abrechnung des Kanals.
  • Zurückgenommene Preiszeilen verschwinden aus der Rechnung und bleiben im Verlauf sichtbar.
v0.99.160
30. August 2026

Alle zwanzig Objekte sind sendefähig

  • Der Objektblock, den die staydb je Reservierung bekommt, ist jetzt fuer jedes Objekt vollstaendig — ein unvollstaendiger Block wird nicht gesendet, weil er drueben vorhandene Daten loeschen wuerde.
  • public_name darf eine Korrektur tragen (Migration 0219). Es war das einzige der zwoelf Blockfelder, das ein Betreiber nicht anfassen durfte, und genau daran scheiterte ein Objekt bis zuletzt.
  • Der neue Test prueft das SPEICHERN, nicht das Senden: Zod-Enum und CHECK-Constraint sind zwei Stellen, und nur die zweite liegt in der Datenbank.
v0.99.159
29. August 2026

Foyer besitzt den Objektblock

  • Der Objektblock kam bis hierher bei JEDEM Versand live von Hospitable — ein HTTP-Aufruf je Paket mit Zeitgrenze, und eine unvollstaendige Antwort liess sich nicht heilen.
  • Jetzt zwei Tabellen statt einer: der Spiegel traegt, was Hospitable sagt, die Korrekturen tragen, was ein Mensch gesetzt hat — getrennt, damit eine Auffrischung eine Korrektur nicht ueberschreiben KA…
  • Korrekturen sind je Objekt pflegbar und werden sofort gemeldet; „zurueck auf Hospitable" nimmt eine zurueck und zeigt vorher, was drueben wegfiele.
  • Der Sendeweg laeuft seitdem ohne einen einzigen Hospitable-Abruf.
v0.99.158
29. August 2026

Ein Präfix im Aktionsnamen kostete den ganzen Finanzblock

  • Pakete wurden zugestellt und quittiert, trugen aber keinen Finanzblock — in den Protokollzeilen des Laufs kam die Preisuebersicht kein einziges Mal vor.
  • Drei Proben gegen Produktion, die sich NUR im Aktionsnamen unterschieden, wiesen die Ursache nach: das eigene Praefix vor reservation.created liess die Gegenseite den Block verwerfen.
  • Die alte Begruendung stuetzte sich auf einen Test, der fremden Quelltext liest. Die laufende Binary ist eine andere — ein Test gegen Quelltext belegt nichts ueber ein anderswo gebautes Programm.
  • Was das Praefix leisten sollte, leistet data.id.
v0.99.157
26. August 2026

Foyer liefert Reservierungen an die staydb nach

    v0.99.156
    26. August 2026

    Eine Sperre darf nicht am Preis scheitern

      v0.99.155
      25. August 2026

      Die Abstellmoeglichkeit gilt fuer beide Regeln

        v0.99.154
        25. August 2026

        Tage ohne EIGENEN Preis werden gezaehlt

          v0.99.153
          25. August 2026

          Unser eigener Preis lief an der Erkennung vorbei

            v0.99.152
            25. August 2026

            Waechter fuers Preisband, mit Abstellmoeglichkeit

              v0.99.151
              25. August 2026

              Die Platzhalter-Erkennung fing nichts

                v0.99.150
                25. August 2026

                Der Markt ist der Boden der Obergrenze

                  v0.99.149
                  25. August 2026

                  Booking gegen Booking, nicht netto gegen brutto

                    v0.99.148
                    25. August 2026

                    Fuenf Prozent Toleranz ueber Adrett

                      v0.99.147
                      25. August 2026

                      Die Obergrenze wird taeglich geprueft, und gegen den richtigen Preis

                        v0.99.146
                        25. August 2026

                        Nachfrage ist mehr als Messe und Feiertag

                          v0.99.145
                          25. August 2026

                          Der Preisregel-Waechter sieht nur noch das eigene Haus

                            v0.99.144
                            25. August 2026

                            Der Dreibett-Waechter prueft beide Haelften der Regel

                              v0.99.143
                              25. August 2026

                              Der Verfuegbarkeits-Abgleich preist je Tag

                                v0.99.142
                                25. August 2026

                                Ein Preis-Push oeffnet kein Zimmer mehr

                                  v0.99.141
                                  24. August 2026

                                  Die Kameraseite ruht, wenn niemand mehr hinsieht

                                    v0.99.140
                                    23. August 2026

                                    Der zweite Waechter: wer steckenbleibt, faellt nicht mehr durch

                                      v0.99.139
                                      23. August 2026

                                      Eine Selbstregistrierung klingelt jetzt

                                        v0.99.138
                                        21. August 2026

                                        Ein vergessener Tab kostete vier Gigabyte am Tag

                                          v0.99.137
                                          21. August 2026

                                          Der Kamera-Cache waermte sich selbst, rund um die Uhr

                                            v0.99.136
                                            21. August 2026

                                            Die Gästezahl lässt sich endlich eintragen

                                              v0.99.135
                                              20. August 2026

                                              Die Putzliste folgt dem Zimmertausch

                                                v0.99.134
                                                20. August 2026

                                                Das Protokoll nennt auch die Folge, nicht nur die Ursache

                                                  v0.99.133
                                                  20. August 2026

                                                  Das Protokoll wird vollständig: Anlegen, Stornieren, Auschecken

                                                    v0.99.132
                                                    20. August 2026

                                                    Wer hat den Preis geändert? Steht jetzt an der Buchung

                                                      v0.99.131
                                                      20. August 2026

                                                      Anrufe stehen im Faden, nicht daneben

                                                        v0.99.130
                                                        20. August 2026

                                                        Der Einlauf hängt den WhatsApp-Faden selbst an seine Buchung

                                                          v0.99.129
                                                          20. August 2026

                                                          WhatsApp trägt sein eigenes Zeichen

                                                            v0.99.128
                                                            20. August 2026

                                                            Die Antwort geht in den Faden, in dem zuletzt geschrieben wurde

                                                              v0.99.127
                                                              20. August 2026

                                                              Der Changelog-Generator schreibt jetzt, was eingecheckt ist

                                                                v0.99.126
                                                                20. August 2026

                                                                Die Doku zieht nach, und dabei fielen zwei falsche Ports auf

                                                                  v0.99.125
                                                                  20. August 2026

                                                                  Zwei Nachtraege zur Live-Kette

                                                                    v0.99.124
                                                                    20. August 2026

                                                                    Live-Video war acht Wochen lang in Chrome tot

                                                                      v0.99.123
                                                                      20. August 2026

                                                                      Der Waechter schaut jetzt die ganze Zeit hin

                                                                        v0.99.122
                                                                        20. August 2026

                                                                        Ein loser WhatsApp-Faden findet seine Buchung

                                                                          v0.99.121
                                                                          20. August 2026

                                                                          WhatsApp kann antworten, und die Zugangsdaten lagen schon da

                                                                            v0.99.120
                                                                            20. August 2026

                                                                            Ein verlorenes Bruchstueck im Live-Player

                                                                              v0.99.119
                                                                              20. August 2026

                                                                              Die Tuerklingel klingelt jetzt auch woanders

                                                                                v0.99.118
                                                                                20. August 2026

                                                                                Das Kamera-Protokoll vergisst jetzt

                                                                                  v0.99.117
                                                                                  20. August 2026

                                                                                  Eine E2E-Datenbank je Lauf, und ein Fehlschlag, den man sieht

                                                                                    v0.99.116
                                                                                    20. August 2026

                                                                                    Diesmal im Browser gemessen, bevor es Live heisst

                                                                                      v0.99.115
                                                                                      20. August 2026

                                                                                      Die Nachricht, die man nicht öffnen konnte

                                                                                        v0.99.114
                                                                                        20. August 2026

                                                                                        Ein Port je E2E-Lauf

                                                                                          v0.99.113
                                                                                          19. August 2026

                                                                                          Die schnelle Live-Stufe war nie eine

                                                                                            v0.99.112
                                                                                            19. August 2026

                                                                                            Vier Aufräumarbeiten, eine davon mit Messung statt Meinung

                                                                                            • An Sammelnummern hängen 112 Gruppen mit 481 Gastzeilen, die erkennbar
                                                                                            • Dieselbe Logik über die Mailadresse gelesen legte an der Hausadresse „von
                                                                                            v0.99.111
                                                                                            19. August 2026

                                                                                            Die Rezeption kommt an den Ausweis, für den sie da ist

                                                                                              v0.99.110
                                                                                              19. August 2026

                                                                                              Der Name wird dort geändert, wo er steht

                                                                                                v0.99.109
                                                                                                19. August 2026

                                                                                                Der Gastname lässt sich korrigieren

                                                                                                  v0.99.108
                                                                                                  19. August 2026

                                                                                                  Das Reservierungs-Panel liest sich wie Hospitables

                                                                                                    v0.99.107
                                                                                                    19. August 2026

                                                                                                    Ein Klick weniger, und ein Wort weniger

                                                                                                      v0.99.106
                                                                                                      19. August 2026

                                                                                                      „Reservierung ändern" steht jetzt dort, wo man sie liest

                                                                                                        v0.99.105
                                                                                                        19. August 2026

                                                                                                        Auf dem Telefon fehlte der halbe Faden: der Buchungskontext

                                                                                                          v0.99.104
                                                                                                          19. August 2026

                                                                                                          Ein 100 Zeichen langer Link schob das Postfach aus dem Bild

                                                                                                            v0.99.103
                                                                                                            19. August 2026

                                                                                                            Das Gästeblatt zeigt die Person, nicht die Zeile

                                                                                                              v0.99.102
                                                                                                              19. August 2026

                                                                                                              Zwei Fallen, die sich gegenseitig verdeckt haben

                                                                                                                v0.99.101
                                                                                                                19. August 2026

                                                                                                                Direktbuchungen sind grün, von Hand angelegte gelb

                                                                                                                  v0.99.100
                                                                                                                  19. August 2026

                                                                                                                  Die Plattform einer Buchung lässt sich nachtragen, ohne den Sendeweg zu verstellen

                                                                                                                    v0.99.99
                                                                                                                    18. August 2026

                                                                                                                    Die Vorab-Mail kann zum ersten Mal überhaupt verschickt werden

                                                                                                                      v0.99.97
                                                                                                                      18. August 2026

                                                                                                                      Der Sprachfilter fand ein Viertel der englischen Gäste

                                                                                                                        v0.99.96
                                                                                                                        18. August 2026

                                                                                                                        Ein „+ Filter"-Knopf im Postfach

                                                                                                                          v0.99.95
                                                                                                                          18. August 2026

                                                                                                                          „Nur Vorfälle" im Postfach

                                                                                                                            v0.99.94
                                                                                                                            18. August 2026

                                                                                                                            Die Postfach-Suche findet die Buchung, nicht nur den Namen

                                                                                                                            • die Buchungsnummer in allen drei Formen, unter denen sie auftaucht: der
                                                                                                                            • die Gesprächskennung des Kanals sowie die internen Kennungen von Gespräch
                                                                                                                            • die Mailadresse;
                                                                                                                            • die Rufnummer.
                                                                                                                            v0.99.93
                                                                                                                            18. August 2026

                                                                                                                            Stammgäste sind wieder erkennbar, ohne dass sich am Datenfluss etwas ändert

                                                                                                                            • Die Mailadresse taugt nicht. Booking.com vergibt je Reservierung einen
                                                                                                                            • Die Rufnummer allein taugt auch nicht. Es gibt Sammelnummern — eine steht
                                                                                                                            v0.99.92
                                                                                                                            18. August 2026

                                                                                                                            Die Linkzeile spricht jetzt die Sprache der Nachricht

                                                                                                                              v0.99.91
                                                                                                                              18. August 2026

                                                                                                                              Die Amtskennziffer, und die vier Nummern, die man dabei nicht anfassen darf

                                                                                                                                v0.99.90
                                                                                                                                18. August 2026

                                                                                                                                Die verdoppelte Ländervorwahl, und warum die Daten allein nicht gereicht hätten

                                                                                                                                  v0.99.89
                                                                                                                                  18. August 2026

                                                                                                                                  Die 17 ausgesparten Nummern waren doch eindeutig

                                                                                                                                    v0.99.88
                                                                                                                                    18. August 2026

                                                                                                                                    Vor 502 Telefonnummern fehlte nur das Pluszeichen

                                                                                                                                      v0.99.87
                                                                                                                                      18. August 2026

                                                                                                                                      Der Gästeportal-Stand steht jetzt am Vorgang

                                                                                                                                        v0.99.86
                                                                                                                                        18. August 2026

                                                                                                                                        Messpunkt der Telefonspur entfernt

                                                                                                                                          v0.99.85
                                                                                                                                          18. August 2026

                                                                                                                                          Der Dialog misst sich am Inhalt statt an einer Zahl

                                                                                                                                            v0.99.84
                                                                                                                                            18. August 2026

                                                                                                                                            Der Login-Wächter meldete zwei Tage lang den falschen Fehler

                                                                                                                                              v0.99.83
                                                                                                                                              18. August 2026

                                                                                                                                              Der Kasten „Buchung anlegen": breiter, Kanal „Manuell", Kontakt räumt auf

                                                                                                                                                v0.99.82
                                                                                                                                                18. August 2026

                                                                                                                                                Eine Reinigung je Buchung, nicht drei

                                                                                                                                                  v0.99.81
                                                                                                                                                  17. August 2026

                                                                                                                                                  Der Aufgaben-Abschnitt fragte die falsche Tabelle

                                                                                                                                                    v0.99.80
                                                                                                                                                    17. August 2026

                                                                                                                                                    Kontakt auch beim Anlegen

                                                                                                                                                      v0.99.79
                                                                                                                                                      17. August 2026

                                                                                                                                                      Der Nachzug hielt nicht, also die Quelle

                                                                                                                                                        v0.99.78
                                                                                                                                                        17. August 2026

                                                                                                                                                        Telefonnummern nach E.164, ohne zu raten

                                                                                                                                                          v0.99.77
                                                                                                                                                          17. August 2026

                                                                                                                                                          E-Mail und Telefon im Buchungsdialog

                                                                                                                                                            v0.99.76
                                                                                                                                                            17. August 2026

                                                                                                                                                            Die Monatsübersicht warf einen 500er

                                                                                                                                                              v0.99.75
                                                                                                                                                              17. August 2026

                                                                                                                                                              Monatsübersicht für die Putzliste

                                                                                                                                                                v0.99.74
                                                                                                                                                                17. August 2026

                                                                                                                                                                Zwei Gebühren, ein Posten

                                                                                                                                                                  v0.99.73
                                                                                                                                                                  17. August 2026

                                                                                                                                                                  Die Putzliste fürs Telefon

                                                                                                                                                                    v0.99.72
                                                                                                                                                                    17. August 2026

                                                                                                                                                                    Zwei Zeilen weniger je Zimmer

                                                                                                                                                                      v0.99.71
                                                                                                                                                                      17. August 2026

                                                                                                                                                                      Ein Auge für die Sichtkontrolle

                                                                                                                                                                        v0.99.70
                                                                                                                                                                        17. August 2026

                                                                                                                                                                        Das Zimmer, auf das man zieht, fiel heraus

                                                                                                                                                                          v0.99.69
                                                                                                                                                                          17. August 2026

                                                                                                                                                                          Zimmer 15 ist jetzt ein Dreierzimmer

                                                                                                                                                                            v0.99.68
                                                                                                                                                                            16. August 2026

                                                                                                                                                                            Freigeben heisst: aufmachen, was das Haus zugemacht hat

                                                                                                                                                                              v0.99.67
                                                                                                                                                                              16. August 2026

                                                                                                                                                                              Ein Kasten statt zweier

                                                                                                                                                                                v0.99.66
                                                                                                                                                                                16. August 2026

                                                                                                                                                                                Ein Deploy zieht dem offenen Tab den Boden weg

                                                                                                                                                                                  v0.99.65
                                                                                                                                                                                  16. August 2026

                                                                                                                                                                                  Dreizehn Aufrufe ohne Rückweg

                                                                                                                                                                                    v0.99.64
                                                                                                                                                                                    16. August 2026

                                                                                                                                                                                    Die Auswahl kann jetzt auch nach unten

                                                                                                                                                                                      v0.99.63
                                                                                                                                                                                      16. August 2026

                                                                                                                                                                                      Die Auswahl endete an der ersten Buchung

                                                                                                                                                                                        v0.99.62
                                                                                                                                                                                        16. August 2026

                                                                                                                                                                                        Der Stift steht jetzt dort, wo man liest

                                                                                                                                                                                          v0.99.61
                                                                                                                                                                                          16. August 2026

                                                                                                                                                                                          Wer zum 21. Mal kommt, war 21 verschiedene Menschen

                                                                                                                                                                                            v0.99.60
                                                                                                                                                                                            16. August 2026

                                                                                                                                                                                            Der Abgleich gegen Hospitables Funktionsliste

                                                                                                                                                                                              v0.99.59
                                                                                                                                                                                              16. August 2026

                                                                                                                                                                                              Das Kennzeichen gehört dorthin, wo man arbeitet

                                                                                                                                                                                                v0.99.58
                                                                                                                                                                                                16. August 2026

                                                                                                                                                                                                Erkennung, die nichts kostet und sich messen lässt

                                                                                                                                                                                                • Das türkische ı hat keine NFD-Zerlegung. „kapısı açılmadı" (die
                                                                                                                                                                                                • „Ich komme nicht in das Hostel rein" — das Muster verlangte „nicht rein"
                                                                                                                                                                                                • „my internet connection is not working when I am abroad" wurde als
                                                                                                                                                                                                v0.99.57
                                                                                                                                                                                                16. August 2026

                                                                                                                                                                                                Wenn ein Gast vor der Tür steht

                                                                                                                                                                                                  v0.99.56
                                                                                                                                                                                                  16. August 2026

                                                                                                                                                                                                  Was das Haus über seine Gäste sagt

                                                                                                                                                                                                    v0.99.55
                                                                                                                                                                                                    16. August 2026

                                                                                                                                                                                                    446 Bewertungen, die niemand beantworten konnte

                                                                                                                                                                                                      v0.99.54
                                                                                                                                                                                                      15. August 2026

                                                                                                                                                                                                      A copy of a booking is not a second booking

                                                                                                                                                                                                        v0.99.53
                                                                                                                                                                                                        15. August 2026

                                                                                                                                                                                                        A night for sale with no price on it

                                                                                                                                                                                                          v0.99.52
                                                                                                                                                                                                          15. August 2026

                                                                                                                                                                                                          Prices arrive when you look, not when the clock says so

                                                                                                                                                                                                            v0.99.51
                                                                                                                                                                                                            14. August 2026

                                                                                                                                                                                                            Foyer may now disagree with the channel

                                                                                                                                                                                                              v0.99.50
                                                                                                                                                                                                              14. August 2026

                                                                                                                                                                                                              The tool docs now have to tell the truth

                                                                                                                                                                                                                v0.99.49
                                                                                                                                                                                                                14. August 2026

                                                                                                                                                                                                                A date that stays where you put it

                                                                                                                                                                                                                  v0.99.48
                                                                                                                                                                                                                  14. August 2026

                                                                                                                                                                                                                  Housekeeping gets a link, not an account

                                                                                                                                                                                                                    v0.99.47
                                                                                                                                                                                                                    13. August 2026

                                                                                                                                                                                                                    The lost-property deadline job had been failing daily

                                                                                                                                                                                                                      v0.99.46
                                                                                                                                                                                                                      13. August 2026

                                                                                                                                                                                                                      The calendar stopped claiming nights were closed

                                                                                                                                                                                                                        v0.99.45
                                                                                                                                                                                                                        13. August 2026

                                                                                                                                                                                                                        A price changes only the price

                                                                                                                                                                                                                          v0.99.44
                                                                                                                                                                                                                          13. August 2026

                                                                                                                                                                                                                          Manual bookings carry money now

                                                                                                                                                                                                                            v0.99.43
                                                                                                                                                                                                                            12. August 2026

                                                                                                                                                                                                                            Booking a night that is blocked

                                                                                                                                                                                                                              v0.99.42
                                                                                                                                                                                                                              11. August 2026

                                                                                                                                                                                                                              Swapping rooms without a mouse

                                                                                                                                                                                                                              • The room label is a target too, not just the grid area. The label column is
                                                                                                                                                                                                                              • Possible targets are highlighted while a booking is armed, and the source
                                                                                                                                                                                                                              • Tapping the same booking again disarms it. Otherwise an accidentally armed
                                                                                                                                                                                                                              • The source room travels with the tap (fromRoom), which the drag always had and
                                                                                                                                                                                                                              v0.99.41
                                                                                                                                                                                                                              11. August 2026

                                                                                                                                                                                                                              27,632 invisible characters

                                                                                                                                                                                                                                v0.99.40
                                                                                                                                                                                                                                10. August 2026

                                                                                                                                                                                                                                Airbnb was selling last month's prices

                                                                                                                                                                                                                                • A failed round closed the chain: the run threw, so the "open" counter stayed
                                                                                                                                                                                                                                • One room took down the other nineteen. Beds24 answers sporadically with a
                                                                                                                                                                                                                                • The burst tripped Beds24's edge protection. Twenty reads with no pause, then
                                                                                                                                                                                                                                • A failed run wrote no audit row, because the durable log sat after the work
                                                                                                                                                                                                                                v0.99.39
                                                                                                                                                                                                                                09. August 2026

                                                                                                                                                                                                                                Prices, history, and a calendar that sorts how you want

                                                                                                                                                                                                                                  v0.99.38
                                                                                                                                                                                                                                  09. August 2026

                                                                                                                                                                                                                                  Reservation finances for Beds24 bookings

                                                                                                                                                                                                                                    v0.99.37
                                                                                                                                                                                                                                    09. August 2026

                                                                                                                                                                                                                                    Authorising the MCP server was a deadlock

                                                                                                                                                                                                                                      v0.99.36
                                                                                                                                                                                                                                      09. August 2026

                                                                                                                                                                                                                                      The inventory check runs on its own now

                                                                                                                                                                                                                                        v0.99.35
                                                                                                                                                                                                                                        09. August 2026

                                                                                                                                                                                                                                        Foyer mistook its own echo for the channel

                                                                                                                                                                                                                                          v0.99.34
                                                                                                                                                                                                                                          08. August 2026

                                                                                                                                                                                                                                          An override ages silently

                                                                                                                                                                                                                                            v0.99.33
                                                                                                                                                                                                                                            07. August 2026

                                                                                                                                                                                                                                            A guard whose loudest findings were already decided

                                                                                                                                                                                                                                              v0.99.32
                                                                                                                                                                                                                                              07. August 2026

                                                                                                                                                                                                                                              Beds24 held the dates from the day the booking was made

                                                                                                                                                                                                                                                v0.99.31
                                                                                                                                                                                                                                                06. August 2026

                                                                                                                                                                                                                                                Checkpoint is an identity check, not an end state

                                                                                                                                                                                                                                                  v0.99.30
                                                                                                                                                                                                                                                  06. August 2026

                                                                                                                                                                                                                                                  "Came via X" does not mean "X collected the money"

                                                                                                                                                                                                                                                    v0.99.29
                                                                                                                                                                                                                                                    06. August 2026

                                                                                                                                                                                                                                                    The price sync kept resurrecting the dead

                                                                                                                                                                                                                                                      v0.99.28
                                                                                                                                                                                                                                                      04. August 2026

                                                                                                                                                                                                                                                      Money for stays that never happened

                                                                                                                                                                                                                                                        v0.99.27
                                                                                                                                                                                                                                                        04. August 2026

                                                                                                                                                                                                                                                        The correction lines now write themselves

                                                                                                                                                                                                                                                          v0.99.26
                                                                                                                                                                                                                                                          03. August 2026

                                                                                                                                                                                                                                                          The hydration warning was a date without a timezone

                                                                                                                                                                                                                                                            v0.99.25
                                                                                                                                                                                                                                                            03. August 2026

                                                                                                                                                                                                                                                            46 correction lines written: a cancelled stay now says so

                                                                                                                                                                                                                                                              v0.99.24
                                                                                                                                                                                                                                                              03. August 2026

                                                                                                                                                                                                                                                              Whether a resolution reached the guest is decided by the guest side

                                                                                                                                                                                                                                                                v0.99.23
                                                                                                                                                                                                                                                                03. August 2026

                                                                                                                                                                                                                                                                Airbnb's guest service fee is not a refund

                                                                                                                                                                                                                                                                  v0.99.22
                                                                                                                                                                                                                                                                  03. August 2026

                                                                                                                                                                                                                                                                  A payout of zero means nothing remains, even with a stray fee line

                                                                                                                                                                                                                                                                    v0.99.21
                                                                                                                                                                                                                                                                    03. August 2026

                                                                                                                                                                                                                                                                    The folio guard can see corrected folios again

                                                                                                                                                                                                                                                                      v0.99.20
                                                                                                                                                                                                                                                                      03. August 2026

                                                                                                                                                                                                                                                                      The recompute now writes the correction lines itself, behind a switch

                                                                                                                                                                                                                                                                        v0.99.19
                                                                                                                                                                                                                                                                        03. August 2026

                                                                                                                                                                                                                                                                        Correction lines can now be derived, and they know who owns them

                                                                                                                                                                                                                                                                          v0.99.18
                                                                                                                                                                                                                                                                          03. August 2026

                                                                                                                                                                                                                                                                          A refund can finally appear on the payment side

                                                                                                                                                                                                                                                                            v0.99.17
                                                                                                                                                                                                                                                                            02. August 2026

                                                                                                                                                                                                                                                                            Correction lines are visible in the folio, and only they are coloured

                                                                                                                                                                                                                                                                              v0.99.15
                                                                                                                                                                                                                                                                              02. August 2026

                                                                                                                                                                                                                                                                              The test database left its disk behind, 81 times

                                                                                                                                                                                                                                                                                v0.99.14
                                                                                                                                                                                                                                                                                02. August 2026

                                                                                                                                                                                                                                                                                A folio correction line can now survive the next recompute

                                                                                                                                                                                                                                                                                  v0.99.12
                                                                                                                                                                                                                                                                                  02. August 2026

                                                                                                                                                                                                                                                                                  Age only decides when the two price paths actually disagree

                                                                                                                                                                                                                                                                                    v0.99.11
                                                                                                                                                                                                                                                                                    02. August 2026

                                                                                                                                                                                                                                                                                    A backfilled price now carries its own age, not the hour it was imported

                                                                                                                                                                                                                                                                                      v0.99.10
                                                                                                                                                                                                                                                                                      02. August 2026

                                                                                                                                                                                                                                                                                      The gate skipped the only test kind that drives a browser

                                                                                                                                                                                                                                                                                      • Playwright now runs in the pre-push gate (measured 1:47 incl. DB bootstrap); before this, no browser test ran before a push and two folio specs had been red unnoticed since before the portal work.
                                                                                                                                                                                                                                                                                      • The two failing specs are marked test.fixme with the measurement rather than patched, because folio-init is mid-rework and a guessed fix would collide with it.
                                                                                                                                                                                                                                                                                      • The gate's first live run exposed three flaky specs that pass in isolation, so the hook runs with --retries=2 — locally retries is 0, and a random miss would block unrelated pushes.
                                                                                                                                                                                                                                                                                      • A v0.99.3 bullet quoted a JS template-literal placeholder as prose; build-changelog.mjs copied it verbatim into the generated module and Biome flagged it. Reworded.
                                                                                                                                                                                                                                                                                      v0.99.9
                                                                                                                                                                                                                                                                                      02. August 2026

                                                                                                                                                                                                                                                                                      robots.txt and sitemap.xml belong to a host, and this app serves two

                                                                                                                                                                                                                                                                                      • The developer portal had no sitemap at all; its 96 indexable pages, including 79 generated tool-domain pages, were invisible to crawlers except by following links.
                                                                                                                                                                                                                                                                                      • robots.txt and sitemap.xml are host-aware now instead of 404'ing on the developer host, and the marketing versions are unchanged.
                                                                                                                                                                                                                                                                                      • The portal sitemap is derived from the page registry and the live tool registry, so a new doc page or tool domain appears without anyone maintaining a list.
                                                                                                                                                                                                                                                                                      • middleware.ts gained HOST_NEUTRAL_FILES for paths that exist on every host with different content — the opposite of the portal-only list, which 404s off-host.
                                                                                                                                                                                                                                                                                      • Reading the Host header makes both routes dynamic, which is correct: a cached answer would be wrong for one of the two hosts.
                                                                                                                                                                                                                                                                                      v0.99.8
                                                                                                                                                                                                                                                                                      02. August 2026

                                                                                                                                                                                                                                                                                      The itemised price is only better while it is also current

                                                                                                                                                                                                                                                                                        v0.99.7
                                                                                                                                                                                                                                                                                        02. August 2026

                                                                                                                                                                                                                                                                                        The portal now publishes itself in a form an agent can read

                                                                                                                                                                                                                                                                                        • The developer portal now serves /llms.txt and /llms-full.txt; before this there was no machine-readable entry point on the host at all.
                                                                                                                                                                                                                                                                                        • /llms-full.txt is the whole documentation set plus all 432 MCP tools in one 105 KB request — roughly 26k tokens, one round trip instead of twelve HTML pages.
                                                                                                                                                                                                                                                                                        • Markdown is a second renderer over the same typed content blocks and the same live tool registry the HTML uses, so neither file can drift from the pages.
                                                                                                                                                                                                                                                                                        • Tool schemas are deliberately excluded (~270 KB) since an MCP client gets the authoritative shape from tools/list; a test pins the file under 400 KB.
                                                                                                                                                                                                                                                                                        • Both paths had to be named in middleware.ts, because the developer host 404s any path it does not recognise as a portal path even when the route exists.
                                                                                                                                                                                                                                                                                        • A Connect Quickstart page gives the one-line client setup, explains the first 401, and states plainly that there is no sandbox hotel.
                                                                                                                                                                                                                                                                                        v0.99.6
                                                                                                                                                                                                                                                                                        02. August 2026

                                                                                                                                                                                                                                                                                        The developer portal had no CSS for the things it used most

                                                                                                                                                                                                                                                                                        • Every developer-portal doc page had rendered as unspaced text with unmarked lists since launch: Tailwind's preflight strips those globally and the portal's scoped stylesheet never restated them.
                                                                                                                                                                                                                                                                                        • The table of contents moved out of the article flow, where it sat between the intro and the first section and pushed the indexed content below the fold, into a sticky column beside it.
                                                                                                                                                                                                                                                                                        • The portal now uses the Foyer brand palette instead of a teal that appears nowhere else in the product, with links on #8E661B because the mark colour itself does not clear 4.5:1 on the page grounds.
                                                                                                                                                                                                                                                                                        • Geist, Source Serif 4 and JetBrains Mono are used directly; the root layout already self-hosts all three via next/font, so it costs no request and no CSP change.
                                                                                                                                                                                                                                                                                        • The tool reference replaced a 432-item bulleted list with 79 domain tiles, a client-side filter and per-tool badges; the listing still renders in full server-side.
                                                                                                                                                                                                                                                                                        • Tool badges corrected a real omission: read-only tools were marked while writing tools carried no indicator at all.
                                                                                                                                                                                                                                                                                        • New throughout: a header with the brand mark, a sticky sidebar with a visible active state, OS-driven dark mode, and a line stating whether a page is written or generated.
                                                                                                                                                                                                                                                                                        • An accessibility defect introduced during the work was caught by axe and removed: a closed <details> forced visible with CSS reported a collapsed disclosure while 89 links were on screen and tabbable.
                                                                                                                                                                                                                                                                                        v0.99.5
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        Four claims that had nothing behind them

                                                                                                                                                                                                                                                                                        • A click on /settings/rates could flatten every priced night of an affected type: a type price overwrites per-room prices; rates.upsert now blocks that once a type has more than one active room.
                                                                                                                                                                                                                                                                                        • The /work PWA manifest shipped but was missing on /work/login, a separate route group, so first-time users never saw the install prompt — fixed the same hour.
                                                                                                                                                                                                                                                                                        • The me.get MCP tool could only throw; deleting its hand-written twin uncovered the real meRouter.get it had shadowed — allTools().length staying at 432 confirmed no tool was lost.
                                                                                                                                                                                                                                                                                        • The date guard asserted its reach (>300 files, >30 sql fragments) but never its own detection, so it could report "no findings" if broken; it now self-tests all four paths.
                                                                                                                                                                                                                                                                                        • Documentation was corrected against live measurement: RLS coverage is actually 157 of 162 tables, not the documented "19 of 155 without RLS"; tool counts were updated from 411/144 to 432/156.
                                                                                                                                                                                                                                                                                        • Two Beds24 migration phases (ν and ξ) had been built without a written plan, unlike λ and μ; plans were retroactively written for both.
                                                                                                                                                                                                                                                                                        v0.99.4
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        A webhook that was answered 405 before anything could log it

                                                                                                                                                                                                                                                                                        • The Beds24 booking webhook was dead for 36 hours unlogged — beds24_webhook_log held zero rows, confirmed by sync enqueues dropping from 14 on the 28th to 0 on the 30th.
                                                                                                                                                                                                                                                                                        • No booking data was lost: the 6-minute polling fallback caught all five Airbnb bookings during the outage; the only cost was latency up to ~6 minutes instead of the usual ~1 minute.
                                                                                                                                                                                                                                                                                        • Root cause: the property was configured on Beds24 webhook version 1 (a GET request with no payload), but the route only accepted POST, so Next.js answered 405 before any Foyer code ran.
                                                                                                                                                                                                                                                                                        • The route now accepts both webhook versions, mapping v1's bookid onto the same booking_id column as v2's booking.id; v1's status stays unmapped since it reflects events, not booking states.
                                                                                                                                                                                                                                                                                        v0.99.3
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        Two checking tools that stopped believing their own inputs

                                                                                                                                                                                                                                                                                        • The daily-summary cron interpolated a bare Date into two raw sql fragments and threw on every run; a catch one level up swallowed it, so pg-boss recorded 192 runs, all completed, none red.
                                                                                                                                                                                                                                                                                        • Latent, not damaging: the tasks table is empty, so no summary was owed either way — the defect fires the moment tasks are used.
                                                                                                                                                                                                                                                                                        • A cast does not help. Measured against real Postgres: a bare Date throws, and a ::date cast throws too — only toISOString() with a timestamptz cast works. The v0.99.2 explanation was wrong.
                                                                                                                                                                                                                                                                                        • The same defect appeared in three waves in one day (four sites, then seven, then the cron), so a guard now scans 712 source files across five roots and names file and line.
                                                                                                                                                                                                                                                                                        • That guard's first version read only server/ and reported safety for 26 files it never opened; it now asserts how much it read, because a scanner that reads nothing always reports success.
                                                                                                                                                                                                                                                                                        • The RLS audit derives its table list by runtime introspection instead of trusting a hand-maintained one that carried 55 names against 134 tenant-scoped tables — 88 missing, 10 dead.
                                                                                                                                                                                                                                                                                        v0.99.2
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        The published contract, checked against what we actually return

                                                                                                                                                                                                                                                                                        • BEHAVIOUR CHANGE: a missing entity now answers 404 with the documented JSON error shape instead of 500 with plain text.
                                                                                                                                                                                                                                                                                        • Anyone branching on 500 to detect "not found", or retrying every non-2xx as a transport failure, sees different behaviour from this release on.
                                                                                                                                                                                                                                                                                        • Two responses threw on every call: postgres.js cannot bind a bare Date interpolated into a raw sql fragment, so the tenant tool and task search answered 500 every time.
                                                                                                                                                                                                                                                                                        • Four further call sites carried the same defect and are closed too; the rule is never to interpolate a bare Date, but .toISOString() with an explicit ::timestamptz cast.
                                                                                                                                                                                                                                                                                        • tenants.lastAnchorAt was declared z.date() while the select returns a string, so the published component promised nothing at all there.
                                                                                                                                                                                                                                                                                        • getRequestBilling returned an email key the schema omitted, and additionalProperties: false made every real response violate the component clients generate parsers from.
                                                                                                                                                                                                                                                                                        • 156 read routes are now validated with ajv against the component the OpenAPI document actually publishes, at a real database — every defect above was found by that suite, not reported from outside.
                                                                                                                                                                                                                                                                                        v0.99.1
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        Removal that removes, and a documented URL that 404s

                                                                                                                                                                                                                                                                                        • Removing a member now revokes access on all five paths that resolved a soft-deleted row like a live one: session, credentials sign-in, magic link, iCal feed, invite redemption.
                                                                                                                                                                                                                                                                                        • A removed member's magic link is skipped as silently as an unknown address, so removal never becomes an account-enumeration oracle.
                                                                                                                                                                                                                                                                                        • Both Auth.js provider callbacks are exported and referenced directly, so a test holds the decision instead of trusting the wiring.
                                                                                                                                                                                                                                                                                        • The arrival guide closes on the checkout day instead of 14 days after issue.
                                                                                                                                                                                                                                                                                        • The check-in token's lifetime hangs on the stay, with lost-and-found access until checkout plus ten days.
                                                                                                                                                                                                                                                                                        • The OpenAPI document's server URL no longer repeats /api/v1 — carrying it twice made all 172 documented paths 404 for every consumer.
                                                                                                                                                                                                                                                                                        v0.99.0
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        Two monitors for the silence, and the channel decision in one place

                                                                                                                                                                                                                                                                                        • A confirmation watchdog runs off an allowlist of providers with a demonstrated confirmation path, because provider_acked is terminal for Beds24 and an age check would have fired on every send.
                                                                                                                                                                                                                                                                                        • Its two-hour grace period is measured rather than guessed: real readback over 14 days (n=208) is p50 0.4 min, p99 2.0 min, max 15.9 min.
                                                                                                                                                                                                                                                                                        • It alerts on share plus count instead of the first row, because 22 of 215 hospitable_api rows hang permanently for an unrelated reason that is diagnosed and deliberately untouched.
                                                                                                                                                                                                                                                                                        • A channel-invariant monitor runs daily and read-only, asking beds24OwnsStayChannel() in both directions rather than restating the cutover rule.
                                                                                                                                                                                                                                                                                        • That monitor is deliberately not gated on FOYER_BEDS24_ENABLED — a monitor sharing a kill switch with the thing it watches goes quiet exactly when the switch is the fault.
                                                                                                                                                                                                                                                                                        • The channel decision is now one pure function that returns the channel and a reason, and the reason is logged on every send.
                                                                                                                                                                                                                                                                                        • A decision table over source × ota_source × parentChannel runs without testcontainers, so a new booking source breaks the file instead of slipping through.
                                                                                                                                                                                                                                                                                        • The pre-push flake was a hardcoded 10 s port-bind timeout inside testcontainers; container start now retries once, while migrations and tests get no retry.
                                                                                                                                                                                                                                                                                        v0.98.2
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        The bug poisoned its own threads, so v0.98.1 only fixed half of it

                                                                                                                                                                                                                                                                                        • Two hours after v0.98.1 went live, a Booking.com reply went out over Beds24 again: the fix was deployed and did not apply.
                                                                                                                                                                                                                                                                                        • v0.98.1 had put the ownership question in beds24Capable, which governs only the no-history case, while plain channel inheritance one line below decides as soon as a thread has any message.
                                                                                                                                                                                                                                                                                        • The already-misrouted threads each carried a beds24 row written by the bug itself, so every further send inherited it — 9 of the 111 threads, 6 with an arrival still ahead.
                                                                                                                                                                                                                                                                                        • The lesson generalises: once a channel changes intermediary, every inherited channel value is a claim about the past, not the present, and both directions need the same check.
                                                                                                                                                                                                                                                                                        • Inheritance now gates on ownership rather than capability — a booking id or an active connection changes nothing about Beds24 not serving that channel.
                                                                                                                                                                                                                                                                                        • Verified by measurement: the new Booking.com-with-a-beds24-parent case fails on v0.98.1 and passes with the fix, and an Airbnb case keeps this fix from undoing the 2026-07-28 one.
                                                                                                                                                                                                                                                                                        • The rule path is now covered positively too, driving sendDueForTenant() over a due queue row instead of arguing that it shares a function with the operator path.
                                                                                                                                                                                                                                                                                        v0.98.1
                                                                                                                                                                                                                                                                                        30. Juli 2026

                                                                                                                                                                                                                                                                                        A Beds24 booking id is not a Beds24 channel

                                                                                                                                                                                                                                                                                        • A Booking.com guest never received her check-in codes: Foyer had recorded the message as sent with a provider id, over Beds24, while the thread she reads lives at Hospitable.
                                                                                                                                                                                                                                                                                        • Nothing looked wrong because Beds24 accepts the text either way; she wrote in five hours later asking for the door code.
                                                                                                                                                                                                                                                                                        • Cause: the send path asked whether a stay has a Beds24 booking, not whether Beds24 owns its channel — and Beds24 imports every booking by design, so that question is true for every stay.
                                                                                                                                                                                                                                                                                        • Counted on production: 111 of 150 stays carrying a Beds24 id went to the wrong intermediary — 103 Booking.com and 8 of Hospitable's own reservations.
                                                                                                                                                                                                                                                                                        • Between the cutover and the fix, rule-driven sends went from 16 per day over Hospitable to 19 over Beds24.
                                                                                                                                                                                                                                                                                        • beds24OwnsStayChannel() now decides on ownership and reads the same FOYER_BEDS24_CUTOVER_CHANNELS declaration the overlap guard uses, so the Booking.com cutover stays one environment change.
                                                                                                                                                                                                                                                                                        • stays.source alone is unsafe as a discriminator: direct means Hospitable's booking portal under one ota_source and Beds24's direct channel under the other.
                                                                                                                                                                                                                                                                                        • Undeclared channels fall back to Hospitable, which fails loudly — this bug survived five days because the wrong route failed silently.
                                                                                                                                                                                                                                                                                        v0.98.0
                                                                                                                                                                                                                                                                                        28. Juli 2026

                                                                                                                                                                                                                                                                                        Foyer shows its own numbers, and shows the tax it contains

                                                                                                                                                                                                                                                                                        • The channel's arrangement is kept — per-night breakdown, fee sub-lines, payment row — because that is information Foyer does not have and it is correct.
                                                                                                                                                                                                                                                                                        • The divergence was explained rather than lived with: Foyer's derived accommodation differed from the channel's on nearly two thirds of the bookings.
                                                                                                                                                                                                                                                                                        • 1878 of those are the channel reporting no VAT line at all, so its "Accommodation" is gross where Foyer's is net — a different quantity, not an error.
                                                                                                                                                                                                                                                                                        • Because this hotel's bookings are mostly couples it stayed invisible for years; a minority of bookings had fewer adults, a smaller one more, and two competing hypotheses died on the measurement.
                                                                                                                                                                                                                                                                                        • The investigation caught a defect in the change itself: on roughly two thirds of the bookings accommodation plus taxes no longer summed to the total, now fixed and verified on all of them.
                                                                                                                                                                                                                                                                                        • The folio now shows the VAT each line contains, and its summary is split by rate instead of lumping net accommodation together with tax-free accommodation tax.
                                                                                                                                                                                                                                                                                        v0.97.0
                                                                                                                                                                                                                                                                                        28. Juli 2026

                                                                                                                                                                                                                                                                                        Airbnb runs on Beds24. Live, and it cost eight bugs.

                                                                                                                                                                                                                                                                                        • The booking webhook rejected its own correct secret. getTenantSecret
                                                                                                                                                                                                                                                                                        • The first real booking pull created 100 duplicate stays. It recognised a
                                                                                                                                                                                                                                                                                        • The pull read the first page and called the run complete. 100 of 133
                                                                                                                                                                                                                                                                                        • A conversation opened before its stay existed stayed orphaned forever.
                                                                                                                                                                                                                                                                                        • Bookings that did not come from Beds24 were invisible to it. A Booking.com
                                                                                                                                                                                                                                                                                        • …and that fix duplicated all 30 Airbnb bookings on its first run, because
                                                                                                                                                                                                                                                                                        • **A reply to an Airbnb guest failed with hospitable_send_failed on 31
                                                                                                                                                                                                                                                                                        • Every Beds24 thread answered 404. The route never decoded its URL segment,
                                                                                                                                                                                                                                                                                        v0.96.0
                                                                                                                                                                                                                                                                                        27. Juli 2026

                                                                                                                                                                                                                                                                                        Beds24: the channel manager we will actually switch on

                                                                                                                                                                                                                                                                                        • The calendar is range-based. {from, to} instead of one entry per date:
                                                                                                                                                                                                                                                                                        • Prices go in currency units, not cents. Beds24 takes 129, not 12900 —
                                                                                                                                                                                                                                                                                        • price1 and only price1. priceN is the value for price rule N, not
                                                                                                                                                                                                                                                                                        • numAvail is derived and silently discarded. A POST carrying it answers
                                                                                                                                                                                                                                                                                        • Price is the gate to bookability. The operator panel reports "no price
                                                                                                                                                                                                                                                                                        • Stop sell is called override. There is no stopSell field, which is why
                                                                                                                                                                                                                                                                                        • A block is a booking. blocked_dates hangs off a single Foyer room while
                                                                                                                                                                                                                                                                                        • The refresh token dies after 30 days unused, without notice; bookings
                                                                                                                                                                                                                                                                                        v0.95.0
                                                                                                                                                                                                                                                                                        27. Juli 2026

                                                                                                                                                                                                                                                                                        Channex: certification-ready, deliberately inert

                                                                                                                                                                                                                                                                                        • The full Channex integration — connection, mapping, ARI push, sync, booking ingest — shipped behind FOYER_CHANNEX_ENABLED (off); Foyer keeps running on Hospitable, unchanged.
                                                                                                                                                                                                                                                                                        • With the flag unset, the Channex path costs nothing: no queue rows, no extra SQL, no registered worker, and the inbound webhook answers 404 without even looking up the tenant.
                                                                                                                                                                                                                                                                                        • Migration 0169 adds channex_connections and channex_mappings; migration 0170 adds channex_booking_revisions, since Channex uses its own UUIDs instead of reusing ota_connections.
                                                                                                                                                                                                                                                                                        • The pg-boss worker batches a change across several rate plans, room types, or dates into at most two API calls per property, matching Channex's limit of 10 requests/minute per property/endpoint.
                                                                                                                                                                                                                                                                                        • Restrictions (stop sell, CTA/CTD, min/max stay) never reached any channel — a gap also affecting Booking.com/Expedia — and the editor UI was fixed so CTA/CTD and max stay can be set.
                                                                                                                                                                                                                                                                                        • The tool registry grew from 411 to 422 (the channex router bridges 10 of its 11 procedures), with 2 new migrations, 0 RLS violations, and 2146 unit tests passing.
                                                                                                                                                                                                                                                                                        v0.94.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        MCP tool schemas: the documented surface finally has types

                                                                                                                                                                                                                                                                                        • 77 new /connect/tools/{domain} pages render each tool's input parameters and output fields as tables.
                                                                                                                                                                                                                                                                                        • Pre-existing bug found on the way: [product]/[slug]'s generateStaticParams mapped every registry page.
                                                                                                                                                                                                                                                                                        • Output schemas declared for 193 tRPC procedures across 16 routers — documentable tools go from 103 to 342 of 411.
                                                                                                                                                                                                                                                                                        • The REST read surface grows 103 → 144 paths, and 41 of those were redeemed, not invented.
                                                                                                                                                                                                                                                                                        • Three migrations close the RLS thread — production RLS coverage is now 150 of 155 tables.
                                                                                                                                                                                                                                                                                        • The e2e suite works again — 45 passed, 6 skipped, 0 failed.
                                                                                                                                                                                                                                                                                        • Two Dependabot alerts closed, one of them by dismissal with written reopen conditions.
                                                                                                                                                                                                                                                                                        • Every portal page now sets its own title and canonical — before this the portal had exactly one indexable page.
                                                                                                                                                                                                                                                                                        v0.93.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        The Public API becomes a read API: 7 endpoints → 99

                                                                                                                                                                                                                                                                                        • assistant.ask was flagged read-only but calls Anthropic and writes to llm_daily_spend, so the GET billed the tenant on every call — and a read-only MCP key could spend the tenant's AI budget.
                                                                                                                                                                                                                                                                                        • messaging-rules.preview-queue-item claimed "no row writes", but previewing a template that uses %checkin_url% minted a guest-facing check-in credential as a side effect of a GET.
                                                                                                                                                                                                                                                                                        • agents.proposals.list runs a lazy-expiry UPDATE on agent_proposals before it selects, so the list endpoint wrote rows.
                                                                                                                                                                                                                                                                                        • Every portal page now sets its own title and canonical. The layout carried canonical: "/", which Next merges downward, so all 12 doc pages declared themselves duplicates of the hub.
                                                                                                                                                                                                                                                                                        • /icon.svg and the social images stopped 404ing on the developer host; robots.txt and sitemap.xml deliberately still do.
                                                                                                                                                                                                                                                                                        • First unit tests for middleware.ts (matcher regex + host routing).
                                                                                                                                                                                                                                                                                        • checkin.get_meldeschein gained a real discriminated-union response schema, enumerated from the two backing tables and asserted against getTableColumns.
                                                                                                                                                                                                                                                                                        v0.92.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        The member lifecycle is fully audited

                                                                                                                                                                                                                                                                                        • Creating, removing, and inviting a team member left no real audit trail (removal only set deleted_at, invite only invite_sent_at); these now write member.created/removed/invited events.
                                                                                                                                                                                                                                                                                        • The audit logic was consolidated into one module, server/members/audit.ts, since the two rights-change write paths had drifted apart once, and creation paths still duplicate inserts.
                                                                                                                                                                                                                                                                                        • A removal record now captures the role held at removal time, showing what they could actually reach, not just that they're gone; repeat invites accumulate instead of overwriting.
                                                                                                                                                                                                                                                                                        v0.91.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        Developer portal (developer.getfoyer.app)

                                                                                                                                                                                                                                                                                        • A dedicated developer portal was built at developer.getfoyer.app, with a hub page and two products — Public API (REST /api/v1) and Connect (MCP, OAuth) — each with Overview and Reference pages.
                                                                                                                                                                                                                                                                                        • The portal uses host-based routing via apps/web/middleware.ts (the repo's first), serving only when the Host header matches DEVELOPER_HOST; every other host gets a 404 instead of a redirect.
                                                                                                                                                                                                                                                                                        • Content is written as typed TS modules rather than MDX, since no markdown renderer exists in the repo and MDX would hit the same dynamic-readFile trap that made v0.66.13 move email templates off .md.
                                                                                                                                                                                                                                                                                        • The tool reference page is generated from allTools() with a drift test checking it matches the registry; it imports the tools barrel so side effects run first, avoiding a vacuous "0 tools" pass.
                                                                                                                                                                                                                                                                                        • The portal carries a strict CSP (connect-src 'self', no third-party hosts); the Plausible component is now host-gated so zero third-party requests happen by construction.
                                                                                                                                                                                                                                                                                        v0.90.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        The `settings` catch-all is split; team rights stop wiping themselves

                                                                                                                                                                                                                                                                                        • /properties, /direct, and config shared one permission key (settings), so property visibility also handed out API keys and user management — how Tenant#1's receptionist opened the user list.
                                                                                                                                                                                                                                                                                        • Übergabe (/handover) had no server guard under the always-on overview catch-all and could not be revoked; it now has a guard and its own permission, preserving everyone's access.
                                                                                                                                                                                                                                                                                        • The rights grid checkbox labelled "Tür öffnen" (smart_locks) had actually covered the entire Geräte/Devices section since v0.81.0 and is now correctly labelled "Geräte" / "Devices".
                                                                                                                                                                                                                                                                                        • Rights changes via members.update and team.update now write a member.rights_changed audit entry with before/after role and modules, closing a silent-reset gap in team.update.
                                                                                                                                                                                                                                                                                        • members.list was reachable by any logged-in role despite exposing every colleague's personal data and module rights; it's now gated by moduleProcedure("team") to match the page-level guard.
                                                                                                                                                                                                                                                                                        • team.update reset a member's module_permissions to the role default whenever role appeared in the patch (always present in the form), silently wiping custom rights; it resets only on role change.
                                                                                                                                                                                                                                                                                        v0.89.0
                                                                                                                                                                                                                                                                                        26. Juli 2026

                                                                                                                                                                                                                                                                                        Test gate repaired, 26 security alerts closed, two guest-facing fixes

                                                                                                                                                                                                                                                                                        • WCAG AA contrast in the arrival guide. Labels measured 2.58, 3.51 and
                                                                                                                                                                                                                                                                                        • An Anthropic hiccup no longer breaks guest ID-OCR.
                                                                                                                                                                                                                                                                                        v0.88.0
                                                                                                                                                                                                                                                                                        22. Juli 2026

                                                                                                                                                                                                                                                                                        Per-tenant MCP-OAuth re-auth interval

                                                                                                                                                                                                                                                                                        • Tenants can now configure a per-tenant interval forcing connected AI agents to re-authorize on a schedule, via migration 0167's tenants.mcp_reauth_hours (default 24; 0/24/168/720, 0 = off).
                                                                                                                                                                                                                                                                                        • The interval anchors on the last interactive login, not the last token refresh, since silent refresh must not extend the clock; verifyBearer rejects with 401 once the login is too old.
                                                                                                                                                                                                                                                                                        • Because oidc-provider's ttl callbacks are synchronous while tenant resolution needs an async DB call, enforcement moved into bearer.ts; the global TTL ceiling moved from 14 to 30 days.
                                                                                                                                                                                                                                                                                        • Settings → API-Keys gained an owner-only dropdown (off / daily 24h / weekly 7 days / monthly 30 days) plus per-grant "last authorized" and "re-auth due" indicators, in German and English.
                                                                                                                                                                                                                                                                                        • No new MCP tool was added (registry stays at 411) since config stays Web-UI-only; the 24-hour default means every OAuth MCP session older than 24 hours re-authorizes once after deploy.
                                                                                                                                                                                                                                                                                        v0.87.0
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        MCP per-key role/module scoping

                                                                                                                                                                                                                                                                                        • Api-keys tragen jetzt zusätzlich zum full/read_only-Scope eine role (owner/staff/reception/housekeeping/maintenance) und ein optionales Modul-Override, analog zum granularen Nutzer-Rechtesystem.
                                                                                                                                                                                                                                                                                        • Migration 0164 fügt api_keys.role (DEFAULT 'owner') und api_keys.module_permissions rein additiv hinzu, sodass jeder bestehende Key weiterhin vollen Zugriff behält.
                                                                                                                                                                                                                                                                                        • Die Durchsetzung erfolgt über effectiveModules() und toolVisibleToKey() in tools-adapter.ts, das tools/list/tools/call gated; runWithKeyScope(...) lässt tRPC-Prozeduren mit FORBIDDEN antworten.
                                                                                                                                                                                                                                                                                        • Da die meisten operativen Router wie folio ungegatetes protectedProcedure sind, bleibt die Sichtbarkeitsprüfung die eigentliche Sicherheitsgrenze.
                                                                                                                                                                                                                                                                                        • Owner-Rollen-Keys und OAuth-Clients behalten unveränderten vollen Zugriff; die Registry bleibt bei 411 Tools, es wurden keine Tools hinzugefügt oder entfernt.
                                                                                                                                                                                                                                                                                        • Ein adversariales Review führte zum Fix, dass auch hand-geschriebene Tools ihr Modul über moduleForToolName auflösen; der neue Test key-scoping.int.test.ts deckt Sichtbarkeit und Durchsetzung ab.
                                                                                                                                                                                                                                                                                        v0.86.1
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        Inbound Auto-Reply Hardening (pre-deploy)

                                                                                                                                                                                                                                                                                        • Neues ENV-Flag FOYER_INBOUND_NATIVE_AUTOSEND (default OFF): der native L1a-Pfad schreibt eine Antwort als Draft statt sie zu senden; Auto-Send greift erst mit tenant.aiMode="auto".
                                                                                                                                                                                                                                                                                        • detect-invoice-request.ts unterscheidet jetzt eindeutige Signalwörter (invoice/rechnung/quittung/factura) von mehrdeutigen Tokens (bill/receipt/beleg), die nur mit Request-Intent-Kontext matchen.
                                                                                                                                                                                                                                                                                        • Migration 0163 fügt die Spalte invoice_form_submissions.source sowie einen partial unique index hinzu, damit createInvoiceRequest garantiert nur eine Row pro Aufenthalt erzeugt.
                                                                                                                                                                                                                                                                                        • Der Divergenz-Report zeigt jetzt Stichprobengröße, vergleichbare Zeilen, noCcData und die Divergenzrate über die vergleichbaren Zeilen, um die Repräsentativität vor dem Cutover zu prüfen.
                                                                                                                                                                                                                                                                                        v0.86.0
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        Native Inbound Auto-Reply Engine

                                                                                                                                                                                                                                                                                        • Foyer beantwortet eingehende Gast-Nachrichten nun nativ statt per Proxy über das Command-Center (hospitable_backend:4550).
                                                                                                                                                                                                                                                                                        • Neue Komponenten: ai_question_replies als Idempotenz-Ledger gegen Doppelantworten, ai_shadow_decisions für Parallel-Logging, sowie zwei Felder für native Rechnungsanfrage-Erkennung.
                                                                                                                                                                                                                                                                                        • Der neue L1b Invoice-Sentinel antwortet mit einem Link auf Foyers eigenes Gäste-Rechnungsformular statt auf das CC-Formular.
                                                                                                                                                                                                                                                                                        • Zwei ENV-Flags, standardmäßig aus: FOYER_INBOUND_NATIVE_SHADOW loggt Divergenzen zwischen nativer und CC-Antwort ohne zu senden, FOYER_INBOUND_NATIVE schaltet den CC-Proxy-Pfad ab.
                                                                                                                                                                                                                                                                                        v0.85.0
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        tRPC→MCP Auto-Bridge (Registry 203 → 428)

                                                                                                                                                                                                                                                                                        • Eine neue Bridge (trpc-bridge.ts) durchläuft bei jedem Boot appRouter._def.procedures und registriert ein MCP-Tool pro Prozedur, außer 5 denylistete und ~96 hand-geschriebene.
                                                                                                                                                                                                                                                                                        • Bridged-Tool-Namen entsprechen dem wörtlichen tRPC-Pfad (z. B. folio.addLine); 20 destruktive P1-Prozeduren erhalten kuratierte Beschreibungen und requiresConfirmation in bridge-metadata.ts.
                                                                                                                                                                                                                                                                                        • Ein adversariales Review deckte auf, dass die Default-ALLOW-Bridge sensible owner-only Prozeduren re-exponiert hatte; der Fix schließt 6 sensible Router per Default-Deny komplett aus.
                                                                                                                                                                                                                                                                                        • Die Registry wächst auf 203 hand-kuratierte plus 225 auto-gebrückte Tools, insgesamt 428 (nach Härtung wurden 42 sensible auto-gebrückte Tools von ursprünglich 470 beim Launch wieder entfernt).
                                                                                                                                                                                                                                                                                        v0.84.0
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        RBAC-Härtung, ADRs & Aufräumen

                                                                                                                                                                                                                                                                                        • 10 weitere Router (u. a. security.ts, voice.ts, hotel-facts.ts, upsell.ts, tax-settings.ts, properties.ts) sind jetzt auf moduleProcedure gegatet statt auf ungegatetem protectedProcedure.
                                                                                                                                                                                                                                                                                        • Die tote NAV_MODULE_MAP wurde entfernt und team.update resettet module_permissions bei einem Rollenwechsel jetzt auf null, damit ein alter Override keine Rechte durchleaken kann.
                                                                                                                                                                                                                                                                                        • 3-spaltige Formular-Reihen in team-form und im invoices-request-panel stacken jetzt mobil (grid-cols-1/2 sm:grid-cols-3).
                                                                                                                                                                                                                                                                                        • Eine Untersuchung ergab: das Pricing-Casing ist kein funktionaler Bug, da der Read-Pfad Zeilen normalisiert; ein Backfill der ~57.000 Zeilen hätte 1.644 Kollisionen erzeugt, blieb bewusst aus.
                                                                                                                                                                                                                                                                                        • Zwei ADRs wurden nachgezogen (granular-module-permissions, operator-ui-i18n); Schema, Migrationen und die MCP-Registry (203 Tools) blieben unverändert.
                                                                                                                                                                                                                                                                                        v0.83.0
                                                                                                                                                                                                                                                                                        21. Juli 2026

                                                                                                                                                                                                                                                                                        i18n-Feinschliff, Settings-Reorg & Mobile-Politur

                                                                                                                                                                                                                                                                                        • Der DE/EN-Sprachumschalter zog von der Nav-Fußzeile auf eine eigene Seite Einstellungen → Sprachen (/settings/languages) um.
                                                                                                                                                                                                                                                                                        • Aus der Hospitable-Struktur übernommene englische Nav-Labels wurden eingedeutscht, etwa Properties→Objekte, Metrics→Kennzahlen, Direct bookings→Direktbuchungen, Devices→Geräte und Channels→Kanäle.
                                                                                                                                                                                                                                                                                        • Die Settings-Navigation wurde von zwei widersprüchlichen Navigationen auf eine Quelle vereinheitlicht, gruppiert in 4 Themen: Konto, Hotel & Inhalte, Preise & Abrechnung, Technik & Integrationen.
                                                                                                                                                                                                                                                                                        • Die KI-Antworten-Liste unter Einstellungen → KI zeigt jetzt nur noch echte KI-Antworten (aiLayer in llm/escalated) statt auch Regel-Automatik-Sends.
                                                                                                                                                                                                                                                                                        • Ein Mobile-Audit stellte die Messaging-Tab-Leiste unter /gx/messaging auf ein Dropdown um und prüfte alle 28 Operator-Tabellen und Tab-Leisten auf Overflow.
                                                                                                                                                                                                                                                                                        • Ein vorbestehender hospitable-send-message-Shape-Drift wurde korrigiert, die Unit-Suite steht danach bei 1809 grün / 0 rot.
                                                                                                                                                                                                                                                                                        v0.82.0
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Operator-UI zweisprachig (DE/EN)

                                                                                                                                                                                                                                                                                        • Die gesamte Operator-Oberfläche ist jetzt pro Benutzer auf Deutsch oder Englisch umschaltbar, umgesetzt über eine echte i18n-Schicht mit next-intl ohne URL-Präfixe.
                                                                                                                                                                                                                                                                                        • Der Umfang beträgt rund 2.900 Übersetzungs-Keys über 19 Namespaces, verteilt auf rund 150 Seiten- und Komponenten-Dateien.
                                                                                                                                                                                                                                                                                        • Die Umsetzung erfolgte in Wellen: Fundament und Nav zuerst sequenziell, danach Seiten-Cluster teils sequenziell, teils parallel mit 5 Agenten auf disjunkten Datei-Partitionen.
                                                                                                                                                                                                                                                                                        • Die Verifikation umfasste einen grünen Prod-Build über 109 Seiten, 0 tsc-Source-Fehler, einen grünen i18n-Katalog-Test sowie 1807 grüne Unit-Tests und 0 RLS-Violations.
                                                                                                                                                                                                                                                                                        • Bekannt blieben 2 vorbestehende hospitable-send-message-Testfehler, die unabhängig von der i18n-Umstellung sind.
                                                                                                                                                                                                                                                                                        v0.81.0
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Nav-Hospitable-Gruppierung

                                                                                                                                                                                                                                                                                        • Neue Gruppe „Gäste-Erlebnis" (Guest experience) bündelt Auto-Nachrichten,
                                                                                                                                                                                                                                                                                        • Properties, Metrics, Direct bookings und Devices als eigene
                                                                                                                                                                                                                                                                                        • Metrics (Berichte/Belegung) getrennt von Finanzen (Kassenbuch/Rechnungen/
                                                                                                                                                                                                                                                                                        v0.80.0
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Hospitable-URL-Parität (echtes Rename)

                                                                                                                                                                                                                                                                                        • Alle Alt-Pfade bleiben als 307-Redirect (permanent: false) erreichbar — Bookmarks/externe
                                                                                                                                                                                                                                                                                        • Guard-Erhalt: jede verschobene Settings-Seite behält requireModule("settings") am neuen
                                                                                                                                                                                                                                                                                        • Sidebar/Mobile-Nav (components/operator-nav.ts), NAV_MODULE_MAP
                                                                                                                                                                                                                                                                                        v0.79.2
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        URL-Parität: /settings/user-management (Hospitable)

                                                                                                                                                                                                                                                                                        • Die Team-/Rechte-Verwaltung liegt jetzt unter /settings/user-management (spiegelt
                                                                                                                                                                                                                                                                                        v0.79.1
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Rechte-System-Follow-up: Team-Roster-Overexposure geschlossen

                                                                                                                                                                                                                                                                                        • team.list/team.byId (voller Roster inkl. Telefon/E-Mail/Gehalt) jetzt hinter
                                                                                                                                                                                                                                                                                        • Neuer schlanker team.listForRecipients (nur id/name/email/phone/role, keine
                                                                                                                                                                                                                                                                                        v0.79.0
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Granulares Rechte-System (Hospitable-Style User-Management)

                                                                                                                                                                                                                                                                                        • 5. Rolle reception + users.module_permissions: Migration 0161 fügt den Enum-Wert
                                                                                                                                                                                                                                                                                        • Nav gefiltert: Sidebar, MobileNav und Command-Palette zeigen nur noch die effektiven
                                                                                                                                                                                                                                                                                        • Server-Guards, nicht die Nav, sind der Sicherheitsanker: neues requireModule()
                                                                                                                                                                                                                                                                                        • Team-Rechte-UI unter Einstellungen → Mitglieder: pro User Rolle + Modul-Checkboxen im
                                                                                                                                                                                                                                                                                        • Abwärtskompatibel: additive Migration (neuer Enum-Wert + nullable Spalte) — bestehender
                                                                                                                                                                                                                                                                                        v0.78.0
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Inbox-Seitenpanels (Hospitable-Parität)

                                                                                                                                                                                                                                                                                        • 3-Spalten-Layout: Die Konversationsansicht bekommt links eine Reservierungs-
                                                                                                                                                                                                                                                                                        • Datenquelle: neuer read-only Endpoint stays.bookingPanel (+ MCP-Twin
                                                                                                                                                                                                                                                                                        • Echter Bug gefangen & gefixt: hospitable_pricing_lines führt zwei Casing-Ären
                                                                                                                                                                                                                                                                                        • Registry: stays.booking-panel ist Tool 202 (allTools().length), Registry
                                                                                                                                                                                                                                                                                        v0.77.9
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Sprachwahl: BCP-47-Normalisierung + EN-Fallback für fremdsprachige Gäste

                                                                                                                                                                                                                                                                                        • Fund (Nacht-Doubletten-Analyse): Ali (en-us) und Pablo (es) bekamen die deutsche
                                                                                                                                                                                                                                                                                        • Fix: OTA-Locales werden auf die Basissprache normalisiert (en-US/de_AT → en/de);
                                                                                                                                                                                                                                                                                        • Re-Audit nach v0.77.8: alle 10 gespiegelten Templates rendern mit 0 unaufgelösten
                                                                                                                                                                                                                                                                                        v0.77.8
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Hospitable-Template-Audit: Short-Code-Parität + Doubletten-Stopp

                                                                                                                                                                                                                                                                                        • Audit-Fund 1 (kritisch): Hospitables EIGENE Rule-Engine war nie abgeschaltet — die
                                                                                                                                                                                                                                                                                        • Audit-Fund 2: 9 Hospitable-Short-Codes fehlten als Foyer-Builtins und blieben roh
                                                                                                                                                                                                                                                                                        • Datenfixe: 1nightstay trägt seine Hospitable-Condition (x_nights=1 → nights 1..1);
                                                                                                                                                                                                                                                                                        v0.77.7
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Willkommensnachricht: Last-Minute-Block korrekt gegated (Fund: Ali Abdi)

                                                                                                                                                                                                                                                                                        • Bug: Die erste Foyer-Willkommensnachricht enthielt den kompletten Last-Minute-
                                                                                                                                                                                                                                                                                        • Fix: Neuer Condition-Typ check_in_hours (Migration 0160, Hospitable-Semantik
                                                                                                                                                                                                                                                                                        v0.77.6
                                                                                                                                                                                                                                                                                        20. Juli 2026

                                                                                                                                                                                                                                                                                        Hospitable-Schema-Alignment (additiv)

                                                                                                                                                                                                                                                                                        • Analyse: Alle 22 Hospitable-Public-API-Schemas gegen Foyers DB abgeglichen
                                                                                                                                                                                                                                                                                        • 3 Migrationen (0157–0159): stays.booking_date/issue_alert/stay_type/notes
                                                                                                                                                                                                                                                                                        • Follow-up: GuestReview (Host→Gast-Bewertungen) als einziges echtes
                                                                                                                                                                                                                                                                                        v0.77.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Türen-Modell: beliebig viele Türen, jeder Provider

                                                                                                                                                                                                                                                                                        • Multi-Door: Neue doors-Tabelle (Migration 0156, RLS+FORCE) — Tenants legen beliebig viele
                                                                                                                                                                                                                                                                                        • Provider-Registry: DoorProvider-Contract (hasAccount/listLocks/unlock) — Provider #3 ist
                                                                                                                                                                                                                                                                                        • UI: Eine vereinheitlichte Oberfläche — kompakte Provider-Konten-Karte + Türen-Karte
                                                                                                                                                                                                                                                                                        • MCP: smart-locks.unlock mit optionalem doorId + neuer readOnly-Twin smart-locks.doors
                                                                                                                                                                                                                                                                                        v0.77.5
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Guide-Video: selbst gehostet, Embed-Block behoben

                                                                                                                                                                                                                                                                                        • Fund: Das Keybox-Video blockte im In-Page-Player („Wiedergabe auf anderen Websites
                                                                                                                                                                                                                                                                                        • Gleiche Lösung: Video-Modal spielt direkte Dateien (mp4/webm/mov) jetzt im nativen
                                                                                                                                                                                                                                                                                        v0.77.4
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Guide-Hilfevideo spielt im Guide ab (kein Tab-Wechsel)

                                                                                                                                                                                                                                                                                        • „Hilfevideo ansehen" öffnet jetzt ein In-Page-Modal mit eingebettetem Player
                                                                                                                                                                                                                                                                                        • CSP: frame-src um youtube-nocookie.com erweitert (Privacy-Embed, keine
                                                                                                                                                                                                                                                                                        v0.77.3
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide in 7 Sprachen (CC-Parität)

                                                                                                                                                                                                                                                                                        • Sprachumschalter jetzt EN/DE/ES/FR/NL/TR/IT — exakt die Sprachen des CC-Checkin-Guides;
                                                                                                                                                                                                                                                                                        v0.77.2
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide: Hilfetext pro Schritt unter „Klappt nicht?"

                                                                                                                                                                                                                                                                                        • Neues Feld helpTranslations pro Guide-Schritt (DE/EN, Settings-UI + tRPC + MCP-Twin):
                                                                                                                                                                                                                                                                                        v0.77.1
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide: Hilfevideo als Button + Keybox-Video verlinkt

                                                                                                                                                                                                                                                                                        • Der Video-Link im Guide-Schritt war ein kaum sichtbarer unterstrichener Textlink —
                                                                                                                                                                                                                                                                                        v0.76.7
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Zimmertausch: bewusste Doppelbelegung möglich

                                                                                                                                                                                                                                                                                        • „Zimmer tauschen"-Modus: Ein Drop auf ein bereits belegtes Zimmer ist kein harter
                                                                                                                                                                                                                                                                                        • Server: allowConflict-Flag auf stays.setRoomOverride (tRPC + MCP-Twin
                                                                                                                                                                                                                                                                                        v0.76.6
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Verlauf: keine Duplikate mehr für Foyer-gesendete Nachrichten

                                                                                                                                                                                                                                                                                        • Root-Cause (Fund: Melanie Asche doppelt im Verlauf): Beim API-Versand gibt Hospitable
                                                                                                                                                                                                                                                                                        • Fix (Migration 0156): messages.sent_reference_id — Versand speichert die Quittung,
                                                                                                                                                                                                                                                                                        • Diagnose-Beifang: failure_reason trägt jetzt den HTTP-Status
                                                                                                                                                                                                                                                                                        v0.76.5
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Abgelaufene Anfragen: wahrheitsgemäßer Status statt ewig „Ausstehend"

                                                                                                                                                                                                                                                                                        • Status-Mapping vervollständigt: Hospitable pusht tote Anfrage-Zustände (expired,
                                                                                                                                                                                                                                                                                        • Neue Spalte stays.ota_status (Migration 0155): der rohe Hospitable-Status bleibt
                                                                                                                                                                                                                                                                                        • Backfill prod: historische Stays aus den Webhook-Rohevents + der CC-Wahrheit nachgetragen.
                                                                                                                                                                                                                                                                                        v0.76.4
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Messaging zielt nie mehr auf Pending/Storniert (HOST-0LRKYX)

                                                                                                                                                                                                                                                                                        • Root-Cause-Fix (Fund: HOST-0LRKYX, abgelaufener Request-to-Book): Abgelaufene
                                                                                                                                                                                                                                                                                        • Datenbereinigung prod: 53 tote Pending-Stays (27 NotAccepted, 3 Checkpoint, 23 nicht mehr
                                                                                                                                                                                                                                                                                        • 2 neue Integrationstests: Scheduler materialisiert nie für pending/cancelled;
                                                                                                                                                                                                                                                                                        v0.76.3
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Ausstehend: Sprache, Plattform-Badge, Sofort-Senden (CC-Parität)

                                                                                                                                                                                                                                                                                        • Sprache-Spalte zeigt jetzt die Gast-Sprache (guests.locale) statt „—" (der Sende-Hint
                                                                                                                                                                                                                                                                                        • „Kanal" → „Plattform": Badge mit OTA-Plattform (Booking.com/Airbnb/Direkt/Manuell)
                                                                                                                                                                                                                                                                                        • Pro-Zeile „Senden": geplante Nachricht sofort ausliefern (confirm-gated) — identischer
                                                                                                                                                                                                                                                                                        v0.76.2
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Multi-Room-HPR-Fix: alle Zimmer einer Buchung verlinkt

                                                                                                                                                                                                                                                                                        • Coverage-Guard-Doku korrigiert (partielle Lücken waren real, nicht nur all-or-nothing).
                                                                                                                                                                                                                                                                                        v0.76.1
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Ausstehend: Live-Vorschau + chronologische Sortierung

                                                                                                                                                                                                                                                                                        • Live-Vorschau im Ausstehend-Tab: Aufklappen einer geplanten Nachricht rendert sie on-demand
                                                                                                                                                                                                                                                                                        • „Geplant"-Liste sortiert jetzt aufsteigend (nächste Sendung oben).
                                                                                                                                                                                                                                                                                        v0.76.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Zimmertausch per Drag & Drop

                                                                                                                                                                                                                                                                                        • Dritter Kalender-Modus „Zimmer tauschen": Buchungs-Balken vertikal auf eine andere
                                                                                                                                                                                                                                                                                        • Override-Ebene stay_room_overrides (Migration 0154): schreibt NIE stays.room —
                                                                                                                                                                                                                                                                                        • Automatische Propagation in Check-in-Nachricht (Keybox-Codes), Anreise-Guide und
                                                                                                                                                                                                                                                                                        • Belegungs-Konflikt-Check beim Tausch inkl. offener Buchungen (NULL checkOut) und
                                                                                                                                                                                                                                                                                        • Audit-Log für jeden Tausch (rooms.swapped) und jeden Reset (rooms.swap_reset).
                                                                                                                                                                                                                                                                                        • MCP 195→198 (stays.set-room-override / stays.reset-room-override /
                                                                                                                                                                                                                                                                                        • Bekannte Grenzen (Follow-ups): Smart-Lock-PINs werden bei einem Tausch nach dem
                                                                                                                                                                                                                                                                                        v0.75.2
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide Critical Fixes (Design-Audit)

                                                                                                                                                                                                                                                                                        • Tote Zone weg: Buttons folgen dem Inhalt statt ans Viewport-Ende gepinnt zu sein —
                                                                                                                                                                                                                                                                                        • Sperrsatz nur noch für Ziffern-Codes — SSID/Passwort brechen nicht mehr pro Zeichen um.
                                                                                                                                                                                                                                                                                        • Motion: 150-ms-Fade beim Schrittwechsel (guide-fade-Keyframes), active:scale-[0.97]
                                                                                                                                                                                                                                                                                        • Karten-Embed bewusst NICHT umgesetzt (Google-iframe = DSGVO/CSP-Rückschritt nach v0.74.0
                                                                                                                                                                                                                                                                                        v0.75.1
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide Quick-Wins (Design-Audit)

                                                                                                                                                                                                                                                                                        • Guide-Polish: Hotelname als Absender im Kopf (neben Sprachwahl), Schritt-Zähler „2/7"
                                                                                                                                                                                                                                                                                        v0.75.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Anreise-Guide (CC Checkin-Guide-Parität)

                                                                                                                                                                                                                                                                                        • Gäste-öffentlicher Anreise-Guide: 7-Schritte-Walkthrough unter /check-in/<token>/guide
                                                                                                                                                                                                                                                                                        • Zeitfenster-gesteuerte Code-Herausgabe (serverseitig): Eingangs- und Keybox-Codes sowie
                                                                                                                                                                                                                                                                                        • Migration 0153: arrival_guide_settings (JSONB auf tenants) — Adresse, Code-Namen,
                                                                                                                                                                                                                                                                                        • Operator-Settings /settings/guide: Konfiguration aller 7 Schritte inkl. Foto-Upload
                                                                                                                                                                                                                                                                                        • %guide_url%-Template-Variable: Messaging-Templates können den Guide-Link jetzt direkt
                                                                                                                                                                                                                                                                                        • MCP 194→195 (tenants.update-arrival-guide-settings, owner-only, wholesale-replace der
                                                                                                                                                                                                                                                                                        • Bugfix: Subject-Clobber bei der checkin/guide-URL-Token-Erkennung in eingehenden
                                                                                                                                                                                                                                                                                        v0.74.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Rechtliches: AGB-Seite + Scalar self-hosted (DSGVO)

                                                                                                                                                                                                                                                                                        • AGB: Neue Seite /agb — vollständige B2B-SaaS-AGB (§ 1 Geltungsbereich bis § 12
                                                                                                                                                                                                                                                                                        • Scalar self-hosted: Beide API-Referenzen (/developers/reference + Hono-Route) laden das
                                                                                                                                                                                                                                                                                        v0.73.2
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Verlauf: „Alle" zeigt jetzt wirklich alles

                                                                                                                                                                                                                                                                                        • Verlauf-Quell-Filter: „Alle (außer Manual)" → „Alle" — manuelle Host-Nachrichten sind
                                                                                                                                                                                                                                                                                        v0.73.1
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Mobile: Messaging-KPI-Kacheln kompakt

                                                                                                                                                                                                                                                                                        • Ausstehend/Verlauf mobil: Die Stat-Kacheln (Gesendet/Zugestellt/Fehlerquote/Morgen
                                                                                                                                                                                                                                                                                        v0.73.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        TTLock als zweiter Smart-Lock-Provider

                                                                                                                                                                                                                                                                                        • Gast-PINs: TTLock-Schlösser (Cloud-API + Gateway) als per-Zimmer-Lock-Typ — Check-in erzeugt
                                                                                                                                                                                                                                                                                        • Haupttür: „Tür öffnen"-Knopf unterstützt TTLock (ttlock_configs, Migration 0152, RLS+FORCE);
                                                                                                                                                                                                                                                                                        • Sicherheit: TTLock-Passwort wird vor der Verschlüsselung MD5-gehasht — Klartext wird nie
                                                                                                                                                                                                                                                                                        • MCP-Registry unverändert bei 194 — smart-locks.unlock ist jetzt provider-agnostisch
                                                                                                                                                                                                                                                                                        v0.72.0
                                                                                                                                                                                                                                                                                        19. Juli 2026

                                                                                                                                                                                                                                                                                        Messaging CC-Parity: Scheduler-Fixes, Warteschlange, Verlauf

                                                                                                                                                                                                                                                                                        • Scheduler-Fixes: platform_filter einer Regel wurde gespeichert, aber nie
                                                                                                                                                                                                                                                                                        • KI-Auto-Reply-Unterdrückung: wenn bereits eine echte Host-Antwort auf eine
                                                                                                                                                                                                                                                                                        • acceptDraft flip+deliver: Annahme eines Drafts flippt jetzt UND liefert
                                                                                                                                                                                                                                                                                        • Warteschlange-Tab (Ausstehend): Status-Filter, Zeit-Bearbeitung pro Instanz,
                                                                                                                                                                                                                                                                                        • Verlauf-Tab: Hospitable-Host-Nachrichten-Historie mit Quellen-Attribution
                                                                                                                                                                                                                                                                                        • MCP-Registry 193→194 (messaging-rules.host-history).
                                                                                                                                                                                                                                                                                        v0.71.0
                                                                                                                                                                                                                                                                                        15. Juli 2026

                                                                                                                                                                                                                                                                                        Legal-Compliance + Gäste-Portal WCAG 2.1 AA

                                                                                                                                                                                                                                                                                        • Rechtstext-Fixes: Impressum § … TMG → § … DDG (Anbieterkennzeichnung §5 DDG,
                                                                                                                                                                                                                                                                                        • Geteilter LegalFooter (Impressum/Datenschutz/Barrierefreiheit) jetzt im
                                                                                                                                                                                                                                                                                        • Gäste-Portal WCAG 2.1 AA (Check-in-Wizard, app/check-in/[token]/):
                                                                                                                                                                                                                                                                                        • Sichtbare :focus-visible-Ringe auf allen Buttons/Primitiven; Labels bleiben
                                                                                                                                                                                                                                                                                        • role="group" + aria-label am Fortschritts-Header (Schritt-X-von-Y), role="alert"
                                                                                                                                                                                                                                                                                        • Skip-to-content-Link + Fokus-Management bei Step-Wechsel (Fokus wandert bei
                                                                                                                                                                                                                                                                                        • aria-live (polite) für den Submit-Status.
                                                                                                                                                                                                                                                                                        • Tastaturbedienbare Unterschrift-Alternative (WCAG 2.1.1): „Namen tippen statt
                                                                                                                                                                                                                                                                                        v0.70.5
                                                                                                                                                                                                                                                                                        11. Juli 2026

                                                                                                                                                                                                                                                                                        Mobile-Audit Wave C: Formulare stacken + Kapazität 2-up

                                                                                                                                                                                                                                                                                        • Datenerfassungs-Formulare stacken mobil einspaltig (grid-cols-1 sm:grid-cols-2):
                                                                                                                                                                                                                                                                                        • Property-Kapazität als 2×2 mobil (grid-cols-2 sm:grid-cols-4): die vier
                                                                                                                                                                                                                                                                                        • Aufgaben-H1 mobil text-2xl→text-xl (sm:text-2xl) — schließt die letzte
                                                                                                                                                                                                                                                                                        v0.70.4
                                                                                                                                                                                                                                                                                        11. Juli 2026

                                                                                                                                                                                                                                                                                        Mobile-Audit-Fixes: Pagination + Overflow + Header-Wrap

                                                                                                                                                                                                                                                                                        • „Mehr laden"-Pagination auf Reservierungen, Check-ins und Anrufen:
                                                                                                                                                                                                                                                                                        • Server-Listen-Ceilings angehoben (nur max, Defaults unverändert):
                                                                                                                                                                                                                                                                                        • Reservierungen mobil: Spalten Check-out + Kanal per sm:table-cell ausgeblendet
                                                                                                                                                                                                                                                                                        • Overflow-Fixes: /inbox/unconfirmed schnitt die Aktions-/Bestätigen-Spalte ab
                                                                                                                                                                                                                                                                                        • Konversations-Header bricht jetzt um (flex-wrap + truncate auf H1) statt die
                                                                                                                                                                                                                                                                                        v0.70.3
                                                                                                                                                                                                                                                                                        11. Juli 2026

                                                                                                                                                                                                                                                                                        Mobile-Density-Pass + mobiler Tür-Button

                                                                                                                                                                                                                                                                                        • Kennzahlen als 2-up-Zeilenraster (Übersicht, Belegungsanalyse, KI-Analytics):
                                                                                                                                                                                                                                                                                        • Global: alle 18 Seiten-H1s mobil text-3xl→text-xl (Titel steht ohnehin in der
                                                                                                                                                                                                                                                                                        • Tabellen (Reservierungen, Zimmertyp-Aufschlüsselung, Check-ins, Anrufe):
                                                                                                                                                                                                                                                                                        • Listen & Details: Heute/Übergabe-Abstände halbiert, Übergabe-„Lage jetzt" mit
                                                                                                                                                                                                                                                                                        • Tür-Button mobil: der Nuki-„Tür öffnen"-Knopf (v0.70.2) auch im mobilen
                                                                                                                                                                                                                                                                                        • Fix: TRPCProvider umschließt jetzt die ganze Operator-Shell — der Sidebar-
                                                                                                                                                                                                                                                                                        v0.70.2
                                                                                                                                                                                                                                                                                        10. Juli 2026

                                                                                                                                                                                                                                                                                        Nuki „Tür öffnen" (Cloud, manueller Remote-Unlock)

                                                                                                                                                                                                                                                                                        • BYOK: Nuki Web API Token pro Tenant, AES-256-GCM-verschlüsselt (nuki_web_configs,
                                                                                                                                                                                                                                                                                        • Setup (Einstellungen → Smart-Locks → „Nuki — Tür öffnen"): Token einfügen →
                                                                                                                                                                                                                                                                                        • „Tür öffnen"-Knopf (Tür-Icon) — in der Desktop-Seitenleiste und im mobilen
                                                                                                                                                                                                                                                                                        • MCP-Twin smart-locks.unlock (owner, requiresConfirmation). Registry inkl. dem
                                                                                                                                                                                                                                                                                        • Foyers Bridge-Adapter (per-Zimmer-Keypad-Codes) bleibt unangetastet — separater
                                                                                                                                                                                                                                                                                        v0.70.1
                                                                                                                                                                                                                                                                                        10. Juli 2026

                                                                                                                                                                                                                                                                                        Property-Detailseite ausgebaut + URL-Parität-Follow-ups

                                                                                                                                                                                                                                                                                        • Kapazität — Schlafzimmer / Bäder / Betten / max. Gäste (aus
                                                                                                                                                                                                                                                                                        • Ausstattung — Amenity-Chips (hospitable_property_amenities → hospitable_amenities).
                                                                                                                                                                                                                                                                                        • Preise & Verfügbarkeit — Summary aus dem Hospitable-Kalender
                                                                                                                                                                                                                                                                                        • Hausregeln — Rauchen / Haustiere / Events erlaubt-Badges (aus
                                                                                                                                                                                                                                                                                        v0.70.0
                                                                                                                                                                                                                                                                                        10. Juli 2026

                                                                                                                                                                                                                                                                                        Hospitable-URL-Parität: Reservierungen-Rename, Gäste- & Property-Routen

                                                                                                                                                                                                                                                                                        • „Aufenthalte" wurde durchgängig in „Reservierungen" umbenannt (Nav plus rund 17 weitere Textstellen) und die Buchungsliste liegt jetzt unter /reservations, mit Redirect von /stays.
                                                                                                                                                                                                                                                                                        • Eine neue Detail-Route /reservations/<external_ref> löst die Hospitable-CC-UUID tenant-scoped auf den zugehörigen Stay auf.
                                                                                                                                                                                                                                                                                        • Gäste sind erstmals unter /guests/<id> adressierbar, mit geteiltem <GuestDetail>-Component, neuer Query getGuestById, tRPC contacts.guests.byId und MCP-Twin contacts.guest.
                                                                                                                                                                                                                                                                                        • Hospitable-Properties sind unter /properties/<property_uuid> adressierbar, mit neuer Query getPropertyByUuid, tRPC properties.byUuid und MCP-Twin properties.get.
                                                                                                                                                                                                                                                                                        • Die MCP-Tool-Registry wuchs im Zuge dieser drei Bausteine von 181 auf 183 Tools; die Umsetzung erfolgte als checkpointed Subagent-Wave über 8 Tasks ohne Schema- oder Migrationsänderung.
                                                                                                                                                                                                                                                                                        v0.69.4
                                                                                                                                                                                                                                                                                        10. Juli 2026

                                                                                                                                                                                                                                                                                        Kanonische Buchungs-URL `/inbox/thread/<id>` + `ex_conversation_id`-Backfill

                                                                                                                                                                                                                                                                                        • /inbox/thread/[threadId] (app/(operator)/inbox/thread/[threadId]/page.tsx)
                                                                                                                                                                                                                                                                                        • Zentraler Helper lib/booking-href.ts (bookingHref({ id, exConversationId })):
                                                                                                                                                                                                                                                                                        • Härtung: voice-calls.byId läuft die stayId aus untrusted MCP-Action-Output
                                                                                                                                                                                                                                                                                        • Hospitable-API (per-Reservation get-reservation, Concurrency 6): die fehlenden Threads
                                                                                                                                                                                                                                                                                        • Einmaliger read-only staydb-Pull aus hospitable.messages (Legacy-ASP.NET-DB)
                                                                                                                                                                                                                                                                                        • 8 echte Foyer-native Seed-Stays (keine Hospitable-Herkunft) restlos gelöscht.
                                                                                                                                                                                                                                                                                        • Ergebnis: ~70 % der Stays tragen jetzt eine Thread-ID; die restlichen
                                                                                                                                                                                                                                                                                        v0.69.3
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Conversations: leere/gespaltene Threads reparieren

                                                                                                                                                                                                                                                                                        • listByStay: ORDER BY last_message_at DESC NULLS LAST → immer die aktive
                                                                                                                                                                                                                                                                                        • Merge-on-Relink (ensureHospitableConversation): Beim Verknüpfen einer
                                                                                                                                                                                                                                                                                        • Prod-Cleanup: 5 gespaltene/leere Conversations über 4 Aufenthalte in je eine
                                                                                                                                                                                                                                                                                        • Kalender-Quickview-Buttons konsolidiert: die zwei Aktionen „Details"
                                                                                                                                                                                                                                                                                        v0.69.2
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Hospitable-Nachrichten: Sync-Gap heilen + Resync-Handle

                                                                                                                                                                                                                                                                                        • Fix A — Drift-Heal (hospitable.heal_messages, tRPC
                                                                                                                                                                                                                                                                                        • Fix B — Resync-by-Reservation (hospitable.resync_reservation, tRPC
                                                                                                                                                                                                                                                                                        • Beide teilen einen extrahierten Kern resyncReservationMessages (aus dem
                                                                                                                                                                                                                                                                                        • Idempotenz-Härtung (behebt einen vorbestehenden Prod-Bug): der kanonische
                                                                                                                                                                                                                                                                                        • Auf Prod ausgeführt (scripts/heal-hospitable-messages.ts, dry-run→real,
                                                                                                                                                                                                                                                                                        v0.69.1
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Check-in: Meldeschein & Ausweis in einem Flow

                                                                                                                                                                                                                                                                                        • Die zwei getrennten Ausweis-Erfassungen im Check-in-Portal wurden zu einem Abschnitt konsolidiert: der Multi-Gäste-Upload ist jetzt Schritt 1/5 im Meldeschein-Wizard.
                                                                                                                                                                                                                                                                                        • Der alte ?ocr_…-URL-Umweg mit Seiten-Reload entfällt, die OCR-Vorausfüllung fließt jetzt in-component direkt ins Formular.
                                                                                                                                                                                                                                                                                        • Der Upload lässt sich mit „Ohne Ausweis fortfahren" überspringen, der redundante Foto-Schritt im Unterschrift-Schritt sowie der separate Order-16-Abschnitt wurden gelöscht.
                                                                                                                                                                                                                                                                                        • Der Ausweis-Schritt erscheint nur noch, wenn id_upload_mode ihn verlangt; bei never wird er übersprungen (Schritt 1/4).
                                                                                                                                                                                                                                                                                        • Ausweis-Fotos liegen jetzt einheitlich in guest_id_uploads, die Operator-Detailseite zeigt sie in einer neuen „Ausweisdokumente"-Karte (meldescheine.id_photo_path bleibt Fallback für Alt-Datensätze).
                                                                                                                                                                                                                                                                                        • Keine Migration nötig, MCP-Registry unverändert bei 179 Tools; Umsetzung erfolgte subagent-getrieben in 7 Tasks mit Review je Task.
                                                                                                                                                                                                                                                                                        v0.69.0
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Länderabhängige Meldeschein-Pflicht (BEG IV)

                                                                                                                                                                                                                                                                                        • Rules-Engine (server/checkin/registration-rules.ts, pure + unit-getestet):
                                                                                                                                                                                                                                                                                        • Portal: Bei foreign_only fragt der Check-in-Wizard vorab „Haben alle
                                                                                                                                                                                                                                                                                        • Settings (/settings/portal → „Meldeschein & Ausweis"): Radio
                                                                                                                                                                                                                                                                                        • Retention-Cron checkin.registration-retention (gated FOYER_CHECKIN_AUTO=1,
                                                                                                                                                                                                                                                                                        • Operator: Badge „entfällt (Inland, BEG IV)" in Liste + Detail; bei
                                                                                                                                                                                                                                                                                        • Migration 0146 (additiv, Default = Status quo → verhaltensneutraler Deploy).
                                                                                                                                                                                                                                                                                        v0.68.4
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Landing: Phone-Frame-Dramaturgie (makler-os-Pattern) + Truth-Mode-Welle

                                                                                                                                                                                                                                                                                        • Die Omnichannel-Demo sitzt jetzt in einem Telefon-Rahmen in den makler-os-Maßen (448×780, 8px-Bezel, 40px-Radius) mit fester Höhe über alle Kanäle, ohne Resize beim Tab-Wechsel.
                                                                                                                                                                                                                                                                                        • Die vier Kern-Features sind keine Textkarten mehr, sondern alternierende Blöcke mit 280×560-Geräte-Mockups (Kalender, Buchungsbestätigung, Check-in-Checkliste, Task-Karten) in purem HTML/CSS.
                                                                                                                                                                                                                                                                                        • Gestrafft bzw. entfernt wurden die 13-Sprachen-Sektion, der veraltete Booking-Engine-Screenshot und rund 30 Prozent der Case-Study-/Founder-Prosa (Stats und Zitat blieben erhalten).
                                                                                                                                                                                                                                                                                        • Alle Sektions-H2s laufen jetzt einheitlich auf dem Serif-System, und die Navigation führt mit „Omnichannel" ohne Umbruch.
                                                                                                                                                                                                                                                                                        • Umgesetzt als parallele 3-Agent-Welle mit disjunkter Datei-Ownership.
                                                                                                                                                                                                                                                                                        v0.68.3
                                                                                                                                                                                                                                                                                        08. Juli 2026

                                                                                                                                                                                                                                                                                        Landing: Omnichannel-KI als Lead-Argument + Design-Entschlackung

                                                                                                                                                                                                                                                                                        • Die Startseite zeigt jetzt nach dem Hero die neue Omnichannel-Sektion „Eine KI. Fünf Posteingänge.", die dieselbe Gast-Situation über WhatsApp, Email, Booking.com, Airbnb und Telefon durchspielt.
                                                                                                                                                                                                                                                                                        • Der Telefon-Kanal zeigt einen Voice-Bot mit Foyer.AI-Badge im makler-os-Demo-Pattern.
                                                                                                                                                                                                                                                                                        • Der Hero-Absatz wurde von 7 auf 3 Zeilen gekürzt, das Feature-Grid von 12 gleichrangigen Karten auf 4 Kern-Features plus Kompakt-Liste reduziert.
                                                                                                                                                                                                                                                                                        • Die Vergleichstabelle zeigt jetzt die 6 entscheidenden Zeilen zuerst (Omnichannel), mit einem „Alle 19 Kriterien anzeigen"-Toggle für den Rest.
                                                                                                                                                                                                                                                                                        • Der Gold-Italic-Akzent beschränkt sich nur noch auf das Hero-H1, alle „//"-Code-Kommentar-Labels wurden durch Caps-Eyebrows ersetzt (inklusive Kontrast-Fix der Screenshot-Captions).
                                                                                                                                                                                                                                                                                        • Die Pricing-CTAs sind jetzt tarif-spezifisch („Foyer.OS testen") statt siebenmal identischem Button-Text.
                                                                                                                                                                                                                                                                                        v0.68.2
                                                                                                                                                                                                                                                                                        06. Juli 2026

                                                                                                                                                                                                                                                                                        Messaging-Queue: failed items auto-purge after 24h

                                                                                                                                                                                                                                                                                        • Failed scheduled messages now stay retryable for one day and are then deleted automatically instead of accumulating indefinitely — 15 stale failures had piled up since 27.06 on prod.
                                                                                                                                                                                                                                                                                        • A new hourly pg-boss cron job messaging.failed-cleanup, gated behind FOYER_MESSAGING_AUTO=1, purges failed scheduled_messages rows older than 24 hours via failed_at.
                                                                                                                                                                                                                                                                                        • Retrying a failed message removes it from the delete predicate, and the queue header now states the 24-hour auto-removal policy.
                                                                                                                                                                                                                                                                                        • The behavior was integration-tested against real Postgres covering purge, keep, legacy, and idempotency cases, with no migration required.
                                                                                                                                                                                                                                                                                        v0.68.1
                                                                                                                                                                                                                                                                                        06. Juli 2026

                                                                                                                                                                                                                                                                                        Inbox: inquiry-stage OTA threads show as „Anfrage · Airbnb"

                                                                                                                                                                                                                                                                                        • Airbnb inquiries (booking not yet confirmed) arrive as Hospitable message.created webhooks with reservation_id: null, but the inbox rendered them as anonymous with no pre-booking hint.
                                                                                                                                                                                                                                                                                        • A new conversations.platform column (migration 0145, additive) is stamped fill-once from the message payload's data.platform and backfilled from stays.source for booked threads.
                                                                                                                                                                                                                                                                                        • messages.listConversations now returns platform and isInquiry (stay-less Hospitable thread), and the Postfach renders an amber „Anfrage · Airbnb" badge for these.
                                                                                                                                                                                                                                                                                        • Once the guest books, the reconcile process relinks the stay and the badge disappears on its own.
                                                                                                                                                                                                                                                                                        • A sister fix shipped to the command-center (hospitable-messaging-clone commit 4e969cc, messaging-rules commit 8d4a191), whose history showed such sends as a fabricated "Shadow Guest".
                                                                                                                                                                                                                                                                                        v0.68.0
                                                                                                                                                                                                                                                                                        02. Juli 2026

                                                                                                                                                                                                                                                                                        3-tier billing (Connect / OS / AI), dormant behind a flag

                                                                                                                                                                                                                                                                                        • W1 foundation — tenants.tier/billing_cycle enums (migration 0139), tier-pricing.ts,
                                                                                                                                                                                                                                                                                        • W2 signup + checkout — trial/checkout/room-sync/webhook are tier-aware; signup captures
                                                                                                                                                                                                                                                                                        • W3 tRPC gating — featureProcedure/ownerFeatureProcedure gate the 8 features'
                                                                                                                                                                                                                                                                                        • W4 MCP gating — MCP agent control is AI-only; the tools-adapter gates every tools/call
                                                                                                                                                                                                                                                                                        • W5 UI upsell — gated operator pages render <PlanUpsellCard> via plan.entitlements.
                                                                                                                                                                                                                                                                                        v0.67.0
                                                                                                                                                                                                                                                                                        30. Juni 2026

                                                                                                                                                                                                                                                                                        ID-unification (W1–W3) + real-bug fixes + green integration gate

                                                                                                                                                                                                                                                                                        • W1 — external_ref normalised: all hospitable stays' external_ref now equals
                                                                                                                                                                                                                                                                                        • W2 — aggregate collapse: the 264 multi-stay reservations collapsed to one stay each (438
                                                                                                                                                                                                                                                                                        • W3 — conversation links backfilled: conversations.ex_conversation_id filled from staydb
                                                                                                                                                                                                                                                                                        • Availability — cross-tenant leak (security): the public availability query runs under
                                                                                                                                                                                                                                                                                        • Pricing — last-night off-by-one (revenue): resolve-rates excluded the last night
                                                                                                                                                                                                                                                                                        • FritzBox import — guest FK (matched calls silently dropped): the import matcher assigned
                                                                                                                                                                                                                                                                                        • Crash / reliability: getBrandVoiceStats + previewVoiceStyle interpolated a JS Date into
                                                                                                                                                                                                                                                                                        v0.66.19
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Availability double-booking fix + integration-suite consolidation

                                                                                                                                                                                                                                                                                        • Fixed a double-booking risk: availability and Stripe guards filtered on a non-existent in_house status — stay_status uses checked_in — so occupied rooms could show as available.
                                                                                                                                                                                                                                                                                        • The fix was applied in availability.ts and connect-webhook-handler.ts.
                                                                                                                                                                                                                                                                                        • Consolidated 25 integration test files onto the shared bootstrapTestDb() helper, replacing drifted per-file setup that omitted GRANT CONNECT and caused silent suite rot on Docker-down.
                                                                                                                                                                                                                                                                                        • Switched to valid v4 UUID fixtures (Zod v4 rejects version-0) and to getDb()→tenantDb() inside withTenant.
                                                                                                                                                                                                                                                                                        • The revived suite surfaced the double-booking fix plus three bugs — a pricing off-by-one, a brand-voice date-in-sql issue, a never-created late-arrival queue — tracked in operational-todos.md.
                                                                                                                                                                                                                                                                                        v0.66.18
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Off-box build → GHCR pull-deploy (ops)

                                                                                                                                                                                                                                                                                        • Deploys no longer build on the RAM-constrained 3.7 GB prod box: a dev Mac builds the arm64 image (~90s) and pushes to GHCR via build-and-push.sh; prod only pulls, migrates, recreates.
                                                                                                                                                                                                                                                                                        • scripts/deploy.sh gained a WEB_IMAGE guard — set, it pulls that tag with a relaxed RAM preflight; unset, it falls back to the byte-identical on-box build.
                                                                                                                                                                                                                                                                                        • A deploy now takes ~30-60 seconds instead of 5-7 minutes, with no OOM risk; rollback is re-deploying a previous sha- tag, and prod authenticates to GHCR with a read:packages token.
                                                                                                                                                                                                                                                                                        • The post-deploy build-cache prune is now gated on disk pressure (≥85% used) instead of running on every deploy, keeping the BuildKit/pnpm/Next caches warm between on-box builds.
                                                                                                                                                                                                                                                                                        • Repaired the test infrastructure: migration 0135 guards publish_task_rule_event against a missing pgboss.job, and pre-push now blocks when Docker is down instead of silently skipping.
                                                                                                                                                                                                                                                                                        v0.66.17
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Remove the /calls KPI strip (UI)

                                                                                                                                                                                                                                                                                        • Removed the four-card KPI strip (Heute / Verpasst heute / Ø Dauer / Gesamt) at the top of /calls, which ate too much vertical space above the call list.
                                                                                                                                                                                                                                                                                        • The underlying fritzboxCalls.stats query stays in place, since it still feeds the live "N neue Anrufe" badge.
                                                                                                                                                                                                                                                                                        • Only the card display and the now-unused fmtAvgDuration helper were removed.
                                                                                                                                                                                                                                                                                        v0.66.16
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        RAM headroom C: runtime container memory limits (ops)

                                                                                                                                                                                                                                                                                        • postgres mem_limit: 960m / mem_reservation: 256m. Sized from the live
                                                                                                                                                                                                                                                                                        • web mem_limit: 768m / mem_reservation: 256m (steady ~203 MB → ~3.8×
                                                                                                                                                                                                                                                                                        • caddy mem_limit: 128m / mem_reservation: 32m.
                                                                                                                                                                                                                                                                                        v0.66.15
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        MCP OAuth defense-in-depth hardening + prod-URL fix (#301, #302, #303)

                                                                                                                                                                                                                                                                                        • OAuth-grant revocation for operators. A new owner-only oauthGrants tRPC
                                                                                                                                                                                                                                                                                        • Header normalization in the OAuth Node bridge. node-bridge.ts strips every
                                                                                                                                                                                                                                                                                        • Strict CSP for /oauth/*. `default-src 'none'; style-src 'unsafe-inline';
                                                                                                                                                                                                                                                                                        • Prod-URL fix (#302). Three server-side URL builders — team.ts (worker-invite
                                                                                                                                                                                                                                                                                        v0.66.14
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        RAM headroom: bound the build + bigger swap (ops)

                                                                                                                                                                                                                                                                                        • Build memory cap (deploy.sh): the build now runs `docker build
                                                                                                                                                                                                                                                                                        • Swap 2 GB → 4 GB (prod host, already applied): absorbs the build spike so
                                                                                                                                                                                                                                                                                        v0.66.13
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Next.js 16 + two standalone-path bug fixes

                                                                                                                                                                                                                                                                                        • Next.js 15.5 → 16 (#296), the last outdated dependency, alongside
                                                                                                                                                                                                                                                                                        • Email-template ENOENT (#297) — the pre-arrival onboarding cron (daily
                                                                                                                                                                                                                                                                                        • Meldeschein ID-photo persistence (#298) — the meldeschein wizard's ID photo
                                                                                                                                                                                                                                                                                        v0.66.12
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Click-to-dial: tel: links + copy across the call surfaces

                                                                                                                                                                                                                                                                                        • Every operator-visible phone number is now a one-click tel: dial link with
                                                                                                                                                                                                                                                                                        • Wired across the call log (/calls desktop + mobile), the contact book
                                                                                                                                                                                                                                                                                        • Pure frontend — no backend, no new tRPC/MCP tool (tool count stays 175), no
                                                                                                                                                                                                                                                                                        v0.66.11
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        FritzBox Tier 3 backlog: missed-call → task + call↔reservation link

                                                                                                                                                                                                                                                                                        • Missed call → task: missed call rows get an "Aufgabe" button that creates a
                                                                                                                                                                                                                                                                                        • Call ↔ reservation link: a new additive fritzbox_calls.stay_id
                                                                                                                                                                                                                                                                                        v0.66.10
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Guest-portal bug fixes + E2E suite revival

                                                                                                                                                                                                                                                                                        • Untranslated section titles (guest-facing): the check-in page's getTitle
                                                                                                                                                                                                                                                                                        • Portal tRPC response-parse (guest-facing): the direct-fetch portal sections
                                                                                                                                                                                                                                                                                        • pino dev-server crash (DX): pino's dev transport (pino-pretty) runs in a
                                                                                                                                                                                                                                                                                        v0.66.9
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        FritzBox Tier 3 UX: callbacks, contact modal, live badge, guest deeplink

                                                                                                                                                                                                                                                                                        • 4-state callback for missed calls (Offen / In Bearbeitung / Zurückgerufen /
                                                                                                                                                                                                                                                                                        • Real add-contact modal: the + on a nameless call opens the contact
                                                                                                                                                                                                                                                                                        • Live "N neue Anrufe" badge: the page polls stats and shows a badge when
                                                                                                                                                                                                                                                                                        • Guest deeplink: a matched-guest call name opens the GuestCard inline
                                                                                                                                                                                                                                                                                        v0.66.8
                                                                                                                                                                                                                                                                                        29. Juni 2026

                                                                                                                                                                                                                                                                                        Off-site backups live (the #1 reliability gap)

                                                                                                                                                                                                                                                                                        • Off-site replication ENABLED to a second machine at a different provider (
                                                                                                                                                                                                                                                                                        • Watchdog target-disk check (foyer-watchdog.sh): probes the off-site
                                                                                                                                                                                                                                                                                        • Builds on v0.66.6 (the replicate-offsite.sh SOURCE fix + the watchdog).
                                                                                                                                                                                                                                                                                        v0.66.7
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        FritzBox correctness: DST timestamps + E.164 matching + guest FK

                                                                                                                                                                                                                                                                                        • DST-correct timestamps: the parser emits a naive wall-clock and Postgres does
                                                                                                                                                                                                                                                                                        • E.164 phone matching: a dependency-free toE164() post-filter removes
                                                                                                                                                                                                                                                                                        • H:MM:SS duration (calls > 99 min no longer parse to 0); batch upsert
                                                                                                                                                                                                                                                                                        • FK fritzbox_calls.guest_id → guests.id ON DELETE SET NULL (migration 0133;
                                                                                                                                                                                                                                                                                        v0.66.6
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Ops: deploy disk hygiene + health watchdog + off-site fix

                                                                                                                                                                                                                                                                                        • Deploy disk hygiene (deploy.sh, #283): each on-box build grew the
                                                                                                                                                                                                                                                                                        • Health watchdog (foyer-watchdog.sh + systemd timer, every 15 min; #283,
                                                                                                                                                                                                                                                                                        • Off-site source fix (replicate-offsite.sh): SOURCE pointed at the
                                                                                                                                                                                                                                                                                        v0.66.5
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        FritzBox call-log reliability batch

                                                                                                                                                                                                                                                                                        • HTTP-status guards: fetchCallsCsv and getFritzboxSID now throw on a
                                                                                                                                                                                                                                                                                        • Retry with backoff: a new fetchWithRetry retries transient failures
                                                                                                                                                                                                                                                                                        • Honest connection test: checkCredentials does a real SID-auth
                                                                                                                                                                                                                                                                                        • Visible import failures: per-tenant import errors are persisted
                                                                                                                                                                                                                                                                                        v0.66.4
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        DB-backup count retention

                                                                                                                                                                                                                                                                                        • backup.sh: the retention rule was age-only (-mtime +14), which bounds
                                                                                                                                                                                                                                                                                        • One-time prod cleanup: collapsed the existing pile to the newest backup
                                                                                                                                                                                                                                                                                        v0.66.3
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Security headers (CSP enforcing) + API-docs fix + shared-host hardening

                                                                                                                                                                                                                                                                                        • CSP now enforcing (was deliberately omitted): poweredByHeader: false
                                                                                                                                                                                                                                                                                        • /developers/reference fixed: the Scalar API reference threw
                                                                                                                                                                                                                                                                                        • H1 — Postgres host hardening: foyer-postgres pg_hba.conf catch-all
                                                                                                                                                                                                                                                                                        • C1 — shared-host co-tenant exposure: neighbour apps (makler-os,
                                                                                                                                                                                                                                                                                        • Hygiene: removed 9 stale .env.bak* secret-backups from prod. (M1 —
                                                                                                                                                                                                                                                                                        v0.66.2
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Rechnungsgäste-Ansicht + Invoice-Guest-Import

                                                                                                                                                                                                                                                                                        • Schema: guest_billing_addresses.reservation_ref (migration 0132,
                                                                                                                                                                                                                                                                                        • Backend: contacts.invoiceGuests query (guests with ≥1 billing address,
                                                                                                                                                                                                                                                                                        • Frontend: "Rechnungsgäste" chip on /calls/kontakte (paginated, 100/page)
                                                                                                                                                                                                                                                                                        v0.66.1
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        pg-boss self-migration ownership fix + deploy readiness gate

                                                                                                                                                                                                                                                                                        • Root cause (migration 0131): pg-boss ≥ 12 self-migrates its pgboss
                                                                                                                                                                                                                                                                                        • Deploy readiness gate: new GET /api/health/workers readiness probe
                                                                                                                                                                                                                                                                                        v0.66.0
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Contact Book + Guest Billing

                                                                                                                                                                                                                                                                                        • Contact book (/calls/kontakte): a new sub-page listing non-guest contacts — Reinigung, Rezeption, Hausmeister, Dienstleister — with multiple phone numbers, email, company, and notes. Backed by the ne…
                                                                                                                                                                                                                                                                                        • FritzBox +Kontakt (tRPC + MCP): the existing "add contact from call" flow is repointed to the new tables via a shared upsertQuickContact helper — no duplicate write paths.
                                                                                                                                                                                                                                                                                        • Guest card — email + billing addresses: the guest detail card now surfaces an editable canonical_email field (guests.set-email MCP twin). A new guest_billing_addresses table stores N billing addresse…
                                                                                                                                                                                                                                                                                        • 9 new MCP tool-twins (MCP-Twin-Rule): contacts.list, contacts.get, contacts.search-guests, contacts.upsert, contacts.delete, guest-billing.list, guest-billing.upsert, guest-billing.delete, guests.set…
                                                                                                                                                                                                                                                                                        • Invoice-address integration (auto-fill from guest_billing_addresses into the invoice form) is intentionally deferred to a future focused task.
                                                                                                                                                                                                                                                                                        v0.65.4
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Operator UX (Übergabe / Übersicht / Heute + Nav) + email-routing fix

                                                                                                                                                                                                                                                                                        • Übergabe (/handover): a new auto-compiled „Lage jetzt" briefing above the notes — today's arrivals/departures, unanswered guest messages, open + urgent tasks, pending cleaning, rooms in maintenance, …
                                                                                                                                                                                                                                                                                        • Übersicht (/dashboard): reframed from a counter hub into business-health + alerts — KPI row (Belegung %, Umsatz, ADR from reports.revenueStats; KI-Antwortquote from dashboard.aiAnalytics) + an Alarme…
                                                                                                                                                                                                                                                                                        • Heute (/today): an action board — summary bar, arrival flags (missing Zimmer/Kaution red, Ausweis/Ankunftszeit amber, row tint) and a per-row quick-action.
                                                                                                                                                                                                                                                                                        • Navigation: „Anrufe" promoted to a top-level sidebar item (under „Sicherheit"); new Einstellungen → Navigation page to reorder + hide top-level items per browser (localStorage, drag-&-drop + ↑/↓; „Ei…
                                                                                                                                                                                                                                                                                        • Fix — signed_agreements restored on prod: the table was recorded-applied in the ledger but missing (/today + guest-portal AGB-signing errored with relation does not exist). Re-applied migration 0057;…
                                                                                                                                                                                                                                                                                        • Fix — inbox-reply email routing: dispatch.ts no longer hardcodes provider_name="postmark" — sendEmail (Gmail→Brevo→Postmark) already sent via Brevo, so replies were mislabeled and the delivery-reconc…
                                                                                                                                                                                                                                                                                        v0.65.3
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Security & reliability quick-wins (deep-audit follow-up)

                                                                                                                                                                                                                                                                                        • Webhook SSRF guard (server/webhook/ssrf-guard.ts): tenant-supplied webhook URLs are now re-resolved and rejected if they point at loopback/RFC1918/link-local/CGNAT/cloud-metadata IPs (or non-http(s) …
                                                                                                                                                                                                                                                                                        • FORCE RLS regression fixed (migration 0129): re-applies FORCE ROW LEVEL SECURITY to every RLS-enabled public table that lost it from migration 0089 onward (~54 tables incl. all Hospitable guest-PII, …
                                                                                                                                                                                                                                                                                        • Invoice-Portal indexes (migration 0129): reservation_id indexes on invoice_form_submissions/invoice_addresses/invoice_tax_ids — kills the O(stays × seq-scan) correlated-subquery cost in listInvoiceRe…
                                                                                                                                                                                                                                                                                        • pg-boss crash-guard: the job-queue singleton now has an error listener (log + Sentry) — an emitter error can no longer take down the worker process.
                                                                                                                                                                                                                                                                                        • DR runbook fix: the restore steps now read from the directory where backups actually land, instead of one that was never populated.
                                                                                                                                                                                                                                                                                        v0.65.2
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        FritzBox Call-Log (Phase ι): operator call list + BYOK import

                                                                                                                                                                                                                                                                                        • Added a tenant-scoped FritzBox call log so operators can see who called and act on it directly inside Foyer.
                                                                                                                                                                                                                                                                                        • A PBKDF2 SID client fetches the call-list CSV from the FritzBox using BYOK (per-tenant host plus encrypted password, with a test-connection probe in Settings).
                                                                                                                                                                                                                                                                                        • A pure parser layer normalizes German dates and durations, and a daily pg-boss worker (gated behind FOYER_FRITZBOX_AUTO) imports new rows with Foyer-guest matching.
                                                                                                                                                                                                                                                                                        • The operator Anrufe page lists calls with contacts, callback flags, and notes.
                                                                                                                                                                                                                                                                                        • Eight new MCP tool-twins (fritzbox-calls.*) bring the registry from 157 to 165 tools.
                                                                                                                                                                                                                                                                                        • Tenant-scoped schema plus RLS were added in migration 0128.
                                                                                                                                                                                                                                                                                        v0.65.1
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        Invoice Portal: operator request pipeline (command-center parity)

                                                                                                                                                                                                                                                                                        • Operator UI (/invoices): five tabs — Anfragen (with status sub-filters Offen / In Bearbeitung / Versandbereit / Erledigt + search), Offen (bookings still needing an invoice), Erstellt / Versendet / S…
                                                                                                                                                                                                                                                                                        • Workflow status (migration 0127): new invoice_workflow_status enum (offen → in_bearbeitung → versandbereit → erledigt, free transitions) on invoice_form_submissions, lazily materialized per reservati…
                                                                                                                                                                                                                                                                                        • 5 new tRPC procedures + MCP twins (MCP-Twin-Rule): invoices.listRequests / requestStats (read), setRequestStatus / createRequest / generateFromRequest (mutations; generate confirm-gated). Registry 15…
                                                                                                                                                                                                                                                                                        • Completeness badges + tab counts are computed server-side under RLS; no new external dependency. Behavior coverage of the pipeline SQL is deferred to the testcontainers-Postgres suite (router + tool-…
                                                                                                                                                                                                                                                                                        v0.65.0
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        MCP OAuth connect flow (sign-in + consent, Hospitable-style)

                                                                                                                                                                                                                                                                                        • OAuth 2.1 Authorization Server via panva/oidc-provider (ADR 2026-06-28): Foyer is both the Resource Server (/mcp) and the AS (/oauth/*). Opaque tokens, PKCE-required (S256), Dynamic Client Registrati…
                                                                                                                                                                                                                                                                                        • Discovery: /.well-known/oauth-protected-resource (RFC 9728) + /.well-known/oauth-authorization-server (RFC 8414); /mcp 401 now carries WWW-Authenticate: …resource_metadata=….
                                                                                                                                                                                                                                                                                        • Login + consent: reuses the Auth.js operator session; a branded consent screen where the operator approves and picks scope — full or read-only (→ mcp / mcp:read), mapped onto the existing least-privi…
                                                                                                                                                                                                                                                                                        • /mcp accepts OAuth tokens alongside fk_live_ keys (verifyBearer): audience validated, scope → tool-gate, accountId → tenant. Tenant isolation (RLS) + read-only enforcement identical for both.
                                                                                                                                                                                                                                                                                        • Security: passed an adversarial review (no critical findings); refresh-token rotation with replay-revocation, findAccount user-liveness gate, secrets (OIDC_JWKS/OIDC_COOKIE_KEYS) env-only + fail-clos…
                                                                                                                                                                                                                                                                                        v0.64.2
                                                                                                                                                                                                                                                                                        28. Juni 2026

                                                                                                                                                                                                                                                                                        MCP api-key hardening: read-only scope + expiry + rotation

                                                                                                                                                                                                                                                                                        • Read-only keys (migration 0125): mint a key with scope=read_only — it can only call readOnly-flagged MCP tools; every write/mutation tool is denied at the tools-adapter (read_only_key). Ideal for a k…
                                                                                                                                                                                                                                                                                        • Expiry: optional expires_at per key; verifyApiKey rejects expired keys — covers the MCP server and the REST developer API (central check, GET-only surface).
                                                                                                                                                                                                                                                                                        • Rotation: one-click rotate (revoke old + mint fresh secret, same name + scope) in Settings → API-Keys.
                                                                                                                                                                                                                                                                                        • Settings UI: scope toggle + expiry select on create; scope badge, expiry/expired state, and Rotate button per key.
                                                                                                                                                                                                                                                                                        • Existing keys default to scope=full + no expiry — fully backward-compatible. Security rules (scopeDeniesTool, isKeyExpired) are pure + unit-tested.
                                                                                                                                                                                                                                                                                        • This hardens Hospitable's fallback-bearer-token equivalent; the OAuth connect-flow (Hospitable's primary path) is the next piece.
                                                                                                                                                                                                                                                                                        v0.64.1
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        phase θ hardening: pricing-drift monitor + regression guards + summary heal

                                                                                                                                                                                                                                                                                        • folio-init clamp (#233): room_charge is floored at ≥ 0, so a mis-priced/manual booking whose city tax exceeds the booking total can no longer produce a negative folio line.
                                                                                                                                                                                                                                                                                        • ×100 ingest regression test (#232): locks the Hospitable pricing ingest boundary against the ×100/÷100 drift that caused the v0.63.x inflation (asserts 6585¢ → "65.85" / 6585, not 658500).
                                                                                                                                                                                                                                                                                        • audit:rls in pre-commit (#231): the RLS audit now runs (and blocks the commit) automatically whenever staged changes touch apps/web/db/schema/ or apps/web/db/migrations/, closing the previously manua…
                                                                                                                                                                                                                                                                                        v0.64.0
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        Messaging: parity with the legacy admin (codes conditions, AI analytics, rule conditions, semantic detection)

                                                                                                                                                                                                                                                                                        • Custom Codes (migration 0121): inline edit + per-code conditions (always / nights-range / property / booking-date window) + property/platform scope + usage_count + per-language value translations. Ga…
                                                                                                                                                                                                                                                                                        • AI questions (migration 0122): false_positive_count + an analytics panel (overall accuracy, detections, false-positives, top-topics bars) and a richer Detection Tester (confidence-threshold slider, t…
                                                                                                                                                                                                                                                                                        • Rules (migration 0123): per-rule conditions (min/max nights, min/max guests, booking-window) applied in the scheduler, plus a live preview with variable-insert buttons in the editor.
                                                                                                                                                                                                                                                                                        • Semantic FAQ detection (migration 0124): per-tenant detection mode — lexical (default, trigger-phrase) · OpenAI · Voyage — selectable in Settings. Question embeddings are stored as JSONB float arrays…
                                                                                                                                                                                                                                                                                        • Queue / History: edit a pending message before it sends (wired the previously-unused editQueueItem) and resend an already-processed message (re-renders from the current rule + stay, bypasses idempote…
                                                                                                                                                                                                                                                                                        • Schnellantworten: category filter + text search.
                                                                                                                                                                                                                                                                                        • MCP tool-twins (Critical Rule #2): each new endpoint exposed as an MCP tool — ai_questions.report_false_positive, ai_questions.regenerate_embeddings, messaging_rules.resend_queue_item, tenants.get_fa…
                                                                                                                                                                                                                                                                                        • New side-effect-free modules with unit tests (code-conditions, rule-conditions, semantic-faq — 39 cases); all migrations additive; pnpm audit:rls clean.
                                                                                                                                                                                                                                                                                        v0.63.4
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        nav: "Aufenthalte" defaults to the calendar

                                                                                                                                                                                                                                                                                        • Operator nav (#236): clicking the Aufenthalte sidebar group now lands on /calendar (the occupancy timeline) instead of /stays (the list). The list stays one click away via the Liste child. One-line h…
                                                                                                                                                                                                                                                                                        v0.63.3
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        phase θ pricing: residual folio inflation corrected (Phase 2)

                                                                                                                                                                                                                                                                                        • Root cause (confirmed in code): stays.booking_total_cents is FILL-ONLY (ingest-pricing.ts / projectors/pricing.ts set it only when NULL). It was frozen at the live-webhook ×100-era inflated value and…
                                                                                                                                                                                                                                                                                        • Fix (data correction — scripts/correct-pricing-from-lines.ts, #224–#226): per affected LIVE Hospitable stay, booking_total_cents := Guest TotalPrice → regenStayFolio (rebuilds room_charge + city_tax …
                                                                                                                                                                                                                                                                                        • Reporting impact: the inflated folios were counted as revenue. Last-90-days revenue corrects to roughly a third of what was previously reported (the old number was ~3× inflated). Combined with v0.63.…
                                                                                                                                                                                                                                                                                        v0.63.2
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        phase θ hardening: aggregate model locked (no silent revert)

                                                                                                                                                                                                                                                                                        • Importer is aggregate-only: removed the FOYER_AGGREGATE_BOOKINGS flag + the per-room split branch from upsertReservation (poll + live webhook both go through it). The OTA idempotency lookup omits roo…
                                                                                                                                                                                                                                                                                        • DB lock (migration 0120): replaced stays_tenant_ota_room_unique (tenant, ota_source, ota_reservation_id, room) with a partial unique index stays_tenant_ota_live_unique (tenant, ota_source, ota_reserv…
                                                                                                                                                                                                                                                                                        • The per-room split utilities (split-reservation.ts, resplit-multiunit-stays.ts) are kept — they host shared helpers (splitCentsEvenly, regenStayFolio) still used by live pricing ingest + the pricing-…
                                                                                                                                                                                                                                                                                        • Fixed the pre-existing red import-reservations.test.ts (mock lacked .orderBy/.limit) and flipped its two multi-unit cases to assert the aggregate result. Full suite green.
                                                                                                                                                                                                                                                                                        v0.63.1
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        phase θ follow-ups: calendar fan-out fix + pricing correction

                                                                                                                                                                                                                                                                                        • Calendar — half-migrated bookings now fan out fully (#221): computeCalendarRooms only fanned an aggregate booking across its rooms when the reservation had exactly ONE live stay. A half-migrated book…
                                                                                                                                                                                                                                                                                        v0.63.0
                                                                                                                                                                                                                                                                                        27. Juni 2026

                                                                                                                                                                                                                                                                                        phase θ: aggregate booking model (shipped + cut over)

                                                                                                                                                                                                                                                                                        • W1 — Importer (#204): upsertReservation keeps a multi-room reservation as ONE aggregate stay (room dropped from the idempotency key).
                                                                                                                                                                                                                                                                                        • W2 — roomsForStay() (#205): model-independent room-set helper — own ∪ siblings ∪ hospitable_property_reservations→mapping.
                                                                                                                                                                                                                                                                                        • W3 — Calendar fan-out (#206): an aggregate stay occupies all its booked rooms on the timeline.
                                                                                                                                                                                                                                                                                        • W4 — Housekeeping (#207): checkout cleaning tasks generated per booked room.
                                                                                                                                                                                                                                                                                        • W5 — Check-in messaging (#208): per-room codes (Z_Nr25-N / Z_C25-N) resolved for every booked room.
                                                                                                                                                                                                                                                                                        • W6 — Folio (#209): combined Hotelzimmer — N Zimmer × M Nächte line.
                                                                                                                                                                                                                                                                                        • W7a/W7b — Migration (#210, #212–#214): unit-tested parity planner + merge-repoint executor (re-point 27 stays.id FK tables → canonical, soft-cancel siblings, per-reservation parity-assert + rollback)…
                                                                                                                                                                                                                                                                                        • W8 — Docs + band-aid retirement (#211, #217): CHANGELOG/runbook; the split-model read-side consolidations (group-stays, detail room-tabs, chatStayId) removed — the list/calendar now show one row per …
                                                                                                                                                                                                                                                                                        v0.62.0
                                                                                                                                                                                                                                                                                        26. Juni 2026

                                                                                                                                                                                                                                                                                        MCP expansion: run the business, not just read it

                                                                                                                                                                                                                                                                                        • Reporting & dashboard (read-only): reports.revenue_stats (occupancy %, ADR, RevPAR, revenue + per-room-type over 7/30/90 days) and dashboard.today (inbound 24h, open/urgent tasks, stays in/out today …
                                                                                                                                                                                                                                                                                        • Stays operations (confirm-gated): stays.create_booking, stays.update_dates, stays.perform_checkout, and owner-only stays.cancel_and_refund — whose Stripe refund path is extracted to server/stays/canc…
                                                                                                                                                                                                                                                                                        • Messaging automation: messaging_rules.list_rules, messaging_rules.list_queue, and confirm-gated messaging_rules.edit_queue_item / cancel_queue_item — manage the scheduled guest-message queue fleet-wi…
                                                                                                                                                                                                                                                                                        • Rate suggestions: rate-suggestions.list + confirm-gated rate-suggestions.act (accept writes room_rates, reject/override).
                                                                                                                                                                                                                                                                                        • All locked into the mcp-coverage EXPECTED_TOOLS gate. No migration (reads/edits on existing tables).
                                                                                                                                                                                                                                                                                        v0.61.0
                                                                                                                                                                                                                                                                                        26. Juni 2026

                                                                                                                                                                                                                                                                                        Calendar: occupancy timeline + rich booking quick-card

                                                                                                                                                                                                                                                                                        • Occupancy timeline: units as rows, horizontal date axis; booking bars coloured by channel (Booking.com blue, Airbnb red, direct amber, manual green), solid grey "Gesperrt" bars for blocked nights, ni…
                                                                                                                                                                                                                                                                                        • Rich booking quick-card (click a bar): guest + channel badge + status pill, confirmation code (copy), check-in/out with arrival/departure times, nights · price · guest breakdown (adults/children/infa…
                                                                                                                                                                                                                                                                                        • Automatic-message timeline in the card: scheduled + already-sent guest messages from the scheduled_messages queue, with inline edit/cancel of pending items. New messagingRules.scheduledForStay (+ MCP…
                                                                                                                                                                                                                                                                                        • Tasks view + add-booking / block-range dialogs from the same surface.
                                                                                                                                                                                                                                                                                        • No migration (reads/edits on existing tables). A dev-only /calendar-preview route renders the real timeline against a mock tRPC link for design iteration (404s in production).
                                                                                                                                                                                                                                                                                        v0.60.0
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Security: camera access-audit + ops hardening

                                                                                                                                                                                                                                                                                        • Access audit: new security_access_log (RLS, migration 0117), written throttled (≤1 row per user+camera+action per 60 s) from the snapshot/live/rtc proxy routes — user_id has no FK so the trail surviv…
                                                                                                                                                                                                                                                                                        • Ops: a watchdog restores the connection to the house when it goes stale after an IP change; the 15-minute health check now covers the live pipeline as well.
                                                                                                                                                                                                                                                                                        • Deferred: one further hardening step on the camera source is prepared but waiting on coordination with its operator.
                                                                                                                                                                                                                                                                                        v0.59.0
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Security live: sub-second video

                                                                                                                                                                                                                                                                                        • The live path now serves a lower-latency format (video-only — audio dropped); the player tries it first and falls back to the previous one, then to snapshots. About 1 s instead of 6–15 s.
                                                                                                                                                                                                                                                                                        • Everything stays behind Foyer's session auth, over ordinary HTTPS — no WebSocket, no UDP. The streaming service is not reachable from outside.
                                                                                                                                                                                                                                                                                        v0.58.1
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Security live: sub-stream tiles + HD fullscreen, self-healing

                                                                                                                                                                                                                                                                                        • Sub stream for tiles, HD on demand: the dashboard grid plays the low-resolution sub stream, so several feeds fit a normal upstream connection. Fullscreen requests the main stream via a new /hd/ path …
                                                                                                                                                                                                                                                                                        • Self-healing playback: transient drops now recover in place (hls.js startLoad / recoverMediaError) instead of tearing down and reloading, so a brief network blip no longer shows a visible cut. Buffer…
                                                                                                                                                                                                                                                                                        • Service: the on-demand reaper is more lenient (45 s idle, 22 s stale-segment watchdog) and the warm-up window widened so the slower-keyframe sub stream serves its first playlist on the first request.
                                                                                                                                                                                                                                                                                        v0.58.0
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Security: live camera video

                                                                                                                                                                                                                                                                                        • Live path: the cameras' native stream is remuxed on demand — no transcode, and audio is dropped, because German law restricts audio surveillance. The pipeline starts on the first request and shuts do…
                                                                                                                                                                                                                                                                                        • Foyer proxy + player: a tenant-scoped route serves the stream; the requested file name is allowlisted, and the credentials for the camera source never leave the server. The /security page plays it wi…
                                                                                                                                                                                                                                                                                        • Coverage: wired cameras stream live; battery-powered devices and the doorbell stay snapshot-only by design. A dead route was removed.
                                                                                                                                                                                                                                                                                        • Runbook: docs/security-cameras.md (live architecture, WG tunnel, wg show / ffprobe diagnostics).
                                                                                                                                                                                                                                                                                        v0.57.1
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Email: Postmark → Brevo (magic-link + transactional)

                                                                                                                                                                                                                                                                                        • Brevo SMTP (smtp-relay.brevo.com:587, STARTTLS) is the primary outbound provider for magic-link login and guest-reply mail — sendonly SMTP key, prod egress IP whitelisted, getfoyer.app domain-authent…
                                                                                                                                                                                                                                                                                        • Branded magic-link email: HTML template (button + copy-link fallback + security note) with a plain-text alternative → multipart for deliverability. New server/email/templates/magic-link.ts.
                                                                                                                                                                                                                                                                                        • Fallback chains: magic-link = Brevo → Gmail → (dev) MailHog, with the dead Postmark SMTP/HTTP branch removed; guest replies (postmark-outbound.ts) = Gmail → Brevo → Postmark.
                                                                                                                                                                                                                                                                                        • Postmark stays for inbound parsing only.
                                                                                                                                                                                                                                                                                        v0.57.0
                                                                                                                                                                                                                                                                                        25. Juni 2026

                                                                                                                                                                                                                                                                                        Security module: cameras + doorbell, monitoring & events

                                                                                                                                                                                                                                                                                        • Cameras + doorbell: wired cameras and a battery doorbell, proxied per property so the browser never sees device credentials; the doorbell client rotates and persists its token. Doorbell modelled as a…
                                                                                                                                                                                                                                                                                        • Real-time events: the service is a persistent Ring subscriber; doorbell ding/motion push to /api/v1/security/events (shared-secret webhook) and surface as a "Letzte Ereignisse" strip. New security_ev…
                                                                                                                                                                                                                                                                                        • Doorbell UI: its own "Türklingel" card with a battery % badge (security.ringHealth), refreshed every 60 s (battery-friendly; the service caches Ring frames ~120 s).
                                                                                                                                                                                                                                                                                        • Latency: lazy prewarm keeps recently-viewed camera frames warm — instant during active viewing, zero load when idle. A cold snapshot took about ten seconds.
                                                                                                                                                                                                                                                                                        • Monitoring: a 15-min health cron e-mails on 2 consecutive device failures (guards against silent breakage like an expired Ring token); nginx limit_req rate-limit on the proxy.
                                                                                                                                                                                                                                                                                        • Runbook + architecture: docs/security-cameras.md. Deferred (documented): origin lockdown via Cloudflare Access, access-audit log, live video, Frigate NVR, two-way audio, multi-property onboarding.
                                                                                                                                                                                                                                                                                        v0.56.3
                                                                                                                                                                                                                                                                                        15. Juni 2026

                                                                                                                                                                                                                                                                                        Hospitable reviews/properties: lossless ingest fixes

                                                                                                                                                                                                                                                                                        • Reviews data-loss fixed: the review ingest read flat field names, but the real Hospitable payload (the review.created webhook and the capture page) is nested (public.{rating,review}, private.{feedbac…
                                                                                                                                                                                                                                                                                        • Property data-loss fixed: same class of bug in the listings projector + property webhook ingest — address/checkin/checkout are nested, not flat, and the capture endpoint now returns the property obje…
                                                                                                                                                                                                                                                                                        • Reviews/properties reconcile re-enabled: the 15-min capture poll now hits the live endpoints (/v2/properties + per-property /v2/properties/{uuid}/reviews; the old /v2/reviews, /v2/listings and /v2/co…
                                                                                                                                                                                                                                                                                        • Reservations verified clean — no change needed; the proven importer maps the webhook (same shape as the reservations API), every stay with check-in dates and guests fully populated.
                                                                                                                                                                                                                                                                                        • Reference-only follow-up noted (not shipped): the property sub-cluster parity remap (capacities/amenities/room-details), whose /v2/properties shapes differ from the older listings shape.
                                                                                                                                                                                                                                                                                        v0.56.2
                                                                                                                                                                                                                                                                                        15. Juni 2026

                                                                                                                                                                                                                                                                                        Multi-room folio self-heal + backfill

                                                                                                                                                                                                                                                                                        • Backfill: corrected 80 stale multi-room folios on prod. Settle-safe — OTA auto-settle payments are moved with the ±1-cent rounding shift so each folio stays balanced; closed folios are skipped. One-s…
                                                                                                                                                                                                                                                                                        • Self-heal (durable fix): the folio.reconcile cron now re-derives any CURRENT/UPCOMING multi-room aggregate whose folio drifted to a single-room label, converging it to Hotelzimmer within ≤30 min. Sco…
                                                                                                                                                                                                                                                                                        • Locked by tests: roomLabelFor (the multi-room → Hotelzimmer rule) and decideFolioReseed (the settle-safe re-seed decision) extracted as pure functions, with 11 new unit tests covering the label rule …
                                                                                                                                                                                                                                                                                        v0.56.1
                                                                                                                                                                                                                                                                                        13. Juni 2026

                                                                                                                                                                                                                                                                                        Folio hardening + ops/type cleanup

                                                                                                                                                                                                                                                                                        • Folio close-guard: financial mutations (add/update/reset line, remove line, add/remove payment) are now rejected with folio_closed once a stay's folio is closed (folio_closed_at set) — enforced in th…
                                                                                                                                                                                                                                                                                        • Folio E2E smoke (tests/e2e/folio.spec.ts, gated behind FOYER_E2E_FOLIO_LIVE): columns render, inline-edit updates Gesamt, reset restores without emptying (guards the reset-wipe bug class), multi-room…
                                                                                                                                                                                                                                                                                        • pg-boss handler fix: channel-rate-sync, channel-availability-sync, review-request, upsell-offer workers used the obsolete single-job handler form (received the Job[] batch and read .data off the arra…
                                                                                                                                                                                                                                                                                        • TypeScript baseline 50 → 18: cleared 32 type errors across jobs/tools/tests (no any, no @ts-ignore).
                                                                                                                                                                                                                                                                                        • Migration tracking: schema_migrations ledger (migration 0113, grant-gated like stripe_webhook_events) + scripts/apply-migrations.ts (--dry-run / --baseline). Prod baselined (112 versions).
                                                                                                                                                                                                                                                                                        • Transaction-boundary audit: confirmed the folio reset connection-isolation bug class has no other live instances; one LOW concurrency TOCTOU in checkin.saveArrivalTime noted for the backlog.
                                                                                                                                                                                                                                                                                        • CLAUDE.md refreshed: Rule #5 (Hospitable reconcile) marked implemented; MCP tool count reconciled.
                                                                                                                                                                                                                                                                                        v0.56.0
                                                                                                                                                                                                                                                                                        13. Juni 2026

                                                                                                                                                                                                                                                                                        Smart-Lock (η.6) documented + Landing-Page/Doku-Sync

                                                                                                                                                                                                                                                                                        • smart_locks + access_codes schema with Pattern-A RLS
                                                                                                                                                                                                                                                                                        • SmartLockAdapter interface + NukiAdapter + registry (resolved by lock_type); Salto/Dormakaba as adapter stubs
                                                                                                                                                                                                                                                                                        • Lifecycle: check-in mints a 6-digit PIN (crypto.randomInt) with a validity window → check-out revokes it vendor-side
                                                                                                                                                                                                                                                                                        • BYOK credentials encrypted at rest (AES-256-GCM)
                                                                                                                                                                                                                                                                                        • tRPC router + /settings/integrations/smart-locks UI + MCP twin (server/tools/smart-locks.ts)
                                                                                                                                                                                                                                                                                        • MCP action count 52 → 117 (real defineTool registry size) in the comparison table, the "Wo Foyer schlägt" bullet, and feature block /10
                                                                                                                                                                                                                                                                                        • New comparison rows: Smart-Lock keyless Entry + Lost & Found
                                                                                                                                                                                                                                                                                        • New feature blocks /11 (Smart-Lock) + /12 (Lost & Found); "Zehn" → "Zwölf Bausteine"
                                                                                                                                                                                                                                                                                        v0.55.0
                                                                                                                                                                                                                                                                                        13. Juni 2026

                                                                                                                                                                                                                                                                                        Hospitable multi-unit reservations + multi-room folio

                                                                                                                                                                                                                                                                                        • Migration 0112 (stays_multiunit_ota_key) — widens the OTA idempotency key from (tenant, ota_source, ota_reservation_id) to include room, so an N-room reservation books N stays instead of collapsing t…
                                                                                                                                                                                                                                                                                        • split-reservation.ts (new) — even-split helper (splitCentsEvenly) distributing reservation total/guests/adults across booked rooms, remainder on the first rooms so per-room shares sum EXACTLY to the …
                                                                                                                                                                                                                                                                                        • Backfill (import-stays-from-staydb.ts) + live importer (import-reservations.ts) + pricing projector now create/price one stay per room.
                                                                                                                                                                                                                                                                                        • fix(hospitable): guest total derived from the TotalPrice bucket, not SUM(guest lines) — fixes triple-counting on multi-guest bookings.
                                                                                                                                                                                                                                                                                        • A multi-room aggregate stay's room_charge now shows the room count instead of qty = 1, derived from hospitable_property_reservations. totalCents stays authoritative so paid folios stay balanced.
                                                                                                                                                                                                                                                                                        • Combined line: one room_charge line per stay (not one per night) — Menge = Zimmer × Nächte, Einzelpreis = Preis/Zimmer-Nacht.
                                                                                                                                                                                                                                                                                        • Generic label Hotelzimmer for multi-room stays (single-room stays keep their Zimmer <nr> label).
                                                                                                                                                                                                                                                                                        • Deterministic ordering: Logis (room_charge) → operator extras → Beherbergungssteuer (city_tax), then date — no longer dependent on created_at ties.
                                                                                                                                                                                                                                                                                        v0.54.0
                                                                                                                                                                                                                                                                                        24. Mai 2026

                                                                                                                                                                                                                                                                                        Voice-AI-Agent Wave 4+5 closeout (Phase η.9 final)

                                                                                                                                                                                                                                                                                        • server/stripe/voice-hold-refund.ts (new) — charge.refunded webhook handler. Looks up the originating Checkout Session via payment_intent to recover metadata.foyer_stay_id. Full refund → stay flips to…
                                                                                                                                                                                                                                                                                        • /voice-calls/[callId] — native HTML5 audio player + download link for recording_url. Empty-state German message when no recording.
                                                                                                                                                                                                                                                                                        • /voice-calls — "CSV exportieren" button + new endpoint GET /api/v1/voice-calls/export (auth-gated, semicolon-delimited RFC 4180, honours days+outcome query params).
                                                                                                                                                                                                                                                                                        • tests/e2e/voice-hold-ota.spec.ts (new) — Playwright OTA hold→unblock E2E scaffold. Gated behind FOYER_E2E_OTA_LIVE=1 until Booking.com/Expedia sandbox creds are configured.
                                                                                                                                                                                                                                                                                        • docs/adr/2026-05-24-byok-stripe-decision.md (new) — ADR rejecting true-BYOK Stripe in favor of existing Stripe Connect Standard (per-tenant payouts already work via destination charges).
                                                                                                                                                                                                                                                                                        v0.53.0
                                                                                                                                                                                                                                                                                        22. Mai 2026

                                                                                                                                                                                                                                                                                        Voice-AI-Agent Wave 5.1 (race fix)

                                                                                                                                                                                                                                                                                        • server/jobs/stays-hold-expiry.ts refactored — per-stay one-shot pg-boss job (stays.hold-expire-one) schedules expiry at the EXACT hold_expires_at timestamp via boss.send(..., { startAfter }).
                                                                                                                                                                                                                                                                                        • voice-hold.create now schedules the one-shot expiry after insert (non-throwing — falls back to batch sweep if scheduling fails).
                                                                                                                                                                                                                                                                                        • Batch sweep cron (stays.hold-expiry, every 5 min) kept as safety net for orphaned stays.
                                                                                                                                                                                                                                                                                        • Bonus: OTA availability re-open moved into expireOneHold — room reopens within seconds of expiry, not on next 5-min tick.
                                                                                                                                                                                                                                                                                        v0.52.0
                                                                                                                                                                                                                                                                                        22. Mai 2026

                                                                                                                                                                                                                                                                                        Voice-AI-Agent Wave 4.1 (Stripe reconcile)

                                                                                                                                                                                                                                                                                        • server/stripe/voice-hold-reconcile.ts (new) — handles checkout.session.completed events dispatched via metadata.foyer_source='voice'. Flips stays.status from hold to confirmed on successful payment.
                                                                                                                                                                                                                                                                                        • Reuses existing /api/v1/stripe/connect-webhook endpoint — no new Stripe subscription needed.
                                                                                                                                                                                                                                                                                        • Idempotent via existing stripe_webhook_events table (Migration 0025).
                                                                                                                                                                                                                                                                                        • 10 new unit tests: idempotency, status-machine transitions, missing metadata, already-cancelled (warn-log only).
                                                                                                                                                                                                                                                                                        v0.51.0
                                                                                                                                                                                                                                                                                        22. Mai 2026

                                                                                                                                                                                                                                                                                        Voice-AI-Agent (Phase η.9, Waves 1+2+3)

                                                                                                                                                                                                                                                                                        • Schema: voice_agent_calls + voice_agent_call_actions + tenants.voice_settings JSONB (Migration 0091)
                                                                                                                                                                                                                                                                                        • Tenant-from-DID resolver mit E.164 Normalization (server/voice/tenant-from-did.ts)
                                                                                                                                                                                                                                                                                        • 3 MCP-Tools für externe Voice-Bots:
                                                                                                                                                                                                                                                                                        • voice-availability.check — live inventory + spoken-friendly rates (Wave 3: hold-aware)
                                                                                                                                                                                                                                                                                        • voice-hold.create — 30-min reservation-hold + SMS pay-link (Wave 3: real Stripe link)
                                                                                                                                                                                                                                                                                        • voice-facts.lookup — hotel facts Q&A (multi-locale aus ε.1.5 hotel_facts)
                                                                                                                                                                                                                                                                                        • Vapi-Webhook Endpoint POST /api/v1/voice/vapi-webhook mit HMAC-SHA256 Signature-Verify
                                                                                                                                                                                                                                                                                        • stays.status enum gewinnt 'hold' value + hold_expires_at TIMESTAMPTZ + source TEXT (Migration 0092 — ALTER TYPE, non-transactional)
                                                                                                                                                                                                                                                                                        v0.50.0
                                                                                                                                                                                                                                                                                        22. Mai 2026

                                                                                                                                                                                                                                                                                        Lost & Found (Phase η.10) + Infrastructure baseline

                                                                                                                                                                                                                                                                                        • Migration 0090: lost_items Tabelle + Pattern-A-RLS (tenant_id Filter, owner/staff/system Rollen)
                                                                                                                                                                                                                                                                                        • Neue /operations/lost-and-found-Seite für Operatoren (Liste, Status-Transitions, Foto-Upload)
                                                                                                                                                                                                                                                                                        • Guest-Portal /check-in/<token>/lost-found — Gäste melden vermisste Items selbst nach
                                                                                                                                                                                                                                                                                        • WhatsApp-Staff-Inbound: Pattern Found in 204: <item> → auto-record als lost_items-Row
                                                                                                                                                                                                                                                                                        • MCP-Tools: lost-found.list, lost-found.create (Twin zu tRPC-Router lostFound)
                                                                                                                                                                                                                                                                                        • pg-boss Retention-Cron: 90/180-Tage-Reminder + Telegram-Alert auf Schwellwert 180d
                                                                                                                                                                                                                                                                                        • Unit-Test: cross-tenant RLS-Block für lost_items (Testcontainers Postgres)
                                                                                                                                                                                                                                                                                        • PortalShell footer link to /check-in/<token>/lost-found (side-lookup, outside section-registry)
                                                                                                                                                                                                                                                                                        v0.49.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Hotel-Facts CRUD UI + Reconcile Telegram Alerts

                                                                                                                                                                                                                                                                                        • /settings/hotel-info: new "Eigene Hotel-Facts" section — add/edit/delete %fact:key% facts inline
                                                                                                                                                                                                                                                                                        • tRPC hotelFacts.upsert + hotelFacts.delete (owner-only, Pattern A RLS)
                                                                                                                                                                                                                                                                                        • Facts used by AI compose context, %fact:key% template substitution, and VAPI get_hotel_info
                                                                                                                                                                                                                                                                                        • sendTelegramAlert helper: fire-and-forget, no-ops when TG_BOT_TOKEN/TG_CHAT_ID unset
                                                                                                                                                                                                                                                                                        • Hospitable reconcile: Telegram ping when silent-drop messages are recovered (Critical Rule #5)
                                                                                                                                                                                                                                                                                        v0.48.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Pay-at-Hotel Booking Mode + E2E Smoke Tests

                                                                                                                                                                                                                                                                                        • Migration 0087: payment_mode TEXT NOT NULL DEFAULT 'stripe' auf rate_plans (CHECK: stripe | pay_at_hotel)
                                                                                                                                                                                                                                                                                        • Neuer REST-Endpoint POST /api/v1/booking/[slug]/reserve — erstellt Stay direkt ohne Stripe-Checkout
                                                                                                                                                                                                                                                                                        • StepReview.tsx: zeigt "Zahlung vor Ort"-Hinweis + alternativen CTA wenn paymentMode = pay_at_hotel
                                                                                                                                                                                                                                                                                        • /book/[slug]: ?status=reserved Success-Handler für direkten Booking-Flow
                                                                                                                                                                                                                                                                                        • Settings → Rates: Payment-Mode-Select (Stripe / Pay at Hotel) in Create+Edit-Formularen
                                                                                                                                                                                                                                                                                        • MCP rate-plans.list gibt paymentMode zurück (Schema: z.enum(['stripe', 'pay_at_hotel']))
                                                                                                                                                                                                                                                                                        • 12 Unit-Tests: Schema-Validierung für /reserve-Route
                                                                                                                                                                                                                                                                                        • tests/e2e/inbox-smoke.spec.ts: 3 Tests — Signup+Login → Inbox lädt, Nav-Link sichtbar, /api/v1/health → {ok:true,db:"ok"}
                                                                                                                                                                                                                                                                                        v0.47.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Hospitable Reconcile-Twin + Marketing AI Demo

                                                                                                                                                                                                                                                                                        • pg-boss Cron hospitable.reconcile.tick alle 15 Minuten — pollt /v2/conversations + /v2/messages pro aktivem Hospitable-Tenant
                                                                                                                                                                                                                                                                                        • Findet Nachrichten die per Webhook lautlos verlorengingen: onConflictDoNothing + enqueueAiProcess nur für direction = "inbound"
                                                                                                                                                                                                                                                                                        • Gated on FOYER_MESSAGING_AUTO=1 — identisches Pattern wie Postmark-Reconcile
                                                                                                                                                                                                                                                                                        • _started Idempotenz-Flag, localConcurrency: 1, max 3 Conversation-Pages × 2 Message-Pages pro Run
                                                                                                                                                                                                                                                                                        • 6 Unit-Tests: no_api_key, no_recent_conversations, all_in_db, new_inbound, host_message_skip, auth_fail
                                                                                                                                                                                                                                                                                        • Interaktive Guest-AI-Demo direkt auf der Homepage — kein Account nötig
                                                                                                                                                                                                                                                                                        • 3 Preset-Pills + Freitext-Input, SSE-Streaming, Cursor-Blink-Animation
                                                                                                                                                                                                                                                                                        • Backend: POST /api/demo — Groq free tier (llama-3.1-8b-instant), IP-Rate-Limit 5/min, 200-Zeichen-Cap
                                                                                                                                                                                                                                                                                        v0.46.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Guest Lifecycle Automation + OTA Availability Sync

                                                                                                                                                                                                                                                                                        • pg-boss Cron messaging.pre-arrival-mail täglich 07:00 UTC — selektiert alle Stays mit check_in = HEUTE+2 ohne gesendete Pre-Arrival-Mail
                                                                                                                                                                                                                                                                                        • Sendet personalisierten Portal-Deep-Link per Postmark (DE-Markdown-Template pre-arrival-de.md)
                                                                                                                                                                                                                                                                                        • Migration 0086: pre_arrival_mail_sent_at TIMESTAMPTZ auf checkin_sessions — Idempotenz-Guard
                                                                                                                                                                                                                                                                                        • 17 Unit-Tests (Datums-Arithmetik, URL-Konstruktion, Template-Rendering, Skip-Contracts)
                                                                                                                                                                                                                                                                                        • Kalender-UI (/calendar) mit Drag-Selektion: onMouseDown startet, onMouseEnter erweitert blaue Highlight-Zone, onMouseUp öffnet Bestätigungs-Dialog
                                                                                                                                                                                                                                                                                        • Geblockte Daten: roter Overlay + "gesperrt"-Badge im Grid
                                                                                                                                                                                                                                                                                        • Ruft trpc.rates.blockRoomDates auf (pre-existing endpoint)
                                                                                                                                                                                                                                                                                        • 6 Unit-Tests: toIsoDate, normaliseDateRange (forward/backward/single-day)
                                                                                                                                                                                                                                                                                        v0.45.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Developer API Expansion

                                                                                                                                                                                                                                                                                        • rate-plans.list — alle Rate-Plans des Tenants
                                                                                                                                                                                                                                                                                        • rates.list — Preise für Datumsbereich + optionaler roomType/ratePlanId Filter
                                                                                                                                                                                                                                                                                        • rates.upsert — Einzelpreis setzen (owner-only, onConflictDoUpdate)
                                                                                                                                                                                                                                                                                        • rates.bulk_set — Preis über Datumsbereich für Zimmertyp setzen (owner-only)
                                                                                                                                                                                                                                                                                        • rates.delete — Rate-Zeile löschen (owner-only)
                                                                                                                                                                                                                                                                                        • rates.list_restrictions — Min-Stay/Max-Stay Restriktionen abfragen
                                                                                                                                                                                                                                                                                        • availability.query — verfügbare Zimmer für Datumsbereich (nicht in blockedDates, mit Preisen)
                                                                                                                                                                                                                                                                                        • Bearer-Auth Middleware: Authorization: Bearer fk_live_… — reused verifyApiKey() aus MCP-Layer, vollständige OpenAPI-Security-Scheme-Deklaration
                                                                                                                                                                                                                                                                                        v0.44.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        OTA Channel Manager (α.CM)

                                                                                                                                                                                                                                                                                        • Migration 0084: ota_connections Tabelle — (tenant_id, ota) unique, status pending/active/error/disabled, Dual-RLS
                                                                                                                                                                                                                                                                                        • Schema SecretKind erweitert: booking_com_api_key, booking_com_property_id, expedia_username, expedia_password, expedia_hotel_id — AES-256-GCM via BYOK-Muster
                                                                                                                                                                                                                                                                                        • server/channels/booking-com.ts: PUT zu Booking.com Supply API (/ari-rules), Bearer-Auth
                                                                                                                                                                                                                                                                                        • server/channels/expedia.ts: POST XML OTA_HotelRatePlanRQ zu Expedia EQC API
                                                                                                                                                                                                                                                                                        • pg-boss Worker channels.rate-sync: Fan-out zu allen aktiven OTA-Verbindungen, loggt in channel_sync_log
                                                                                                                                                                                                                                                                                        • tRPC: channels.listOtaConnections / channels.connectOta / channels.activateOta / channels.disconnectOta
                                                                                                                                                                                                                                                                                        • Operator-UI: /settings/channels — OtaChannelManager + OtaProviderCard für Booking.com + Expedia
                                                                                                                                                                                                                                                                                        • MCP-Twins: 3 Tools (channel.list_ota_connections, channel.connect_ota, channel.disconnect_ota)
                                                                                                                                                                                                                                                                                        v0.43.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Timeseries Demand Forecasting (γ.0)

                                                                                                                                                                                                                                                                                        • Migration 0085: demand_forecasts um source + sample_size Spalten erweitert, Unique-Constraint auf (tenant_id, room_type, date) vereinfacht
                                                                                                                                                                                                                                                                                        • server/ai/timeseries-forecast.ts: Pure-Math — bucketKey() + computeEWMAOccupancy(), keine externen Deps
                                                                                                                                                                                                                                                                                        • server/jobs/demand-forecast.ts: pg-boss Cron rates.demand-forecast täglich 01:00 UTC — expandiert Stays-History (18 Monate) in Tages-Occupancy, EWMA pro (Zimmertyp, Datum), Upsert in demand_forecasts
                                                                                                                                                                                                                                                                                        • Rate-Suggestion-Engine: liest demand_forecasts (source=timeseries-v1) als ersten Schritt, fällt auf Live-Heuristik zurück wenn kein Forecast vorhanden
                                                                                                                                                                                                                                                                                        • 13 Unit-Tests für EWMA-Mathematik (Decay, Clamping, DOW/Monat-Filter)
                                                                                                                                                                                                                                                                                        • Drizzle-Schema: demandForecasts in rate-suggestions.ts; 490 Tests grün
                                                                                                                                                                                                                                                                                        v0.42.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Cross-Tenant Benchmark (γ.5)

                                                                                                                                                                                                                                                                                        • Migration 0082: tenants.share_anonymous_benchmark — Boolean opt-in, DEFAULT false
                                                                                                                                                                                                                                                                                        • Migration 0083: anon_rate_benchmarks Tabelle — (country, size_band, date) → p25/p50/p75 + sample_size
                                                                                                                                                                                                                                                                                        • pg-boss Job rates.benchmark-refresh: Aggregiert room_rates über opt-in Tenants via withSystem, HAVING COUNT(DISTINCT tenant_id) >= 5, täglich 03:00 UTC
                                                                                                                                                                                                                                                                                        • tRPC: rateSuggestions.getBenchmark / rateSuggestions.getBenchmarkOptIn / rateSuggestions.setBenchmarkOptIn
                                                                                                                                                                                                                                                                                        • Operator-UI: Opt-in Toggle in /settings/rates + "Ø Region: €X" Kontext im InlineEditPanel
                                                                                                                                                                                                                                                                                        • MCP-Twins: rate-suggestions.get_benchmark / rate-suggestions.get_benchmark_opt_in / rate-suggestions.set_benchmark_opt_in
                                                                                                                                                                                                                                                                                        • 9 Unit-Tests für sizeBandForRooms (5-15 / 16-30 / 31-60 / 60+), 464 Tests gesamt grün
                                                                                                                                                                                                                                                                                        v0.41.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        LOS Yield Optimization (γ.4)

                                                                                                                                                                                                                                                                                        • Migration 0081: rate_suggestions.los_hint — JSONB nullable, z.B. { "minStay": 2 }
                                                                                                                                                                                                                                                                                        • Engine: losHint wird gesetzt wenn occupancyP50 >= 0.75, in DB-Insert + Return inkludiert
                                                                                                                                                                                                                                                                                        • tRPC rateSuggestions.list: gibt losHint zurück
                                                                                                                                                                                                                                                                                        • Auto-Suggest Job: buildAutoMinStayRows() — upserted min_stay in rate_restrictions bei Auto-Mode + losHint
                                                                                                                                                                                                                                                                                        • Operator-UI: Amber-Badge "Min-Stay-Empfehlung: Mindestaufenthalt N Nächte" im InlineEditPanel
                                                                                                                                                                                                                                                                                        • MCP-Twin: Beschreibung um losHint ergänzt
                                                                                                                                                                                                                                                                                        • 4 neue Unit-Tests für buildAutoMinStayRows, 455 gesamt grün
                                                                                                                                                                                                                                                                                        v0.40.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Pre-Arrival Dashboard

                                                                                                                                                                                                                                                                                        • checkin.upcomingWithoutSession — tRPC-Query: Aufenthalte der nächsten 14 Tage ohne bestehende Check-in-Session (LEFT JOIN + IS NULL)
                                                                                                                                                                                                                                                                                        • messagingRules.seedPreArrivalDefaults — idempotenter Seed: erstellt "Pre-Arrival Portal"-Regel (−48 h vor Anreise, Email, DE+EN Templates mit %checkin_url%) wenn noch keine check_in-Regel mit negativ…
                                                                                                                                                                                                                                                                                        • /check-ins — zweistufiges Tab-UI: "Ausstehend" (Standard) zeigt ausstehende Ankünfte mit Quick-Action "Portal senden" pro Gast; "Eingegangen" behält bestehende Session-Liste mit Status-Filtern
                                                                                                                                                                                                                                                                                        • Amber-Badge auf "Ausstehend"-Tab zeigt Anzahl der ausstehenden Portale
                                                                                                                                                                                                                                                                                        • URL-Vorschau nach erfolgreichem Senden inline in Tabellenzeile
                                                                                                                                                                                                                                                                                        v0.39.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Folio-Zahlungen + Abschluss (δ.6)

                                                                                                                                                                                                                                                                                        • Migration 0080: folio_payments Tabelle mit Dual-RLS (tenant_isolation + system_bypass); folio_closed_at auf stays
                                                                                                                                                                                                                                                                                        • tRPC: folio.addPayment / folio.listPayments / folio.removePayment / folio.closeFolio
                                                                                                                                                                                                                                                                                        • Folio-Summary: neu mit paidCents + balanceCents (grün = ausgeglichen, amber = offen, violett = überzahlt)
                                                                                                                                                                                                                                                                                        • Operator-UI: Zahlungssektion mit Dialog (Zahlungsart + Betrag + Notiz), Tabelle aller Zahlungen, "Folio abschließen"-Button bei Saldo = 0
                                                                                                                                                                                                                                                                                        • MCP-Twins: folio.payment.add / folio.payment.list / folio.payment.remove / folio.close
                                                                                                                                                                                                                                                                                        • 11 neue Tests (10 Integration + 6 Pure-Unit Balance-Calc), RLS-Audit grün
                                                                                                                                                                                                                                                                                        v0.38.5
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        KI Rate-Vorschläge Auto-Mode (γ.3)

                                                                                                                                                                                                                                                                                        • Migration 0079: tenants.rate_suggestion_auto_mode — CHECK('off'|'suggest'|'auto'), DEFAULT 'off'
                                                                                                                                                                                                                                                                                        • pg-boss Job rates.auto-suggest: Fächert withSystem pro Tenant auf, wendet Auto-Apply-Rows auf room_rates an, setzt rate_suggestions.actedOn='auto-accepted'; ±20% Guard verhindert extreme Ausschläge
                                                                                                                                                                                                                                                                                        • tRPC: rateSuggestions.getAutoMode / rateSuggestions.setAutoMode (Owner-only)
                                                                                                                                                                                                                                                                                        • MCP-Twins: rate-suggestions.get_auto_mode / rate-suggestions.set_auto_mode
                                                                                                                                                                                                                                                                                        • Operator-UI: RadioGroup in /settings/rates (Off / Nur Vorschläge / Auto-Anwendung) mit Amber-Warnung bei Auto
                                                                                                                                                                                                                                                                                        • 12 neue Unit-Tests (isWithinGuard + buildAutoApplyRows Edge Cases), 439 gesamt grün
                                                                                                                                                                                                                                                                                        v0.38.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        Guest Check-out Flow

                                                                                                                                                                                                                                                                                        • stays.performCheckout tRPC-Prozedur — setzt Status auf checked_out, sendet stay.checked_out-Webhook, idempotent (doppelter Aufruf = kein Fehler)
                                                                                                                                                                                                                                                                                        • CheckoutAction-Komponente in /stays/[stayId] — nur sichtbar wenn Status checked_in; grünes Badge wenn bereits ausgecheckt
                                                                                                                                                                                                                                                                                        • Confirm-Flow: lädt Folio-Zusammenfassung (lazy, erst beim Öffnen), zeigt Posten + Gesamtbetrag
                                                                                                                                                                                                                                                                                        • Webhook-Event stay.checked_out im Queue-Typ ergänzt
                                                                                                                                                                                                                                                                                        • Ungültige Übergänge (cancelled) werden mit BAD_REQUEST abgelehnt
                                                                                                                                                                                                                                                                                        v0.37.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Hotel-Info-Sections (ε.1.5)

                                                                                                                                                                                                                                                                                        • Migration 0078: tenants.hotel_info_sections (JSONB) — Partial<Record<6 Schlüssel, {enabled, content}>>
                                                                                                                                                                                                                                                                                        • hotelFacts.getInfoSections / hotelFacts.updateInfoSection tRPC-Prozeduren + 2 MCP-Twins (hotel_info_sections.get/update)
                                                                                                                                                                                                                                                                                        • Messaging-Render Pass 0: Shorthand-Aliase werden aufgelöst, bevor %fact:key% greift — nur wenn enabled=true und content nicht leer
                                                                                                                                                                                                                                                                                        • Operator-UI: neue Sektion "Hotel-Informationen" in /settings/hotel-info mit 6 umschaltbaren Textfeldern
                                                                                                                                                                                                                                                                                        • 37 neue Unit-Tests, 433 gesamt grün, RLS-Audit 0 Verstöße
                                                                                                                                                                                                                                                                                        v0.36.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Bewertungslinks (Review Request)

                                                                                                                                                                                                                                                                                        • Migration 0077: tenants.review_links (JSONB) — Google Maps, Booking.com, TripAdvisor, Custom URL + Label
                                                                                                                                                                                                                                                                                        • tenants.getReviewLinks / tenants.updateReviewLinks tRPC-Prozeduren (Owner-only Update)
                                                                                                                                                                                                                                                                                        • Messaging-Sender injiziert die konfigurierten URLs automatisch als %review_link_*%-Variablen in den Render-Kontext jeder Nachrichten-Regel
                                                                                                                                                                                                                                                                                        • Neue Settings-Seite /settings/review mit URL-Felder, Bezeichnung, Nutzungsbeispiel-Block
                                                                                                                                                                                                                                                                                        • Nav-Eintrag "Bewertungslinks" unter Einstellungen
                                                                                                                                                                                                                                                                                        v0.35.0
                                                                                                                                                                                                                                                                                        20. Mai 2026

                                                                                                                                                                                                                                                                                        Mängel & Wartung + Hospitable Multi-UUID Sync

                                                                                                                                                                                                                                                                                        • Neue Seite /operations/maintenance mit 3 Status-Tabs: Offen · In Arbeit · Erledigt
                                                                                                                                                                                                                                                                                        • Schnelles Melden: Dialog mit Zimmerwahl (aus Zimmerliste), Priorität (Niedrig/Normal/Hoch/Dringend), Freitextbeschreibung
                                                                                                                                                                                                                                                                                        • Inline-Statusübergänge: Offen → In Arbeit → Erledigt mit einem Klick; Abbrechen-Aktion für nicht mehr relevante Mängel
                                                                                                                                                                                                                                                                                        • Navigationslink "Mängel" unter Aufgaben-Gruppe im Sidebar
                                                                                                                                                                                                                                                                                        • Baut auf bestehenden tasks-Infrastruktur auf (kind = "maintenance"): keine neue Tabelle/Migration nötig, RLS-Schutz bereits vorhanden
                                                                                                                                                                                                                                                                                        • Unique Constraint von (tenant_id, room_type) auf (tenant_id, room_type, property_uuid) geändert (Migration 0076)
                                                                                                                                                                                                                                                                                        • Rate-Sync-Job pusht automatisch an alle gemappten Hospitable-Properties gleichzeitig
                                                                                                                                                                                                                                                                                        • UI unter Einstellungen → Kanäle: gruppierte Tabelle mit visuellem ↳-Indent; Löschen-Aktion per (roomType, propertyUuid) Paar
                                                                                                                                                                                                                                                                                        v0.34.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        KI-Vorschläge: LLM-Rationale Enrichment (γ.2)

                                                                                                                                                                                                                                                                                        • enrichWithLLMRationale: Haiku-Call pro 31-Item-Batch; JSON-Array mit {date, roomType, rationale}
                                                                                                                                                                                                                                                                                        • Silent Fallback auf Heuristik-Begründung wenn kein API-Key oder Anthropic-Fehler
                                                                                                                                                                                                                                                                                        • Batching: 31 Tage/Zimmertyp pro Call → max 2 Calls bei vollem Monatskalender (2 Zimmertypen)
                                                                                                                                                                                                                                                                                        • 5 neue Unit-Tests: No-API-Key-Fallback, leere Items, valides JSON, malformed Response, Multi-Item-Mapping
                                                                                                                                                                                                                                                                                        v0.33.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        KI-Vorschläge: Heuristic Rate Suggestion Engine (γ.1)

                                                                                                                                                                                                                                                                                        • Neue Tabellen demand_forecasts + rate_suggestions (Migration 0074/0075, je mit Dual-RLS)
                                                                                                                                                                                                                                                                                        • rateSuggestions.generate / rateSuggestions.list / rateSuggestions.act tRPC-Prozeduren
                                                                                                                                                                                                                                                                                        • Rate-Kalender: "💡 KI-Vorschläge"-Button → berechnet Vorschläge für den aktiven Monat; Zellen zeigen faden Vorschlag (grün = Potenzial ↑, amber = Potenzial ↓)
                                                                                                                                                                                                                                                                                        • Inline-Edit-Panel: "Vorschlag übernehmen"-Button mit Begründungstext; Accept appliziert Preis direkt via room_rates-Upsert
                                                                                                                                                                                                                                                                                        v0.32.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        Bulk-Edit Audit + Undo (β.4)

                                                                                                                                                                                                                                                                                        • bulkSet snapshoted alte Preise vor dem Überschreiben → speichert rate_bulk_edits-Zeile mit diffJson
                                                                                                                                                                                                                                                                                        • rates.undoBulkEdit: stellt alte Preise aus diffJson wieder her (Löschen neu-erstellter, Wiederherstellen überschriebener Zeilen)
                                                                                                                                                                                                                                                                                        • /settings/rates/history: "Rückgängig"-Button pro unvertierter Zeile; bereits rückgängig gemachte Zeilen zeigen Timestamp
                                                                                                                                                                                                                                                                                        v0.31.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        Rate-Plan CRUD (β.3)

                                                                                                                                                                                                                                                                                        • rates.createPlan / rates.updatePlan / rates.deletePlan tRPC-Prozeduren
                                                                                                                                                                                                                                                                                        • Guard: Standard-Plan nicht löschbar; Plan mit Preisen nicht löschbar (PRECONDITION_FAILED)
                                                                                                                                                                                                                                                                                        • Unique-Name-Check: doppelter Name → klare Fehlermeldung "Name bereits vergeben"
                                                                                                                                                                                                                                                                                        • /settings/rates: "Pläne verwalten ▾" Sektion mit Inline-Rename, Löschen, Neuen-Plan-Formular
                                                                                                                                                                                                                                                                                        v0.30.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        Rate Calendar Grid + Multi-Plan Booking Engine (β.2)

                                                                                                                                                                                                                                                                                        • Monats-Navigation (← / →), Rate-Plan-Tabs (Standard + alle eigenen Pläne)
                                                                                                                                                                                                                                                                                        • Zellen farbkodiert: Grün = Preis, Rot = Stop-Sell, Gelb = Min-Stay
                                                                                                                                                                                                                                                                                        • Inline Edit-Panel pro Zelle: Preis + Stop-Sell-Toggle + Min-Nächte
                                                                                                                                                                                                                                                                                        • /settings/rates/history: Bulk-Edit-Protokoll (Datum, Zimmer-Typ, Zeitraum, Preisänderung)
                                                                                                                                                                                                                                                                                        • StepRooms: per-Plan-Karten mit Name, Erstattbarkeits-Badge, Gesamtpreis
                                                                                                                                                                                                                                                                                        • BookingWizard: ratePlanId / ratePlanName durch State + Reducer durchgefädelt
                                                                                                                                                                                                                                                                                        • StepReview: Rate-Plan-Zeile in der Buchungszusammenfassung
                                                                                                                                                                                                                                                                                        v0.29.0
                                                                                                                                                                                                                                                                                        19. Mai 2026

                                                                                                                                                                                                                                                                                        Voice Bot + Hotel-Zeit-Einstellungen

                                                                                                                                                                                                                                                                                        • Webhook-Route POST /api/vapi/webhook (auth via x-vapi-secret, always 200 OK)
                                                                                                                                                                                                                                                                                        • Tool-Handler: check_availability, book_room, get_hotel_info
                                                                                                                                                                                                                                                                                        • Per-Tenant BYOK: voice_configs Tabelle (Migration 0068) mit Enable-Toggle, VAPI API Key, Webhook-Secret-Rotation
                                                                                                                                                                                                                                                                                        • Settings-UI /settings/voice: Toggle, maskierter API-Key, Webhook-URL + Copy, Secret-Regeneration
                                                                                                                                                                                                                                                                                        • MCP-Twins: voice.config.get, voice.config.update
                                                                                                                                                                                                                                                                                        • Sidebar-Nav: "Voice Bot" unter Einstellungen + "Hotelinfos" ergänzt
                                                                                                                                                                                                                                                                                        • 8 Spalten auf tenants (Migration 0072): Check-in Standard/Früh/Spät, Checkout Standard/Spät, Zugangsfenster (Minuten seit Mitternacht, Berlin-Lokalzeit)
                                                                                                                                                                                                                                                                                        • tRPC: hotelFacts.getTimeSettings / hotelFacts.updateTimeSettings
                                                                                                                                                                                                                                                                                        v0.22.0
                                                                                                                                                                                                                                                                                        15. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.3 — Multi-Guest ID-Upload

                                                                                                                                                                                                                                                                                        • ID-Upload section as the fifth section (order=16, after all
                                                                                                                                                                                                                                                                                        • Multi-guest slots: primary booker name pre-filled from the guest
                                                                                                                                                                                                                                                                                        • Upload-on-file-pick: no Save button — FileReader → base64 → tRPC
                                                                                                                                                                                                                                                                                        • Thumbnail preview: after upload, a thumbnail renders via the
                                                                                                                                                                                                                                                                                        • DSGVO-compliant storage: UUID-only paths, mime-sniff validation
                                                                                                                                                                                                                                                                                        • Migration 0061 (Wave 1): guest_id_uploads table with RLS
                                                                                                                                                                                                                                                                                        • checkin.uploadGuestId public tRPC mutation: token-auth, mime-sniff
                                                                                                                                                                                                                                                                                        • checkin.removeGuestId public tRPC mutation: idempotent removal of
                                                                                                                                                                                                                                                                                        v0.21.0
                                                                                                                                                                                                                                                                                        14. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.5 — Pre-Arrival Deposit / Kaution

                                                                                                                                                                                                                                                                                        • Deposit/Kaution-Section as the fourth accordion section
                                                                                                                                                                                                                                                                                        • Migration 0059: pre_arrival_deposits table with RLS (Stage-2C
                                                                                                                                                                                                                                                                                        • Migration 0060: tenants.pre_arrival_deposit_cents opt-in column
                                                                                                                                                                                                                                                                                        • checkin.createDepositCheckout public tRPC mutation: token-auth,
                                                                                                                                                                                                                                                                                        • Webhook handler extension in connect-webhook-handler.ts for
                                                                                                                                                                                                                                                                                        • SectionDef.shouldShow contract: optional (session) => boolean
                                                                                                                                                                                                                                                                                        • 3-layer idempotency: UNIQUE(tenant_id, stay_id) row constraint
                                                                                                                                                                                                                                                                                        • RLS Stage-2C defense-in-depth in the webhook:
                                                                                                                                                                                                                                                                                        v0.20.0
                                                                                                                                                                                                                                                                                        13. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.1.5 — Hotel-Info Sections

                                                                                                                                                                                                                                                                                        • Migration 0057: hotel_facts table with Stage-2 NULLIF-guarded RLS
                                                                                                                                                                                                                                                                                        • Six new section modules (orders 10-15) under
                                                                                                                                                                                                                                                                                        • Shared HotelInfoBlock + deriveStatusFromKeys helper so every
                                                                                                                                                                                                                                                                                        • Portal-shell icon registry extended with train, book-open,
                                                                                                                                                                                                                                                                                        • HotelFact[] projection in guest-session-loader.ts becomes
                                                                                                                                                                                                                                                                                        • Loader reads hotel_facts inside withSystem(tenantId, ...) with
                                                                                                                                                                                                                                                                                        • Operator UI for editing hotel_facts (hotelier edits via direct SQL
                                                                                                                                                                                                                                                                                        • Messaging-template %fact:key% renderer integration (still uses
                                                                                                                                                                                                                                                                                        v0.19.0
                                                                                                                                                                                                                                                                                        13. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.2 — AGB Signature-Pad

                                                                                                                                                                                                                                                                                        • AGB-Signatur-Section as the third accordion section (order=3,
                                                                                                                                                                                                                                                                                        • Migration 0057: signed_agreements table with RLS (tenant-isolation
                                                                                                                                                                                                                                                                                        • Migration 0058: tenants.hausordnung_markdown (NULL → Foyer default)
                                                                                                                                                                                                                                                                                        • checkin.signAgreement public tRPC mutation: token-auth, RLS Stage-2C
                                                                                                                                                                                                                                                                                        • IP-hash with per-tenant salt: sha256(ip + tenant.ip_hash_salt) →
                                                                                                                                                                                                                                                                                        • AGB snapshot at sign-time: AGB-drift after signature does NOT
                                                                                                                                                                                                                                                                                        • SignaturePad component reused verbatim from the Meldeschein wizard —
                                                                                                                                                                                                                                                                                        • Default Hausordnung (apps/web/server/checkin/default-hausordnung.ts)
                                                                                                                                                                                                                                                                                        v0.18.0
                                                                                                                                                                                                                                                                                        13. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.4 — Arrival-Time Picker

                                                                                                                                                                                                                                                                                        • New accordion section arrival-time registered at order=2 (right
                                                                                                                                                                                                                                                                                        • Migration 0056: stays.expected_arrival_at TIMESTAMPTZ NULL. Nullable
                                                                                                                                                                                                                                                                                        • Public tRPC mutation checkin.saveArrivalTime (token-auth, no login).
                                                                                                                                                                                                                                                                                        • Late-arrival auto-trigger: when the chosen local hour is ≥ 23, a
                                                                                                                                                                                                                                                                                        • Audit-trail breadcrumbs: every save writes a portal.arrival_time.saved
                                                                                                                                                                                                                                                                                        • Guest-session-loader now projects expected_arrival_at as a
                                                                                                                                                                                                                                                                                        • The section-registry pattern from ε.1 carried this slice end-to-end:
                                                                                                                                                                                                                                                                                        • RLS Stage-2C compliant: every tenant-scoped read/write inside
                                                                                                                                                                                                                                                                                        v0.17.0
                                                                                                                                                                                                                                                                                        13. Mai 2026

                                                                                                                                                                                                                                                                                        Phase ε.1 — Pre-Arrival Guest Portal Foundation

                                                                                                                                                                                                                                                                                        • New tenant setting portal_layout_version (migration 0055). Existing
                                                                                                                                                                                                                                                                                        • Operator can toggle the layout per tenant via Settings → Pre-Arrival.
                                                                                                                                                                                                                                                                                        • Public guest portal at /check-in/[token] now renders the accordion
                                                                                                                                                                                                                                                                                        • Magic-link refresh for expired tokens. Expired token URLs redirect to
                                                                                                                                                                                                                                                                                        • Operator can revoke all pending portal links for a stay from the stay
                                                                                                                                                                                                                                                                                        • Explicit expires_at column on checkin_sessions (migration 0054).
                                                                                                                                                                                                                                                                                        • Audit-log breadcrumbs on every token lifecycle event under the
                                                                                                                                                                                                                                                                                        • RLS Stage-2C re-audit passes for all Phase ε.1 code.
                                                                                                                                                                                                                                                                                        v0.16.0
                                                                                                                                                                                                                                                                                        12. Mai 2026

                                                                                                                                                                                                                                                                                        RLS Hardening + Operator UX

                                                                                                                                                                                                                                                                                        • Switched: prod DB role from foyer (BYPASSRLS) to foyer_app (BYPASSRLS=f).
                                                                                                                                                                                                                                                                                        • Migration 0052: all 53 RLS policies got current_setting('app.current_user_role','t')='system' OR (...) so withSystem/withAuthLookup paths keep working.
                                                                                                                                                                                                                                                                                        • Migration 0053: wrapped tenant-id casts in NULLIF(...,'')::uuid after
                                                                                                                                                                                                                                                                                        • Fixed: dedicated getAuthDb() postgres.js pool for the Auth.js DrizzleAdapter + Credentials provider. Starts every connection with -c app.current_user_role=system because auth lookups happen before an…
                                                                                                                                                                                                                                                                                        • Stage 2C audit: 4-agent parallel sweep found 3 HIGH + 5 MEDIUM cross-tenant bugs masked under withSystem. Notable: match-stay.ts would have routed a business-traveler's inbound msg into the wrong ten…
                                                                                                                                                                                                                                                                                        • Added: scripts/smoke-auth.sh — post-deploy 7-check roundtrip (4 page-smoke + CSRF + signin POST + verification_tokens DB write). Catches silent auth breakage in <10s instead of hours.
                                                                                                                                                                                                                                                                                        • Added: ⌘K (Mac) / Ctrl+K command palette over the entire operator nav. Fuzzy substring search with breadcrumb labels (Aufgaben · Reinigung), keyboard navigation, last-5 recents in localStorage. Self-…
                                                                                                                                                                                                                                                                                        • Restructured: sidebar from 30 flat items in two sections → 9 collapsible top-level groups (Hospitable-style). Auto-expand of the active group. Mobile drawer mirrors the same.
                                                                                                                                                                                                                                                                                        v0.15.0
                                                                                                                                                                                                                                                                                        09. Mai 2026

                                                                                                                                                                                                                                                                                        Booking-Engine MVP

                                                                                                                                                                                                                                                                                        • Added: rate_plans + room_rates + blocked_dates tables (migrations 0040–0042) for tenant-scoped booking rate management with per-(plan, room_type, date) prices and operator-managed unavailability
                                                                                                                                                                                                                                                                                        • Added: stays.payment_intent_id + payment_status + booking_total_cents (migration 0043) and tenants.stripe_connect_account_id + stripe_connect_onboarded_at (migration 0044) for per-tenant Stripe-Conne…
                                                                                                                                                                                                                                                                                        • Added: tRPC rates.* (list / upsert / bulkSet / delete / listBlockedDates / blockRoomDates / unblockDates) — all owner-only
                                                                                                                                                                                                                                                                                        • Added: tRPC availability.query — public, tstzrange-overlap algorithm, EUR 80/night fallback for unconfigured rates, 12 integration-tests covering edge cases (same-day dates, past dates, blocked rooms…
                                                                                                                                                                                                                                                                                        • Added: tRPC tenants.connectStatus + disconnectStripeConnect for OAuth lifecycle
                                                                                                                                                                                                                                                                                        • Added: tRPC stays.cancelAndRefund — operator-triggered Stripe refund on connected account, respects rate-plan cancellation_window_hours (default 24h), force-refund override
                                                                                                                                                                                                                                                                                        • Added: Public /book/<slug> 4-step wizard (Daten → Zimmer → Gast → Bezahlen) with sessionStorage rehydration, 13-language brand-CSS, success/cancel landing screens
                                                                                                                                                                                                                                                                                        • Added: Public GET /api/v1/booking/<slug>/quote (60/IP/min) + POST /checkout (5/IP/h) with server-side re-pricing
                                                                                                                                                                                                                                                                                        v0.14.0
                                                                                                                                                                                                                                                                                        09. Mai 2026

                                                                                                                                                                                                                                                                                        Phase 5 — Calendar Tasks Grid

                                                                                                                                                                                                                                                                                        • Added: 2D grid view at /operations/calendar/tasks showing rooms × dates with task pills
                                                                                                                                                                                                                                                                                        • Added: tasks.calendarGrid tRPC query (date-range × room pivot)
                                                                                                                                                                                                                                                                                        • Added: nav entry under Operations → Kalender
                                                                                                                                                                                                                                                                                        v0.13.0
                                                                                                                                                                                                                                                                                        08. Mai 2026

                                                                                                                                                                                                                                                                                        Phase 4 — Notification Rules Engine

                                                                                                                                                                                                                                                                                        • Added: notification_rules + notification_rule_executions tables (migration 0038)
                                                                                                                                                                                                                                                                                        • Added: notification.event pg-boss queue + evaluator worker
                                                                                                                                                                                                                                                                                        • Added: task.created / task.overdue / task.completed event publishers
                                                                                                                                                                                                                                                                                        • Added: tRPC notificationRules.* (CRUD + trigger + executions + dryRun)
                                                                                                                                                                                                                                                                                        • Added: /operations/notifications/* operator UI (list / new / edit / executions audit log)
                                                                                                                                                                                                                                                                                        • Added: per-event opt-out via users.notificationEventPrefs
                                                                                                                                                                                                                                                                                        • Note: WhatsApp dispatcher remained a throw-stub in this version — wired in v0.14.1 (Phase C)
                                                                                                                                                                                                                                                                                        v0.12.0
                                                                                                                                                                                                                                                                                        08. Mai 2026

                                                                                                                                                                                                                                                                                        Phase 1+6+7 — Operator Quickwins

                                                                                                                                                                                                                                                                                        • Added: /operations/tasks 4-tab dashboard (Needs Action / In Progress / Upcoming / Past)
                                                                                                                                                                                                                                                                                        • Added: /operations/log task history search
                                                                                                                                                                                                                                                                                        • Added: hourly daily-summary cron (DE/EN/PL/TR) sending at local 06:00 per tenant TZ
                                                                                                                                                                                                                                                                                        • Added: migration 0037 — users.last_daily_summary_at for cron dedup
                                                                                                                                                                                                                                                                                        v0.11.0
                                                                                                                                                                                                                                                                                        08. Mai 2026

                                                                                                                                                                                                                                                                                        Phase 3 — Team Management

                                                                                                                                                                                                                                                                                        • Added: users extension (payment_, task_kinds, notification_, invite_*, deleted_at)
                                                                                                                                                                                                                                                                                        • Added: room_cleaner_preferences + invite_tokens tables (migration 0035)
                                                                                                                                                                                                                                                                                        • Added: task_rules.property_ids → room_ids pivot (migration 0036)
                                                                                                                                                                                                                                                                                        • Added: multi-channel invite flow (Email / SMS / WhatsApp) via /work/invite/[token]
                                                                                                                                                                                                                                                                                        • Added: /operations/team/* operator UI + /work/profile worker self-service
                                                                                                                                                                                                                                                                                        • Resolved: Phase-2 stubs (preferred_for_room + round_robin assignee strategies)
                                                                                                                                                                                                                                                                                        v0.10.2
                                                                                                                                                                                                                                                                                        08. Mai 2026

                                                                                                                                                                                                                                                                                        Phase 2 — Task Rules Engine

                                                                                                                                                                                                                                                                                        • Added: task_rules + task_rule_executions tables (migrations 0031–0034)
                                                                                                                                                                                                                                                                                        • Added: DB triggers for booking.{new_reservation, checkout, cancellation}
                                                                                                                                                                                                                                                                                        • Added: pg-boss task-rule.event + scheduler queues, evaluator worker
                                                                                                                                                                                                                                                                                        • Added: condition evaluator + Mustache templates + assignee resolver
                                                                                                                                                                                                                                                                                        • Added: tRPC taskRules.* (CRUD + trigger + executions + dryRun)
                                                                                                                                                                                                                                                                                        • Added: /operations/task-rules/* operator UI
                                                                                                                                                                                                                                                                                        • Added: public iCal feed /api/ical/cleaner.ics?token=<uuid> for cleaner calendar subscription
                                                                                                                                                                                                                                                                                        v0.10.1
                                                                                                                                                                                                                                                                                        08. Mai 2026

                                                                                                                                                                                                                                                                                        Public Landing Overhaul · Analytics · Auth-Flow-Polish

                                                                                                                                                                                                                                                                                        • Hero rewrite + AI-first Sprachen-Frame ("jede Sprache der Welt", Mandarin/Suaheli/Bairisch nativ)
                                                                                                                                                                                                                                                                                        • Sieben Bausteine, interaktive Sprachen-Demo (13 Beispiele, RTL für Arabisch)
                                                                                                                                                                                                                                                                                        • DIY/Foyer/PMS Vergleichstabelle, Tag-1-bis-Tag-8-Onboarding-Timeline, Founder-Section
                                                                                                                                                                                                                                                                                        • Pre-Arrival-Messaging-Timeline-Visual, Pricing-Quick-Cards (5/12/25 Zimmer)
                                                                                                                                                                                                                                                                                        • Mobile Sticky-Bottom-CTA, Hamburger-Drawer, Sticky-Nav mit Backdrop-Blur
                                                                                                                                                                                                                                                                                        • Plausible Analytics + 9 Custom-Events (5 Funnel + 3 Engagement + Mobile-CTA)
                                                                                                                                                                                                                                                                                        • JSON-LD Schema (Organization + SoftwareApp + FAQPage) für Google Rich-Snippets
                                                                                                                                                                                                                                                                                        • /signup + /login Brand-Polish, signedUp-Banner-Loop, Slider mit Live-Preis
                                                                                                                                                                                                                                                                                        v0.10.0
                                                                                                                                                                                                                                                                                        04. Mai 2026

                                                                                                                                                                                                                                                                                        Foyer Native Invoices

                                                                                                                                                                                                                                                                                        • invoice_* tables in Foyer's own DB (RLS-pinned, per-tenant numbering
                                                                                                                                                                                                                                                                                        • 10 native MCP tools: 3 read (invoices_list/invoices_get/invoices_stats)
                                                                                                                                                                                                                                                                                        • tRPC invoices router: list/get/stats/generate/send/cancel/
                                                                                                                                                                                                                                                                                        • Operator UI: /invoices (list + stats), /invoices/[id] (detail + Send +
                                                                                                                                                                                                                                                                                        • Public self-service form: /invoice-request/[token] (token-gated, no auth).
                                                                                                                                                                                                                                                                                        • Daily read-only sync cron from staydb (pnpm sync:invoices) — safety net
                                                                                                                                                                                                                                                                                        • Backfill scripts: 4 785 invoices + 5 181 PDFs migrated.
                                                                                                                                                                                                                                                                                        • Diff harness (pnpm diff:invoices) — exits 1 on any divergence (cutover gate).
                                                                                                                                                                                                                                                                                        v0.9.3
                                                                                                                                                                                                                                                                                        04. Mai 2026

                                                                                                                                                                                                                                                                                        never

                                                                                                                                                                                                                                                                                        • 6 937 reservations backfilled from staydb.hospitable.reservations
                                                                                                                                                                                                                                                                                        • INSERT confirmed → cleaning_task created on the check-out date
                                                                                                                                                                                                                                                                                        • UPDATE → cancelled → pending tasks deleted +
                                                                                                                                                                                                                                                                                        • UPDATE cancelled → confirmed → task re-created
                                                                                                                                                                                                                                                                                        • UPDATE check_out (date shift) → pending task moved to new date
                                                                                                                                                                                                                                                                                        • UPDATE room (room reassignment) → pending task moved to new room
                                                                                                                                                                                                                                                                                        • in_progress / completed / skipped are never auto-deleted —
                                                                                                                                                                                                                                                                                        • /reports — single-page owner dashboard. Bookings/month bar chart,
                                                                                                                                                                                                                                                                                        v0.9.2
                                                                                                                                                                                                                                                                                        04. Mai 2026

                                                                                                                                                                                                                                                                                        Production Hardening Pack · Observability + Stripe idempotency + rate limits + MCP-tool tests

                                                                                                                                                                                                                                                                                        • @sentry/nextjs wired with EU residency (Frankfurt DSN). Configs split
                                                                                                                                                                                                                                                                                        • pino + pino-pretty (dev) for structured JSON logging in production.
                                                                                                                                                                                                                                                                                        • All 53 console.{log,error,warn} calls under apps/web/server/ and
                                                                                                                                                                                                                                                                                        • app/error.tsx + app/global-error.tsx capture client errors. Server
                                                                                                                                                                                                                                                                                        • PII helpers emailHash() / phoneHash() / bodyMeta() for safe logging
                                                                                                                                                                                                                                                                                        • New stripe_webhook_events table (migration 0025, primary key =
                                                                                                                                                                                                                                                                                        • reserveEvent() does INSERT … ON CONFLICT DO NOTHING RETURNING;
                                                                                                                                                                                                                                                                                        • Handler runs INSIDE a transaction. Failure releases the row so Stripe
                                                                                                                                                                                                                                                                                        v0.9.1
                                                                                                                                                                                                                                                                                        03. Mai 2026

                                                                                                                                                                                                                                                                                        Fragen + Schnellantworten · FAQ-Pool als first-class messaging tabs

                                                                                                                                                                                                                                                                                        • ai_questions — multi-language FAQ pool with operator-curated trigger
                                                                                                                                                                                                                                                                                        • canned_responses — single-language quick-reply snippets the operator
                                                                                                                                                                                                                                                                                        • New server/ai/classify-faq.ts — pure substring classifier with
                                                                                                                                                                                                                                                                                        • ≥ confidence_threshold match → draft from FAQ translation
                                                                                                                                                                                                                                                                                        • Sub-threshold partial match → FAQ default_response passed to
                                                                                                                                                                                                                                                                                        • Fire-and-forget detection_count + last_matched_at bumps on match
                                                                                                                                                                                                                                                                                        • Two new sub-tabs in /messaging: Fragen + Schnellantworten
                                                                                                                                                                                                                                                                                        • Fragen editor: name + topic + phrases textarea + 13-language tab strip
                                                                                                                                                                                                                                                                                        v0.8.5
                                                                                                                                                                                                                                                                                        02. Mai 2026

                                                                                                                                                                                                                                                                                        Public Developer-Portal · Hospitable-style Reference

                                                                                                                                                                                                                                                                                        • New /developers page: Hero ("Bauen mit Foyer"), 3-channel grid
                                                                                                                                                                                                                                                                                        • New /developers/reference: Foyer-branded Scalar embed via
                                                                                                                                                                                                                                                                                        • Existing /api/v1/docs (bare Scalar) preserved for direct
                                                                                                                                                                                                                                                                                        • OpenAPI metadata fixed: description was pointing at
                                                                                                                                                                                                                                                                                        • ~250 lines new CSS under .dev-* prefix in _marketing.css,
                                                                                                                                                                                                                                                                                        v0.8.4
                                                                                                                                                                                                                                                                                        02. Mai 2026

                                                                                                                                                                                                                                                                                        Operator UX overhaul · 4 new pages · Auth + signup fixes

                                                                                                                                                                                                                                                                                        • /dashboard — Tagessicht-Hub mit 4 Metric-Cards (Eingang 24h /
                                                                                                                                                                                                                                                                                        • /stays — Paginated list-view mit Filter-Tabs (Heute / Anstehend /
                                                                                                                                                                                                                                                                                        • /calendar — Monthly grid view, today-highlight als primary-filled
                                                                                                                                                                                                                                                                                        • /analytics — V1-Spec-aligned KI-Metriken: Auto-Reply-Rate (Ziel
                                                                                                                                                                                                                                                                                        • Sidebar redesign: 3 → 15 Items in 2 Sektionen (Operativ +
                                                                                                                                                                                                                                                                                        • All operator pages: shadcn design tokens (bg-card / border-border
                                                                                                                                                                                                                                                                                        • Operator layout: explicit font-sans (Geist) on the wrapper, max-
                                                                                                                                                                                                                                                                                        • Auth JWT strategy: Auth.js v5 Credentials provider is
                                                                                                                                                                                                                                                                                        v0.8.3
                                                                                                                                                                                                                                                                                        01. Mai 2026

                                                                                                                                                                                                                                                                                        Hospitable Direct-Webhook + Webhook-Signature Test-Suite

                                                                                                                                                                                                                                                                                        • Hospitable jetzt analog zu WhatsApp via per-Tenant Direct-Webhook
                                                                                                                                                                                                                                                                                        • 2 neue BYOK-SecretKinds: hospitable_api_key, hospitable_webhook_secret
                                                                                                                                                                                                                                                                                        • HMAC-SHA256 + Replay-Schutz (5 min Toleranz, Stripe-Pattern Header
                                                                                                                                                                                                                                                                                        • Settings-UI um Hospitable-Section erweitert (2 Felder + Webhook-URL
                                                                                                                                                                                                                                                                                        • 16 neue Unit-Tests für verifyMetaSignature + verifyMetaHandshakeToken
                                                                                                                                                                                                                                                                                        • 12 neue Unit-Tests für verifyHospitableSignature inkl. Replay-Schutz,
                                                                                                                                                                                                                                                                                        • Webhook-Endpoints sind damit produktionsdicht — alle 3 Inbound-Channels
                                                                                                                                                                                                                                                                                        v0.8.2
                                                                                                                                                                                                                                                                                        01. Mai 2026

                                                                                                                                                                                                                                                                                        Foyer-native WhatsApp · Direkt-Anbindung an Meta Cloud API

                                                                                                                                                                                                                                                                                        • Neuer Endpoint /api/v1/inbound/whatsapp/<tenantSlug> (GET = Meta-Verify-
                                                                                                                                                                                                                                                                                        • 4 neue BYOK-SecretKinds: wa_app_secret, wa_verify_token,
                                                                                                                                                                                                                                                                                        • Media (Bild/Video/Dokument) via Meta Graph API mit BYOK-Access-Token,
                                                                                                                                                                                                                                                                                        • Settings → Zugangsdaten neue WhatsApp-Section mit Per-Tenant-Webhook-URL
                                                                                                                                                                                                                                                                                        • Twilio-Section umbenannt zu "Twilio · SMS-Login (Personal)" — WhatsApp
                                                                                                                                                                                                                                                                                        • Legacy stay-Bridge (server/bridges/wa.ts) bleibt im Repo, ist aber per
                                                                                                                                                                                                                                                                                        • Activation runbook: docs/wa-bridge-activation.md neu geschrieben für
                                                                                                                                                                                                                                                                                        • ✅ Email (Postmark) — komplett, BYOK + Inbound-Signature-Verify
                                                                                                                                                                                                                                                                                        v0.8.0
                                                                                                                                                                                                                                                                                        01. Mai 2026

                                                                                                                                                                                                                                                                                        P2.4 · Rich-Media Inbox · Email-Attachments + Auto-Carry-Over

                                                                                                                                                                                                                                                                                        • New message_attachments table mit AES-256-GCM-Storage-Pfad-Pattern
                                                                                                                                                                                                                                                                                        • Postmark inbound webhook persistiert Attachments[] Array aus inbound Emails
                                                                                                                                                                                                                                                                                        • Magic-byte MIME-Detection in lib/sniff-mime.ts — vertraut nie der
                                                                                                                                                                                                                                                                                        • Auto-Carry-Over: AI-pipeline Layer 4 (Task-Detection) kopiert
                                                                                                                                                                                                                                                                                        • Operator-Inbox + Worker-App: neuer <AttachmentGrid>-Komponent mit
                                                                                                                                                                                                                                                                                        • Worker-App separiert visuell: 📩 Vom Gast geschickt vs. ✓ Beweis-Fotos
                                                                                                                                                                                                                                                                                        • 8 neue Magic-Byte-Unit-Tests, 141 tests gesamt grün
                                                                                                                                                                                                                                                                                        • ✅ Email (Postmark) — komplett
                                                                                                                                                                                                                                                                                        v0.7.4
                                                                                                                                                                                                                                                                                        30. April 2026

                                                                                                                                                                                                                                                                                        BYOK · eigene Postmark- und Twilio-Keys

                                                                                                                                                                                                                                                                                        • Tenants hinterlegen eigene API-Keys unter Settings → Zugangsdaten
                                                                                                                                                                                                                                                                                        • AES-256-GCM-Verschlüsselung im Postgres, Master-Key per FOYER_SECRET_KEY env
                                                                                                                                                                                                                                                                                        • Live-Test-Send-Buttons: echter Probe-Versand an Operator-Email/-Nummer
                                                                                                                                                                                                                                                                                        • Send-Pfade lookupen Tenant-Secret zuerst, fallback auf process.env
                                                                                                                                                                                                                                                                                        • RLS-Policy asymmetrisch: read = owner | system, write = owner only
                                                                                                                                                                                                                                                                                        • Postmark inbound webhook: two-phase signature verify (env-secret first,
                                                                                                                                                                                                                                                                                        • 10 Crypto-Unit-Tests (roundtrip, IV-uniqueness, GCM-tamper-detection)
                                                                                                                                                                                                                                                                                        v0.7.3
                                                                                                                                                                                                                                                                                        30. April 2026

                                                                                                                                                                                                                                                                                        MCP B.1 · invoices write-tools

                                                                                                                                                                                                                                                                                        • send_smtp tool (irreversibel, mit Warnhinweis im Tool-Description)
                                                                                                                                                                                                                                                                                        • update_address / update_tax_id / update_email tools
                                                                                                                                                                                                                                                                                        • Coverage weiter ausgebaut, jetzt mit Mutationen im invoices-Bereich
                                                                                                                                                                                                                                                                                        v0.7.2
                                                                                                                                                                                                                                                                                        30. April 2026

                                                                                                                                                                                                                                                                                        MCP-Tools auf 90 % Coverage

                                                                                                                                                                                                                                                                                        • 42 Foyer-Tools über das Model-Context-Protokoll exposed
                                                                                                                                                                                                                                                                                        • Phase B.1: 5 invoices read-tools + 5 kassenbuch read-tools als Legacy-API-Proxies
                                                                                                                                                                                                                                                                                        • Coverage von 33 % → 90 % in drei Phasen geschlossen
                                                                                                                                                                                                                                                                                        v0.7.1
                                                                                                                                                                                                                                                                                        30. April 2026

                                                                                                                                                                                                                                                                                        Public Marketing-Site live

                                                                                                                                                                                                                                                                                        • Anthropic-Trust Design-Direktion (Inter + Source Serif 4 + JetBrains Mono)
                                                                                                                                                                                                                                                                                        • /eu-hosting Page mit Architektur-Diagramm
                                                                                                                                                                                                                                                                                        • FAQ-Section + Use-Case-Galerie + interaktiver Pricing-Calculator
                                                                                                                                                                                                                                                                                        • Animated Hero Mockup (3 rotierende autonome Szenarien)
                                                                                                                                                                                                                                                                                        • OG-Image, Sitemap, robots.txt, Impressum + Datenschutz-Gerüste
                                                                                                                                                                                                                                                                                        • Mobile-Polish für 60 % Mobile-Traffic
                                                                                                                                                                                                                                                                                        • next/font self-hosting, Lighthouse mobile 84 / accessibility 92
                                                                                                                                                                                                                                                                                        v0.7.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        Self-Serve Onboarding + Stripe Billing

                                                                                                                                                                                                                                                                                        • Sign-up-Wizard mit Email + Hotel + Zimmer-Anzahl in 3 Minuten
                                                                                                                                                                                                                                                                                        • Stripe Checkout im Test-Mode mit Sockel + Pro-Zimmer-Pricing
                                                                                                                                                                                                                                                                                        • Subscription-Gate auf Operator-Routes + MCP-Block
                                                                                                                                                                                                                                                                                        • Stripe-Webhook-Handler (6 Events, Signature-Verify)
                                                                                                                                                                                                                                                                                        • Settings → Abrechnung mit Customer-Portal-Session
                                                                                                                                                                                                                                                                                        • Zimmer-Update synct automatisch die Stripe-Quantity
                                                                                                                                                                                                                                                                                        v0.6.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        MCP-Server (Claude Desktop / ChatGPT / Cursor)

                                                                                                                                                                                                                                                                                        • Foyer als MCP-Server für AI-Clients via API-Key
                                                                                                                                                                                                                                                                                        • Initial 33 % Coverage der internen Tools
                                                                                                                                                                                                                                                                                        • Rate-Limit + Auth-Middleware für externe Verbindungen
                                                                                                                                                                                                                                                                                        v0.5.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        Worker / Task-Routing

                                                                                                                                                                                                                                                                                        • Personal-App unter /work mit SMS-Login (Twilio)
                                                                                                                                                                                                                                                                                        • Round-Robin-Verteilung an Hausmeister + Reinigung
                                                                                                                                                                                                                                                                                        • Foto-Beleg-Pflicht beim Erledigt-Klick
                                                                                                                                                                                                                                                                                        • 5 Sprachen: DE / EN / PL / TR / RO
                                                                                                                                                                                                                                                                                        • Operator /tasks Page für Übersicht
                                                                                                                                                                                                                                                                                        v0.4.1
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        AI Auto-Mode + Trust-Ramp

                                                                                                                                                                                                                                                                                        • 7 Tage Soak-Window + 5 Drafts + 80 % Acceptance-Rate unlocked Auto-Send
                                                                                                                                                                                                                                                                                        • Sensible Themen (Beschwerden, Rechtliches, Sicherheit) bleiben immer eskaliert
                                                                                                                                                                                                                                                                                        • Settings → KI Dashboard mit Confidence-Charts
                                                                                                                                                                                                                                                                                        • L2 LLM Auto bleibt gated bis compose() echte Self-Confidence liefert
                                                                                                                                                                                                                                                                                        v0.4.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        AI-Antwortvorschläge (Anthropic-EU)

                                                                                                                                                                                                                                                                                        • Claude Sonnet + Haiku über den Anthropic-EU-Endpoint (Irland)
                                                                                                                                                                                                                                                                                        • Vorschläge in der Sprache des Gastes (franc-min Detection)
                                                                                                                                                                                                                                                                                        • Operator gibt frei, ändert oder verwirft pro Nachricht
                                                                                                                                                                                                                                                                                        • Token-Budget pro Tag konfigurierbar
                                                                                                                                                                                                                                                                                        v0.3.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        Channel-Adapters (WhatsApp + Hospitable + Voice)

                                                                                                                                                                                                                                                                                        • WhatsApp inbound + channel-aware outbound Bridge
                                                                                                                                                                                                                                                                                        • Hospitable inbound LISTEN-Bridge (Postgres-Notify)
                                                                                                                                                                                                                                                                                        • VAPI inbound HMAC-Route + Transcript-Persist
                                                                                                                                                                                                                                                                                        • Settings → Channels mit Live-Status-Karten
                                                                                                                                                                                                                                                                                        v0.2.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        Inbox-Plumbing (Email + SSE + Webhook)

                                                                                                                                                                                                                                                                                        • Postmark inbound Email → Stay-Thread-Matching
                                                                                                                                                                                                                                                                                        • Postmark outbound für Operator-Antworten
                                                                                                                                                                                                                                                                                        • /api/v1/sse/inbox streamt Postgres-LISTEN-Events ans UI
                                                                                                                                                                                                                                                                                        • Webhook-Subscriptions mit HMAC-Signing + 5x exponential Retry (pg-boss)
                                                                                                                                                                                                                                                                                        • Mobile-First Navigation-Drawer
                                                                                                                                                                                                                                                                                        v0.1.1
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        RLS-Hardening + Biome

                                                                                                                                                                                                                                                                                        • Row-Level Security auf jeder Tenant-Tabelle erzwungen
                                                                                                                                                                                                                                                                                        • ESLint → Biome Migration (schneller, weniger Konfig)
                                                                                                                                                                                                                                                                                        • Security-Audit dokumentiert + getestet
                                                                                                                                                                                                                                                                                        v0.1.0
                                                                                                                                                                                                                                                                                        29. April 2026

                                                                                                                                                                                                                                                                                        Foundation

                                                                                                                                                                                                                                                                                        • Next.js 15 + tRPC v11 + Drizzle + Postgres
                                                                                                                                                                                                                                                                                        • Auth.js v5 (Email-Magic-Link)
                                                                                                                                                                                                                                                                                        • 5 Personas (Owner / Staff / Worker / Public / System)
                                                                                                                                                                                                                                                                                        • 14 initiale Drizzle-Migrations
                                                                                                                                                                                                                                                                                        • Docker + Caddy + Postgres-16 in Compose, on a European cloud host

                                                                                                                                                                                                                                                                                        Liefert wirklich. Probier es aus.

                                                                                                                                                                                                                                                                                        15 Minuten am Telefon. Kostenlos und unverbindlich.