Skip to content

build: migrate Kotlin/Gradle Android app to gossamer (clears banned-language CI) #83

Description

@hyperpolymath

Debt: Banned-language (the two perpetual CI reds)

The android/ app is built in Kotlin + Gradle, which the Hyperpolymath language policy bans for mobile.

This trips two CI checks red on every PR and on main (e.g. PR #81):

  • Check for Banned Languagesfind . -name "*.kt" -o -name "*.kts" -o -name "*.java" matches the Android sources.
  • governance / Language / package anti-pattern policy — same banned-language presence via the standards reusable.

Files in scope

  • Gradle: android/settings.gradle.kts, android/build.gradle.kts, android/app/build.gradle.kts
  • Kotlin (7): MainActivity.kt, NeurophoneService.kt, BootReceiver.kt, NativeLib.kt, widget/NeurophoneAppWidget.kt, widget/NeurophoneWidgetActions.kt, widget/NeurophoneWidgetConfigureActivity.kt

Target: gossamer (NOT Tauri/Dioxus)

Migrate the UI to hyperpolymath/gossamer — the estate's own resource-safe Tauri/Electron alternative (Idris2 + Zig, with linear-typed memory/handle safety via the Ephapax region-calculus backend). This keeps the migration inside the estate's verified stack rather than adopting an external framework.

⚠️ To confirm: gossamer is currently described as a desktop shell. Verify its Android/mobile support (or the plan for it) before committing to the migration path — this may need coordination with the gossamer repo.

Notes

  • Until migrated, the two checks above stay red — they are not introduced by any given PR; pre-existing/structural.
  • Large epic; decompose into sub-tasks (service, widgets, boot receiver, NativeLib/FFI boundary).

(Corrected 2026-06-02: target was previously mis-stated as Tauri/Dioxus; the estate is standardising on gossamer.)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    choreRoutine maintenance with no behaviour changecicdCI/CD: workflows, actions, lockfiles, pins, runners, release gates

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions