New app: Wraith for Odysseus
Abstract
Please introduce the functions and usage of your app in summary, and also attach some screenshots.
Wraith for Odysseus is an unofficial native Android client for a self-hosted Odysseus AI server. You type in your own server's address and log in (TOTP supported). It then mirrors the server's web UI: chat with streaming and resume, agent/chat/web/research modes, attachments, email, calendar, notes, memory, skills, scheduled tasks, gallery, document library and themes.
Screenshots are in the upstream Fastlane folder: https://git.thomaspeoples.com/thomaspeoples/wraith-odysseus-apk/src/branch/main/fastlane/metadata/android/en-US/images/phoneScreenshots
Please elaborate why you wrote this app. Please highlight the unique functions it provides over other similar apps in F-Droid.
Odysseus has no Android app. Wraith talks to a stock server over the same routes its web UI uses, so the server needs no changes. It holds no hostname and sends no analytics. Its only permission is INTERNET, and it contacts nothing but the server the user enters.
Checklist
Policy
- The app complies with the inclusion criteria.
- The original app author has been notified (and does not oppose the inclusion). I am the author.
- The upstream app source code repo contains the app metadata in a Fastlane folder structure, with summary, description, icon, screenshots and per-versionCode changelogs, in
en-US.
Docs
- Please read the guide first if this is your first contribution.
- Please make sure your metadata follows the best practice in our templates.
- Please read the Build Metadata Reference and make sure your metadata is valid.
- Please read the Quick Start Guide.
Merge Request Setup
- The title of this merge request should follow "New app: app name" format.
- Please make sure your fdroiddata fork is public and your branch is not protected.
- Please read our Git guide if you don't know how to rebase your branch. Don't rebase your branch if there is no conflict.
- All related fdroiddata and RFP issues have been referenced in this merge request. There are none.
- Please only submit one app in one MR.
Metadata
- Metadata must be put in
metadata/<applicationId>.yml. - Metadata must be a valid YAML file.
- Metadata must use LF as line ending.
- Don't add summary/description/changelog/images or anything that should be provided in upstream repo.
- Releases are tagged and auto update is enabled unless there is a special reason.
- There is an issue tracker and contact info of the author so that we can report bugs and contact the author.
- An AuthorName must be added.
- External repos are added as git submodules instead of srclibs. There are none.
- Enable Reproducible Builds.
Binaries:andAllowedAPKSigningKeys:are set. A local run ofbuildserver-trixiereproduced the upstream CI APK, and the signature copy verified. - Setup abi split if the APK is large and the splitted ones can be much smaller. There is no native code, so this does not apply.
- Only the latest versions should be kept in the metadata before it's merged.
- Don't add any disabled versions in the metadata.
- The
commitfield should be the full hash.
Pipeline
- All pipelines should pass.
- All warnings and errors in the Reports tab should be fixed or explained.
Notes for reviewers:
- Update check. The APK has a launch-time check against the upstream Gitea releases API, for people who sideload the app directly. It is off whenever an F-Droid client is the installer (
org.fdroid.fdroid,org.fdroid.basic,com.looker.droidify,com.machiav3lli.fdroid). This is a runtime check rather than a build flag because the build is reproducible: F-Droid ships the same APK as upstream. Source:app/src/main/java/com/thomaspeoples/wraithodysseus/update/UpdateChecker.kt. - Gradle wrapper.
gradle-wrapper.propertiespinsdistributionSha256Sum. - Server software. Odysseus itself is the user's own self-hosted server; the app ships none of it.