From 5ad87b78f71967cd200e6c6cc7c9a4247cd824f9 Mon Sep 17 00:00:00 2001 From: John Myers <9696606+johntmyers@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:17:49 -0700 Subject: [PATCH 1/2] fix(cli): use local z3 in dev wrapper Signed-off-by: John Myers <9696606+johntmyers@users.noreply.github.com> --- scripts/bin/openshell | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/scripts/bin/openshell b/scripts/bin/openshell index 8b8a9c219..4a85332c6 100755 --- a/scripts/bin/openshell +++ b/scripts/bin/openshell @@ -42,6 +42,8 @@ else return 0 ;; crates/openshell-cli/*|crates/openshell-core/*|crates/openshell-bootstrap/*) return 0 ;; + crates/openshell-prover/*) + return 0 ;; crates/openshell-policy/*|crates/openshell-providers/*|crates/openshell-tui/*) return 0 ;; *) @@ -89,7 +91,28 @@ fi if [[ "$needs_build" == "1" ]]; then echo "Recompiling openshell..." >&2 - cargo build --package openshell-cli --quiet + build_args=(--package openshell-cli --quiet) + if ! command -v pkg-config >/dev/null 2>&1 || ! pkg-config --exists z3 >/dev/null 2>&1; then + z3_prefix="" + if command -v brew >/dev/null 2>&1; then + z3_prefix=$(brew --prefix z3 2>/dev/null || true) + fi + + for candidate in "$z3_prefix" /opt/homebrew/opt/z3 /usr/local/opt/z3; do + if [[ -n "$candidate" && -f "$candidate/include/z3.h" && -d "$candidate/lib" ]]; then + echo "Using local Z3 from ${candidate} for CLI build." >&2 + export Z3_SYS_Z3_HEADER="${candidate}/include/z3.h" + export Z3_LIBRARY_PATH_OVERRIDE="${candidate}/lib" + break + fi + done + + if [[ -z "${Z3_SYS_Z3_HEADER:-}" ]]; then + echo "Falling back to bundled Z3 for local CLI build." >&2 + build_args+=(--features bundled-z3) + fi + fi + cargo build "${build_args[@]}" # Persist state after successful build mkdir -p "$(dirname "$STATE_FILE")" cd "$PROJECT_ROOT" @@ -110,6 +133,8 @@ if [[ "$needs_build" == "1" ]]; then return 0 ;; crates/openshell-cli/*|crates/openshell-core/*|crates/openshell-bootstrap/*) return 0 ;; + crates/openshell-prover/*) + return 0 ;; crates/openshell-policy/*|crates/openshell-providers/*|crates/openshell-tui/*) return 0 ;; *) From 44d13c6cb76659486ec7103cac9404edb00397b4 Mon Sep 17 00:00:00 2001 From: John Myers <9696606+johntmyers@users.noreply.github.com> Date: Fri, 10 Apr 2026 13:29:49 -0700 Subject: [PATCH 2/2] fix(docker): add openshell-prover to Dockerfile skeleton stages --- deploy/docker/Dockerfile.images | 3 +++ 1 file changed, 3 insertions(+) diff --git a/deploy/docker/Dockerfile.images b/deploy/docker/Dockerfile.images index 3fe56570d..4507125cd 100644 --- a/deploy/docker/Dockerfile.images +++ b/deploy/docker/Dockerfile.images @@ -54,6 +54,7 @@ COPY crates/openshell-router/Cargo.toml crates/openshell-router/Cargo.toml COPY crates/openshell-sandbox/Cargo.toml crates/openshell-sandbox/Cargo.toml COPY crates/openshell-server/Cargo.toml crates/openshell-server/Cargo.toml COPY crates/openshell-tui/Cargo.toml crates/openshell-tui/Cargo.toml +COPY crates/openshell-prover/Cargo.toml crates/openshell-prover/Cargo.toml COPY crates/openshell-core/build.rs crates/openshell-core/build.rs COPY proto/ proto/ @@ -67,6 +68,7 @@ RUN mkdir -p \ crates/openshell-router/src \ crates/openshell-sandbox/src \ crates/openshell-server/src \ + crates/openshell-prover/src \ crates/openshell-tui/src && \ touch crates/openshell-bootstrap/src/lib.rs && \ printf 'fn main() {}\n' > crates/openshell-cli/src/main.rs && \ @@ -79,6 +81,7 @@ RUN mkdir -p \ printf 'fn main() {}\n' > crates/openshell-sandbox/src/main.rs && \ touch crates/openshell-server/src/lib.rs && \ printf 'fn main() {}\n' > crates/openshell-server/src/main.rs && \ + touch crates/openshell-prover/src/lib.rs && \ touch crates/openshell-tui/src/lib.rs FROM rust-builder-skeleton AS rust-deps