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

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: and AllowedAPKSigningKeys: are set. A local run of buildserver-trixie reproduced 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 commit field 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.properties pins distributionSha256Sum.
  • Server software. Odysseus itself is the user's own self-hosted server; the app ships none of it.
Edited by Thomas Peoples

Merge request reports

Loading
Loading