Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6fb853e
chore(release): release version 0.3.4 (#786)
wesbillman May 29, 2026
3a820ce
fix(desktop): reap orphaned agent processes on shutdown and restart (…
wpfleger96 May 29, 2026
5f9bb55
feat: add code block support to message composer (#788)
wpfleger96 May 29, 2026
2799261
feat(sprout-agent): load AGENTS.md and SKILL.md into system prompt (#…
wpfleger96 May 29, 2026
e606bb4
Add relay-owned mesh status publication
May 29, 2026
d70679f
feat: add desktop mesh runtime seam
May 29, 2026
c2b8822
merge: relay mesh status publisher + NIP-98 admission (Mari)
May 29, 2026
540fa6f
feat(desktop): scaffold mesh-llm share-compute settings card
May 29, 2026
7f2aac6
feat(desktop): scaffold mesh-llm Relay-mesh preset patch + override d…
May 29, 2026
eacd211
feat(desktop): wire mesh-compute UI to real Tauri API + Run-on-relay-…
May 29, 2026
65f7d54
merge: desktop mesh-compute UI + Run-on-relay-mesh flow (Dawn)
May 29, 2026
6c0403e
test: add mesh-llm e2e acceptance harness (trust assertions + live-in…
May 29, 2026
5d17699
docs: clarify local mesh native build
May 29, 2026
f81c9a7
feat(desktop): surface relay-mesh denial copy on managed-agent rows
May 29, 2026
e934c38
merge: relay-mesh denial copy on managed-agent rows (Dawn)
May 29, 2026
7ac9185
fix(desktop): require private iroh relay for mesh
May 29, 2026
b20315a
docs: note mesh public STUN limitation
May 29, 2026
cdec93d
test(mesh): local serve loopback inference smoke
May 29, 2026
38f6896
fix(desktop): clippy clean mesh runtime (items-after-test-module, col…
May 29, 2026
9c30555
chore(deny): allow mesh-llm dep tree (Unlicense, clarify unlicensed m…
May 29, 2026
1903ea8
fix(ci): keep mesh SDK out of relay release build
May 29, 2026
5af8cda
merge: origin/main (v0.3.5) into mesh-relay-inprocess-v8
May 29, 2026
6218e51
fix(ci): force llama macos deployment target
May 29, 2026
2b65f00
fix(ci): prebuild mesh llama with macos 10.15 target
May 29, 2026
1e1fca4
fix(ci): find mesh checkout under hermit cargo home
May 29, 2026
2e30684
test(mesh): make e2e acceptance rows honest
May 29, 2026
475edb8
test(relay/iroh): cover NIP-98 stale-bearer rejection + dial-metadata…
May 29, 2026
1f3f1a2
fix(desktop): start relay mesh client before agent spawn
May 30, 2026
91925c6
ci(mesh): derive llama prebuild rev from Cargo.lock + cache the build
May 30, 2026
05ff259
fix(desktop/mesh): typed phase health check + family-agnostic model-ref
May 30, 2026
091b403
fix(desktop/mesh): ensure relay client before local agent spawn
Jun 1, 2026
9358ed2
fix(ci): pass mesh rev via env to avoid shell injection
Jun 1, 2026
8184517
chore(desktop): bump file-size overrides for mesh client-preflight
Jun 1, 2026
a50bca1
Merge remote-tracking branch 'origin/main' into mesh-relay-inprocess-v8
Jun 1, 2026
8e3e493
test(mesh): local serve->client->inference smoke example
Jun 1, 2026
114e73b
test(relay/mesh): assert mesh-admission invariant (membership is the …
Jun 1, 2026
93f69de
test(desktop/mesh): Playwright UI-contract e2e for mesh-compute
Jun 1, 2026
ffed023
docs(mesh): mesh-e2e entrypoint + acceptance matrix (real vs mocked)
Jun 1, 2026
323a439
test(mesh): tighten e2e per review (order slice, open-relay note, tes…
Jun 1, 2026
454a24b
Merge remote-tracking branch 'origin/main' into mesh-relay-inprocess-v8
Jun 1, 2026
6b75dd6
chore(deny): clarify mesh dependency licenses
tlongwell-block Jun 1, 2026
7f2c538
Merge remote-tracking branch 'origin/main' into mesh-relay-inprocess-v8
Jun 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -479,7 +479,52 @@ jobs:
touch "desktop/src-tauri/binaries/sprout-dev-mcp-$TARGET"
touch "desktop/src-tauri/binaries/git-credential-nostr-$TARGET"
touch "desktop/src-tauri/binaries/sprout-$TARGET"
# Mesh rev is derived from Cargo.lock so a dependency bump needs no
# lockstep edit here; the cache key tracks it automatically.
- name: Resolve mesh-llm rev
id: mesh_rev
run: |
set -euo pipefail
REV=$(grep -oE 'mesh-llm\.git\?rev=[0-9a-f]{40}' Cargo.lock | head -1 | grep -oE '[0-9a-f]{40}')
[[ -n "$REV" ]] || { echo "::error::could not resolve mesh-llm rev from Cargo.lock"; exit 1; }
echo "rev=$REV" >> "$GITHUB_OUTPUT"
echo "short=${REV:0:7}" >> "$GITHUB_OUTPUT"
- name: Restore mesh llama build cache
id: llama_cache
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ${{ github.workspace }}/.cache/mesh-llama
key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }}
- name: Build mesh llama native libraries
if: steps.llama_cache.outputs.cache-hit != 'true'
env:
MESH_REV_SHORT: ${{ steps.mesh_rev.outputs.short }}
run: |
set -euo pipefail
cargo fetch --manifest-path desktop/src-tauri/Cargo.toml
SHORT="$MESH_REV_SHORT"
MESH_ROOT=$(find "${CARGO_HOME:-$HOME/.cargo}/git/checkouts" -path "*/$SHORT" -type d -name "$SHORT" | head -1)
if [[ -z "$MESH_ROOT" ]]; then
echo "::error::mesh-llm checkout for $SHORT not found after cargo fetch"
exit 1
fi
export LLAMA_STAGE_BACKEND=metal
export LLAMA_STAGE_BUILD_DIR="$GITHUB_WORKSPACE/.cache/mesh-llama/build-stage-abi-metal"
export CMAKE_OSX_DEPLOYMENT_TARGET=10.15
"$MESH_ROOT/scripts/prepare-llama.sh" pinned
"$MESH_ROOT/scripts/build-llama.sh" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
- name: Save mesh llama build cache
if: steps.llama_cache.outputs.cache-hit != 'true'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ${{ github.workspace }}/.cache/mesh-llama
key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }}
- name: Build Tauri app
run: cd desktop && pnpm tauri build
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
MACOSX_DEPLOYMENT_TARGET: "10.15"
CMAKE_OSX_DEPLOYMENT_TARGET: "10.15"
LLAMA_STAGE_BACKEND: metal
LLAMA_STAGE_BUILD_DIR: ${{ github.workspace }}/.cache/mesh-llama/build-stage-abi-metal
SKIPPY_LLAMA_AUTO_BUILD: "0"
45 changes: 45 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,46 @@ jobs:
cargo build --release -p sprout-acp -p sprout-mcp -p sprout-agent -p sprout-dev-mcp -p git-credential-nostr -p sprout-cli
./scripts/bundle-sidecars.sh

# Mesh rev derived from Cargo.lock (no lockstep edit on dep bump); cache key tracks it.
- name: Resolve mesh-llm rev
id: mesh_rev
run: |
set -euo pipefail
REV=$(grep -oE 'mesh-llm\.git\?rev=[0-9a-f]{40}' Cargo.lock | head -1 | grep -oE '[0-9a-f]{40}')
[[ -n "$REV" ]] || { echo "::error::could not resolve mesh-llm rev from Cargo.lock"; exit 1; }
echo "rev=$REV" >> "$GITHUB_OUTPUT"
echo "short=${REV:0:7}" >> "$GITHUB_OUTPUT"
- name: Restore mesh llama build cache
id: llama_cache
uses: actions/cache/restore@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ${{ github.workspace }}/.cache/mesh-llama
key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }}
- name: Build mesh llama native libraries
if: steps.llama_cache.outputs.cache-hit != 'true'
env:
MESH_REV_SHORT: ${{ steps.mesh_rev.outputs.short }}
run: |
set -euo pipefail
cargo fetch --manifest-path desktop/src-tauri/Cargo.toml
SHORT="$MESH_REV_SHORT"
MESH_ROOT=$(find "${CARGO_HOME:-$HOME/.cargo}/git/checkouts" -path "*/$SHORT" -type d -name "$SHORT" | head -1)
if [[ -z "$MESH_ROOT" ]]; then
echo "::error::mesh-llm checkout for $SHORT not found after cargo fetch"
exit 1
fi
export LLAMA_STAGE_BACKEND=metal
export LLAMA_STAGE_BUILD_DIR="$GITHUB_WORKSPACE/.cache/mesh-llama/build-stage-abi-metal"
export CMAKE_OSX_DEPLOYMENT_TARGET=10.15
"$MESH_ROOT/scripts/prepare-llama.sh" pinned
"$MESH_ROOT/scripts/build-llama.sh" -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15
Comment thread
github-advanced-security[bot] marked this conversation as resolved.
Fixed
- name: Save mesh llama build cache
if: steps.llama_cache.outputs.cache-hit != 'true'
uses: actions/cache/save@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
with:
path: ${{ github.workspace }}/.cache/mesh-llama
key: mesh-llama-${{ runner.os }}-metal-${{ steps.mesh_rev.outputs.rev }}

- name: Build unsigned Tauri app
run: cd desktop && pnpm tauri build --verbose --no-sign --config src-tauri/tauri.release.conf.json
env:
Expand All @@ -83,6 +123,11 @@ jobs:
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
MACOSX_DEPLOYMENT_TARGET: "10.15"
CMAKE_OSX_DEPLOYMENT_TARGET: "10.15"
LLAMA_STAGE_BACKEND: metal
LLAMA_STAGE_BUILD_DIR: ${{ github.workspace }}/.cache/mesh-llama/build-stage-abi-metal
SKIPPY_LLAMA_AUTO_BUILD: "0"

- name: Locate unsigned DMG
id: unsigned
Expand Down
Loading