Seiten
Inhalt
xPulse Chat – Roadmap
Stand: April 2026 Begleitdokumente:
TOOL_chat_concept-ui-layout-v1_3_0.mdVerwandt:TOOL_chat_concept-peer-sync.md,TOOL_chat_concept-identity.mdVerwandt:TOOL_chat_concept-device.md,TOOL_chat_concept-crypto.md
Versionsübersicht
| v1.2.0 BugFixes, Performance, Pairing UI |
| v1.3.0 App Shell + Layout + Landingpage |
| v1.4.0 Component Based |
| v1.5.0 Themes + i18n |
| v1.6.0 Profil + Avatar + Emojis + Stickers + GIFs |
| v1.7.0 Chat Images (IndexedDB) |
| v1.8.0 Peer Sync + Identity + Crypto |
| v1.9.0 Multi-Device |
| v2.0.0 Abrax – KI-Assistent via @xpulse/ai |
| v2.1.0 Chat History Paging |
Was kommt als nächstes?
v1.4.0 – Component Based
Der erste große Aufräum-Schritt. xPulse Chat wird auf das @xpulse/* Ökosystem umgestellt – Logger, Crypto, Session, Notifications und Presence kommen als fertige Packages rein. Der Code wird schlanker, wartbarer, und profitiert ab jetzt automatisch von Ecosystem-Updates.
v1.5.0 – Themes + i18n xPulse Chat bekommt ein Gesicht – Dark/Light Theme und die erste Mehrsprachigkeit (Deutsch + Englisch). Wer die App lieber auf Englisch nutzt, kann das ab hier einstellen. Das Look & Feel wird konsistenter und persönlicher.
v1.6.0 – Profil + Avatar + Emojis + Stickers + GIFs Der User tritt endlich in Erscheinung. Display Name, Avatar, Bio, Mood, Pronouns – jeder kann sich so zeigen wie er möchte, und selbst entscheiden was der Peer sieht. Dazu kommen Emojis, Sticker und GIFs für mehr Ausdruck im Chat.
v1.7.0 – Chat Images Bilder sagen mehr als tausend Worte. Ab v1.7.0 können Bilder direkt im Chat geteilt werden – P2P verschlüsselt über den DataChannel, lokal gecacht via IndexedDB. Kein Upload, kein Server, kein Datenleck.
v1.8.0 – Peer Sync + Identity + Crypto Das technische Herzstück. Jeder User bekommt eine kryptografische Identität – stabil, reproduzierbar, serverlos. Nachrichten werden signiert und verifiziert. Und wenn der Peer mal offline war, holt er beim nächsten Connect automatisch nach was er verpasst hat. xPulse Chat wird damit zu einem System das man wirklich vertrauen kann.
v1.9.0 – Multi-Device Endlich – xPulse Chat auf allen Geräten. iPhone, MacBook, Desktop – alle teilen dieselbe Identität, denselben Chatverlauf, dasselbe Profil. Hinzufügen per 4-stelligem Code, kein Server, kein Account-System. Einfach pairen und loslegen.
v2.0.0 – Abrax Der große Sprung. Abrax ist ein KI-Peer – direkt in der Peers-Liste, wie ein ganz normaler Chat-Kontakt. Vollständig im Browser, kein Umweg über xPulse-Server. Provider, Modell, Persönlichkeit – alles einstellbar, alles unter Kontrolle des Users. Abrax hört nur zu wenn man mit ihm chattet. Und er vergisst nichts – solange man es nicht möchte.
v2.1.0 – Chat History Paging Wer lange Gespräche führt, wird es lieben. Die Chat-History lädt ab jetzt lazy – schnell beim Öffnen, nachladen wenn man weiter zurückblättern will. Kein Ruckeln, kein Warten.
Status: LIVE
UI/UX
- App Shell mit CSS Grid (
layout-shell/layout-fullscreen) - Linke Sidebar – Peers-Liste,
[+]Button, Footer mit Toggle, Version-Pill - Top Bar – Hamburger, Title, Status-Dot, User-Menü
- CSS ausgelagert:
base.css,components.css,layout.css,views/*.css - Router:
routeShell,routeShellParam,routeFullscreen - Mobile Sidebar als Overlay mit Backdrop
- Chat-Landingpage
chat.xpulse.one/
Projekt-Fundament
-
xpulse.jsonim Repo-Root anlegen -
xpulse-chat-logo.svgin Sidebar einbinden -
xpulse-chat-logo.svgin Feedback-Formular einbinden -
docs/Grundstruktur anlegen
v1.4.0 – Component Based
Status: PLANNED
Voraussetzung: Verdaccio läuft, @xpulse/* Packages verfügbar
Extraktion
-
@xpulse/themeeinbinden (ersetzt lokalebase.css+components.css) -
@xpulse/themeeinbinden -
@xpulse/loggereinbinden (ersetztmodules/logger.js) -
@xpulse/cryptoeinbinden (ersetztcrypto.js) -
@xpulse/sessioneinbinden (ersetztsession.js) -
@xpulse/notifyeinbinden (ersetztmodules/notify.js) -
@xpulse/presenceeinbinden (ersetztmodules/presence.js)
Feedback
- Feedback-Link im Sidebar-Footer
- Modal mit Feedback / Bug melden via
mailto:
Docs
-
docs/vollständig ausarbeiten (guide, security, changelog) - ADRs anlegen inkl.
de/+en/Unterordner
v1.5.0 – Themes + i18n
Status: PLANNED Voraussetzung: v1.4.0 abgeschlossen
Themes
- Dark/Light Theme Toggle
- Theme via
@xpulse/theme - User-Präferenz in
xpulse_chat_terms_acceptedNamespace
i18n
-
@xpulse/i18neinbinden - Deutsch / Englisch
- Alle UI-Strings in
src/translations/ - Sprachwahl in Profil / Settings
v1.6.0 – Profil + Avatar + Emojis + Stickers + GIFs
Status: PLANNED
Voraussetzung: v1.5.0 abgeschlossen
Konzept: TOOL_chat_concept-profile.md
Profil
- Display Name (unabhängig vom Login)
- Avatar (Initialen oder Upload)
- Bio (max. 500 Zeichen)
- Mood (max. 250 Zeichen)
- Pronouns (Freitext + UI-Hinweis)
- Status (
away/busywählbar,online/offlineSystem) -
public-Block – Sichtbarkeitssteuerung pro Feld -
preferences.defaultStatus–awaybei Tab-Unfocus + 5min Inaktivität
Emojis / Stickers / GIFs
- Emoji-Picker
- Sticker-Support
- GIF-Integration (TBD: Quelle)
v1.7.0 – Chat Images
Status: PLANNED Voraussetzung: v1.6.0 abgeschlossen
Features
- IndexedDB als lokaler Cache für Bilder
- Bilder via DataChannel senden (chunked)
- Bilder in Chat-History rendern
- Größenlimit + Komprimierung (TBD)
v1.8.0 – Peer Sync + Identity + Crypto
Status: PLANNED
Voraussetzung: v1.7.0 abgeschlossen
Konzept: TOOL_chat_concept-peer-sync.md, TOOL_chat_concept-identity.md
Konzept: TOOL_chat_concept-message.md, TOOL_chat_concept-crypto.md
Identity
- Ed25519 Keypair generieren (Fallback: ECDSA P-256)
-
userId= SHA-256(userPublicKey) – stabil, niemals neu generieren -
clientId= SHA-256(clientPublicKey) – gerätegebunden - Salt generieren + privateKey AES-GCM verschlüsseln
- localStorage Migration →
xpulse_identity_*+xpulse_chat_{userId}_* - Migration via
GLOBAL_adr-015– Backup + Validation + Atomic Switch
Message Format
- Neues v1 Format:
id,senderId,receiverId,sentAt,editedAt,type,content,v,meta -
migrateV0()im ChatConverter – abwärtskompatibel - Message-Signing via Ed25519 (
meta.signature)
Peer Sync
-
@xpulse/syncPackage – abstrakte Basisklassen -
ChatSyncer–sync(),syncChat(),syncAll() -
ProfileSyncer–sync:notify:profilebei Änderungen - DataChannel-Protokoll:
sync:request:history,sync:response:history - DataChannel-Protokoll:
sync:request:restorable,sync:response:restorable - DataChannel-Protokoll:
sync:request:restore,sync:response:restore - DataChannel-Protokoll:
sync:delete,sync:notify:profile - Graveyard (
xpulse_chat_{userId}_graveyard_{chatId}) - Pending Delete Queue
- Chat Info Panel: wiederherstellbare Nachrichten
- Fehlerfall: 3s Timeout, 3 Retries, System-Message
v1.9.0 – Multi-Device
Status: PLANNED
Voraussetzung: v1.8.0 abgeschlossen (Identity + Crypto)
Konzept: TOOL_chat_concept-device.md
Features
- Device-Liste im Profil (
xpulse_chat_{userId}_devices) - Founder-Gerät – nicht löschbar, Nachfolge nach 30 Tagen Inaktivität
- Max. 5 Geräte pro User
- Login-Screen: Tab "Gerät hinzufügen" – 4-stelliger Code, passiv
- Pairing-Flow: bestehendes Gerät aktiv, neues Gerät passiv
- Erst-Sync mit Sperrbildschirm + ADR-015 Prinzip
-
DeviceSyncer– vollständiger Erst-Sync - Gerät entfernen →
sync:device:remove→ alle lokalen Daten löschen - Gerätename optional vergeben ✏️
v2.0.0 – Abrax (Codename: Abra)
Status: PLANNED
Voraussetzung: v1.9.0 abgeschlossen, @xpulse/ai Package fertig
Konzept: COMP_ai_concept.md
KI-Integration via @xpulse/ai – ein spezieller KI-Peer in der Peers-Liste,
mit vollem Gesprächskontext, Streaming und vollständiger User-Kontrolle über
Provider, Modell und Persönlichkeit. Browser-to-Provider direkt, kein Umweg
über xPulse-Server.
Opt-in & Rechtliches
- Consent-Flow (
xpulse_chat_ai_consent) - Rechtsseite
xpulse.one/tool/chat/ai-terms/ - "KI deaktivieren" + vollständiges Löschen aller KI-Daten
KI-Peer
- 🤖 Abrax in Peers-Liste (nur nach Opt-in)
- Name + Persönlichkeit einstellbar (Vorlagen + freier Text)
- Chat-Verlauf wie jeder andere Peer
Provider & Einstellungen
- Provider-Auswahl: Anthropic, OpenAI, xAI, Google, OpenRouter, Ollama
- API Key – verschlüsselt, verlässt nie den Browser
- Ollama URL konfigurierbar
Chat Info Panel
- Modell-Auswahl (dynamisch via Provider API)
- Streaming ein/aus
- Kontext-Größe, Temperatur, Max. Tokens
- Token-Verbrauch (Session + gesamt lokal)
- "Verlauf löschen"
i18n
-
src/translations/ai.de.json+ai.en.json
v2.1.0 – Chat History Paging
Status: PLANNED Voraussetzung: v2.0.0 abgeschlossen
Lazy rendering der Chat-History: initial letzte 50 Nachrichten, ältere per Button nachladen (je 50, cursor-basiert via Timestamp).
-
loadChatHistorymitlimit+before-Parameter - "Ältere Nachrichten laden" Button
- Prepend + Scroll-Position halten
- Button verschwindet wenn keine weiteren Nachrichten