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 11 days ago · 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
app/build.gradle.kts rust-core/src/lib.rs
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