Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
398 commits
Select commit Hold shift + click to select a range
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
f95fdc1
feat(agent,acp): wire provider total_tokens through NIP-AM publish ch…
wpfleger96 Jul 29, 2026
ab55fee
feat: add first-class OpenRouter provider support (#1975)
wpfleger96 Jul 29, 2026
7012d86
feat: configure S3 URL addressing style (#3400)
kalvinnchau Jul 30, 2026
788b3c0
fix(git): channel binding tooling + author remediation for unbound re…
tlongwell-block Jul 30, 2026
63496cc
feat(replica): portable heartbeat-token fence with snapshot-local rea…
tlongwell-block Jul 30, 2026
3b8567a
fix(desktop): remove Projects overview card fills (#3416)
thomaspblock Jul 30, 2026
262f239
fix(cli): resolve agents from owner records (#3178)
johnmatthewtennant Jul 30, 2026
7fb008f
fix(desktop): explain open agent access (#2561)
daveh-beep Jul 30, 2026
310df2e
desktop: restore direct community member adds (#3634)
wesbillman Jul 30, 2026
85edc05
feat(mobile): desktop-parity emoji and thread experience (#3485)
klopez4212 Jul 30, 2026
c55e421
fix(desktop): remove remaining Projects panel fills (#3742)
thomaspblock Jul 30, 2026
4672ee5
Fix pending message feedback (#3543)
klopez4212 Jul 30, 2026
d0a24bc
Add macOS agent menu-bar menu (#3565)
klopez4212 Jul 30, 2026
7358940
fix: align responsive agent views (#3688)
klopez4212 Jul 30, 2026
c9aa555
desktop: enable getUserMedia in the Linux WebKitGTK webview (#3607)
mbeckley17 Jul 30, 2026
9a386a0
Refine agent sharing dialog (#3699)
klopez4212 Jul 30, 2026
33bf7ca
docs(nips): specify kind:30621 multi-repo projects (NIP-MP) (#3163)
wpfleger96 Jul 30, 2026
4933672
feat(mesh): upgrade embedded mesh to v0.74 and harden shared compute …
tlongwell-block Jul 30, 2026
02be413
feat(catalog): resolve publisher display name in catalog detail pane …
wpfleger96 Jul 30, 2026
53771c8
fix(acp): preserve truncated thread context (#3340)
cameronhotchkies Jul 30, 2026
61b96c9
fix(catalog): update Amp description (#3758)
wesbillman Jul 30, 2026
06582ee
Render mobile agent mention chips (#3702)
klopez4212 Jul 30, 2026
f44b5a2
fix(desktop): reuse profiles when joining communities (#2155)
baxen Jul 30, 2026
bd0bff2
feat(desktop): add password-protected backups in settings (#3701)
tellaho Jul 30, 2026
cca8839
Make relay reconnect backoff authoritative (#3774)
wesbillman Jul 30, 2026
1dfd89e
feat(release): make desktop releases immutable (#3568)
wesbillman Jul 30, 2026
f48f3f0
Fix video reviews in thread replies (#3719)
klopez4212 Jul 30, 2026
6e419b9
Tighten continuation message rows (#3724)
klopez4212 Jul 30, 2026
bf139e8
perf(presence): reduce heartbeat frequency (#3783)
tlongwell-block Jul 30, 2026
4d47aa8
feat(desktop): improve agent activity header ui (#3321)
tellaho Jul 30, 2026
1b3ff96
Add Devin as a preset ACP harness (#3225)
fenner888 Jul 30, 2026
dba97ee
fix(db): isolate usage metrics advisory-lock test on scratch DB (#3670)
NanoRisk6 Jul 30, 2026
d40a332
feat(desktop): raise the install ceiling and make installs observable…
wpfleger96 Jul 30, 2026
b9e4ed6
test(desktop): click visible thread collapse guide (#3800)
wesbillman Jul 30, 2026
114d40d
feat(relay): gate kind 30178 team-catalog reads behind the shared tag…
wpfleger96 Jul 30, 2026
29dfe48
fix(desktop): don't gate hover affordances on the hover media query (…
sumit-m Jul 30, 2026
74cd571
fix(desktop): report authenticated relay recovery (#3812)
wesbillman Jul 30, 2026
36571f4
fix(desktop): allow linux-only media items as dead code off-linux (#3…
wpfleger96 Jul 30, 2026
23f0c26
fix(relay): align NIP-11 max_limit with REQ ceiling (#3635)
wpfleger96 Jul 30, 2026
ede2686
fix(desktop): align data deletion labels (#2230)
baxen Jul 30, 2026
9e8fcfd
fix(desktop): channel topic and membership metadata cleanup (#3642)
delkc Jul 30, 2026
f3e5e81
fix(catalog): update Amp tagline (#3806)
AJKemps Jul 30, 2026
468647a
feat(desktop): locally stored NIP-49 encrypted key backup (#2937)
tlongwell-block Jul 31, 2026
10d5a26
feat(relay): raise hosted community limit to five (#3829)
kalvinnchau Jul 31, 2026
d88313f
feat(desktop): delete a message by clearing its edit to empty (#3813)
sw-square Jul 31, 2026
d48b0e0
feat(desktop): upgrade Pocket TTS model (#3266)
johnmatthewtennant Jul 31, 2026
081f805
feat(agent): optional reply guard reminds a silent turn to publish (#…
tlongwell-block Jul 31, 2026
4632c55
feat(desktop): auto-enable huddle transcription for agents (#3180)
johnmatthewtennant Jul 31, 2026
689617a
docs: add VISION_REMOTE_AGENTS.md (#3924)
tlongwell-block Jul 31, 2026
61ba9df
refactor(voice): extract reusable Pocket primitives + Pocket voice se…
tlongwell-block Jul 31, 2026
39ce3df
fix(desktop): open profiles from avatars (#3751)
klopez4212 Jul 31, 2026
c104eec
feat(desktop): import local Pocket voices (#3259)
johnmatthewtennant Jul 31, 2026
052174a
fix(release): make immutable desktop release operable (#3943)
wesbillman Jul 31, 2026
d12b3d6
chore(release): release Buzz Desktop version 0.5.3
wesbillman Jul 31, 2026
6e02e0a
Merge pull request #3944 from block/version-bump/0.5.3
wesbillman Jul 31, 2026
209536a
docs(nips): add single-coordinate manual-unread override layer and ve…
wpfleger96 Jul 31, 2026
bb34bc4
Revert "chore(release): release Buzz Desktop version 0.5.3" (#3960)
wesbillman Jul 31, 2026
db7e84d
fix(release): make desktop tagging squash-safe (#3965)
wesbillman Jul 31, 2026
54c8ef3
fix(release): require exact-head approval for desktop tags (#3973)
wesbillman Jul 31, 2026
3a96ace
chore(release): release Buzz Desktop version 0.5.3 (#3972)
wesbillman Jul 31, 2026
e5e5bac
fix(release): preserve main in desktop PR body (#3979)
wesbillman Jul 31, 2026
cb9701c
feat(relay): accept kind:30621 multi-repo projects at ingest (#3171)
wpfleger96 Jul 31, 2026
b1b283c
fix(buzz-acp): thread cache-read tokens into NIP-AM kind:44200 events…
wpfleger96 Jul 31, 2026
eb049dd
feat(desktop): Agent Trading Cards — mintable agent-snapshot card PNG…
tlongwell-block Aug 1, 2026
45314fc
fix(desktop): preserve first huddle speech (#3962)
johnmatthewtennant Aug 1, 2026
fa1a5b1
fix(mesh): stop restarting a busy or loading shared-compute node (#3909)
micspiral Aug 1, 2026
3ade48d
fix(desktop): point Oh My Pi preset at omp.sh (#3516)
kiranmagic7 Aug 1, 2026
19d57b0
docs: add one-click Railway deploy for a hosted relay (#2733)
hmseeb Aug 1, 2026
8e81afa
fix(desktop): keep thread-open affordance in archived channels (#4012)
treywood Aug 1, 2026
909a3b2
docs: fix stale kind count, quick-start numbering, and empty Further …
SeanGearin Aug 1, 2026
3d7712c
docs: note that addressable channel events scope by d, not h (#4103)
TanskiSzymon Aug 1, 2026
5765fc7
fix(relay): allow open relays to set their NIP-11 workspace icon (kin…
tlongwell-block Aug 1, 2026
8d5afb6
docs(readme): clarify which release asset to download per platform (#…
dan-sheehan Aug 1, 2026
36cf932
docs(chart): fix ArgoCD example for native OCI sources (full artifact…
Kampe Aug 1, 2026
756dd7f
docs(nostr): document #h requirement for live reaction subscriptions …
Zigoljube Aug 1, 2026
9d6726e
chore(deps): bump nostr-relay-pool for RUSTSEC-2026-0224 (#4139)
wpfleger96 Aug 1, 2026
ac4fa13
perf(relay): serve relay-membership checks from the read replica (#4124)
tlongwell-block Aug 1, 2026
89bf03c
fix(nip-oa): accept raw Nostr tag form in parse_json_array (#4203)
amanning3390 Aug 2, 2026
28ae6cd
docs: formal spec for remote agents and their management (#3748)
tlongwell-block Aug 2, 2026
b7bb151
feat(projects): add buzz projects CLI commands (NIP-MP kind:30621) (#…
wpfleger96 Aug 2, 2026
fc598f5
fix(git): allow deleting the default branch (#4297)
MajorTal Aug 2, 2026
6530b58
feat(k8s): Kubernetes backend plugin + desktop deploy path (#4289)
tlongwell-block Aug 2, 2026
f86cfc7
fix(desktop): back/forward via keyboard chords, mouse X1/X2 buttons, …
matheuskiser Aug 2, 2026
318fbf8
fix(security): bump nostr crates for RUSTSEC-2026-0225..0232 + defaul…
tlongwell-block Aug 2, 2026
7ff5fc3
feat(acp): deliver system prompt via _meta.systemPrompt for claude-ag…
wpfleger96 Aug 2, 2026
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
7bee84d
fix(mobile): stop oversized read-state retry loop (#4595)
wesbillman Aug 4, 2026
5179726
fix(local-archive): default both archive settings to enabled (#4750)
wpfleger96 Aug 4, 2026
ce3cf3c
Polish Huddle voice controls (#4694)
klopez4212 Aug 4, 2026
8b8d86c
fix(desktop): integer-align custom reaction emoji (#4779)
kalvinnchau Aug 4, 2026
65f7a10
fix(desktop): wait for terminal frame before splash (#4781)
wesbillman Aug 4, 2026
7bcfe7e
fix(desktop): widen post-Enter timeouts in empty-edit-delete spec (#4…
wpfleger96 Aug 4, 2026
383d9e1
fix(ci): make desktop cache test version agnostic (#4791)
wesbillman Aug 4, 2026
e30db70
feat(projects): support multiple repositories (#4671)
thomaspblock Aug 4, 2026
b948c54
chore(release): release Buzz Desktop version 0.5.5 (#4788)
wesbillman Aug 4, 2026
4c665ae
fix(desktop): serialize tray channel actions for frontend (#4762)
kalvinnchau Aug 4, 2026
a1d78f2
feat: Buzz entity links — rich preview cards + in-app navigation for …
thomaspblock Aug 4, 2026
8faf09f
Revert "chore(release): release Buzz Desktop version 0.5.5" (#4797)
wesbillman Aug 4, 2026
4a23051
fix: reauthenticate databricks model discovery (#4008)
kalvinnchau Aug 4, 2026
a0ed13d
chore(release): release Buzz Desktop version 0.5.5 (#4800)
wesbillman Aug 4, 2026
79c5216
Revert "chore(release): release Buzz Desktop version 0.5.5" (#4808)
wesbillman Aug 4, 2026
25a9cf1
feat: paste composer text without formatting (#4801)
kalvinnchau Aug 4, 2026
8342dfc
chore(release): release Buzz Desktop version 0.5.5 (#4809)
wesbillman Aug 4, 2026
6dbc946
fix(desktop): make missing-command error actionable for released buil…
wpfleger96 Aug 5, 2026
dc17965
fix(mobile): serialize channel sections sync (#3165)
brow Aug 5, 2026
067c085
Define private managed agent wire protocol (#4593)
wesbillman Aug 5, 2026
8a7eb8d
fix(agent): recover from unsupported image input instead of poisoning…
tlongwell-block Aug 5, 2026
997b8ca
fix(git): revoke access for banned relay members (#4608)
jmecom Aug 5, 2026
885bed3
fix(workflow): bind trigger author to the signed event (#4607)
jmecom Aug 5, 2026
ad538bf
fix(acp): reject unattended permission requests (#4609)
jmecom Aug 5, 2026
efe1893
fix(channels): restrict private-channel invitations (#4612)
jmecom Aug 5, 2026
4674750
fix(release): tag immutable desktop candidates (#4811)
wesbillman Aug 5, 2026
ff0b798
Polish mobile top navigation (#4778)
klopez4212 Aug 5, 2026
014562c
fix(desktop): allow shared agent mentions (#4913)
wesbillman Aug 5, 2026
2034e69
fix(desktop): remove join API token control (#4897)
klopez4212 Aug 5, 2026
f2ce575
Fix media attachment actions (#4849)
klopez4212 Aug 5, 2026
27b5114
Polish mobile bottom sheets and profile cards (#4911)
klopez4212 Aug 5, 2026
0c68429
Fix mobile message timeline bounce (#4862)
klopez4212 Aug 5, 2026
6df7eba
fix(buzz-agent): scope handoff cap per turn, not per session lifetime…
wpfleger96 Aug 5, 2026
6c40ce3
feat(desktop): cap OpenClaw agent parallelism at 5 (#4019)
wpfleger96 Aug 5, 2026
43cced3
feat(desktop): sync themes per community (#3653)
tellaho Aug 5, 2026
05150c1
feat(mobile): sync themes per community (#3767)
tellaho Aug 5, 2026
7334ad1
fix(desktop): route macos notification clicks (#4799)
kalvinnchau Aug 5, 2026
ccdaa16
docs(persona-pack): fix stale desktop import instructions (#4500)
SomSamantray Aug 5, 2026
ed4b3e7
fix(buzz-agent): recover from context-window 400s instead of sticking…
wpfleger96 Aug 5, 2026
719f973
feat(desktop): allow leaving your final community (#3621)
tellaho Aug 5, 2026
2ea9385
fix(reactions): support max-length custom emoji (#3833)
tellaho Aug 5, 2026
d42d60d
fix(desktop): rename generic attachment action from 'Attach image' to…
iroiro147 Aug 5, 2026
cda3397
style(messages): increase username contrast (#4948)
tellaho Aug 5, 2026
24c7995
fix(desktop): clamp thread panel to channel surface (#4965)
tellaho Aug 5, 2026
005fe54
fix(desktop): outline the selected community (#4969)
tellaho Aug 5, 2026
e14fff7
relay: fuzz WebSocket 1012 restart-close timing on graceful drain (BU…
bradseiler Aug 5, 2026
eb6a375
fix(desktop): enable message editing in Inbox (#2198)
brow Aug 5, 2026
06b60e6
fix(mobile): merge relay recounts with locally seen thread replies (#…
brow Aug 5, 2026
a7ea86c
fix(desktop): enable the content security policy (#4614)
jmecom Aug 5, 2026
4da7264
fix(acp): pace observer telemetry at 1/s with per-channel batch envel…
tlongwell-block Aug 6, 2026
5677e4c
test(desktop): match attachment button label (#4993)
tellaho Aug 6, 2026
16cc3de
fix(desktop): enforce owner-only access in internal builds (#4053)
brow Aug 6, 2026
e2796d4
fix(desktop): virtualize channel member lists (#4991)
wesbillman Aug 6, 2026
38bf642
ci: prove the relay-driven mesh lifecycle — discover, join, infer, de…
michaelneale Aug 6, 2026
96ae141
fix(desktop): skip native notifications outside app bundles (#5004)
wesbillman Aug 6, 2026
19b41e9
fix(desktop): stop rate-limited reconnect backfill from tearing down …
wesbillman Aug 6, 2026
5babb97
feat(desktop): show selected community in rail (#5000)
wesbillman Aug 6, 2026
480c41e
Improve desktop mobile pairing flow (#5024)
klopez4212 Aug 6, 2026
9213090
test(desktop): await thread scroll anchor (#3174)
cameronhotchkies Aug 6, 2026
6ca9641
Refine agent runtime controls (#5026)
klopez4212 Aug 6, 2026
bd2fdf4
fix(buzz-agent): classify read timeouts distinctly in LLM error messa…
wpfleger96 Aug 6, 2026
6eb6591
feat(identity): recover desktop identity from a signed-in phone (#4845)
tellaho Aug 6, 2026
c777d4f
chore(hooks): run desktop typecheck in pre-push (#5110)
wpfleger96 Aug 6, 2026
b08c8b1
fix(desktop): prevent sidebar prefs from reverting on stale-localStor…
wpfleger96 Aug 6, 2026
1399ec1
Alert community owners and admins when a new key joins (#4900)
tlongwell-block Aug 6, 2026
67b7734
fix(desktop): next/back navigation during key creation onboarding (#4…
tellaho Aug 7, 2026
f03de21
fix(desktop): preserve authoritative agent avatars (#4984)
tellaho Aug 7, 2026
769ac70
fix(media): require authenticated reads (#4610)
jmecom Aug 7, 2026
ad92335
feat(relay): accept kind:30179 private managed-agent events at ingest…
tlongwell-block Aug 7, 2026
f53bbd1
fix(bench): mention the orchestrator by pubkey when posting the task …
tlongwell-block Aug 7, 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
  •  
  •  
  •  
33 changes: 27 additions & 6 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,12 @@ PGDATABASE=buzz
# Redis 7
# -----------------------------------------------------------------------------
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 Down Expand Up @@ -76,18 +82,30 @@ RELAY_URL=ws://localhost:3000
# BUZZ_GIT_PACK_CACHE_MAX_BYTES=5368709120
# BUZZ_GIT_PACK_CACHE_MAX_CONCURRENT_POPULATIONS=2

# -----------------------------------------------------------------------------
# S3-Compatible Object Storage (media + Git/CAS)
# -----------------------------------------------------------------------------
# The local MinIO container is reachable from host processes at localhost:9000.
# Path style keeps the bucket in the URL path and is required by this local DNS
# setup. Use `virtual` only when the provider requires bucket-as-subdomain URLs.
BUZZ_S3_ENDPOINT=http://localhost:9000
BUZZ_S3_ACCESS_KEY=buzz_dev
BUZZ_S3_SECRET_KEY=buzz_dev_secret
BUZZ_S3_BUCKET=buzz-media
BUZZ_S3_REGION=us-east-1
BUZZ_S3_ADDRESSING_STYLE=path

# -----------------------------------------------------------------------------
# Media Upload Admission
# -----------------------------------------------------------------------------
# Bound image/video parser and storage work admitted by one relay process.
# BUZZ_MEDIA_MAX_CONCURRENT_UPLOADS=8
# BUZZ_MEDIA_MAX_CONCURRENT_UPLOADS_PER_PUBKEY=2
# BUZZ_MEDIA_UPLOADS_PER_MINUTE=30
# Require Blossom t=get auth and relay membership for GET/HEAD /media/*.
# Keep off until desktop/mobile/CLI clients that attach media read auth are deployed.
# BUZZ_REQUIRE_MEDIA_GET_AUTH=false
# Legacy alias accepted by the relay while rollout docs catch up:
# BUZZ_REQUIRE_MEDIA_READ_AUTH=false
# GET/HEAD /media/* always require Blossom t=get auth and relay membership.
# BUZZ_REQUIRE_MEDIA_GET_AUTH and BUZZ_REQUIRE_MEDIA_READ_AUTH are no longer
# read; setting either (including to false) changes nothing and the relay warns
# about it at startup.

# -----------------------------------------------------------------------------
# Ephemeral Channels (TTL testing)
Expand All @@ -103,7 +121,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
35 changes: 14 additions & 21 deletions .github/ISSUE_TEMPLATE/bug-report.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
---
name: 🐛 Bug Report
about: Thank you for taking the time, please report a reproducible bug
title: "[Bug] <Bug Title Here>"
name: Bug report
about: Report a reproducible bug in Buzz
labels: bug
assignees: add codeowner's @name here

---

**Describe the bug**
*A clear and concise description of what the bug is.*
A clear and concise description of what the bug is.

**To Reproduce:**
*Steps to reproduce the behavior:*
**Steps to reproduce**
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error

**Expected behavior:**
*A clear and concise description of what you expected to happen.*
2. Click on '...'
3. See error

**Supporting Material**
*If applicable, add screenshots, output log and/or other documentation to help explain your problem.*
**Expected behavior**
What did you expect to happen?

**Environment (please complete the following information):**
- OS: [ex: iOS]
- Version
**Version and platform**
Find your version at the bottom of the Settings sidebar. Write "unknown" if you can't determine it.
- Buzz version:
- OS:

**Additional context**
Add any other context that you feel is relevant about the problem here.
**Logs / additional context**
Paste any relevant logs, error messages, or screenshots here.
5 changes: 1 addition & 4 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
contact_links:
- name: ❓ Questions and Help 🤔
url: https://discord.gg/block-opensource (/add your discord channel if applicable)
about: This issue tracker is not for support questions. Please refer to the community for more help.
blank_issues_enabled: true
21 changes: 21 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
name: Feature request
about: Propose a new feature or improvement
labels: enhancement
---

**Motivation**
What problem does this solve? Who runs into it and when?

**Proposed solution**
Describe what you'd like to see.

**Alternatives considered**
What other approaches did you consider?

**Additional context**
Anything else that helps — links, screenshots, prior art.

---

Before opening: please [search open issues and PRs](https://github.com/block/buzz/issues?q=is%3Aopen) for duplicates — link the closest one, or say "none found".
8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Summary
<!-- What does this change and why? -->

### Related issue
<!-- 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? UI change? Include before/after screenshots (or a short recording). -->
78 changes: 59 additions & 19 deletions .github/workflows/auto-tag-on-release-pr-merge.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,29 @@
name: Auto-tag on Release PR Merge

# Five release lanes share this one workflow. Four use an explicit branch
# Four PR-driven release lanes share this workflow. Each uses an explicit branch
# prefix; the main chart lane also auto-detects a Chart.yaml version bump so
# a chart feature PR can publish its own new version when merged:
#
# version-bump/<v> → tag v<v> → release.yml (desktop app)
# version-bump/<v> → tag desktop-v<v> → release.yml (desktop app)
# relay-release/<v> → tag relay-v<v> → docker.yml (relay image)
# chart-release/<v> → tag chart-v<v> → helm-chart.yml (main helm chart)
# push-chart-release/<v> → tag push-chart-v<v> → push-gateway-helm-chart.yml
# any internal PR that bumps deploy/charts/buzz/Chart.yaml `version`
# → tag chart-v<v> → helm-chart.yml (helm chart)
# mobile-release/<v> → tag mobile-v<v> → (manual sprout_ref for buzz-releases build — see below)
#
# Mobile candidate tags do not come from merged PRs. Operators create immutable
# mobile-v<v>-rc.N tags directly from remote main with scripts/mobile-release.sh,
# then hand the exact tag to buzz-releases.
#
# Release tags are created with a short-lived token from the dedicated
# buzz-release-bot GitHub App. GitHub attributes the ref creation to that
# App, so the consumer's `on.push.tags` trigger runs normally. The workflow's
# default GITHUB_TOKEN remains read-only and is never used to create a tag.
#
# The mobile lane is push-only by infosec necessity: OSS `block/buzz` CI must
# not trigger CI in the private `buzz-releases` repo, so auto-dispatch across
# that boundary is deliberately disallowed. The mobile-v* tag is consumed
# manually instead — a human feeds it as the `sprout_ref` input to the
# `buzz-releases` Buildkite pipeline, which builds and ships mobile.
# Mobile is manual-only by infosec necessity: OSS `block/buzz` CI must
# not trigger CI in the private `buzz-releases` repo. A human feeds the exact
# mobile candidate tag to the private Buildkite pipeline, which builds and
# ships mobile.

on:
pull_request:
Expand All @@ -33,12 +35,17 @@ permissions:

jobs:
auto-tag:
permissions:
contents: read
pull-requests: read
checks: read
statuses: read
if: >
github.event.pull_request.merged == true &&
github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
fetch-depth: 0
Expand All @@ -55,7 +62,7 @@ jobs:
case "$BRANCH" in
version-bump/*)
VERSION="${BRANCH#version-bump/}"
TAG_PREFIX="v" ;;
TAG_PREFIX="desktop-v" ;;
relay-release/*)
VERSION="${BRANCH#relay-release/}"
TAG_PREFIX="relay-v" ;;
Expand All @@ -65,9 +72,6 @@ jobs:
push-chart-release/*)
VERSION="${BRANCH#push-chart-release/}"
TAG_PREFIX="push-chart-v" ;;
mobile-release/*)
VERSION="${BRANCH#mobile-release/}"
TAG_PREFIX="mobile-v" ;;
*)
parent_sha="$(git rev-parse HEAD^)"
old_version="$(git show "${parent_sha}:deploy/charts/buzz/Chart.yaml" 2>/dev/null | awk '/^version:/ {print $2}')"
Expand All @@ -86,9 +90,34 @@ jobs:
{
echo "enabled=true"
echo "tag=${TAG_PREFIX}${VERSION}"
if [[ "$TAG_PREFIX" == desktop-v ]]; then
echo "target_sha=${{ github.event.pull_request.head.sha }}"
echo "desktop=true"
else
echo "target_sha=$GITHUB_SHA"
echo "desktop=false"
fi
} >> "$GITHUB_OUTPUT"
echo "Tagging ${TAG_PREFIX}${VERSION}"


- name: Verify immutable reviewed desktop candidate
if: steps.release.outputs.desktop == 'true'
env:
GH_TOKEN: ${{ github.token }}
VERSION: ${{ steps.release.outputs.tag }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_HEAD_SHA: ${{ github.event.pull_request.head.sha }}
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
PR_BASE_REF: ${{ github.event.pull_request.base.ref }}
PR_HEAD_REPO: ${{ github.event.pull_request.head.repo.full_name }}
MERGE_SHA: ${{ github.event.pull_request.merge_commit_sha }}
MERGED_AT: ${{ github.event.pull_request.merged_at }}
run: |
VERSION="${VERSION#desktop-v}"
export VERSION
scripts/verify-desktop-release-merge.sh

- name: Create release tagger token
if: steps.release.outputs.enabled == 'true'
id: release-tagger
Expand All @@ -103,21 +132,32 @@ jobs:
env:
GH_TOKEN: ${{ steps.release-tagger.outputs.token }}
TAG: ${{ steps.release.outputs.tag }}
TARGET_SHA: ${{ steps.release.outputs.target_sha }}
run: |
set -euo pipefail
# Check gh's exit status, not its output. A missing ref returns a 404
# JSON body on stdout, which must not be mistaken for an existing tag.
if gh api "repos/$GITHUB_REPOSITORY/git/ref/tags/$TAG" --silent 2>/dev/null; then
EXISTING_SHA="$(gh api "repos/$GITHUB_REPOSITORY/commits/$TAG" --jq .sha)"
if [ "$EXISTING_SHA" = "$GITHUB_SHA" ]; then
echo "Tag $TAG already exists at $GITHUB_SHA — skipping tag creation"
if [ "$EXISTING_SHA" = "$TARGET_SHA" ]; then
echo "Tag $TAG already exists at $TARGET_SHA — skipping tag creation"
exit 0
else
echo "::error::Tag $TAG already exists at $EXISTING_SHA (expected $GITHUB_SHA)"
echo "::error::Tag $TAG already exists at $EXISTING_SHA (expected $TARGET_SHA)"
exit 1
fi
fi
gh api --method POST "repos/$GITHUB_REPOSITORY/git/refs" \
if ! gh api --method POST "repos/$GITHUB_REPOSITORY/git/refs" \
-f ref="refs/tags/$TAG" \
-f sha="$GITHUB_SHA" \
--silent
-f sha="$TARGET_SHA" \
--silent; then
# Ref creation is atomic. A concurrent retry may have won the race;
# accept that only when it created the exact immutable ref.
EXISTING_SHA="$(gh api "repos/$GITHUB_REPOSITORY/commits/$TAG" --jq .sha)"
if [ "$EXISTING_SHA" = "$TARGET_SHA" ]; then
echo "Tag $TAG was concurrently created at $TARGET_SHA"
exit 0
fi
echo "::error::Tag creation failed and $TAG resolves to $EXISTING_SHA (expected $TARGET_SHA)"
exit 1
fi
2 changes: 1 addition & 1 deletion .github/workflows/benchmark-harbor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version: "3.12"
Expand Down
Loading