mirror of
https://github.com/block/buzz.git
synced 2026-10-27 04:30:52 +00:00
## Buzz Relay release v0.2.1 ### Changes since relay-v0.2.0: - fix(sdk): preserve self-mention p tags in message and forum event builders ([#4975](https://github.com/block/buzz/pull/4975)) ([`78c87ae20e`](78c87ae20e)) - feat(desktop): adding rich link previews to messages ([#3818](https://github.com/block/buzz/pull/3818)) ([`1922d49cb2`](1922d49cb2)) - feat(relay): accept kind:30179 private managed-agent events at ingest ([#5133](https://github.com/block/buzz/pull/5133)) ([`ad923353a2`](ad923353a2)) - fix(media): require authenticated reads ([#4610](https://github.com/block/buzz/pull/4610)) ([`769ac70b74`](769ac70b74)) - feat(identity): recover desktop identity from a signed-in phone ([#4845](https://github.com/block/buzz/pull/4845)) ([`6eb65919f1`](6eb65919f1)) - ci: prove the relay-driven mesh lifecycle — discover, join, infer, deny — with real nodes ([#3862](https://github.com/block/buzz/pull/3862)) ([`38bf642fcf`](38bf642fcf)) - relay: fuzz WebSocket 1012 restart-close timing on graceful drain (BUZZ_DRAIN_JITTER_MS) ([#4542](https://github.com/block/buzz/pull/4542)) ([`e14fff74d0`](e14fff74d0)) - fix(reactions): support max-length custom emoji ([#3833](https://github.com/block/buzz/pull/3833)) ([`2ea9385015`](2ea9385015)) - fix(channels): restrict private-channel invitations ([#4612](https://github.com/block/buzz/pull/4612)) ([`efe1893dd3`](efe1893dd3)) - fix(workflow): bind trigger author to the signed event ([#4607](https://github.com/block/buzz/pull/4607)) ([`885bed35ee`](885bed35ee)) - fix(git): revoke access for banned relay members ([#4608](https://github.com/block/buzz/pull/4608)) ([`997b8caaa4`](997b8caaa4)) - Define private managed agent wire protocol ([#4593](https://github.com/block/buzz/pull/4593)) ([`067c085f37`](067c085f37)) - perf(relay): index channel-id lookups and skip trace-only reads ([#4647](https://github.com/block/buzz/pull/4647)) ([`bc9e6528a7`](bc9e6528a7)) - Polish mobile inbox and media flows ([#4512](https://github.com/block/buzz/pull/4512)) ([`feccf4eabc`](feccf4eabc)) - fix(git): allow deleting the default branch ([#4297](https://github.com/block/buzz/pull/4297)) ([`fc598f5f8d`](fc598f5f8d)) - feat(projects): add buzz projects CLI commands (NIP-MP kind:30621) ([#4020](https://github.com/block/buzz/pull/4020)) ([`b7bb15122e`](b7bb15122e)) - perf(relay): serve relay-membership checks from the read replica ([#4124](https://github.com/block/buzz/pull/4124)) ([`ac4fa13b8e`](ac4fa13b8e)) - fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) ([#3998](https://github.com/block/buzz/pull/3998)) ([`5765fc74b7`](5765fc74b7)) - feat(relay): accept kind:30621 multi-repo projects at ingest ([#3171](https://github.com/block/buzz/pull/3171)) ([`cb9701cd30`](cb9701cd30)) - feat(relay): raise hosted community limit to five ([#3829](https://github.com/block/buzz/pull/3829)) ([`10d5a26414`](10d5a26414)) - fix(relay): align NIP-11 max_limit with REQ ceiling ([#3635](https://github.com/block/buzz/pull/3635)) ([`23f0c26b1c`](23f0c26b1c)) - feat(relay): gate kind 30178 team-catalog reads behind the shared tag ([#3358](https://github.com/block/buzz/pull/3358)) ([`114d40d9d3`](114d40d9d3)) - fix(db): isolate usage metrics advisory-lock test on scratch DB ([#3670](https://github.com/block/buzz/pull/3670)) ([`dba97eecd9`](dba97eecd9)) - perf(presence): reduce heartbeat frequency ([#3783](https://github.com/block/buzz/pull/3783)) ([`bf139e8d0b`](bf139e8d0b)) - feat(mesh): upgrade embedded mesh to v0.74 and harden shared compute (split 1/2 of #3467) ([#3741](https://github.com/block/buzz/pull/3741)) ([`4933672eb4`](4933672eb4)) - feat(replica): portable heartbeat-token fence with snapshot-local reader routing ([#3268](https://github.com/block/buzz/pull/3268)) ([`63496cc1d4`](63496cc1d4)) - fix(git): channel binding tooling + author remediation for unbound repos ([#3626](https://github.com/block/buzz/pull/3626)) ([`788b3c002b`](788b3c002b)) - feat: configure S3 URL addressing style ([#3400](https://github.com/block/buzz/pull/3400)) ([`7012d86d52`](7012d86d52)) - feat(tracing): correlate trace IDs in relay logs ([#3608](https://github.com/block/buzz/pull/3608)) ([`005b5b819a`](005b5b819a)) - fix(relay): avoid subscription lock inversion ([#3413](https://github.com/block/buzz/pull/3413)) ([`22be8bb351`](22be8bb351)) - feat(cli): add users set-status command for NIP-38 profile status ([#3253](https://github.com/block/buzz/pull/3253)) ([`60158fce3e`](60158fce3e)) - feat(relay): make Postgres pool size configurable, default 50 ([#3191](https://github.com/block/buzz/pull/3191)) ([`2ce2d71cc3`](2ce2d71cc3)) - feat(tracing): add datastore tracing plumbing ([#2760](https://github.com/block/buzz/pull/2760)) ([`e94b9aeda0`](e94b9aeda0)) - feat(invites): add use-limited invite links ([#3141](https://github.com/block/buzz/pull/3141)) ([`d500c2d5cf`](d500c2d5cf)) - feat(admin): show reported message content in report detail ([#3149](https://github.com/block/buzz/pull/3149)) ([`f069a85503`](f069a85503)) - resolve findings ([#3150](https://github.com/block/buzz/pull/3150)) ([`9b0f744804`](9b0f744804)) - Revert "fix(cli,relay): resolve agents by verified owner" ([#3168](https://github.com/block/buzz/pull/3168)) ([`a041e2d21e`](a041e2d21e)) - fix(cli,relay): resolve agents by verified owner ([#2615](https://github.com/block/buzz/pull/2615)) ([`c3084b36d9`](c3084b36d9)) - fix(security): enforce durable community ban on NIP-43 relay-admin kinds 9030-9033 ([#3128](https://github.com/block/buzz/pull/3128)) ([`e2e0079101`](e2e0079101)) - fix(security): authorize kind:9000 role changes in both directions ([#3017](https://github.com/block/buzz/pull/3017)) ([`00ecf2cac7`](00ecf2cac7)) - feat(desktop): handle project work from Inbox ([#3117](https://github.com/block/buzz/pull/3117)) ([`c5c4f390b6`](c5c4f390b6)) - feat(relay): make per-owner community limit configurable via BUZZ_MAX_COMMUNITIES_PER_OWNER ([#2599](https://github.com/block/buzz/pull/2599)) ([`2a051a404d`](2a051a404d)) - feat(relay): add author-only-unless-shared read gate for kind 30175 ([#2768](https://github.com/block/buzz/pull/2768)) ([`ab3af82871`](ab3af82871)) - fix(core): block IPv6 transition SSRF targets ([#2801](https://github.com/block/buzz/pull/2801)) ([`c26bf5945d`](c26bf5945d)) - fix(workflow): bypass system proxies for webhooks ([#2800](https://github.com/block/buzz/pull/2800)) ([`60a171b19e`](60a171b19e)) - fix(audit): hash created_at at the precision Postgres stores ([#2638](https://github.com/block/buzz/pull/2638)) ([`264a56a226`](264a56a226)) - feat(desktop): make pull request reviews actionable ([#2510](https://github.com/block/buzz/pull/2510)) ([`9081ab0ec9`](9081ab0ec9)) - fix(relay): decompress gzip-encoded git smart-HTTP request bodies ([#2670](https://github.com/block/buzz/pull/2670)) ([`5ca36e7b91`](5ca36e7b91)) - fix(sharing): preserve agent/team snapshot tEXt chunks through media sanitization ([#2438](https://github.com/block/buzz/pull/2438)) ([`b096b0a15a`](b096b0a15a)) - fix(relay): send 1012 restart close to all clients on graceful drain ([#2575](https://github.com/block/buzz/pull/2575)) ([`1911c69aa2`](1911c69aa2)) - fix(media): sanitize animated image uploads ([#2524](https://github.com/block/buzz/pull/2524)) ([`8f8f5fa5a4`](8f8f5fa5a4)) - fix(channels): strip leading hash prefixes from names ([#2250](https://github.com/block/buzz/pull/2250)) ([`d0ab3fdb05`](d0ab3fdb05)) - feat(relay): make Redis pool size configurable, default 16 ([#2521](https://github.com/block/buzz/pull/2521)) ([`bcc3e13069`](bcc3e13069)) - feat(desktop+acp): spawn a harness per (agent, community) pair at GUI startup — warm sockets, lazy LLM pool ([#2122](https://github.com/block/buzz/pull/2122)) ([`61cc738ee8`](61cc738ee8)) - feat(media): add S3-truth per-community storage sweep ([#2044](https://github.com/block/buzz/pull/2044)) ([`bd37a4d584`](bd37a4d584)) - feat(relay): log NIP-98 pubkey attribution on HTTP bridge requests ([#2206](https://github.com/block/buzz/pull/2206)) ([`7e34bee62c`](7e34bee62c)) - Revert "feat(relay): inventory unreachable Git objects" ([#2275](https://github.com/block/buzz/pull/2275)) ([`0fb820f9bf`](0fb820f9bf)) - feat(relay): inventory unreachable Git objects ([#2264](https://github.com/block/buzz/pull/2264)) ([`3afc9dae15`](3afc9dae15)) - relay: add author_type label to buzz_events_stored_total ([#2243](https://github.com/block/buzz/pull/2243)) ([`b9f54c43fe`](b9f54c43fe)) - fix(git): make project branch workflows reliable ([#2213](https://github.com/block/buzz/pull/2213)) ([`166f27be4b`](166f27be4b)) - feat(cli): manage repository protection rules ([#2193](https://github.com/block/buzz/pull/2193)) ([`f94324598d`](f94324598d)) - feat(cli): add agents archive/unarchive/archived subcommands ([#2173](https://github.com/block/buzz/pull/2173)) ([`7d7992067b`](7d7992067b)) - fix(mobile): sanitize Android image uploads ([#2188](https://github.com/block/buzz/pull/2188)) ([`ee21da90bd`](ee21da90bd)) - fix(cli): paginate channel directory queries ([#2181](https://github.com/block/buzz/pull/2181)) ([`03fe19d603`](03fe19d603)) - fix(mobile): image upload fails due to unstripped metadata ([#2185](https://github.com/block/buzz/pull/2185)) ([`37f15b2001`](37f15b2001)) - perf(relay): compact Git packs before manifest limits ([#2172](https://github.com/block/buzz/pull/2172)) ([`80e0ab16b0`](80e0ab16b0)) - perf(relay): cache Git pack hydration ([#2169](https://github.com/block/buzz/pull/2169)) ([`a4d82ec722`](a4d82ec722)) - fix(relay): bound and observe Git read operations ([#2167](https://github.com/block/buzz/pull/2167)) ([`5f7c93d9c1`](5f7c93d9c1)) - relay: gate push enqueue on live leases; batch matcher pipeline (T1b/T1a-repair/T2b) ([#2145](https://github.com/block/buzz/pull/2145)) ([`e43b2d5aac`](e43b2d5aac)) - relay: add audit logging disable switch ([#2134](https://github.com/block/buzz/pull/2134)) ([`bf5acabdde`](bf5acabdde)) - relay: skip TTL deadline bump for known-permanent channels (T1a write-amp) ([#2125](https://github.com/block/buzz/pull/2125)) ([`2e936d439c`](2e936d439c)) - fix(git): carry NIP-OA delegation in auth event ([#2120](https://github.com/block/buzz/pull/2120)) ([`c12257d57a`](c12257d57a)) - Route lag-tolerant reads to an optional Postgres read replica ([#2084](https://github.com/block/buzz/pull/2084)) ([`29c48883d3`](29c48883d3)) - fix: recover community access visibility ([#2074](https://github.com/block/buzz/pull/2074)) ([`ca384d082d`](ca384d082d)) - feat: proxy feedback-scoped admin attachments ([#2059](https://github.com/block/buzz/pull/2059)) ([`d7f918e3cb`](d7f918e3cb)) - feat: add read-only deployment moderation dashboard ([#1999](https://github.com/block/buzz/pull/1999)) ([`68e670e001`](68e670e001)) - Bug-bash round 2: table scroll, Goose instructions, workflow mention wake ([#2034](https://github.com/block/buzz/pull/2034)) ([`64b8fea6dc`](64b8fea6dc)) - Strip media metadata on clients and reject it at the relay ([#2006](https://github.com/block/buzz/pull/2006)) ([`5cfd69cb0c`](5cfd69cb0c)) - [codex] Hold Git concurrency permits through streaming (BUZZ-SEC-018) ([#1916](https://github.com/block/buzz/pull/1916)) ([`7baea42abb`](7baea42abb)) - [codex] Enforce shared relay admission limits (BUZZ-SEC-019) ([#1917](https://github.com/block/buzz/pull/1917)) ([`73fc0ec6cf`](73fc0ec6cf)) - [codex] Block banned actors from moderation commands (BUZZ-SEC-007) ([#1915](https://github.com/block/buzz/pull/1915)) ([`caa195ca58`](caa195ca58)) - [codex] Fix relay WebSocket admission limits ([#1682](https://github.com/block/buzz/pull/1682)) ([`d3ce971fc7`](d3ce971fc7)) - feat: add invite QR and mobile direct join ([#1957](https://github.com/block/buzz/pull/1957)) ([`648cbf3610`](648cbf3610)) - fix(join-policy): require legal consent on hosted invites ([#1987](https://github.com/block/buzz/pull/1987)) ([`2e1577f76f`](2e1577f76f)) - [codex] Prevent actor-tag UI impersonation ([#1931](https://github.com/block/buzz/pull/1931)) ([`c540ec9678`](c540ec9678)) - Scope relay runtime state by community ([#1658](https://github.com/block/buzz/pull/1658)) ([`d52dedb06f`](d52dedb06f)) - Apply optional relay join policy across join flows ([#1894](https://github.com/block/buzz/pull/1894)) ([`6c2d667575`](6c2d667575)) - feat(media): require auth for relay media reads ([#1926](https://github.com/block/buzz/pull/1926)) ([`f308762852`](f308762852)) - feat(relay): add community unarchive endpoint ([#1908](https://github.com/block/buzz/pull/1908)) ([`6b9641db2b`](6b9641db2b)) - feat(relay): gate Git web GUI separately ([#1901](https://github.com/block/buzz/pull/1901)) ([`34dc7dec75`](34dc7dec75)) - mesh: upgrade runtime, enforce membership, add shared compute provider ([#1656](https://github.com/block/buzz/pull/1656)) ([`54638ff4bb`](54638ff4bb)) - Route Git scratch through configured volume ([#1884](https://github.com/block/buzz/pull/1884)) ([`2318b3096c`](2318b3096c)) - feat(relay): gate usage metrics behind stable leader ([#1814](https://github.com/block/buzz/pull/1814)) ([`59e9821503`](59e9821503)) - Relay mesh: cross-pod tunnel + huddle transport (buzz-relay-mesh) ([#1670](https://github.com/block/buzz/pull/1670)) ([`ccb021d713`](ccb021d713)) - feat(push): deliver accepted relay events as wakes ([#1866](https://github.com/block/buzz/pull/1866)) ([`bffbc5f22c`](bffbc5f22c)) - fix(db): resolve duplicate migration version ([#1863](https://github.com/block/buzz/pull/1863)) ([`08ad38a07f`](08ad38a07f)) - Add private product feedback sidecar ([#1857](https://github.com/block/buzz/pull/1857)) ([`af190c93e1`](af190c93e1)) - feat(relay): add durable community archival ([#1834](https://github.com/block/buzz/pull/1834)) ([`2b15a72675`](2b15a72675)) - feat(push): add public APNs gateway ([#1770](https://github.com/block/buzz/pull/1770)) ([`1c006822e4`](1c006822e4)) - feat(relay): add atomic community ownership transfer ([#1845](https://github.com/block/buzz/pull/1845)) ([`52e42ccb9f`](52e42ccb9f)) - Bound NIP-RS retention and search indexing ([#1771](https://github.com/block/buzz/pull/1771)) ([`1b4703021d`](1b4703021d)) - Add optional standalone pairing relay to Helm chart ([#1799](https://github.com/block/buzz/pull/1799)) ([`9b47c8548f`](9b47c8548f)) - fix(relay): publish membership snapshot on provisioning ([#1761](https://github.com/block/buzz/pull/1761)) ([`0950d392b7`](0950d392b7)) - feat(relay): per-community usage metrics ([#1723](https://github.com/block/buzz/pull/1723)) ([`620822899a`](620822899a)) - refactor(desktop): remove vestigial MCP toolsets config ([#1776](https://github.com/block/buzz/pull/1776)) ([`dfec75b3c0`](dfec75b3c0)) **To release:** merge this PR. The tag and build will happen automatically. Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
29 KiB
29 KiB
Changelog
relay-v0.2.1
- fix(sdk): preserve self-mention p tags in message and forum event builders (#4975) (
78c87ae20e) - feat(desktop): adding rich link previews to messages (#3818) (
1922d49cb2) - feat(relay): accept kind:30179 private managed-agent events at ingest (#5133) (
ad923353a2) - fix(media): require authenticated reads (#4610) (
769ac70b74) - feat(identity): recover desktop identity from a signed-in phone (#4845) (
6eb65919f1) - ci: prove the relay-driven mesh lifecycle — discover, join, infer, deny — with real nodes (#3862) (
38bf642fcf) - relay: fuzz WebSocket 1012 restart-close timing on graceful drain (BUZZ_DRAIN_JITTER_MS) (#4542) (
e14fff74d0) - fix(reactions): support max-length custom emoji (#3833) (
2ea9385015) - fix(channels): restrict private-channel invitations (#4612) (
efe1893dd3) - fix(workflow): bind trigger author to the signed event (#4607) (
885bed35ee) - fix(git): revoke access for banned relay members (#4608) (
997b8caaa4) - Define private managed agent wire protocol (#4593) (
067c085f37) - perf(relay): index channel-id lookups and skip trace-only reads (#4647) (
bc9e6528a7) - Polish mobile inbox and media flows (#4512) (
feccf4eabc) - fix(git): allow deleting the default branch (#4297) (
fc598f5f8d) - feat(projects): add buzz projects CLI commands (NIP-MP kind:30621) (#4020) (
b7bb15122e) - perf(relay): serve relay-membership checks from the read replica (#4124) (
ac4fa13b8e) - fix(relay): allow open relays to set their NIP-11 workspace icon (kind:9033) (#3998) (
5765fc74b7) - feat(relay): accept kind:30621 multi-repo projects at ingest (#3171) (
cb9701cd30) - feat(relay): raise hosted community limit to five (#3829) (
10d5a26414) - fix(relay): align NIP-11 max_limit with REQ ceiling (#3635) (
23f0c26b1c) - feat(relay): gate kind 30178 team-catalog reads behind the shared tag (#3358) (
114d40d9d3) - fix(db): isolate usage metrics advisory-lock test on scratch DB (#3670) (
dba97eecd9) - perf(presence): reduce heartbeat frequency (#3783) (
bf139e8d0b) - feat(mesh): upgrade embedded mesh to v0.74 and harden shared compute (split 1/2 of #3467) (#3741) (
4933672eb4) - feat(replica): portable heartbeat-token fence with snapshot-local reader routing (#3268) (
63496cc1d4) - fix(git): channel binding tooling + author remediation for unbound repos (#3626) (
788b3c002b) - feat: configure S3 URL addressing style (#3400) (
7012d86d52) - feat(tracing): correlate trace IDs in relay logs (#3608) (
005b5b819a) - fix(relay): avoid subscription lock inversion (#3413) (
22be8bb351) - feat(cli): add users set-status command for NIP-38 profile status (#3253) (
60158fce3e) - feat(relay): make Postgres pool size configurable, default 50 (#3191) (
2ce2d71cc3) - feat(tracing): add datastore tracing plumbing (#2760) (
e94b9aeda0) - feat(invites): add use-limited invite links (#3141) (
d500c2d5cf) - feat(admin): show reported message content in report detail (#3149) (
f069a85503) - resolve findings (#3150) (
9b0f744804) - Revert "fix(cli,relay): resolve agents by verified owner" (#3168) (
a041e2d21e) - fix(cli,relay): resolve agents by verified owner (#2615) (
c3084b36d9) - fix(security): enforce durable community ban on NIP-43 relay-admin kinds 9030-9033 (#3128) (
e2e0079101) - fix(security): authorize kind:9000 role changes in both directions (#3017) (
00ecf2cac7) - feat(desktop): handle project work from Inbox (#3117) (
c5c4f390b6) - feat(relay): make per-owner community limit configurable via BUZZ_MAX_COMMUNITIES_PER_OWNER (#2599) (
2a051a404d) - feat(relay): add author-only-unless-shared read gate for kind 30175 (#2768) (
ab3af82871) - fix(core): block IPv6 transition SSRF targets (#2801) (
c26bf5945d) - fix(workflow): bypass system proxies for webhooks (#2800) (
60a171b19e) - fix(audit): hash created_at at the precision Postgres stores (#2638) (
264a56a226) - feat(desktop): make pull request reviews actionable (#2510) (
9081ab0ec9) - fix(relay): decompress gzip-encoded git smart-HTTP request bodies (#2670) (
5ca36e7b91) - fix(sharing): preserve agent/team snapshot tEXt chunks through media sanitization (#2438) (
b096b0a15a) - fix(relay): send 1012 restart close to all clients on graceful drain (#2575) (
1911c69aa2) - fix(media): sanitize animated image uploads (#2524) (
8f8f5fa5a4) - fix(channels): strip leading hash prefixes from names (#2250) (
d0ab3fdb05) - feat(relay): make Redis pool size configurable, default 16 (#2521) (
bcc3e13069) - feat(desktop+acp): spawn a harness per (agent, community) pair at GUI startup — warm sockets, lazy LLM pool (#2122) (
61cc738ee8) - feat(media): add S3-truth per-community storage sweep (#2044) (
bd37a4d584) - feat(relay): log NIP-98 pubkey attribution on HTTP bridge requests (#2206) (
7e34bee62c) - Revert "feat(relay): inventory unreachable Git objects" (#2275) (
0fb820f9bf) - feat(relay): inventory unreachable Git objects (#2264) (
3afc9dae15) - relay: add author_type label to buzz_events_stored_total (#2243) (
b9f54c43fe) - fix(git): make project branch workflows reliable (#2213) (
166f27be4b) - feat(cli): manage repository protection rules (#2193) (
f94324598d) - feat(cli): add agents archive/unarchive/archived subcommands (#2173) (
7d7992067b) - fix(mobile): sanitize Android image uploads (#2188) (
ee21da90bd) - fix(cli): paginate channel directory queries (#2181) (
03fe19d603) - fix(mobile): image upload fails due to unstripped metadata (#2185) (
37f15b2001) - perf(relay): compact Git packs before manifest limits (#2172) (
80e0ab16b0) - perf(relay): cache Git pack hydration (#2169) (
a4d82ec722) - fix(relay): bound and observe Git read operations (#2167) (
5f7c93d9c1) - relay: gate push enqueue on live leases; batch matcher pipeline (T1b/T1a-repair/T2b) (#2145) (
e43b2d5aac) - relay: add audit logging disable switch (#2134) (
bf5acabdde) - relay: skip TTL deadline bump for known-permanent channels (T1a write-amp) (#2125) (
2e936d439c) - fix(git): carry NIP-OA delegation in auth event (#2120) (
c12257d57a) - Route lag-tolerant reads to an optional Postgres read replica (#2084) (
29c48883d3) - fix: recover community access visibility (#2074) (
ca384d082d) - feat: proxy feedback-scoped admin attachments (#2059) (
d7f918e3cb) - feat: add read-only deployment moderation dashboard (#1999) (
68e670e001) - Bug-bash round 2: table scroll, Goose instructions, workflow mention wake (#2034) (
64b8fea6dc) - Strip media metadata on clients and reject it at the relay (#2006) (
5cfd69cb0c) - [codex] Hold Git concurrency permits through streaming (BUZZ-SEC-018) (#1916) (
7baea42abb) - [codex] Enforce shared relay admission limits (BUZZ-SEC-019) (#1917) (
73fc0ec6cf) - [codex] Block banned actors from moderation commands (BUZZ-SEC-007) (#1915) (
caa195ca58) - [codex] Fix relay WebSocket admission limits (#1682) (
d3ce971fc7) - feat: add invite QR and mobile direct join (#1957) (
648cbf3610) - fix(join-policy): require legal consent on hosted invites (#1987) (
2e1577f76f) - [codex] Prevent actor-tag UI impersonation (#1931) (
c540ec9678) - Scope relay runtime state by community (#1658) (
d52dedb06f) - Apply optional relay join policy across join flows (#1894) (
6c2d667575) - feat(media): require auth for relay media reads (#1926) (
f308762852) - feat(relay): add community unarchive endpoint (#1908) (
6b9641db2b) - feat(relay): gate Git web GUI separately (#1901) (
34dc7dec75) - mesh: upgrade runtime, enforce membership, add shared compute provider (#1656) (
54638ff4bb) - Route Git scratch through configured volume (#1884) (
2318b3096c) - feat(relay): gate usage metrics behind stable leader (#1814) (
59e9821503) - Relay mesh: cross-pod tunnel + huddle transport (buzz-relay-mesh) (#1670) (
ccb021d713) - feat(push): deliver accepted relay events as wakes (#1866) (
bffbc5f22c) - fix(db): resolve duplicate migration version (#1863) (
08ad38a07f) - Add private product feedback sidecar (#1857) (
af190c93e1) - feat(relay): add durable community archival (#1834) (
2b15a72675) - feat(push): add public APNs gateway (#1770) (
1c006822e4) - feat(relay): add atomic community ownership transfer (#1845) (
52e42ccb9f) - Bound NIP-RS retention and search indexing (#1771) (
1b4703021d) - Add optional standalone pairing relay to Helm chart (#1799) (
9b47c8548f) - fix(relay): publish membership snapshot on provisioning (#1761) (
0950d392b7) - feat(relay): per-community usage metrics (#1723) (
620822899a) - refactor(desktop): remove vestigial MCP toolsets config (#1776) (
dfec75b3c0)
relay-v0.2.0
- feat: relay invite links (mint + claim + landing page + deep link) (#1668) (
2e529aab7) - feat(relay): add atomic create-only community provisioning (#1689) (
1de916bdd) - feat(media): write per-upload-event records for moderation (#1551) (
83fc30b14) - fix(desktop): paginate complete channel directory (#1690) (
b41cf3ffc) - [codex] Scope derived runtime state by community (#1673) (
624bd26ce) - feat(relay): add operator community provisioning (#1657) (
e0f76b0e9) - feat: add deeplink nostr identity binding flow (#1648) (
cecd03142) - feat(relay,desktop): canonicalize agent definitions on kind:30175 (Phase 2) (#1655) (
b2c63291f) - Community moderation Phase 1: reports, bans/timeouts, audit, tombstones, relay-DM notices (#1616) (
863aeb79f) - feat(desktop): canonical component — hover to view/copy full keys, owner "you" labels (#1589) (
777babf39) - feat(nips,relay,acp): NIP-AM durable encrypted agent turn metrics (kind 44200) (#1441) (
71265ca36) - Live thread-summary push: badge counts update on reply ingest (#1521) (
74a30c3de) - fix: let agent owners delete their agent's messages (relay kind:5 + desktop/mobile UX) (#1519) (
642800548) - perf: GIN index for e-tag containment + delta profile fetch (scroll-back ~2.1s/page) (#1514) (
33886e3de) - GUI read-model overhaul: server-assembled channel windows (Correct™ pagination + relay-signed bounds) (#1500) (
62bb9fe8c) - feat(desktop): repository-first projects with git workflows (#1471) (
8e3c0ee95) - feat: per-community workspace icon set by admins, served via NIP-11 (#1463) (
5bfd5ca27) - perf(relay): batch outbound websocket data frames (#1464) (
01b92faa1) - Make reaction ingest atomic (#1458) (
835302cc8) - Serialize fan-out EVENT frames once (#1459) (
3c661fb48) - perf(relay): bounded-concurrency multi-filter query execution (S2) (#1457) (
a9e752e25) - fix(read-path): reach complete threads, dense-second timelines, and all people in the GUI (#1418) (
7da936fff) - E1+E3: reduce relay ingest/fan-out DB round trips; ack p99 −7–16%, fd p99 −6–28%, p999 tails −29–53% vs PR #1453 tip (#1454) (
a504ad619) - perf(relay): defer post-commit dispatch and avoid verify clone (#1453) (
7bd3760c8) - fix(relay): include git hook tools in runtime image (#1326) (
88c089d3b) - fix(relay): remove media bearer-token auth (#1444) (
0701f47f4) - feat(relay): add OpenTelemetry tracing, keep Prometheus metrics (#1398) (
b1d9d955d) - feat(git): move repo-name registry to Postgres + relax RWM chart gate (HA relay) (#1432) (
e5aa4a213) - fix(relay): enable Redis TLS for rediss:// (ElastiCache) (#1417) (
3292b502a) - feat(relay): allow agent owners to edit/manage agent-owned content (#1403) (
0042c8e10) - fix(media): support IRSA/credential-chain S3 auth and configurable signing region (#1406) (
06ef533ec) - Harden relay attack surfaces (#1369) (
29368cf17) - Multi-tenant Buzz relay: community_id as a server-resolved key (comprehensive rewrite) (#1321) (
14fba21e5) - Fix cross-pod membership notification fanout (#1291) (
e1c51d71d) - Add NIP-34 git pull request CLI support (#1279) (
5fef9b727) - chore: remove LLM-slop comments across the codebase (#1277) (
73cc31cc5)
relay-v0.1.1
- Initial release