Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
7dfea26
Add mobile message image galleries (#3312)
klopez4212 Jul 28, 2026
6da45ac
Polish mobile message and search layouts (#3121)
klopez4212 Jul 28, 2026
a3b0977
Refine mobile attachment picking (#3313)
klopez4212 Jul 28, 2026
af4d861
feat(chart): add relay pod extension points (#3322)
ThePumpingLemma Jul 28, 2026
5457c94
fix(composer): scope multiline block formatting (#3246)
tellaho Jul 28, 2026
60158fc
feat(cli): add users set-status command for NIP-38 profile status (#3…
kaganin Jul 28, 2026
4e3998f
fix(desktop): gate codex-acp on a minimum supported version (#3254)
wpfleger96 Jul 28, 2026
00ede2e
fix(desktop): restore the inbox icon in the sidebar (#3341)
delkc Jul 28, 2026
a772128
Unify mobile loading spinners (#3314)
klopez4212 Jul 28, 2026
35305bf
docs: restructure DCO guidance into scannable subsection (#3337)
cameronhotchkies Jul 28, 2026
3afa129
fix(desktop): keep drafts out of the Inbox All view (#3217)
thomaspblock Jul 28, 2026
a35771f
feat(desktop): refine agent catalog sharing (#2439)
klopez4212 Jul 28, 2026
1e307e1
chore(compose): remove stale typesense env vars (#3332)
kalvinnchau Jul 28, 2026
b0503d8
feat(desktop): add custom harness inline from agent dialogs (#3252)
wpfleger96 Jul 28, 2026
1d4f97b
fix(acp): disable goose cron scheduler in managed agent children (#3144)
wpfleger96 Jul 28, 2026
1d3b810
fix(desktop): paint community rail full height (#3382)
wesbillman Jul 28, 2026
4fcd55a
docs(contributing): document the Linux system libraries just ci requi…
kcao-gss Jul 28, 2026
913d564
fix(desktop): stabilize flaky DM expansion E2E ordering assertions (#…
cameronhotchkies Jul 28, 2026
3ece446
feat(desktop): apply WebKit rendering workarounds at startup on Linux…
wpfleger96 Jul 28, 2026
f25e6dd
feat(acp): steer claude-code and codex agents via _session/steering (…
wpfleger96 Jul 28, 2026
12d63c6
release(chart): publish 0.1.7 (#3393)
ThePumpingLemma Jul 28, 2026
826bed4
chore(ci): bump desktop smoke E2E timeout to 30 minutes (#3409)
wpfleger96 Jul 28, 2026
9227bdf
fix(ci): ratchet file sizes against the base tree (#3352)
wesbillman Jul 28, 2026
55a3ed7
fix(desktop): clear stale thread new-message pill (#3411)
wesbillman Jul 28, 2026
90e058e
feat: add explicit entry for claude-opus-5 in model config (#2831)
Apurva324 Jul 28, 2026
22be8bb
fix(relay): avoid subscription lock inversion (#3413)
tlongwell-block Jul 29, 2026
6300a6b
fix(acp): per-runtime env defaults at spawn — isolate Hermes from con…
tlongwell-block Jul 29, 2026
485d03a
Fix mobile attachment and gallery polish (#3370)
klopez4212 Jul 29, 2026
c405ad1
feat(agent): fix Anthropic prompt caching with Databricks (+ MCP prox…
atishpatel Jul 29, 2026
ce01e93
Polish mobile typing indicator (#3528)
klopez4212 Jul 29, 2026
24d90d1
Refine community invite limits (#3529)
klopez4212 Jul 29, 2026
6438ded
feat(agent): route Claude/GPT model families to their native gateway …
atishpatel Jul 29, 2026
4555899
Polish mobile navigation and menus (#3486)
klopez4212 Jul 29, 2026
f7a3988
fix(desktop): preserve shared agent fidelity (#3553)
wesbillman Jul 29, 2026
294c8c8
perf(desktop): move observer-feed archive and decrypt commands off ma…
wpfleger96 Jul 29, 2026
51bb97d
Run Tauri clippy in pre-push (#3555)
wesbillman Jul 29, 2026
a13085e
chore(release): release Buzz Desktop version 0.5.1 (#3566)
wesbillman Jul 29, 2026
9752b81
Serialize Tauri pre-push checks (#3567)
wesbillman Jul 29, 2026
9beb3b8
fix(cli): mask credential env values in --help output (#3570)
wpfleger96 Jul 29, 2026
4a1ebf2
feat(agent): make Gemini and MLflow-route models usable through datab…
atishpatel Jul 29, 2026
ddd4687
revert(acp): remove dead GOOSE_ACP_SCHEDULER_DISABLED env injection (…
wpfleger96 Jul 29, 2026
7e9b77f
Fix inline raster avatars in agent catalog (#3581)
wesbillman Jul 29, 2026
324bd6b
Fix shared agent avatar import profiles (#3578)
wesbillman Jul 29, 2026
259de6a
Improve emoji autocomplete matching (#3571)
klopez4212 Jul 29, 2026
047533c
fix(mobile): keep TLS on relays joined by invite (#3139)
inventivepotter Jul 29, 2026
b42a8d4
fix(desktop): reconcile thread arrivals at bottom (#3585)
wesbillman Jul 29, 2026
66e7054
fix(desktop): deduplicate relay outage notification (#3579)
loganj Jul 29, 2026
7adc462
feat(cli): mirror Desktop mention delivery (#3330)
loganj Jul 29, 2026
581baa6
chore(ci): bump Linux AppImage build container to ubuntu:24.04 (#3602)
wpfleger96 Jul 29, 2026
005b5b8
feat(tracing): correlate trace IDs in relay logs (#3608)
ThePumpingLemma Jul 29, 2026
5aeed7c
fix(desktop): discover bun-installed agent CLIs in ~/.bun/bin (#3343)
linxule Jul 29, 2026
b18e559
docs: add Linux rendering troubleshooting guide (#3573)
wpfleger96 Jul 29, 2026
3e48f1b
chore(release): release Buzz Desktop version 0.5.2 (#3624)
wesbillman Jul 29, 2026
6104734
chore: sync MAC Workspace to Buzz v0.5.2 (COS-742)
Jul 31, 2026
de030fa
Merge origin/mac into COS-742 candidate
Jul 31, 2026
f148d74
feat(mac): add evidence-backed Delivery Room
Jul 31, 2026
b4daff9
fix(mac): fail closed across Delivery Room refreshes
Jul 31, 2026
bdea593
fix(mac): reject contradictory Delivery Room feeds
Jul 31, 2026
918ef4e
fix(mac): expire stale Delivery Room evidence
Jul 31, 2026
c542ed2
fix(COS-745): fail closed on expiry edge cases
Jul 31, 2026
cf0830c
fix(desktop): persist delivery room expiry latch
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
  •  
  •  
  •  
18 changes: 17 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,21 @@ jobs:
- 'scripts/test-docker-tag-matrix.sh'
- 'justfile'
desktop:
- 'scripts/check-file-sizes-core.mjs'
- 'scripts/check-file-sizes-core.test.mjs'
- 'desktop/**'
- '!desktop/src-tauri/**'
- 'pnpm-lock.yaml'
desktop-rust:
- 'desktop/src-tauri/**'
web:
- 'scripts/check-file-sizes-core.mjs'
- 'scripts/check-file-sizes-core.test.mjs'
- 'web/**'
- 'pnpm-lock.yaml'
mobile:
- 'scripts/check-file-sizes-core.mjs'
- 'scripts/check-file-sizes-core.test.mjs'
- 'mobile/**'
- 'scripts/mobile-release.sh'
- 'scripts/mobile-worktree-overrides.sh'
Expand All @@ -80,6 +86,8 @@ jobs:
run: scripts/test-mobile-worktree-overrides.sh
- name: Docker tag matrix contract
run: scripts/test-docker-tag-matrix.sh
- name: File size ratchet unit tests
run: node --test scripts/check-file-sizes-core.test.mjs

rust-lint:
name: Rust Lint
Expand Down Expand Up @@ -134,6 +142,8 @@ jobs:
contents: read
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
fetch-depth: 2
- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1
- uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
Expand Down Expand Up @@ -217,7 +227,7 @@ jobs:
desktop-smoke-e2e:
name: Desktop Smoke E2E (${{ matrix.shard }})
runs-on: ubuntu-latest
timeout-minutes: 20
timeout-minutes: 30
needs: [changes]
if: github.event_name == 'push' || needs.changes.outputs.desktop == 'true' || needs.changes.outputs.desktop-rust == 'true' || needs.changes.outputs.rust == 'true'
strategy:
Expand Down Expand Up @@ -755,6 +765,8 @@ jobs:
contents: read
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
fetch-depth: 2
- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1
- name: Get pnpm store directory
id: pnpm-cache
Expand Down Expand Up @@ -788,6 +800,8 @@ jobs:
contents: read
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
with:
fetch-depth: 2
- uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1
- name: Compute Hermit cache key
id: hermit-bin-hash
Expand Down Expand Up @@ -826,6 +840,8 @@ jobs:
with:
path: ~/.pub-cache
key: pub-${{ runner.os }}-${{ hashFiles('mobile/pubspec.lock') }}
- name: File size ratchet
run: node mobile/scripts/check-file-sizes.mjs
- name: Format check
run: cd mobile && dart format --output=none --set-exit-if-changed .
- name: Analyze
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/linux-canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
name: Build Linux canary
if: github.repository == 'block/buzz'
runs-on: ubuntu-latest
container: ubuntu:22.04@sha256:0e0a0fc6d18feda9db1590da249ac93e8d5abfea8f4c3c0c849ce512b5ef8982
container: ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90
timeout-minutes: 60
permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -477,7 +477,7 @@ jobs:
if: github.repository == 'block/buzz'
runs-on: ubuntu-latest
# Digest-pinned like the SHA-pinned actions below; Renovate keeps it fresh.
container: ubuntu:22.04@sha256:0e0a0fc6d18feda9db1590da249ac93e8d5abfea8f4c3c0c849ce512b5ef8982
container: ubuntu:24.04@sha256:4fbb8e6a8395de5a7550b33509421a2bafbc0aab6c06ba2cef9ebffbc7092d90
needs: setup
timeout-minutes: 60
permissions:
Expand All @@ -499,7 +499,7 @@ jobs:
env:
DEBIAN_FRONTEND: noninteractive
run: |
# Must run first: bare ubuntu:22.04 ships without curl, wget, git, or
# Must run first: bare ubuntu:24.04 ships without curl, wget, git, or
# ca-certificates. activate-hermit bootstraps via curl+HTTPS (needs
# both), and actions/checkout falls back to a REST tarball without git.
# Running as root — no sudo needed.
Expand Down
33 changes: 33 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,38 @@
# Changelog

## v0.5.2

- feat(cli): mirror Desktop mention delivery ([#3330](https://github.com/block/buzz/pull/3330)) ([`7adc46268`](https://github.com/block/buzz/commit/7adc46268d5e93f0b1d4dc8e700af22815dcac1b))
- fix(desktop): deduplicate relay outage notification ([#3579](https://github.com/block/buzz/pull/3579)) ([`66e705492`](https://github.com/block/buzz/commit/66e7054928cc29395f828467c3e8c81b7408dd29))
- fix(desktop): reconcile thread arrivals at bottom ([#3585](https://github.com/block/buzz/pull/3585)) ([`b42a8d447`](https://github.com/block/buzz/commit/b42a8d447e3a2b85b2313dc4fdd123731fd8bba3))
- Improve emoji autocomplete matching ([#3571](https://github.com/block/buzz/pull/3571)) ([`259de6afb`](https://github.com/block/buzz/commit/259de6afbe0cc0d106e57ebdb2323064990e4122))
- Fix shared agent avatar import profiles ([#3578](https://github.com/block/buzz/pull/3578)) ([`324bd6b46`](https://github.com/block/buzz/commit/324bd6b464de5751e12abbd155376046ce3d2afc))
- Fix inline raster avatars in agent catalog ([#3581](https://github.com/block/buzz/pull/3581)) ([`7e9b77f72`](https://github.com/block/buzz/commit/7e9b77f72d82e019a99f074f1c9829be30c57ae1))
- feat(agent): make Gemini and MLflow-route models usable through databricks_v2 ([#3569](https://github.com/block/buzz/pull/3569)) ([`4a1ebf25c`](https://github.com/block/buzz/commit/4a1ebf25c782fc6a68f0a69e6f866f793a259a1f))


## v0.5.1

- perf(desktop): move observer-feed archive and decrypt commands off main thread ([#3415](https://github.com/block/buzz/pull/3415)) ([`294c8c821`](https://github.com/block/buzz/commit/294c8c821de51442a8c384c0bdb66b1a10224ca0))
- fix(desktop): preserve shared agent fidelity ([#3553](https://github.com/block/buzz/pull/3553)) ([`f7a3988ba`](https://github.com/block/buzz/commit/f7a3988ba13b590d9a55a7e8413fc3fb5ffbef18))
- feat(agent): route Claude/GPT model families to their native gateway wire ([#3538](https://github.com/block/buzz/pull/3538)) ([`6438dedf8`](https://github.com/block/buzz/commit/6438dedf83a9dbe1853e484326911bf6c7f1618c))
- Refine community invite limits ([#3529](https://github.com/block/buzz/pull/3529)) ([`24d90d128`](https://github.com/block/buzz/commit/24d90d1280a9325c6cbcf8eea30ac54db5afd2cb))
- feat(agent): fix Anthropic prompt caching with Databricks (+ MCP proxy/TLS passthrough) ([#3463](https://github.com/block/buzz/pull/3463)) ([`c405ad1d4`](https://github.com/block/buzz/commit/c405ad1d4b1da061c11b3d26761252d41dcc62d3))
- feat: add explicit entry for claude-opus-5 in model config ([#2831](https://github.com/block/buzz/pull/2831)) ([`90e058ebf`](https://github.com/block/buzz/commit/90e058ebf68137e048a409aec6616519379ff726))
- fix(desktop): clear stale thread new-message pill ([#3411](https://github.com/block/buzz/pull/3411)) ([`55a3ed7b9`](https://github.com/block/buzz/commit/55a3ed7b9217cee5b23e0a5441947dc929b2a38c))
- fix(ci): ratchet file sizes against the base tree ([#3352](https://github.com/block/buzz/pull/3352)) ([`9227bdf58`](https://github.com/block/buzz/commit/9227bdf58ad6664ae3c1078888f2181ec19c4da4))
- feat(desktop): apply WebKit rendering workarounds at startup on Linux ([#3271](https://github.com/block/buzz/pull/3271)) ([`3ece4461d`](https://github.com/block/buzz/commit/3ece4461df8a7b9663a8e68327483b8377d4086d))
- fix(desktop): stabilize flaky DM expansion E2E ordering assertions ([#2004](https://github.com/block/buzz/pull/2004)) ([`913d564ce`](https://github.com/block/buzz/commit/913d564ce0f35924291bf3eeab6508517a6d8d1f))
- fix(desktop): paint community rail full height ([#3382](https://github.com/block/buzz/pull/3382)) ([`1d3b810ad`](https://github.com/block/buzz/commit/1d3b810ad70d6325718ed91e723f32c4a376d5e1))
- feat(desktop): add custom harness inline from agent dialogs ([#3252](https://github.com/block/buzz/pull/3252)) ([`b0503d80c`](https://github.com/block/buzz/commit/b0503d80c298b1ece3b0a43b41d316829a3379e7))
- feat(desktop): refine agent catalog sharing ([#2439](https://github.com/block/buzz/pull/2439)) ([`a35771fc4`](https://github.com/block/buzz/commit/a35771fc441cdc3c6f517f419037206783b502d2))
- fix(desktop): keep drafts out of the Inbox All view ([#3217](https://github.com/block/buzz/pull/3217)) ([`3afa129ee`](https://github.com/block/buzz/commit/3afa129ee785cc74d921d0ba969254a8255c4cc0))
- fix(desktop): restore the inbox icon in the sidebar ([#3341](https://github.com/block/buzz/pull/3341)) ([`00ede2e7a`](https://github.com/block/buzz/commit/00ede2e7aa7eb95571b7db3ebbd163adbf6cf74e))
- fix(desktop): gate codex-acp on a minimum supported version ([#3254](https://github.com/block/buzz/pull/3254)) ([`4e3998f36`](https://github.com/block/buzz/commit/4e3998f36e36d68b9a93dcbd85f0864450bb8f5f))
- feat(cli): add users set-status command for NIP-38 profile status ([#3253](https://github.com/block/buzz/pull/3253)) ([`60158fce3`](https://github.com/block/buzz/commit/60158fce3e670f11bb35d42627857ccaea50ff06))
- fix(composer): scope multiline block formatting ([#3246](https://github.com/block/buzz/pull/3246)) ([`5457c947a`](https://github.com/block/buzz/commit/5457c947a74f5ba4b979f9c6411aa7626a858387))


## v0.5.0

- feat(invites): add use-limited invite links ([#3141](https://github.com/block/buzz/pull/3141)) ([`d500c2d5c`](https://github.com/block/buzz/commit/d500c2d5cf5d9aabe0ca4ebebfcafdbe5f5b7fd3))
Expand Down
54 changes: 53 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,28 @@ Buzz is an agent platform, so AI-assisted PRs are welcome. No need to disclose t

We squash-merge, so your PR title becomes the commit subject in `main`. Use [Conventional Commits](https://www.conventionalcommits.org/) format: `feat(mcp): add get_feed_actions tool`. The type prefix (`feat`, `fix`, `docs`, `refactor`, `test`, `chore`) is required. See the [Commit Messages](#commit-messages) section for the full reference.

Every commit needs a Developer Certificate of Origin sign-off, so commit with `git commit -s` — it appends the `Signed-off-by` trailer that certifies you wrote the change and can contribute it. The required **DCO Check** blocks merge without it on every commit, and it's the most common reason new PRs stall. If you already pushed unsigned commits, run `git rebase --signoff main` and force-push. Running `just hooks` installs a `commit-msg` hook that adds the trailer to commits created by `git commit` and `git merge`; other flows need their own flag — `git rebase --signoff`, `git cherry-pick -s`.
### Sign Your Commits

```bash
git commit -s
```

Every commit needs a Developer Certificate of Origin (DCO) sign-off. The `-s` flag appends a `Signed-off-by` trailer that certifies you wrote the change and can contribute it under the project license. The **DCO Check** will block your PR without it.

#### Fix unsigned commits already pushed

```bash
git rebase --signoff main
git push --force-with-lease
```

#### Auto-setup for future commits

```bash
just hooks
```

This installs a `commit-msg` hook that adds the sign-off trailer automatically for `git commit` and `git merge`. Other flows (`git rebase`, `git cherry-pick`) still need their own flag — `--signoff` and `-s` respectively.

We review as capacity allows — focused PRs that follow this guide move fastest.

Expand Down Expand Up @@ -77,6 +98,37 @@ Hermit pins Rust, `just`, Node, pnpm, and other tools to the versions in
upfront. If you don't use Hermit, ensure your toolchain meets the minimum
versions in the table above.

#### Linux: Tauri system libraries

Hermit pins language toolchains, not system libraries. On Linux, the desktop
app's Rust crates link against GTK and WebKitGTK, so `just ci` (and any
`just desktop-tauri-*` recipe) needs these installed system-wide first. On
Debian/Ubuntu:

```bash
sudo apt-get install -y --no-install-recommends \
build-essential curl file libasound2-dev libayatana-appindicator3-dev \
libgtk-3-dev librsvg2-dev libssl-dev libwebkit2gtk-4.1-dev libxdo-dev \
patchelf wget
```

This is the same list CI installs (see `.github/workflows/ci.yml`), so matching
it locally keeps your results comparable to CI. Other distributions ship these
under different package names — see the
[Tauri prerequisites](https://tauri.app/start/prerequisites/) for the
equivalents.

Without them, `just ci` fails partway through `just check` with a pkg-config
error such as:

```
The system library `gdk-pixbuf-2.0` required by crate `gdk-pixbuf-sys` was not found.
```

If you're only touching the relay, CLI, or other server-side crates, you can
skip this and run the narrower recipes instead — `just fmt-check`, `just
clippy`, `just test-unit`, and `just test` need no GTK.

### First-Time Setup

```bash
Expand Down
Loading
Loading