This repo is a monorepo with multiple deliverables built from one shared Go codebase plus an Android wrapper and a web dashboard/site.
The public release boundary is defined by .github/workflows/release.yml and its reusable build/verify/publish workflows.
Primary artifacts produced by release CI (examples, not an exhaustive list):
cmd/inside, tag inside, default excludes daemon)
sunlionet-inside-<version>-linux-amd64.tar.gz (+ .sha256)sunlionet-inside-<version>-linux-arm64.tar.gz (+ .sha256)sunlionet-inside-<version>-darwin-arm64.tar.gz (+ .sha256)sunlionet-inside-<version>-windows-amd64.zip (+ .sha256)sunlionet-inside-<version>-android-arm64 (+ .sha256) (raw Termux/Android CLI binary; not the APK)cmd/outside, tag outside)
sunlionet-outside-<version>-linux-amd64.tar.gz (+ .sha256)sunlionet-outside-<version>-linux-arm64.tar.gz (+ .sha256)sunlionet-outside-<version>-darwin-arm64.tar.gz (+ .sha256)sunlionet-outside-<version>-windows-amd64.zip (+ .sha256)sunlionet-linux-amd64.tar.gz (+ .sha256)sunlionet-agent-<version>-source.tar.gz (+ .sha256)app-release.apk and sunlionet-android-<version>-app-release.apk (+ .sha256)sunlionet_<version-without-v>_amd64.deb (+ .sha256)sunlionet-<version-without-v>.x86_64.rpm (+ .sha256, optional)checksums.txt, checksums.sig, checksums.pub, checksums.pub.sha256, release.jsoncmd/inside/ (Inside CLI/runtime)
cmd/inside/daemon.go (//go:build inside && daemon).cmd/outside/ (Outside CLI/tooling)
pkg/ (shared core libraries)
pkg/bundle, pkg/importctlpkg/profile (+ other pkg/*/store.go encrypted stores)pkg/policy, pkg/detector, pkg/sbctl, pkg/runtimecfgpkg/mobilebridge + pkg/mobile (gomobile-facing API surface used by android/)pkg/relay (HTTP server + storage + traffic-shaping primitives)android/ (Android wrapper app)
android/app/src/main/… is authoritative runtime wrapper code (VpnService, secure storage, import UI).android/app/libs/ contains checked-in gomobile artifacts (sunlionet.aar, sunlionet-sources.jar) that the APK depends on.website/ (Dashboard + public website)
website/src/… is authoritative UI/runtime proxy code.website/public/downloads/… is the static download directory used by the site (a mirror of selected release assets; not the canonical release of record)..github/workflows/ (release and verification enforcement)
tests/ (integration/simulation/security/perf harnesses; invoked by CI and local dev)scripts/ (local build/test/release helpers; not used by shipped binaries at runtime)packaging/ (packaging templates for CI; not executed by shipped binaries at runtime)docs/ (documentation content published via GitHub Pages)content/ (website content inputs for Next.js routing and localization)Brandkit/, assets/ (branding assets)android/app/src/main/…)sunlionet-inside CLI (Linux/desktop MVP)docs/)sunlionet-outside CLI (bundle generation/verification)sunlionet-outside relay …)website/…) reading from localhost runtime APIcmd/inside/daemon.go (inside && daemon): a separate autonomous-agent runtime path (LLM/relay/ledger sync integration). It is not built by default and is not part of the public release boundary until explicitly hardened and gated.The Android APK is built from android/ in release CI, but it depends on prebuilt gomobile artifacts checked into this repo under android/app/libs/. This is a deliberate, explicit trust decision:
sunlionet.aar from Go sources.android/app/libs/* as a release-critical input that must be audited, checksummed, and kept in sync with the Go source that defines the intended behavior.