OXYGENHUB

The phone runner clones: its oxy home is in app storage, and a change to OxygenFlow rebuilds rust-core (refs #8) 74bbbc259910

An app has no HOME and runs in /, so oxy-core's clone tried to make its
directory there. The Gradle task now also watches the oxygenflow
subrepo's Rust, which it builds in. With oxygen#141 (no hard links on
Android), the phone ran its first job: phone-runner-demo run #55.
Author
Andy McCall @andymccall <[email protected]>
via
agent agent:claude@andymccall <[email protected]> · keyless, under your grant for changes,refs,seal · key b94e2f323c30
When
· 2026-10-25 16:10 UTC
Signature
◈ sealed by agent:claude@andymccall
Hash
74bbbc259910ab5229939c3ec81afe848a221d4bade315325716b96e1dc56d4f
Depends on
4aee5293461d 57c0824300db e0e4a1c48a77
Depended on by
nothing yet
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
2 atoms, 0 tree operations, 2 files

Browse the tree at this change

modified app/build.gradle.kts +2 −0
…
30 unchanged lines
31 31
    workingDir = rustCore
32 32
    inputs.dir(rustCore.resolve("src"))
33 33
    inputs.files(rustCore.resolve("Cargo.toml"), rustCore.resolve("Cargo.lock"))
34 +
    // The runner's Rust (OxygenFlow and its oxy-core) is built in too.
35 +
    inputs.files(fileTree(rootProject.file("oxygenflow")) { include("**/*.rs", "**/Cargo.toml"); exclude("**/target/**") })
34 36
    outputs.dir(rustJniLibs)
35 37
    environment("ANDROID_NDK_HOME", androidNdk())
36 38
    commandLine("cargo", "ndk", "-t", "arm64-v8a", "-t", "x86_64", "--platform", "31", "-o", rustJniLibs.get().asFile.path, "build", "--release")
…
93 unchanged lines
modified rust-core/src/lib.rs +5 −0
…
50 unchanged lines
51 51
#[uniffi::export]
52 52
pub fn runner_serve(home: String) -> Result<(), RunnerError> {
53 53
    let h = flow::home::Home::locate(Some(Path::new(&home))).map_err(failed)?;
54 +
    // An app has no HOME and runs in /, where oxy-core's clone would make
55 +
    // its own directory: keep it with the runner's.
56 +
    if std::env::var_os("OXY_HOME").is_none() {
57 +
        std::env::set_var("OXY_HOME", Path::new(&home).join("oxy"));
58 +
    }
54 59
    flow::runner::serve_embedded(&h).map_err(failed)
55 60
}
56 61
…
17 unchanged lines