OXYGENHUB

chore(): add .oxyignore 9481bfa7c5d0

Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-30 11:30 UTC
Signature
✔ signed by Andy McCall
Hash
9481bfa7c5d06e88a09210c7992b3166f82977689133831ee60cbff729572fc2
Depends on
1416009b06af
Depended on by
c1b5d82f16cd bd1d3ad70c70 b610bc6eeab7 23279b95b5b2 4c0d52760d2f aa21eb5e0e5b bfa2eff05d35 03f2c0361594 8a657957d5a0 0381bd8af55e 3f3508bd5f16 0a2858c0dad3 57c0824300db e0e4a1c48a77 d07edbd2c022
In bookmarks
main
In tags
v0.1.0 v0.1.1 v0.1.2 v0.1.3 v0.1.4 v0.1.5 v0.1.6 v0.1.7 v0.1.8 v0.1.9
Edits
4 atoms, 3 tree operations, 3 files

Browse the tree at this change

added .flow/pipeline.kdl +51 −0
1 +
schema-version 1
2 +
3 +
// The OxygenFlow Android build image: Java, Android SDK, and Rust toolchain
4 +
// for building the JNI/uniffi core. Needs to be built and pinned in oxygenflow/images.
5 +
sandbox "android" {
6 +
    runtime "microvm"
7 +
    rootfs "cas://blob/0000000000000000000000000000000000000000000000000000000000000000" // TODO: Replace with actual Android image hash
8 +
    memory-limit "8GiB"
9 +
    cpu-limit 4
10 +
    network "isolated"
11 +
    env {
12 +
        GRADLE_USER_HOME "/src/.gradle"
13 +
        ANDROID_HOME "/opt/android-sdk"
14 +
    }
15 +
}
16 +
17 +
sandbox "android-small" {
18 +
    runtime "microvm"
19 +
    rootfs "cas://blob/0000000000000000000000000000000000000000000000000000000000000000" // TODO: Replace with actual Android image hash
20 +
    memory-limit "2GiB"
21 +
    cpu-limit 1
22 +
    network "isolated"
23 +
}
24 +
25 +
job "lint" {
26 +
    sandbox "android-small"
27 +
    exec "sh" "-c" "echo '\033[1;34m=== 🧹 Running ktlint ===\033[0m' && ./gradlew ktlintCheck"
28 +
}
29 +
30 +
job "build" {
31 +
    sandbox "android"
32 +
    depends-on "lint"
33 +
    mount {
34 +
        source "ephemeral://disk"
35 +
        target "/src/app/build"
36 +
        size "24GiB"
37 +
    }
38 +
    exec "sh" "-c" "echo '\033[1;34m=== 🧱 Building Debug APK ===\033[0m' && ./gradlew assembleDebug"
39 +
    
40 +
    output {
41 +
        artifact "app-debug" {
42 +
            path "/src/app/build/outputs/apk/debug/app-debug.apk"
43 +
        }
44 +
    }
45 +
}
46 +
47 +
job "functional-tests" {
48 +
    sandbox "android"
49 +
    depends-on "build"
50 +
    exec "sh" "-c" "echo '\033[1;34m=== 🧪 Running Unit & UI Tests ===\033[0m' && ./gradlew testDebugUnitTest"
51 +
}
added .oxyignore +3 −0
1 +
/target
2 +
*.tmp
3 +
/.claude
modified README.md +33 −1
1 -
OxygenHub Android Application
1 +
# 📱 OxygenHub Android
2 +
3 +
![Status: Planning](https://img.shields.io/badge/Status-Planning-blue)
4 +
![Platform: Android](https://img.shields.io/badge/Platform-Android-green)
5 +
![CI: Flow](https://img.shields.io/badge/CI-Flow-blue)
6 +
7 +
The official native Android client for OxygenHub, designed for modern devices and fully optimized for foldables like the Pixel 10 Pro Fold. 
8 +
9 +
Built with **Kotlin**, **Jetpack Compose**, and deep **Rust interop** (via `uniffi-rs`) to execute native `oxy` commands directly on your device.
10 +
11 +
---
12 +
13 +
## ✨ Features
14 +
* 🧬 **Commutative History:** Native visualization of the change graph.
15 +
* 🔀 **Offline-First Conflicts:** Resolve conflicts on the go; they're just data.
16 +
* 🌊 **Job Flow Control:** Orchestrate OxygenFlow CI/CD pipelines right from your phone.
17 +
18 +
## 🛠️ Setup
19 +
20 +
1. Clone the repository using `oxy`.
21 +
2. Open the project in **Android Studio** (Ladybug or later).
22 +
3. The project uses standard Gradle wrapper tasks:
23 +
   ```bash
24 +
   ./gradlew build
25 +
   ```
26 +
27 +
## 🏗️ CI/CD
28 +
29 +
We dogfood **OxygenFlow** for our builds. 
30 +
The pipeline is defined in `.flow/pipeline.kdl`.
31 +
32 +
---
33 +
*If you notice any issues with Flow or Oxygen during development, please log them in the `~/oxygen_feedback.md` document for the core team.*