git log · 291 Tage Geschichte

Die Geburt von Taski

Von einem unsicheren ersten Commit zu einem vollständigen Ökosystem auf 6 Plattformen. Fast zehn Monate voller schlafloser Nächte, Zweifel und kleiner Siege. Und ein Versprechen, das nie gebrochen wurde: deine Privatsphäre, vor allem anderen.

0Commits
0Plattformen
0Tage
0iOS-Builds
$ git log --since="2025-11-26" --oneline | wc -l
01 Der Funke

Initial Commit

Alles beginnt mit einem leeren Ordner und einer Idee: eine Messaging-App, die die Privatsphäre an die erste Stelle setzt. Der erste Commit ist nackt, ein Xcode-Gerüst, ein SwiftUI-Projekt mit mehr Hoffnung als Code. "tentativo sistemazione login" lautet der zweite Commit, wenige Minuten später. Noch funktioniert nichts, aber die Reise hat begonnen.

Initial Commit
Der zweite Commit: tentativo sistemazione login

Die ersten Worte

In 24 Stunden erwachen die Push-Benachrichtigungen und die WebSocket-Verbindung zum Leben. Das Backend schafft es, eine Nachricht in Echtzeit von einem Gerät zum anderen zuzustellen. Die Umsetzung des Profilfotos scheitert beim ersten Versuch. "App compila update profilo fallito" doch am nächsten Morgen funktioniert es. Die Nachrichten erscheinen. Zum ersten Mal sprechen zwei Geräte miteinander.

Chat funktioniert!

Die Commit-Message sagt alles: "Chat funzionante, profilo funzionante" Zum ersten Mal bleiben die Chats erhalten, die Nachrichten kommen an, das Profil aktualisiert sich. Das Fundament steht. Von hier an wird gebaut.

Die schlaflosen Nächte

Die Zeitstempel lügen nicht: Commits um 00:52, um 2:13, um 2:30, um 4:53, um 5:07. Eine Salve nächtlicher Commits bringt die App von "funktioniert" zu "wirkt echt". Schreibindikator, Lesebestätigungen, Deeplinks, Badges. Um 4:53 taucht das erste der Gespenster auf, die das Projekt verfolgen werden: "fix chat fantasma e push" Um 5:07, erschöpft: "risolti" Ein einziges Wort. Dann Stille bis zum nächsten Tag.

02 Die Festung

E2EE implementiert

Fünf Tage nach dem ersten Commit erwacht die Ende-zu-Ende-Verschlüsselung zum Leben. Von diesem Augenblick an entsteht jede Nachricht versiegelt: Lesen können sie nur zwei Menschen auf der Welt, der Absender und der Empfänger. Niemand sonst. Nicht einmal jener, der die Nächte damit verbracht hat, Taski zu bauen. Es ist keine Funktion unter vielen: Es ist ein in den Code gemeißeltes Versprechen, der Grund, warum das alles existiert. Es ist der Moment, in dem ein Experiment zu einem Pakt des Vertrauens wird.

E2EE implementiert

"TUTTO FUNZIONANTE DA QUESTO PUNTO"

Die Commit-Message in Großbuchstaben lügt nicht. Push-Benachrichtigungen mit verschlüsselter Vorschau, Antworten auf Nachrichten, verschlüsselte Nachrichten mit korrekter Uhrzeit. In nur 6 Tagen hat Taski das komplette Fundament eines sicheren Messengers. "NOTIFICHE FUNZIONANTI" ruft ein Commit kurz zuvor. Die Begeisterung ist im git log förmlich greifbar.

Kontakte und SMS-Verifizierung

Wieder mitten in der Nacht, um 1:06. Nutzer-Abgleich über die Telefonnummer. Login per SMS. Taski hört auf, ein Experiment zu sein, und wird zu etwas, das du auf dem Handy deiner Mutter installieren könntest.

Gruppen: die Achterbahn

Am 4. Dezember halten die Gruppen Einzug in den Code. Das git log erzählt ein Epos in vier Akten: "Gruppi funzionanti" "Gruppi perfettamente funzionanti" "Gruppi quasi perfetti" "GRUPPI PERFETTI" Am nächsten Tag, erneut: "Logica gruppi perfetta" Fünf Commits, fünf wachsende Stufen der Gewissheit. Oder vielleicht der Selbstüberzeugung.

Die Woche der "Vielleichts"

21 Commits in 4 Tagen, und der Zweifel durchdringt jede Zeile: "Per ora BENE" "Sistamazione spunte? Forse!" "chat eliminate sembra funzionare" "Abbinamento chat quasi perfetto" "sistemato forse tutto" Das ist keine Gewissheit: Das ist Hoffnung. Die Häkchen funktionieren, dann hören sie auf. Die Geister-Chats erscheinen und verschwinden. Die Tippfehler in den Commits verraten die Müdigkeit: "Sistamato", "nofifiche", "implemenzazione". Doch der Code schreitet voran.

Das weihnachtliche Limbo

Während die Welt feiert, hören die Commits nicht auf. Transkription von Sprachnachrichten. Link-Vorschauen. Videos. Am 23. Dezember: "Posizionamento messaggi quasi perfetto" Am 27.: "Forse ci siamo, chat sistamata" "Chat sembra ok" "Wirkt". "Vielleicht". "Fast". Die Worte dessen, der gelernt hat, nicht zu vertrauen. Am 26. Dezember, dem zweiten Weihnachtsfeiertag: "Sistemato problema freeze UI in chat" Kein Ruhetag für die App.

03 Die Reife

Sprach- und Videoanrufe

Die Sprach- und Videoanrufe in Echtzeit kommen, gebaut auf WebRTC mit Signalisierung über WebSocket. Freizeichen-Ton, Umgang mit verpassten Anrufen, automatischer Lautsprecher beim Videoanruf. Und auch die Stimme reist, wie jedes geschriebene Wort, Ende-zu-Ende-verschlüsselt. "Nascondi tasto videochiamata (da riabilitare)" erzählt vom Ringen zwischen Ehrgeiz und Stabilität. Am 5. Januar: "Chiamate quasi perfette" Wieder dieses "fast". Und dann der wahre Feind: "Fix call zombie: terminate active call when app goes to background or is killed" Die Geister-Anrufe, jene, die aktiv bleiben, wenn die App stirbt, werden den Code wochenlang verfolgen.

Der Watchdog

Der von iOS-Entwicklern am meisten gefürchtete Fehlercode: 0x8BADF00D ("ate bad food"). Er bedeutet, dass das System die App getötet hat, weil der Haupt-Thread blockiert war. "fix: prevent watchdog crash (0x8BADF00D) from background reloadData" Er wird dreimal in der Geschichte von Taski auftauchen. Jedes Mal stundenlanges Debugging, um herauszufinden, welche Operation den Main-Thread als Geisel hielt. Im April das Backup. Im Mai die KI-Suche. Der Watchdog kennt keine Gnade.

Der Worker wird geboren

Das Backend wird zu einem Cloudflare Worker: serverless, am Edge verteilt, immer nah bei dem, der schreibt. Es ist der erste Commit eines eigenen Repositorys. Von hier aus starten 1.275 Commits in acht Monaten: 1.275 Mal, in denen jemand beim Drücken von «Enter» den Atem anhielt. Das Herz von Taski beginnt, in einem neuen Rhythmus zu schlagen.

Die Infrastruktur wächst

Versionierung für die Rotation der E2EE-Schlüssel. Heartbeat-System für die Anrufe. Sticker mit eigenem Speicher und TTL. Push-Warteschlange, gebaut auf Durable Objects, mit Bestätigungs-ACK vom Client. Anti-Missbrauch-Rate-Limit für SMS. Echtzeit-Präsenzsystem auf Pub/Sub-Basis. Jede Woche ein neues System, Stein um Stein errichtet, oft bis zum Morgengrauen.

Rohe Gewalt

Manchmal muss die Eleganz zurücktreten. Die Benachrichtigungen verdoppeln sich, die Filter halten nicht, und irgendwann muss es einfach nur funktionieren. "Forza retry push bypassando dedupe" Am nächsten Tag: "Fix push duplicate" Und der klassische Kreislauf: die Korrektur der Korrektur. Ein Drehbuch, das vertraut wird. Es wird Tage geben, an denen dasselbe Stück Backend 34 Mal veröffentlicht wird: 34 kleine Hoffnungen, eine nach der anderen.

Februar 2026

Keine Kompromisse bei den Benachrichtigungen

Eine verlorene Benachrichtigung ist eine Nachricht, die nie ankommt. Also wird das Benachrichtigungssystem von Grund auf neu gebaut: Sie reisen in Echtzeit-Geschwindigkeit, doch keine geht je verloren. Auch wenn du offline bist, warten sie, sicher, bis sie dich erreichen. Geschwindigkeit und Zuverlässigkeit, ohne zwischen beiden wählen zu müssen. Es ist der Beginn einer Besessenheit für Performance, die die folgenden Monate prägen wird: jedes verfeinerte Detail ist eine Nachricht, die einen Augenblick früher ankommt, ein besser bedienter Nutzer.

Die Gespenster des Backends

Die Durable Objects führen eine bisher unbekannte Art von Bug ein: die Zombie-Sessions. WebSockets, die offen scheinen, aber schon tot sind. Die Präsenz der Freunde, die flackert, erscheint und verschwindet. "Fix forceDelivery for zombie WS sessions" "alarm-based stale sweep for zombie WS detection" "self-heal stale state" Der Code lernt, sich selbst zu heilen: Ein periodischer Alarm fegt die abgestandenen Verbindungen weg und räumt den Zustand auf. Es ist nicht elegant. Aber um drei Uhr nachts ist «funktioniert» das schönste Wort der Welt.

-60% Aufrufe zwischen den Durable Objects

Ein einziger Commit halbiert den Datenverkehr zwischen den Durable Objects. Die Idee: Statt die Präsenz jedes Nutzers einzeln abzufragen, bündelt ein gesharptes PresenceRegistry die Abfragen im Batch. Ein einziger Aufruf statt Dutzender. Die Kosten brechen ein, die Latenz sinkt. Diese Zeile Code, in der Stille geschrieben, wird kein Nutzer je sehen. Aber spüren werden sie alle.

Hibernation: der Schlaf der Durable Objects

Die Durable Objects sind mächtig, aber sie kosten, solange sie wach bleiben. Die Hibernation API versetzt sie in Winterschlaf, wenn sie nicht gebraucht werden, und hält dabei die WebSocket-Verbindungen offen, ohne Ressourcen zu verbrauchen. ChatRoom und UserHub gehen beide in Hibernation. "eliminate ~99.7% DO GB*s" jubelt der Commit: eine fast rührende Ersparnis, Frucht wochenlanger Studien. Dann, am nächsten Tag, der Preis: "Fix presence false-offline after hibernation wake" Das Erwachen ist nicht immer sanft. Jeder Sieg wird hier mit einem neuen Problem bezahlt, das man lieben lernt.

104 Datenbank-Migrationen

Jede D1-Migration ist eine Operation am offenen Herzen der lebenden Datenbank, ohne sie je abschalten zu können. Eine Spalte hinzufügen, einen Index anlegen, eine Einschränkung entfernen: winzige Handgriffe, die, wenn falsch, alles zum Stillstand brächten. 104 Migrationen in acht Monaten, etwa eine alle zwei Tage. Keine hat je auch nur eine Sekunde Ausfallzeit verursacht. Hinter dieser perfekten Stille ein Herz, das jedes Mal heftig schlug.

04 Die Expansion

Taski Web wird geboren

React, Vite und Tailwind. Der Web-Client kommt mit Pairing per QR-Code, vollständiger E2EE und WebSocket in Echtzeit. In nur 17 Tagen wird er zu einem vollwertigen Client: Chat, Medien, Anrufe. "SECURITY: Remove open user search" Die Vorsicht ist kein nachträglicher Einfall: Sie ist bereits Teil der DNA. Menschen zu schützen kommt vor dem Beeindrucken.

Stories und Reaktionen

Die Stories kommen zu Taski: teilbar, flüchtig und verschlüsselt. Reaktionen auf Nachrichten mit Emojis. Likes für Stories mit Avatar in der Push. Die App beginnt sich vollständig anzufühlen, kein Projekt mehr, sondern ein Produkt.

Siri und QR-Schlüsselverifizierung

"Hey Siri, manda un messaggio con Taski" und sie geht los, Ende-zu-Ende-verschlüsselt, ohne eine einzige Berührung. Du kannst persönlich prüfen, dass du wirklich mit dem sprichst, den du glaubst, indem du einen Code scannst. Und Fotos und Videos aus jeder App teilen, immer geschützt. Sicherheit, die aufhört, eine Last zu sein, und zu einer natürlichen Geste wird.

Apple Watch Begleiter

An einem einzigen Tag bringen sechs Commits Taski auf die Apple Watch: Chat, Fotos, Avatare, Logo in der Toolbar, Echtzeit-Sync, paralleles Fetching. Am nächsten Tag die Abrechnung: Fix für das Einfrieren der UI, Entschlüsselung aus dem Main-Thread verlagert, Locks asynchron gemacht. Der Bildschirm ist so groß wie eine Briefmarke, doch die Probleme sind riesig. Und trotzdem kommen am nächsten Morgen die Nachrichten auch dort an.

Taski Desktop: Mac und Windows

Tauri 2 hüllt den Web-Client in eine native App. macOS und Windows am selben Tag. Native Menüleiste, Systembenachrichtigungen mit verschlüsselter Vorschau, direkte Antwort aus der Benachrichtigung, Badge im Dock, Auto-Update und Handoff mit iOS. Vier verschiedene Bildschirme, eine einzige Unterhaltung, die dir überallhin folgt. Es werden 85 Commits nötig sein, um ihn fertigzustellen, und jeder ist ein Stück Leben, das darin zurückgelassen wurde.

Die große Migration: von SwiftUI zu ObjC

Die Chat entsteht in SwiftUI: elegant, deklarativ, modern. Und langsam. Die Tastatur erscheint und verschwindet wie ein Gespenst, und nichts schmerzt mehr als etwas, das fast funktioniert: "Usato UIkit per chat da risolvere problema tastiera fantasma" Am 28. Dezember 2025 der erste Versuch, zu UIKit zu wechseln. Dann Monate hybrider Koexistenz: SwiftUI, das UIKit umhüllt, das SwiftUI aufruft. Am 7. März der Crash, der jede Geduld zerbricht: "il datasource rows e il batch update non restano coerenti e UIKit abortisce con SIGABRT" Am 20. März die radikale Entscheidung: die gesamte Chat in Objective-C neu schreiben. Nicht Swift, nicht SwiftUI. Objective-C. Die Sprache der Großväter. Aber UICollectionView in ObjC hat keinen Bridge-Overhead, keine Launen des SwiftUI-Layouts, keine Gespenster. In 4 Tagen bringen 20 Commits die Chat von SwiftUI zu ObjC: Sprechblasen, Eingabeleiste, Emojis, Antworten, Miniaturansichten, Videos, klickbare Links, Musik-Player, nativer Medien-Viewer. Das Ergebnis: flüssiges Scrollen, null Ruckeln, null Crashes. Manchmal heißt Fortschritt, einen Schritt zurückzugehen.

feat(chat): ObjC chat collection view with input bar, emoji sizing, camera, scroll fixes
05 Die Intelligenz

TaskiAI: Nachrichten umschreiben

Die künstliche Intelligenz betritt Taski auf Zehenspitzen. Ein Sparkle-Button in der Eingabeleiste schreibt einen Satz um: förmlicher, lockerer, korrigiert, übersetzt. Nie aufgezwungen, immer angeboten: eine sanfte Hilfe, die einen Schritt zurücktritt, innerhalb der Grenzen der am ersten Tag versprochenen Privatsphäre.

TaskiAI Chatbot

An einem einzigen Tag bauen 10 Commits einen vollwertigen Konversationsassistenten, der neben den Chats in der Liste lebt. Foto- und PDF-Anhänge, Markdown-Rendering, Erzeugung von PDF-Dokumenten, Rate-Limit von 20 Anfragen pro Stunde, automatischer Wechsel zwischen Modellen. "AI memo creation with reminders + Siri App Shortcut" Die KI verwandelt eine Nachricht in eine Erinnerung und plant sie dir per Siri ein. Technologie, die sich ausnahmsweise um dich zu kümmern scheint.

AKD: Auditable Key Directory

Ein Auditable Key Directory: ein Verzeichnis der öffentlichen Schlüssel, geschützt durch eine Hash-Chain, mit clientseitigen Signaturen. Würde jemand versuchen, heimlich deinen Schlüssel auszutauschen, um dich auszuspionieren, würde die kryptografische Kette ihn augenblicklich entlarven. Es ist eine Obsession: den Verrat unmöglich zu machen, nicht nur unwahrscheinlich. "Houston, we have a problem!" scherzt der weltraumthematische Wartungsbildschirm, der am nächsten Tag hinzugefügt wird. Denn auch in den ernstesten Momenten muss man ein wenig lächeln.

TaskiAI zwischen den Zeilen

Bis gestern lebte die KI in einem eigenen Raum. Jetzt genügt es, mitten in einer Unterhaltung @TaskiAI zu schreiben, und sie antwortet genau dort, im Fluss des Gesprächs, vor allen. In Gruppen wird sie zu einem weiteren Teilnehmer: einer, der antworten, zusammenfassen, übersetzen kann und nie schläft. Die Antwort erscheint wie von Zauberhand zwischen den Nachrichten der Menschen, ein natürlicher Teil des Gesprächs.

Ein Gedächtnis, das nie verrät

Ein Assistent, der bei jeder Nachricht alles vergisst, ist nur ein Echo. Also lernt TaskiAI zu erinnern: die Fakten, die du ihr anvertraust, bleiben, Gespräch für Gespräch. Aber mit einer eisernen Regel: das Gedächtnis ist Ende-zu-Ende verschlüsselt wie alles andere. Deine Erinnerungen mit dem Assistenten gehören nur dir: nicht einmal der Server weiß, was TaskiAI über dich behalten hat.

April 2026

Spotify, Voice AI und Anti-Missbrauch

April ist ein Monat kreativer Explosion. Spotify-Integration mit PKCE-Auth. Voice TaskiAI mit GPT Realtime für Sprachkonversationen. KI-gestütztes Anti-Missbrauchs-System mit Llama Guard 3 + Haiku Double-Check, automatische 7-Tage-Sperre. Ban-System mit Echtzeit-Broadcast über WebSocket. Die App ist nicht nur schön, sie ist auch sicher.

Der längste Tag

59 Commits in 24 Stunden. Der absolute Rekord des Projekts. Ein Tag, an dem alles auf einmal geschieht: kritische Bugs, neue Ideen, Korrekturen über Korrekturen. Das Tagebuch jenes Tages ist ein ganzer Roman. Mehr, als Taski Desktop in seinem ganzen Leben angesammelt hat. Schlafen war an jenem Tag ein Luxus, den sich jemand zu verwehren beschloss.

Die 72 Stunden

Drei aufeinanderfolgende Tage: 34, 34 und 41 Commits zwischen iOS und Worker. KI-Anti-Missbrauch, Ban-System, Echtzeit-Broadcast, Dedup der Push-Warteschlange, Bildkontext für TaskiAI. Der Worker erreicht 34 Deploys an einem einzigen Tag: im Schnitt einen alle 42 Minuten. Drei Tage lang war Schlafen optional. Die Leidenschaft ähnelt manchmal verblüffend dem Wahnsinn.

06 Die Panzerung

Audit und Hardening

Zwei Runden Sicherheits-Audit. Vergleiche in konstanter Zeit auf allen sensiblen Daten, atomare D1-Abfragen für die KI-Erwähnungen, Größenprüfung vor jedem Upload. Jeder Endpoint durchgesiebt, jede Eingabe validiert. Niemand hat darum gebeten, niemand wird es bemerken. Aber genau hier wird das Vertrauen wirklich gebaut: in den Details, die unsichtbar bleiben.

Voice Web Search

TaskiAI Voice erhält ein Werkzeug zur Websuche: während eines Sprachgesprächs kann es im Netz suchen und kündigt jede Suche aus Transparenzgründen laut an. Country-Mapping nach Sprache, maximal 3 Suchen pro Anruf. Auch die Ehrlichkeit ist hier eine Funktion: keine stillen Zaubertricks, keine Geheimnisse.

Taski kommt auf Android

Zuerst als Capacitor-Wrapper, dann die Migration zu einem nativen Client in Kotlin. Am 17. und 18. Mai, in langen nächtlichen Sitzungen vor dem Monitor, nimmt er Gestalt an: WebSocket, E2EE, FCM-Push, verschlüsselte Medien. Ein grausamer Bug zwischen iOS und Android taucht auf: Die verschlüsselten Pushes kommen schlicht nicht an. Die Lösung sind zwei Zeilen in der Notification Service Extension von iOS, die wochenlang unsichtbar blieben, weil ein Cache den Pfad verdeckte. Zwei Zeilen, Wochen der Suche. Zehn kritische Bugs nach dem letzten Audit behoben. Die sechste Plattform lebt. Jetzt kann jeder, auf jedem beliebigen Telefon, sicher schreiben.

Der native Android-Client: CryptoService.kt, dieselbe E2EE wie iOS und Web

Der akzeptierte Bug

Manchmal lautet die richtige Antwort nicht "beheben", sondern "akzeptieren". Unter seltenen Umständen trifft eine zweite Benachrichtigung nach 60 Sekunden ein: ein Sicherheitsnetz für den Fall, dass die erste nicht bestätigt wird. Stunden der Problemanalyse, mit Hilfe der KI. Drei vorherige Versuche, ihn zu beheben, hatten wichtigere Dinge zerstört. Das Fazit: lieber eine einmal unter tausend verdoppelte Benachrichtigung als eine verlorene. iOS dedupliziert sie fast immer über die Collapse-ID, und der verbleibende Fall ist äußerst selten. Der Bug wird dokumentiert und akzeptiert. Nicht alles muss behoben werden: Manche Dinge muss man verstehen und loslassen. Es ist eine der schwersten Lektionen, die man lernen kann, für jeden, der Code schreibt, und vielleicht nicht nur für ihn.

Offensives Security-Audit

Ein vollständiges offensives Audit: mit eigenen Händen zu zerbrechen versuchen, was man gebaut hat, bevor es ein anderer tut. Sechs Fixes ausgerollt: XSS-Schutz, Rate-Limit für den Admin, Beseitigung der Error-Oracles, SMS-Sperre nach Land, CORS-Whitelist, abgesicherter Zugang zum Admin-Panel. Man wartet nicht sitzend auf den Angriff: Man geht ihn suchen. Die Paranoia ist hier die höchste Form des Respekts gegenüber jenen, die dir ihre intimsten Nachrichten anvertrauen.

Apple App Attest

Apple App Attest integriert: Attestation und Assertion, Trust-Tier für die Geräte. Nur echte Apps, verifiziert von Apples Secure Enclave, dürfen mit dem Backend sprechen. Jeder Bypass-Header entfernt. Die Vertrauenskette ist nun lückenlos, vom Apple-Silizium bis zum Server. Nichts davon sieht man bei der Nutzung der App. Aber genau das lässt dich ruhig schlafen.

Hilfe, die immer da ist

Auch das ausgefeilteste Produkt muss sich früher oder später erklären. So entsteht Taski Support: keine tote FAQ-Seite, sondern ein echter Assistent mit einem eigenen KI-Gehirn, getrennt vom Rest der App. Wenn etwas schiefgeht, öffnest du eine Anfrage und auf der anderen Seite antwortet jemand, zu jeder Stunde, in jeder Sprache. Denn eine App, die den Menschen an erste Stelle setzt, darf ihn nicht allein lassen, gerade wenn er Hilfe braucht.

Key Transparency: vertraue, aber prüfe nach

Das ehrgeizigste Ziel von allen, und es kommt in der Arbeitssitzung Nummer 400. Bis hierher prüfte das AKD deine Schlüsselkette; die Key Transparency geht weiter: ein Append-only-Log im Stil von Certificate Transparency, mit Merkle-Tree, Inclusion-Proof und Consistency-Proof. Der Server kann einen Nutzer nicht belügen, ohne alle zu belügen, und alle zu belügen hinterlässt eine mathematische Spur, die unmöglich zu verbergen ist. Die Clients tauschen den Kopf des Logs huckepack in den verschlüsselten Nachrichten aus (Gossip): Würde der Server zwei verschiedene Versionen der Wahrheit zeigen, würde es jemand bemerken. Und der letzte Schliff: Das Log lebt auf zwei unabhängigen Cloud-Infrastrukturen, betrieben von verschiedenen Unternehmen, von denen eine den Zustand der anderen mitsigniert. Um die Wahrheit zu fälschen, müsste man beide im selben Augenblick korrumpieren. Keine Zaubertricks: nur Mathematik und kryptografische Signaturen. Live auf Worker, Web und iOS am selben Tag. Es ist der Zielpunkt einer Obsession, die an jenem ersten Dezember begann. Vertrauen wird von heute an nicht mehr erbeten: Es wird bewiesen.

Die KI, die Bildern Leben einhaucht

TaskiAI konnte bereits schreiben, zusammenfassen, Fotos und Dokumente lesen, Erinnerungen erstellen. Am 3. Juni lernt sie etwas Neues: Videos zu erzeugen. Du fragst, und aus einer Idee entsteht etwas, das sich bewegt, direkt im Chat, neben den alltäglichen Nachrichten. Ein weiterer Schritt für einen Assistenten, der nie aufhört zu lernen.

Der Geist, endlich gefangen

Erinnerst du dich an den akzeptierten Bug? Die zweite Benachrichtigung, die ab und zu zu viel kam, die wir leben ließen, weil sie unmöglich zu fassen schien. Wochen später, eine Nacht vor den Logs, kam die Wahrheit ans Licht: Sie war keineswegs unvermeidlich. Es war eine Race Condition: zwei Ereignisse im Wettlauf, die ab und zu in der falschen Reihenfolge ankamen. Sobald der Mechanismus klar war, genügte ein kleiner Marker im Speicher, um das Rennen wieder zu ordnen. Keine verlorene Benachrichtigung, kein Geist zu viel. Was wir akzeptiert hatten nicht zu verstehen, haben wir am Ende verstanden. Und was man versteht, kann man lösen.

Ein Haus mit eigenem Namen

Monatelang lebte das Herz von Taski an einer Service-Adresse, einer geliehenen technischen Subdomain. Dann versucht eines Nachts jemand von außen, genau an dieser Hintertür zu klopfen, und findet sie. Kein Schaden: die echten Verteidigungen lagen anderswo. Doch die Botschaft ist klar: Zeit, die letzte Service-Tür zu schließen. Das Backend zieht vollständig unter taski.chat um, seinen Namen, seine Adresse. Keine Hinterzimmer mehr: ein Haus, eine Tür, bewacht.

Die Signatur, die niemand fälschen kann

AKD und Key Transparency machten es unmöglich, Schlüssel heimlich zu ändern. Ein feiner Schatten blieb: Was, wenn der Server selbst von Anfang an deine Identität vortäuschte? Am 6. Juni verschwindet dieser Schatten. Jede Person hat nun einen einzigen Identitätsschlüssel, der nur auf ihren eigenen Geräten lebt und niemals den Server oder das Web berührt. Wenn du jemanden zum ersten Mal triffst, wird sein Zeichen eingeprägt; ab da weißt du es, wenn etwas nicht passt. AKD, Key Transparency, Identity Key: drei Schlösser an derselben Tür. Vertrauen ist keine Versprechung des Servers mehr: es ist Mathematik in deinen eigenen Händen.

Ein Telefon, nur deines

Dein Konto lebt auf einem Telefon zur Zeit: deinem. Web und Desktop sind keine Eingänge mehr, sondern Fenster, die sich nur öffnen, wenn du sie einlädst, indem du einen Code vom Gerät in deiner Hand scannst. Und wenn du auf ein neues Telefon wechselst, werden deine Schlüssel nicht von Neuem geboren, noch laufen sie über den Server: sie wandern von einem Gerät zum anderen, von dir zu dir, wie ein Staffelstab, persönlich übergeben. Wer versuchte, deine Nummer zu stehlen, um von einem neuen Bildschirm hereinzukommen, den fragt Taski trotzdem nach dem Telefon in deiner Hand: deine SIM allein genügt nicht, um du zu sein.

Unter Verschluss, auch in Ruhe

Deine Nachrichten waren immer verschlüsselt, während sie reisen. Jetzt bleiben sie verschlüsselt, auch wenn sie im Telefon schlafen. Jeder Chat, jedes Foto, jede Sprachnotiz ruht unter Verschluss, und dieser Schlüssel wohnt in einem Hardware-Tresor im Telefon, der sich nur öffnet, wenn das Gerät entsperrt und wirklich deins ist. Wird dein Telefon gestohlen, auch nur gesperrt, oder landet es auf dem Tisch eines Forensiklabors, findet niemand deine Gespräche: nur Rauschen. Auf iPhone und Android gleichermaßen.

Suche, die versteht

Früher suchtest du ein Wort, und Taski fand nur, wer genau dieses Wort geschrieben hatte. Jetzt versteht es, was du meinst: Suche nach 'dem Gruppenessen', und es holt die Nachricht zurück, in der jemand vorschlug, sich zum Essen zu treffen, auch wenn er es nie so genannt hat. Den Sinn liest ein kleines Modell künstlicher Intelligenz, das ganz im Telefon läuft, auf dessen neuronalem Chip: kein Wort, kein Gedanke verlässt je das Gerät. Die Suche wird klüger genau in dem Moment, in dem sie privater wird.

07 Die Härtung

Die letzte Lücke, geschlossen

Ein offensiver Audit findet den feinsten verbliebenen Riss: von einem Zweitgerät oder aus dem Web hätte jemand deinen Identitätsschlüssel neu schreiben und deinen Platz einnehmen können. Von nun an wird dieser Schlüssel nur noch von dem Telefon in deiner Hand geschrieben, deinem Hauptgerät, und von keinem anderen. Rundherum ziehen sich weitere Abwehrmechanismen enger: das Web betritt die Tür mit einem Einwegticket statt mit einem in die Adresse geschriebenen Passierschein, und jeder Versuch, einen Schlüssel auf eine unsignierte Version zurückzusetzen, wird schlicht abgewiesen. Die wichtigsten Türen haben jetzt nur einen einzigen Schlüssel: deinen.

Blockieren, und wirklich verschwinden

Wenn du jemanden blockierst, verschwindest du jetzt wirklich, in beide Richtungen. Kein Zuletzt-online, kein 'schreibt...', kein Profilbild, das sich aktualisiert: kein Spalt mehr, durch den man dich erspähen könnte. So wie es sein sollte, so wie du es von anderswo gewohnt bist. Eine Mauer, kein Vorhang.

Das Gespenst der Anrufdauer

Jeder Anruf schien ungefähr gleich lang zu dauern, anderthalb Minuten, zwei, nie wirklich mehr. Das war nicht die Wahrheit: es war ein Herzschlag, den der Server immer wieder zu notieren vergaß. Ist dieses Gespenst gefangen, ist die aufgezeichnete Dauer wieder die echte, vom ersten Klingeln bis zum letzten Wort. Und es gibt mehr: wenn die andere Person die App mitten im Anruf abrupt beendet, endet der Anruf sofort auf beiden Seiten, auf iPhone, Android und Web, ohne im Leeren hängende Bildschirme.

Ein neuer Verstand

Das Modell, das TaskiAI Denken und Stimme gibt, wechselt zu einer neueren, schärferen Generation. Es antwortet besser, denkt besser, versteht besser, was du von ihm willst. Der Teil, der dir bei der Privatsphäre den Rücken freihält, bleibt genau derselbe: klüger, nicht aufdringlicher.

Eine Stimme, die sucht und versteht

Mit TaskiAI zu sprechen wird natürlicher und unmittelbarer. Während ihr plaudert, kann sie im Netz suchen, um dir mit frischen Nachrichten zu antworten, und das tut sie in deiner Sprache, mit deinem Akzent, als wäre sie von hier. Ein Gespräch, kein Befehl.

Sticker, geboren aus deinen Worten

Beschreibe den Sticker, den du im Kopf hast, und TaskiAI zeichnet ihn: im Cartoon-Stil, als Anime, oder genau so, wie du ihn dir vorstellst. Geh von einem Foto von dir aus, und es wird ein Sticker mit deinem Gesicht, ein Stückchen von dir zum Einkleben in den Chat. Fantasie wird in Sekunden zum Aufkleber.

Sprachnachrichten, zum Lesen und am Stück zum Hören

Nicht immer kannst du eine Sprachnachricht anhören. Jetzt kannst du sie lesen: die Transkription erscheint vollständig, Wort für Wort. Und wenn du mehrere nachzuholen hast, spielen sie von allein eine nach der anderen ab, ohne dass du etwas berührst, während die Person, die sie geschickt hat, in Echtzeit den 'abgespielt'-Haken erscheinen sieht.

Dreißig Fotos auf einmal

Du wählst bis zu dreißig Fotos, und sie gehen zusammen los, um als ordentliches Raster mit einem +N auf dem letzten anzukommen, statt als Salve von Blasen. Und selbst die schwersten Dateien stoßen nicht mehr an enge Grenzen: Dokumente bis zu einem halben Gigabyte gehen ohne Haken durch. Auf iPhone, Android und Web, gleichermaßen.

Bereit für den Andrang

Hinter den Kulissen macht sich Taski bereit, viel mehr Menschen auf einmal zu tragen. Zustell- und Lesebestätigungen ruhen auf festeren Fundamenten, Benachrichtigungswarteschlangen haben Obergrenzen, die nicht verstopfen, Gruppen reichen bis zu fünfhundertzwölf Personen, Adressbücher synchronisieren sich in ordentlichen Blöcken. Und der Server lernt, sich zu merken, wer du bist, ohne bei jedem Schritt erneut zu fragen. Unsichtbare Arbeit, damit alles flüssig bleibt, auch wenn wir viele sind.

Tausend kleine Feinheiten

Und dann die Sorgfalt im Detail, die Art, die keine Schlagzeilen macht, aber jeden Tag spürbar ist. Ein langer Druck auf die Chatliste öffnet die Vorschau des Gesprächs und seine Verknüpfungen. Der Erinnerungskalender öffnet und schließt sich mit einer natürlichen Geste. Antwortzitate landen immer an der richtigen Stelle, auch wenn die ursprüngliche Nachricht weit weg ist. Hundert Feinschliffe, die zusammengenommen verändern, wie es sich anfühlt, Taski jeden Tag zu benutzen.

08 Der Weg

Die Türen des Hauses

Ende Juli schließen sich die Türen des Hauses, eine nach der anderen. Bevor ein neues Gerät hereindarf, will das iPhone sicher sein, dass die Anfrage wirklich von dir kommt: "richiedi Face ID prima di autorizzare un nuovo dispositivo collegato" In der Geräteliste wird die App für Mac und Windows nicht mehr mit dem Browser verwechselt. Deine Nummer sieht nur, wer dich im Adressbuch hat oder mit dir einen Chat, eine Gruppe, einen Anruf teilt. Aktionen, die sich nicht rückgängig machen lassen, starten nur noch von dem Telefon in deiner Hand. Und wer eine Gruppe „löscht“, verlässt sie nur: Für alle anderen bleibt sie bestehen.

Die Stimme, die man sieht

Eine Sprachnachricht aufzunehmen ist kein Alles-oder-nichts mehr. Du pausierst, machst weiter, hörst dich noch einmal an, bevor du sendest. "Voice recorder v2: pausa/riprendi + riascolto anteprima + waveform fedele" In den Blasen erscheint die echte Wellenform deiner Stimme, keine beliebige Zeichnung. Das Mikrofon in der Chatliste wird nur dann blau, wenn die Sprachnachricht wirklich angehört wurde, und es wechselt die Farbe live: Vorher war es ein festes Blau, das nie etwas bedeutet hatte. Eine Sprachnachricht lässt sich auch direkt aus der Benachrichtigung abspielen, und Antworten zitieren die Menschen aus deinem Adressbuch mit ihrem Namen, nicht mehr als „Unbekannter Nutzer“.

Sieben Pläne für einen Umzug

Das Telefon zu wechseln ist der heikelste Moment im Leben eines verschlüsselten Kontos: Die Schlüssel müssen vom alten zum neuen wandern, und niemand sonst darf sie auch nur streifen. Bevor eine einzige Zeile Code entsteht, wird der Plan siebenmal neu geschrieben, verworfen und wieder aufgenommen, bis zum letzten Zweifel. "Piano consegna transfer v7.1: chiuso l'ultimo blocker, implementabile" Dann 53 absichtliche Sabotagen am Code, um zu sehen, ob die Tests es bemerken: sechs echte Fehler, aufgespürt, bevor jemand anderes sie findet. Jetzt kommen Schlüssel und Verlauf auf dem neuen Telefon an, auch wenn das Netz unterwegs eine Antwort verliert oder die App geschlossen wird. Beim ersten echten Umzug wollte das alte Telefon partout nicht Platz machen. Seit der Grund gefunden ist, tritt es wirklich zur Seite.

Benachrichtigungen, die nicht lügen

Du öffnest Taski über eine Benachrichtigung und findest die Zeile „neue Nachrichten“ genau dort, wo sie hingehört: über der ersten, die du noch nicht gelesen hast. Klingt nach wenig. An dem Tag, an dem das Öffnen aus Benachrichtigungen schneller wird, verschwindet diese Zeile. Zurück an ihrem Platz, funktioniert sie mit zwei Nachrichten und bricht bei drei: "Separatore nuovi messaggi: batch da 3+ lasciava il primo messaggio sopra" Und die kleine rote Zahl auf dem App-Symbol lernt, nicht zu lügen: Wer bei geschlossener App aus einer Benachrichtigung antwortet oder ein Herz dalässt, setzt nicht mehr den Zähler aller anderen Chats auf null.

Stories in drei Akten

Eine Story zu erstellen wird zu einer kleinen Erzählung in drei Akten: Du wählst aus den letzten Fotos oder machst spontan eins, bearbeitest es im Editor, veröffentlichst. "Storie: compositore a tre fasi con fotocamera, recenti ed editor" Dann kehrst du zu deinen Chats zurück, während sie im Hintergrund veröffentlicht wird, mit einem Ring, der ihren Weg anzeigt, und einer Taste, um es dir anders zu überlegen. Eine Zeile sagt dir, wer sie sehen wird, bevor es zu spät ist. Im Editor lässt sich der Text verschieben, erneut öffnen und vergrößern, mit Hilfslinien zum Zentrieren und einer leichten Vibration, wenn du die Mitte triffst. Auf dem iPhone und auf Android.

Eine einzige Entscheidung, überall

Lesebestätigungen sind keine Einstellung eines einzelnen Geräts mehr, sondern deine Entscheidung, für das ganze Konto. "Conferme di lettura: da preferenza del device a impostazione di account" Du schaltest sie auf dem Telefon aus, und sie bleiben auch im Web, auf Android und am Computer aus. Kein Gerät, das vergessen in einer Schublade liegt, kann verraten, was du entschieden hast. Und das Web holt auf: der Bereich, in dem du festlegst, wer dich sieht, das „schreibt...“, die Taste zurück ans Ende des Chats und keine Sprünge mehr beim Scrollen.

Dreizehn unlesbare Minuten

Dreizehn Minuten lang gehen einige Nachrichten mit einem Schlüssel verschlossen hinaus, den niemand mehr öffnen kann. Niemand wird sie je lesen: nicht einmal die, für die sie bestimmt waren. Das Symptom ist nur eines, „im Web funktioniert es, vom iPhone kommt es verschlüsselt an“, doch die Ursachen sind zwei, und sie sind entgegengesetzt. Die Heilung ist eine neue Reihenfolge der Dinge: Der neue Schlüssel wird veröffentlicht, bevor er benutzt wird, nie danach. "E2EE: pubblica la chiave prima di attivarla nella rotazione" Und wenn ein Kontakt das Telefon wechselt, gibt es keinen roten Alarm mehr wegen einer kompromittierten Identität und kein blockiertes Senden aus falschem Verdacht. Sicherheit soll echte Gefahren aufhalten, nicht Menschen erschrecken, die nichts getan haben.

Wo bist du, gerade jetzt

Auf dem iPhone entsteht der Live-Standort. Du wählst, wie lange du ihn teilst, eine Viertelstunde, eine Stunde, acht Stunden, und wer auf dich wartet, sieht deinen Punkt über die Karte wandern, direkt im Chat. Ende-zu-Ende-verschlüsselt wie jedes Wort: Der Server transportiert ihn, ohne ihn lesen zu können. Ein Tippen, und er öffnet sich im Vollbild, oder in Apple Karten, Google Maps, Waze. Und er aktualisiert sich weiter, auch mit dem Telefon in der Tasche und geschlossener App. Die erste Version ist auf dem Papier perfekt: kompiliert, getestet, alles grün. Und der Punkt bleibt für immer stehen, weil der Standort auf einem Kanal losgeschickt wird, dem niemand zuhört. Dann bewegt er sich, aber ruckartig, als würde er sich teleportieren: "Fa muovere il puntino della posizione live invece di teletrasportarlo" Hier beginnt die längste Reise dieser Monate.

Blasen in Tiergestalt

Nicht alles muss ernst sein. In jedem Zweierchat kannst du deinen Blasen die Form eines Tieres geben, Dackel, Capybara, Ente oder Raupe: "Bolle chat a forma di animale (bassotto, capibara, papera, bruco)" Wer sie empfängt, kann sie ausschalten, wenn die gewohnten Blasen lieber sind. Und selbst ein Spiel hält sich an die Hausregeln: Auf dem Server bleibt keine Spur deiner Wahl, sie reist versteckt in der verschlüsselten Nachricht. Auf iPhone, Android, Web und Desktop, millimetergenau gezeichnet, damit sie überall gleich aussehen: 120 Vergleiche zwischen iPhone und Android, null Unterschiede. Und auf Android kommen noch sechs Farbthemen dazu.

Der Sicherheitscode, auch im Web

Auf dem iPhone lässt dich während eines Anrufs ein Sicherheitscode prüfen, dass sich niemand dazwischengeschaltet hat. Jetzt siehst du ihn identisch auch im Web und in der Desktop-App, auf einem neu gestalteten Anrufbildschirm. "Codice di sicurezza E2EE nella schermata di chiamata web + restyle" Die Überraschung: Das Web berechnete diesen Schlüssel bereits, und warf ihn dann weg. Und es gab eine subtile Falle: Den Code aus dem als Text geschriebenen Schlüssel statt aus seinen Bytes zu berechnen, hätte eine vollkommen glaubwürdige Zahl ergeben. Und eine falsche. Die letzte Probe ist die einfachste von allen: zwei Bildschirme nebeneinander, und auf beiden derselbe Code.

Lange Chats werden leicht

Wer jahrelange Unterhaltungen hat, kennt dieses kleine Ruckeln beim ersten Scrollen, gleich nach dem Öffnen der App. "Scatti al primo scroll in chat lunghe a freddo" Die Analyse am Schreibtisch gab dem Layout die Schuld. Die Messung, die echte, findet etwas anderes: eine halbe Sekunde, verbraucht für die Animation von dreißig Zeilen, die niemand sehen konnte, außerhalb des Bildschirms. Von 477 Millisekunden auf 17. Und das Löschen eines riesigen Chats blockiert die App nicht mehr: von 8,6 Sekunden auf eine Fünftelsekunde bei vierzigtausend Nachrichten, und endlich wird auch der Platz von Fotos und Videos wieder frei. Die Funktionen zum Aufräumen, stellt sich heraus, gab es seit dem ersten Tag. Nur hat sie nie jemand aufgerufen.

Eine Route, die der Straße folgt

Der Live-Standort wird zur Erzählung: Die Spur folgt der Straße, erkennt Pausen, Strecken zu Fuß und im Auto, und am Ende bleibt die Route im Verlauf des Kontakts, gespeichert nur auf dem Telefon. Sie kommt auch bei denen an, die die App nicht öffnen, und wenn du sie löschst, ist sie für immer weg. Dorthin zu kommen ist eine Reise in der Reise, unterwegs auf der Straße, mit zwei Telefonen auf dem Sitz. Die erste Runde: drei Kilometer gefahren, 77 Meter gezeichnet. Ein Drittel der Punkte kommt nie an, und irgendwann verkündet die Karte eine Höchstgeschwindigkeit von 291 km/h. Beide Male versteckt sich der schlimmste Fehler in der Korrektur davor. "Un buco non e' la fine di un viaggio, e' un tratto che non abbiamo visto" Am 27. August, nach neun Kilometern, erzählen beide Telefone dieselbe Straße, mit 2 % Unterschied.

999 MB

Während man den Lücken in den Routen hinterherjagt, verändert eine Zahl die Frage: 999 MB. Taski ist zum größten Prozess auf dem Telefon geworden, und iOS beendet die App gnadenlos, elfmal in zwanzig Minuten. Der Schuldige ist ein alter Freund: das kleine KI-Modell, das die Suche privat macht, bei jedem Start und bei jeder empfangenen Nachricht in den Speicher geladen, auch wenn niemand etwas sucht. Jetzt wacht es nur auf, wenn es gebraucht wird. "Memoria: il modello della ricerca semantica non e' piu' residente a ogni avvio" Viele Lücken in den Routen waren nicht die Schuld des GPS. Es war die App, die abgeschaltet wurde.

Das Profil, endlich aufgeräumt

Das Profil eines Kontakts war eine Liste aus dreiundzwanzig gleichen Zeilen, in der alles gleich viel wog. Daraus wird eine Komposition aus Kacheln, wie die Fächer einer Bento-Box: oben, wer die Person ist, dann Fotos, Videos und Links an einem einzigen Ort, und Blockieren oder Melden in einer einzigen Zeile, ohne danach suchen zu müssen. "restyling Bento della schermata contatto, da 23 righe a 16 comandi" Auf dem iPhone und auf Android.

Zwei Telefone, dieselbe Route

Der September bringt die schwierigste Frage: Sehen die, die unterwegs sind, und die, die zuschauen, wirklich dieselbe Straße? Am Ersten des Monats lautet die Antwort nein: 231 Routenstücke losgeschickt, 128 angekommen. Also wird jeder Punkt zu einem nummerierten Paket, und beide Telefone setzen die Reise aus derselben Folge zusammen und geben fehlende Abschnitte offen an, statt sie zu erfinden. Am 3. September: 462 Punkte, identisch auf beiden Bildschirmen. Dann die Pausen, die das GPS in lauter falsche Aufbrüche zerlegte: Auf der Straße erprobt, gibt die Heilung eine einzige Pause von 52 Minuten zurück, so wie sie wirklich war. Der letzte Halt dagegen starb in null Millisekunden, losgeschickt von einer Aufgabe, die gerade abgebrochen worden war; heute kommt er an, auch wenn, wer unterwegs ist, die App nicht wieder öffnet. Und eine Heilung blieb dreimal wirkungslos, mit allen Tests im Grünen, weil die Tests die Straße schon fertig gebaut bekamen. "La traccia veniva buttata un istante prima di essere letta: terza volta inerte" Es ist nicht vorbei. Es ist die offene Baustelle dieser Tage, genau der Punkt, an dem diese Geschichte abbricht, und weitergeht.

09 Das Ökosystem
September 2026

6 Plattformen, ein Ökosystem

iPhone. Apple Watch. Mac. Windows. Web. Android.
6.304 Commits: 3.453 auf iOS, 1.275 im Worker, 966 auf Android, 494 im Web, 116 auf dem Desktop. 514 iOS-Builds. 104 Datenbank-Migrationen.
Ende-zu-Ende-Verschlüsselung auf jeder Nachricht, jedem Anruf, jedem Foto, Video, Sticker.
KI-Integration, die die Privatsphäre respektiert. Anti-Missbrauch mit doppeltem KI-Modell.
Hash-Chained Key Directory für kryptographische Transparenz.
Apple App Attest für Hardware-Vertrauen.

59 Commits an einem einzigen Tag. Commits um 5 Uhr morgens. Tippfehler in den Commits, die die Müdigkeit verraten. „Forse“, „sembra“, „quasi perfetto“: die Worte dessen, der etwas Größeres baut als sich selbst.

Von Initial Commit bis hierher: 291 Tage. Von einem leeren Ordner zu einem Ökosystem.

Die Geschichte
geht weiter

Jeder Commit ist ein Schritt nach vorn. Jeder behobene Bug ist eine gelernte Lektion. Jedes Feature ist ein gehaltenes Versprechen.

$ git log --oneline | wc -l 6304