Files
sepot/app
Julius Joska 79ad411d7e fix(app): read the version from the installed package
The version was a hand-written constant that had to be kept in sync with
`version:` in pubspec.yaml. It was not: the constant still said 1.1.0 while
the shipped build was 1.1.2+22, so every abuse report carried a version that
no build ever had — and reports could not be traced back to a build.

AppInfo reads versionName / CFBundleShortVersionString, which Flutter derives
from the pubspec, so the two cannot drift apart again. Reports now carry the
build number as well; when the version is not known yet the field is omitted
rather than guessed.

Also adds the timestamp regression test that covers MessagingService.wireSentAt,
which shipped in 1.1.2 without its test.
2026-09-04 10:18:37 +02:00
..

Šepot — Flutter client

The Šepot mobile client. See the repository README for the project overview, threat model, and license.

Quick start

flutter pub get
flutter run                       # against the default relay
flutter build apk --release       # signed release APK (see key.properties)

Layout

Path Contents
lib/core/ Crypto facade, storage (SQLCipher), relay client + transport, push, services
lib/features/ Screens (onboarding, chat, contacts, groups, settings, safety…)
lib/models/ lib/providers/ Data models and Riverpod providers
lib/l10n/ Localization (app_*.arb, generated AppLocalizations)
test/ integration_test/ Unit, storage, crypto, and on-device integration tests

Localization

Strings are defined in lib/l10n/app_cs.arb (template) and translated into app_en/de/ru/it.arb. After editing, run flutter gen-l10n. See the root README for how to contribute a new language.