Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -980,7 +980,7 @@ jobs:
shell: bash
run: |
mkdir -p desktop/src-tauri/binaries
for bin in buzz-acp buzz-agent buzz-dev-mcp git-credential-nostr buzz; do
for bin in buzz-acp buzz-agent buzz-backend-openclaw buzz-dev-mcp git-credential-nostr buzz; do
touch "desktop/src-tauri/binaries/${bin}-${TARGET}.exe"
done
- name: Clippy (workspace)
Expand Down Expand Up @@ -1055,6 +1055,7 @@ jobs:
touch "desktop/src-tauri/binaries/buzz-acp-$TARGET"
touch "desktop/src-tauri/binaries/buzz-agent-$TARGET"
touch "desktop/src-tauri/binaries/buzz-backend-kubernetes-$TARGET"
touch "desktop/src-tauri/binaries/buzz-backend-openclaw-$TARGET"
touch "desktop/src-tauri/binaries/buzz-dev-mcp-$TARGET"
touch "desktop/src-tauri/binaries/git-credential-nostr-$TARGET"
touch "desktop/src-tauri/binaries/buzz-$TARGET"
Expand Down
56 changes: 56 additions & 0 deletions .github/workflows/fork-unsigned-dmg.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Fork unsigned DMG

on:
push:
tags:
- "fork-desktop-v[0-9]*"

permissions:
contents: write

jobs:
build:
name: Build unsigned macOS DMG
if: github.repository == 'atlas-maxjb/buzz'
runs-on: macos-latest
timeout-minutes: 60
env:
VERSION: ${{ github.ref_name }}
TAURI_BUNDLER_DMG_IGNORE_CI: "true"
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
MACOSX_DEPLOYMENT_TARGET: "10.15"
CMAKE_OSX_DEPLOYMENT_TARGET: "10.15"
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
fetch-depth: 0
persist-credentials: false

- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1

- name: Install desktop dependencies
run: just desktop-install-ci

- name: Set application version
run: |
VERSION="${VERSION#fork-desktop-v}"
cd desktop
node scripts/set-version-from-tag.mjs "$VERSION"
cd src-tauri
cargo update --workspace

- name: Build sidecars
run: |
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh

- name: Build unsigned DMG
run: cd desktop && pnpm tauri build --verbose --no-sign --config src-tauri/tauri.conf.json

- name: Upload DMG to fork release
env:
GH_TOKEN: ${{ github.token }}
run: |
DMG=$(find desktop/src-tauri/target/release/bundle/dmg -name '*.dmg' -type f | head -1)
test -n "$DMG"
gh release upload "$GITHUB_REF_NAME" "$DMG" --repo "$GITHUB_REPOSITORY" --clobber
2 changes: 1 addition & 1 deletion .github/workflows/linux-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ jobs:

- name: Build sidecars
run: |
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh

- name: Build Linux Tauri app
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/macos-intel-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ jobs:

- name: Build Intel sidecars
run: |
cargo build --release --target "$TARGET" -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release --target "$TARGET" -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh "$TARGET"

- name: Build unsigned Intel DMG
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
# create the release objects all four platform jobs upload into.
setup:
name: Setup
if: github.repository == 'block/buzz'
if: github.repository == 'block/buzz' || github.repository == 'atlas-maxjb/buzz'
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
Expand Down Expand Up @@ -51,7 +51,7 @@ jobs:

release:
name: Release
if: github.repository == 'block/buzz'
if: github.repository == 'block/buzz' || github.repository == 'atlas-maxjb/buzz'
runs-on: macos-latest
needs: setup
timeout-minutes: 60
Expand Down Expand Up @@ -91,7 +91,7 @@ jobs:

- name: Build sidecars
run: |
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh

# Mesh rev derived from Cargo.lock (no lockstep edit on dep bump); cache key tracks it.
Expand Down Expand Up @@ -264,7 +264,7 @@ jobs:

release-macos-x64:
name: Release macOS (Intel)
if: github.repository == 'block/buzz'
if: github.repository == 'block/buzz' || github.repository == 'atlas-maxjb/buzz'
runs-on: macos-latest
needs: setup
timeout-minutes: 60
Expand Down Expand Up @@ -308,7 +308,7 @@ jobs:

- name: Build sidecars
run: |
cargo build --release --target "$TARGET" -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release --target "$TARGET" -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh "$TARGET"

- name: Build unsigned Tauri app
Expand Down Expand Up @@ -425,7 +425,7 @@ jobs:

release-linux:
name: Release Linux
if: github.repository == 'block/buzz'
if: github.repository == 'block/buzz' || github.repository == 'atlas-maxjb/buzz'
runs-on: ubuntu-latest
# Digest-pinned like the SHA-pinned actions below; Renovate keeps it fresh.
container: ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90
Expand Down Expand Up @@ -563,7 +563,7 @@ jobs:

- name: Build sidecars
run: |
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh

- name: Generate release config
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/signed-macos-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ jobs:

- name: Build sidecars
run: |
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p git-credential-nostr -p buzz-cli
./scripts/bundle-sidecars.sh

# Mesh rev derived from Cargo.lock (no lockstep edit on dep bump); cache key tracks it.
Expand Down
12 changes: 12 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ members = [
"crates/buzz-dev-mcp",
"crates/buzz-voice",
"crates/buzz-backend-kubernetes",
"crates/buzz-backend-openclaw",
"examples/countdown-bot",
]
exclude = ["desktop/src-tauri"]
Expand Down
10 changes: 5 additions & 5 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ _ensure-sidecar-stubs:
set -euo pipefail
TARGET=$(rustc -vV | sed -n 's|host: ||p')
mkdir -p desktop/src-tauri/binaries
SIDECARS=(buzz-acp buzz-agent buzz-dev-mcp git-credential-nostr buzz)
SIDECARS=(buzz-acp buzz-agent buzz-backend-openclaw buzz-dev-mcp git-credential-nostr buzz)
if [[ "$TARGET" != *windows* ]]; then
SIDECARS+=(buzz-backend-kubernetes)
fi
Expand Down Expand Up @@ -519,7 +519,7 @@ staging *ARGS: bootstrap _ensure-sidecar-stubs
set -euo pipefail
export PATH="{{justfile_directory()}}/bin:$PATH"
pnpm install # unconditional: staging must always start with a clean dep tree
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p buzz-cli -p git-credential-nostr
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p buzz-cli -p git-credential-nostr
FEATURES=()
if [[ -n "{{mesh}}" ]]; then
FEATURES=(--features mesh-llm)
Expand All @@ -531,7 +531,7 @@ staging *ARGS: bootstrap _ensure-sidecar-stubs
# tauri dev copies next to the exe would hide the provider from "Run on".
TARGET=$(rustc -vV | sed -n 's|host: ||p')
TARGET_DIR=$(cargo metadata --format-version 1 --no-deps | node -p "JSON.parse(require('fs').readFileSync(0, 'utf8')).target_directory")
STAGING_SIDECARS=(buzz)
STAGING_SIDECARS=(buzz buzz-backend-openclaw)
if [[ "$TARGET" != *windows* ]]; then
STAGING_SIDECARS+=(buzz-backend-kubernetes)
fi
Expand All @@ -555,7 +555,7 @@ production *ARGS: bootstrap _ensure-sidecar-stubs
set -euo pipefail
export PATH="{{justfile_directory()}}/bin:$PATH"
pnpm install # unconditional: production must always start with a clean dep tree
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-kubernetes -p buzz-dev-mcp -p buzz-cli -p git-credential-nostr
cargo build --release -p buzz-acp -p buzz-agent -p buzz-backend-openclaw -p buzz-backend-kubernetes -p buzz-dev-mcp -p buzz-cli -p git-credential-nostr
FEATURES=()
if [[ -n "{{mesh}}" ]]; then
FEATURES=(--features mesh-llm)
Expand All @@ -567,7 +567,7 @@ production *ARGS: bootstrap _ensure-sidecar-stubs
# tauri dev copies next to the exe would hide the provider from "Run on".
TARGET=$(rustc -vV | sed -n 's|host: ||p')
TARGET_DIR=$(cargo metadata --format-version 1 --no-deps | node -p "JSON.parse(require('fs').readFileSync(0, 'utf8')).target_directory")
PRODUCTION_SIDECARS=(buzz)
PRODUCTION_SIDECARS=(buzz buzz-backend-openclaw)
if [[ "$TARGET" != *windows* ]]; then
PRODUCTION_SIDECARS+=(buzz-backend-kubernetes)
fi
Expand Down
21 changes: 21 additions & 0 deletions crates/buzz-backend-openclaw/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
[package]
name = "buzz-backend-openclaw"
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
description = "OpenClaw enrollment provider for Buzz Desktop"

[[bin]]
name = "buzz-backend-openclaw"
path = "src/main.rs"

[dependencies]
base64 = { workspace = true }
nostr = { workspace = true }
serde = { workspace = true }
serde_json = { workspace = true }
uuid = { version = "1", features = ["v4"] }

[dev-dependencies]
tempfile = "3"
Loading