Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
e6c90bb
Polish community rail and mobile pairing (#2972)
klopez4212 Jul 26, 2026
1a56b7c
feat(mobile): add worktree-aware debug identities (#2858)
tellaho Jul 26, 2026
a1ee78b
Brand Buzz fork as MAC Workspace (#1)
marccopson Jul 26, 2026
5d8ede4
feat(agents): lower default agent parallelism from 24 to 10 (#3038)
tlongwell-block Jul 26, 2026
871a3b3
Refine mobile community switching and discovery (#2967)
klopez4212 Jul 26, 2026
aee6314
fix(desktop): strip legacy baked team instructions from stored prompt…
wpfleger96 Jul 26, 2026
16d4ec3
feat(desktop): use collective mesh routing for Auto (#2825)
micspiral Jul 26, 2026
95fdf97
feat(acp): bring your own harness (BYOH) — generic ACP runtime seam +…
wpfleger96 Jul 27, 2026
63c62fc
chore(deps): update dependency @tanstack/react-virtual to v3.14.8 (#3…
renovate[bot] Jul 27, 2026
070fb6a
chore(deps): update radix-ui-primitives monorepo (#3063)
renovate[bot] Jul 27, 2026
afb272b
fix(desktop): render rich project work item content (#3100)
thomaspblock Jul 27, 2026
3742076
fix(mobile): mitigate message-post delay with optimistic rendering (#…
brow Jul 27, 2026
7fc0cc8
Restore Goose and Buzz Agent to onboarding harness selection (#2731)
morgmart Jul 27, 2026
87b3fcd
fix(desktop): clarify identity key button when key exists (#2357)
Chessing234 Jul 27, 2026
c5c4f39
feat(desktop): handle project work from Inbox (#3117)
thomaspblock Jul 27, 2026
00ecf2c
fix(security): authorize kind:9000 role changes in both directions (#…
tlongwell-block Jul 27, 2026
654f384
fix(desktop): read the newest pair-scoped harness log (#3134)
wpfleger96 Jul 27, 2026
4ef5f10
docs(contributing): set PR expectations and require UI screenshots (#…
wpfleger96 Jul 27, 2026
31e2de1
fix(deps): bump nostr to 0.44.6 for RUSTSEC-2026-0216 (NIP-44 remote …
tlongwell-block Jul 27, 2026
fe84274
chore(deps): update react monorepo to v19.2.8 (#3064)
renovate[bot] Jul 27, 2026
e2e0079
fix(security): enforce durable community ban on NIP-43 relay-admin ki…
tlongwell-block Jul 27, 2026
18eef63
feat(git): use agent display name as git author name (#3040)
wpfleger96 Jul 27, 2026
68f39f3
feat(mobile): bring message actions to desktop parity (#3070)
tellaho Jul 27, 2026
f2fe3b6
feat(acp): title agent sessions from the agent and channel name (#3028)
wpfleger96 Jul 27, 2026
be275cf
fix(desktop): keep identity key help dialog readable in dark mode (#2…
pfista Jul 27, 2026
313f793
feat(desktop): add search to agent emoji picker (#2630)
TheSentinel454 Jul 27, 2026
9d36778
feat(mobile): refactor Activity behavior and ui (#2889)
tellaho Jul 27, 2026
545bb46
fix(desktop): make lint and unit-test gates work on Windows (#2943)
TheSeydiCharyyev Jul 27, 2026
8bb43d5
fix(desktop): make the test loader work on Windows (#2758)
technicallybrantley Jul 27, 2026
c3084b3
fix(cli,relay): resolve agents by verified owner (#2615)
johnmatthewtennant Jul 27, 2026
b92a1f4
chore(desktop): add AgentCreationPreview file-size override to unbloc…
wpfleger96 Jul 27, 2026
e28707f
fix(mobile): retry channel-sections startup sync when relay rate-limi…
tellaho Jul 27, 2026
32ead93
fix(mobile): tapping threaded message in Inbox navigates to top level…
brow Jul 27, 2026
8995316
fix(desktop): use forward slashes for git credential.helper on Window…
bcrdejong Jul 27, 2026
3faea98
fix(mobile): match markContextRead signature in activity test fake (#…
wpfleger96 Jul 27, 2026
d98da73
feat(desktop): redesign agent runtime settings (#3093)
tellaho Jul 27, 2026
a041e2d
Revert "fix(cli,relay): resolve agents by verified owner" (#3168)
wpfleger96 Jul 27, 2026
9b0f744
resolve findings (#3150)
tlongwell-block Jul 27, 2026
137185e
chore(deps): update plugin org.jetbrains.kotlin.android to v2.2.21 (#…
renovate[bot] Jul 27, 2026
4d8b676
fix(desktop): keep collapsed table separators out of spoilers (#3169)
wesbillman Jul 27, 2026
01c2381
Replace mobile reconnect banners with skeleton shimmer (#3143)
klopez4212 Jul 27, 2026
174c38e
fix(desktop): recover full local storage on startup (#3182)
wesbillman Jul 27, 2026
f069a85
feat(admin): show reported message content in report detail (#3149)
kalvinnchau Jul 27, 2026
75588ea
Refine pending message status (#3153)
klopez4212 Jul 27, 2026
99da5b7
Fix composer selection formatting and drop overlay (#3172)
klopez4212 Jul 27, 2026
2bd4c24
Inbox refactor (#2045)
delkc Jul 27, 2026
de13960
fix(desktop): keep project Inbox previews compact (#3193)
thomaspblock Jul 27, 2026
7ca0bbd
fix(desktop): republish agent identity records when a persona rename …
SeanGearin Jul 27, 2026
0019f80
fix(desktop): fetch join policies through native networking (#2862)
johnmatthewtennant Jul 27, 2026
cb2a265
feat(search): parse from:/in:/after:/before: and pass them in the fil…
jatinder14 Jul 27, 2026
9810d85
fix(desktop): preserve thread anchor through layout reflow (#3212)
wesbillman Jul 27, 2026
98a7b13
fix(node): bump Buzz-supplied Node runtimes past OpenClaw's >=24.15.0…
tlongwell-block Jul 27, 2026
d500c2d
feat(invites): add use-limited invite links (#3141)
kalvinnchau Jul 27, 2026
95d5201
Add COS running order and Hermes workspace support (#3)
marccopson Jul 27, 2026
d8f9d87
Polish composer activity layout and transitions (#3151)
morgmart Jul 27, 2026
94675e0
refactor(desktop): extract install command execution into install_exe…
wpfleger96 Jul 28, 2026
be13b4b
fix(desktop): probe legacy Goose install dir on Windows (#3248)
wpfleger96 Jul 28, 2026
925a9a7
fix(buzz-acp): accept id-keyed config options when resolving model sw…
chillerno1 Jul 28, 2026
e94b9ae
feat(tracing): add datastore tracing plumbing (#2760)
ThePumpingLemma Jul 28, 2026
3a4bf51
Publish symbol-bearing debug relay images (#3250)
ThePumpingLemma Jul 28, 2026
9e566e7
Show Jira-active and agent-running work separately (COS-706) (#4)
marccopson Jul 28, 2026
304c6f9
COS-683: add Jira-authoritative My Actions closed loop (#5)
marccopson Jul 28, 2026
2ce2d71
feat(relay): make Postgres pool size configurable, default 50 (#3191)
tlongwell-block Jul 28, 2026
4a977c5
chore(release): release Buzz Desktop version 0.5.0 (#3213)
wesbillman Jul 28, 2026
b4251ef
ci: publish MAC relay images from mac branch (#6)
marccopson Jul 28, 2026
6418e81
fix: preserve upstream migration 25 checksum (#7)
marccopson Jul 28, 2026
20f8794
COS-709: add role-aware Workspace Today (#8)
marccopson Jul 28, 2026
9b4aa8c
Merge Buzz v0.5.0 into MAC Workspace (COS-710)
marccopson Jul 28, 2026
2b147eb
Merge pull request #9 from marccopson/card/COS-710-buzz-v0.5.0
marccopson Jul 28, 2026
a3be8d0
feat: add trustworthy MAC Control Room (COS-711) (#10)
marccopson Jul 29, 2026
0faaddb
COS-709: add private-channel staff assistant enrolment (#11)
marccopson Jul 31, 2026
290480d
feat: add MAC bridge owner authorisation flow
marccopson Jul 31, 2026
aecb4d3
feat: issue bridge recovery requests offline
marccopson Jul 31, 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
  •  
  •  
  •  
14 changes: 13 additions & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ REDIS_URL=redis://localhost:6379
# Max connections in the relay's shared Redis pool (default 16).
# BUZZ_REDIS_POOL_SIZE=16

# Max connections in each of the relay's Postgres pools — writer and, when
# READ_DATABASE_URL is set, reader (default 50).
# BUZZ_DB_POOL_SIZE=50

# -----------------------------------------------------------------------------
# Typesense (search)
# -----------------------------------------------------------------------------
Expand All @@ -50,6 +54,11 @@ RELAY_URL=ws://localhost:3000
# Stable relay signing key. Set this in dev if you want REST-created forum posts
# to keep resolving to the original author across relay restarts.
# BUZZ_RELAY_PRIVATE_KEY=<32-byte hex private key>
# COS follow-up authority. When set, this must be the exact 64-character
# lowercase-hex public key derived from the Estate bridge's protected
# BUZZ_PRIVATE_KEY. Unset disables the feature; blank/malformed values abort
# relay startup. The relay advertises the accepted key in NIP-11 `cos_follow_up`.
# BUZZ_COS_FOLLOW_UP_BRIDGE_PUBKEY=<64-lowercase-hex-public-key>
# Optional: path to the web UI dist directory. When set, the relay serves
# the web frontend at / for browser requests. Leave unset for local dev
# (use `just web` for Vite HMR instead).
Expand Down Expand Up @@ -105,7 +114,10 @@ RELAY_URL=ws://localhost:3000
# -----------------------------------------------------------------------------
# Logging / Tracing
# -----------------------------------------------------------------------------
RUST_LOG=buzz_relay=debug,buzz_db=debug,buzz_auth=debug,buzz_pubsub=debug,tower_http=debug
RUST_LOG=buzz_relay=debug,buzz_datastore=info,buzz_db=debug,buzz_auth=debug,buzz_pubsub=debug,tower_http=debug
# Optional OpenTelemetry-only target filter. This is deliberately independent
# from RUST_LOG so log verbosity changes cannot break trace parentage.
# BUZZ_OTEL_FILTER=buzz_relay=info,buzz_datastore=info

# OTLP tracing endpoint (optional — leave unset to disable)
# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317
Expand Down
8 changes: 8 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Git for Windows defaults to core.autocrlf=true, so without this every text
# file lands in the working copy with CRLF. Biome formats with LF
# (biome.json sets no lineEnding override), which fails `biome check` on
# effectively every file, and
# desktop/src/features/messages/ui/virtuaWheelModePatch.test.mjs asserts on
# patches/*.patch with `\n`-joined patterns. Normalize to LF in the working
# copy on every platform; the stored blobs are already LF.
* text=auto eol=lf
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@
<!-- Fixes #1234, or N/A. Before opening: search existing issues/PRs for duplicates — link the closest one, or say "none found". -->

### Testing
<!-- How was this verified? -->
<!-- How was this verified? UI change? Include before/after screenshots (or a short recording). -->
39 changes: 25 additions & 14 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,9 @@ jobs:
- 'rust-toolchain.toml'
- 'deny.toml'
- '.github/workflows/ci.yml'
- '.github/workflows/docker.yml'
- 'scripts/run-tests.sh'
- 'scripts/test-docker-tag-matrix.sh'
- 'justfile'
desktop:
- 'desktop/**'
Expand All @@ -59,10 +61,13 @@ jobs:
mobile:
- 'mobile/**'
- 'scripts/mobile-release.sh'
- 'scripts/mobile-worktree-overrides.sh'
- 'scripts/mobile-worktree-clean.sh'
- 'scripts/publish-mobile-release-candidate.sh'
- 'scripts/release-rulesets.sh'
- 'scripts/test-mobile-release-contract.sh'
- 'scripts/test-mobile-release-candidate-publisher.sh'
- 'scripts/test-mobile-worktree-overrides.sh'
- '.github/workflows/mobile-release-candidate.yml'
- '.github/workflows/ci.yml'
- name: Release workflow source contract
Expand All @@ -71,6 +76,10 @@ jobs:
run: |
scripts/test-mobile-release-contract.sh
scripts/test-mobile-release-candidate-publisher.sh
- name: Mobile worktree identity contract
run: scripts/test-mobile-worktree-overrides.sh
- name: Docker tag matrix contract
run: scripts/test-docker-tag-matrix.sh

rust-lint:
name: Rust Lint
Expand Down Expand Up @@ -335,6 +344,7 @@ jobs:
cargo build --profile ci -p buzz-relay -p git-credential-nostr
cargo nextest archive \
--cargo-profile ci \
-p buzz-db \
-p buzz-relay \
-p buzz-test-client \
--lib \
Expand Down Expand Up @@ -666,11 +676,11 @@ jobs:
done
cat /tmp/buzz-relay.log
exit 1
- name: Invite claim security tests
- name: Invite security tests
run: |
cargo nextest run \
--archive-file target/ci/backend-integration-tests.tar.zst \
-E 'package(buzz-relay) and test(claim_)' \
-E '(package(buzz-db) and test(/relay_invite::tests/)) or (package(buzz-relay) and test(/api::invites::tests/))' \
--run-ignored ignored-only
env:
DATABASE_URL: postgres://buzz:${{ env.BUZZ_TEST_POSTGRES_PASSWORD }}@localhost:5432/buzz
Expand Down Expand Up @@ -1010,16 +1020,20 @@ jobs:
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"
# Mesh rev is derived from Cargo.lock so a dependency bump needs no
# lockstep edit here; the cache key tracks it automatically.
# Resolve the exact desktop Mesh dependency so the native cache and build
# always use the same checkout, even when the root lockfile contains
# another mesh-llm-sdk version.
- name: Resolve mesh-llm rev
id: mesh_rev
run: |
set -euo pipefail
REV=$(python3 -c 'import tomllib; d=tomllib.load(open("Cargo.lock", "rb")); p=next(p for p in d["package"] if p["name"] == "mesh-llm-sdk"); print(p["source"].rsplit("#", 1)[1])')
[[ -n "$REV" ]] || { echo "::error::could not resolve mesh-llm rev from Cargo.lock"; exit 1; }
metadata=$(cargo metadata --manifest-path desktop/src-tauri/Cargo.toml --features mesh-llm --format-version 1)
REV=$(python3 -c 'import json,sys; data=json.load(sys.stdin); p=next(p for p in data["packages"] if p["name"]=="mesh-llm-sdk"); print(p["source"].rsplit("#", 1)[1])' <<<"$metadata")
SDK_MANIFEST=$(python3 -c 'import json,sys; data=json.load(sys.stdin); print(next(p["manifest_path"] for p in data["packages"] if p["name"]=="mesh-llm-sdk"))' <<<"$metadata")
MESH_ROOT=$(cd "$(dirname "$SDK_MANIFEST")/../.." && pwd)
[[ -n "$REV" ]] || { echo "::error::could not resolve desktop mesh-llm rev from Cargo metadata"; exit 1; }
echo "rev=$REV" >> "$GITHUB_OUTPUT"
echo "short=${REV:0:7}" >> "$GITHUB_OUTPUT"
echo "root=$MESH_ROOT" >> "$GITHUB_OUTPUT"
- name: Restore mesh llama build cache
id: llama_cache
uses: actions/cache/restore@caa296126883cff596d87d8935842f9db880ef25 # v5
Expand All @@ -1029,16 +1043,13 @@ jobs:
- name: Build mesh llama native libraries
if: steps.llama_cache.outputs.cache-hit != 'true'
env:
MESH_REV_SHORT: ${{ steps.mesh_rev.outputs.short }}
MESH_ROOT: ${{ steps.mesh_rev.outputs.root }}
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"
[[ -x "$MESH_ROOT/scripts/prepare-llama.sh" && -x "$MESH_ROOT/scripts/build-llama.sh" ]] || {
echo "::error::mesh-llm build scripts not found under resolved checkout $MESH_ROOT"
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
Expand Down
Loading
Loading