Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
a5dbdf5
fix(mobile): recover and pace live subscriptions (#3053)
brow Aug 3, 2026
2c0ac24
fix(desktop): stop the create-agent provider config probe from erasin…
tlongwell-block Aug 3, 2026
83a285f
ci(linux): enable mesh-llm feature in Linux release and canary builds…
tlongwell-block Aug 3, 2026
857e63c
Polish mobile composer and messaging UI (#3918)
klopez4212 Aug 3, 2026
be95a8a
fix(config-bridge): add harness-definition env tier and fix equal-val…
wpfleger96 Aug 3, 2026
f810a2f
fix(desktop): make OpenAI key re-enterable after first save in card m…
wpfleger96 Aug 3, 2026
5e0efb0
fix(desktop): disambiguate provider API key labels and annotate mint …
wpfleger96 Aug 3, 2026
f865c00
feat(desktop): show saved Run on settings when editing an agent (#4539)
tlongwell-block Aug 3, 2026
b0c6d6f
Add channel activity hover menu (#3935)
klopez4212 Aug 3, 2026
01c80aa
fix(desktop): save key backups to authorized path (#4022)
tellaho Aug 3, 2026
c1b88af
feat(desktop): improve channel template discovery (#4549)
wesbillman Aug 3, 2026
80315ac
fix(desktop): harden Windows installs against Defender block and orph…
wpfleger96 Aug 3, 2026
09c86c5
fix: report agent usage per provider round, not once per turn (#4545)
atishpatel Aug 3, 2026
44fa1e8
docs(release): align desktop handoff instructions (#3988)
wesbillman Aug 3, 2026
6de85fe
test(mobile): assert follow boundary semantics (#4559)
wesbillman Aug 3, 2026
651f637
chore(release): release Buzz Desktop version 0.5.4 (#4562)
wesbillman Aug 3, 2026
ce56e34
fix(mobile): recover stale relay sessions (#4372)
brow Aug 3, 2026
e1f6da7
ci: add guarded desktop release cache prewarm (#4575)
wesbillman Aug 3, 2026
5c98932
feat(desktop): make onboarding model defaults skippable (#3968)
tellaho Aug 3, 2026
d4a4570
fix(desktop): clarify inherited agent parallelism (#4010)
wesbillman Aug 3, 2026
7981597
fix(reactions): wrap long popover names (#3834)
tellaho Aug 3, 2026
027a74a
Polish Share Compute settings (#3735)
klopez4212 Aug 3, 2026
985cdcc
feat(agents): model-tuning parity in global Agent Defaults editor (#4…
wpfleger96 Aug 3, 2026
ede8d22
feat(mobile): bring channel menus to desktop parity (#3940)
tellaho Aug 3, 2026
b29c8cd
feat(desktop): redesign the Huddle experience (#4281)
klopez4212 Aug 4, 2026
d5da74e
feat(mobile): add channel scroll navigation (#4239)
tellaho Aug 4, 2026
b42b093
feat(mobile): sync per-group channel sorting (#4231)
tellaho Aug 4, 2026
631b05c
feat: ship Buzz Term (#4347)
tlongwell-block Aug 4, 2026
feccf4e
Polish mobile inbox and media flows (#4512)
klopez4212 Aug 4, 2026
ddcf0ae
fix(desktop): stop clipping focus ring on channel intro action cards …
iroiro147 Aug 4, 2026
f18a9cb
Defer desktop media uploads until send (#4522)
klopez4212 Aug 4, 2026
a5bf3c5
Refine desktop timeline activity presentation (#4582)
klopez4212 Aug 4, 2026
d0af845
Remove blur from Welcome composer guidance (#4691)
klopez4212 Aug 4, 2026
0542bc8
docs(nip-am): normative amendment — cache SHOULD/MUST + pricingIdenti…
wpfleger96 Aug 4, 2026
56003eb
docs(acp): explain per-channel session model in base prompt (#4729)
wpfleger96 Aug 4, 2026
d0d4acd
fix(desktop): show cached display names on startup (#3317)
TheSentinel454 Aug 4, 2026
540b589
Polish sidebar unread hierarchy (#4573)
klopez4212 Aug 4, 2026
f86dfc5
feat(desktop): surface config diff in restart-required badge (#3637)
wpfleger96 Aug 4, 2026
0afeac8
feat(desktop): persist sidebar observed-unread across webview reload …
wpfleger96 Aug 4, 2026
e1287c9
Refine community invite links (#4734)
klopez4212 Aug 4, 2026
0c33a8a
fix(agents): canonicalize stale persona harness pins (#4631)
wpfleger96 Aug 4, 2026
bc9e652
perf(relay): index channel-id lookups and skip trace-only reads (#4647)
jemiahw Aug 4, 2026
cb4a73e
Dock Buzz Term within channel workspace (#4724)
wesbillman Aug 4, 2026
e5efd04
fix(desktop): close reconnect gaps that previously required CMD+R (#4…
wesbillman Aug 4, 2026
021a618
Merge upstream Buzz e5efd047050f
Realmullens Aug 4, 2026
20a8936
fix: pass activity handle to widened TtsPipeline constructor
Realmullens Aug 4, 2026
9181269
fix: defer read-aloud stop out of route-disposal build phase
Realmullens Aug 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1023,7 +1023,7 @@ jobs:
git log -1 --format=%s | grep -qx smoke
echo "Host bash resolved and functional; git commit round-trip passed"
- name: Check (Tauri crate)
run: cargo check --manifest-path desktop/src-tauri/Cargo.toml --target $env:TARGET
run: cargo check --manifest-path desktop/src-tauri/Cargo.toml --workspace --all-targets --target $env:TARGET
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"
- name: Test (Tauri crate)
Expand Down
164 changes: 164 additions & 0 deletions .github/workflows/desktop-release-cache-proof.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
name: Desktop release cache tag-scope proof

# Dispatch from a cache-proof-* tag at the same trusted-main SHA warmed by all
# four canaries. Every job restores only and requires an exact cache hit.
on:
workflow_dispatch:

permissions:
contents: read

jobs:
macos:
name: Prove macOS ${{ matrix.target }} cache visibility
if: github.repository == 'block/buzz'
runs-on: macos-latest
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
features: mesh-llm
- target: x86_64-apple-darwin
features: default
steps:
- name: Require cache proof tag
run: '[[ "$GITHUB_REF" == refs/tags/cache-proof-* ]] || { echo "::error::Expected cache-proof-* tag; got $GITHUB_REF"; exit 1; }'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1
- name: Patch proof dependency graph
run: |
cd desktop && node scripts/set-version-from-tag.mjs "0.0.0-cache-proof"
cd src-tauri && cargo update --workspace
- name: Resolve native toolchain identity
id: native_toolchain
run: echo "id=$(scripts/desktop-native-toolchain-id.sh macos)" >> "$GITHUB_OUTPUT"
- name: Compute exact release cache key
id: rust_cache_key
env:
CACHE_TARGET: ${{ matrix.target }}
CACHE_FEATURES: ${{ matrix.features }}
NATIVE_TOOLCHAIN_ID: ${{ steps.native_toolchain.outputs.id }}
run: |
KEY=$(scripts/desktop-release-cache-key.py --platform "$RUNNER_OS" --target "$CACHE_TARGET" --features "$CACHE_FEATURES" --native-inputs "$NATIVE_TOOLCHAIN_ID")
echo "key=$KEY" >> "$GITHUB_OUTPUT"
- name: Restore exact default-branch cache from tag
id: rust_cache
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
desktop/src-tauri/target
!desktop/src-tauri/target/**/release/bundle
key: ${{ steps.rust_cache_key.outputs.key }}
- name: Require exact cache hit
env:
CACHE_HIT: ${{ steps.rust_cache.outputs.cache-hit }}
CACHE_KEY: ${{ steps.rust_cache.outputs.cache-primary-key }}
EXPECTED_KEY: ${{ steps.rust_cache_key.outputs.key }}
run: '[[ "$CACHE_HIT" == true && "$CACHE_KEY" == "$EXPECTED_KEY" ]] || { echo "::error::Exact tag cache miss (hit=$CACHE_HIT restored=$CACHE_KEY expected=$EXPECTED_KEY)"; exit 1; }'

linux:
name: Prove Linux cache visibility
if: github.repository == 'block/buzz'
runs-on: ubuntu-latest
container: ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90
timeout-minutes: 15
defaults:
run:
shell: bash
steps:
- name: Require cache proof tag and install release native tools
run: |
[[ "$GITHUB_REF" == refs/tags/cache-proof-* ]] || { echo "::error::Expected cache-proof-* tag; got $GITHUB_REF"; exit 1; }
apt-get update
apt-get install -y --no-install-recommends build-essential ca-certificates curl git libasound2-dev libayatana-appindicator3-dev libgtk-3-dev librsvg2-dev libssl-dev libwebkit2gtk-4.1-dev libxdo-dev patchelf pkg-config
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1
- name: Patch proof dependency graph
run: |
cd desktop && node scripts/set-version-from-tag.mjs "0.0.0-cache-proof"
cd src-tauri && cargo update --workspace
- name: Resolve native toolchain identity
id: native_toolchain
run: echo "id=$(scripts/desktop-native-toolchain-id.sh linux)" >> "$GITHUB_OUTPUT"
- name: Compute exact release cache key
id: rust_cache_key
env:
NATIVE_TOOLCHAIN_ID: ${{ steps.native_toolchain.outputs.id }}
run: |
KEY=$(scripts/desktop-release-cache-key.py --platform "$RUNNER_OS" --target x86_64-unknown-linux-gnu --features mesh-llm --native-inputs "$NATIVE_TOOLCHAIN_ID")
echo "key=$KEY" >> "$GITHUB_OUTPUT"
- name: Restore exact default-branch cache from tag
id: rust_cache
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
desktop/src-tauri/target
!desktop/src-tauri/target/**/release/bundle
key: ${{ steps.rust_cache_key.outputs.key }}
- name: Require exact cache hit
env:
CACHE_HIT: ${{ steps.rust_cache.outputs.cache-hit }}
CACHE_KEY: ${{ steps.rust_cache.outputs.cache-primary-key }}
EXPECTED_KEY: ${{ steps.rust_cache_key.outputs.key }}
run: '[[ "$CACHE_HIT" == true && "$CACHE_KEY" == "$EXPECTED_KEY" ]] || { echo "::error::Exact tag cache miss (hit=$CACHE_HIT restored=$CACHE_KEY expected=$EXPECTED_KEY)"; exit 1; }'

windows:
name: Prove Windows cache visibility
if: github.repository == 'block/buzz'
runs-on: windows-latest
timeout-minutes: 15
steps:
- name: Require cache proof tag
shell: bash
run: '[[ "$GITHUB_REF" == refs/tags/cache-proof-* ]] || { echo "::error::Expected cache-proof-* tag; got $GITHUB_REF"; exit 1; }'
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
persist-credentials: false
- name: Patch proof dependency graph
shell: bash
run: |
cd desktop && node scripts/set-version-from-tag.mjs "0.0.0-cache-proof"
cd src-tauri && cargo update --workspace
- name: Resolve native toolchain identity
id: native_toolchain
shell: bash
run: echo "id=$(scripts/desktop-native-toolchain-id.sh windows)" >> "$GITHUB_OUTPUT"
- name: Compute exact release cache key
id: rust_cache_key
shell: bash
env:
NATIVE_TOOLCHAIN_ID: ${{ steps.native_toolchain.outputs.id }}
run: |
KEY=$(scripts/desktop-release-cache-key.py --platform "$RUNNER_OS" --target x86_64-pc-windows-msvc --features default --native-inputs "$NATIVE_TOOLCHAIN_ID")
echo "key=$KEY" >> "$GITHUB_OUTPUT"
- name: Restore exact default-branch cache from tag
id: rust_cache
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
desktop/src-tauri/target
!desktop/src-tauri/target/**/release/bundle
key: ${{ steps.rust_cache_key.outputs.key }}
- name: Require exact cache hit
shell: bash
env:
CACHE_HIT: ${{ steps.rust_cache.outputs.cache-hit }}
CACHE_KEY: ${{ steps.rust_cache.outputs.cache-primary-key }}
EXPECTED_KEY: ${{ steps.rust_cache_key.outputs.key }}
run: '[[ "$CACHE_HIT" == true && "$CACHE_KEY" == "$EXPECTED_KEY" ]] || { echo "::error::Exact tag cache miss (hit=$CACHE_HIT restored=$CACHE_KEY expected=$EXPECTED_KEY)"; exit 1; }'
68 changes: 53 additions & 15 deletions .github/workflows/linux-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,8 @@ name: Linux Canary
# Design notes vs. signed-macos-canary.yml:
# - fix-appimage.sh is run without signing env vars; the script detects
# their absence and skips re-signing, repacking only (documented inline).
# - mold linker added (rui314/setup-mold) to reduce link time, matching
# the Linux Rust CI jobs in ci.yml.
# - Build tools match release.yml; cache keys derive the concrete linker and
# native library identity rather than assuming the moving runner image.
# - pnpm store restore/save pattern mirrors ci.yml:149-196.
on:
workflow_dispatch:
Expand Down Expand Up @@ -83,18 +83,6 @@ jobs:

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

- uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1

# Rust cache covering both the workspace sidecar build and the Tauri
# crate build. shared-key scoped to linux-canary-release so canary runs
# warm each other without colliding with CI's debug-profile keys.
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
with:
workspaces: |
.
desktop/src-tauri
shared-key: linux-canary-release

- name: Install appimagetool
run: |
case "$(uname -m)" in
Expand Down Expand Up @@ -154,6 +142,38 @@ jobs:
cd desktop && node scripts/set-version-from-tag.mjs "$VERSION"
cd src-tauri && cargo update --workspace

- name: Resolve native toolchain identity
id: native_toolchain
run: echo "id=$(scripts/desktop-native-toolchain-id.sh linux)" >> "$GITHUB_OUTPUT"

# Compute this after cargo update so the key describes the graph that is
# actually compiled. The helper normalizes only Buzz Desktop's release
# version, allowing a canary to warm an otherwise identical tag build.
- name: Compute exact release cache key
id: rust_cache_key
env:
NATIVE_TOOLCHAIN_ID: ${{ steps.native_toolchain.outputs.id }}
run: |
KEY=$(scripts/desktop-release-cache-key.py \
--platform "$RUNNER_OS" \
--target x86_64-unknown-linux-gnu \
--features mesh-llm \
--native-inputs "$NATIVE_TOOLCHAIN_ID")
echo "key=$KEY" >> "$GITHUB_OUTPUT"
echo "Release cache key: $KEY"

- name: Restore exact release Cargo cache
id: rust_cache
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
desktop/src-tauri/target
!desktop/src-tauri/target/**/release/bundle
key: ${{ steps.rust_cache_key.outputs.key }}

- name: Generate non-updating bundle config
run: |
cat > desktop/src-tauri/tauri.canary.conf.json <<'JSON'
Expand All @@ -170,7 +190,7 @@ jobs:
./scripts/bundle-sidecars.sh

- name: Build Linux Tauri app
run: cd desktop && pnpm tauri build --ci --bundles deb,appimage --config src-tauri/tauri.canary.conf.json
run: cd desktop && pnpm tauri build --ci --bundles deb,appimage --features mesh-llm --config src-tauri/tauri.canary.conf.json
env:
CMAKE_POLICY_VERSION_MINIMUM: "3.5"

Expand All @@ -190,6 +210,24 @@ jobs:
fi
bash desktop/scripts/fix-appimage.sh "${APPIMAGES[0]}"

- name: Measure release Cargo cache inputs
if: always()
run: du -sh ~/.cargo/registry ~/.cargo/git target desktop/src-tauri/target 2>/dev/null || true

# Only this trusted, main-bound canary writes the cache. Excluding bundle
# output prevents installers from entering it.
- name: Save exact release Cargo cache
if: steps.rust_cache.outputs.cache-hit != 'true'
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
desktop/src-tauri/target
!desktop/src-tauri/target/**/release/bundle
key: ${{ steps.rust_cache_key.outputs.key }}

- name: Save pnpm store cache
uses: actions/cache/save@caa296126883cff596d87d8935842f9db880ef25 # v5
with:
Expand Down
Loading
Loading