Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
469 commits
Select commit Hold shift + click to select a range
6e0631f
feat(acp): deliver channel description in prompt [Context] (#4552)
wpfleger96 Aug 12, 2026
c966b86
fix(deps): bump webbrowser to 1.2.4 for RUSTSEC-2026-0257 (#5659)
wpfleger96 Aug 12, 2026
63f961c
Refine channel settings and profile panels (#5574)
klopez4212 Aug 12, 2026
63d14a0
fix(desktop): preserve live channel timelines (#5662)
wesbillman Aug 12, 2026
8a2c9af
feat(deletion): add durable whole-community deletion (#4425)
kalvinnchau Aug 12, 2026
884ed8a
fix(link-previews): proxy sent preview media (#5627)
tellaho Aug 12, 2026
a8e5c89
fix(desktop): preserve agent mention separator after send (#5623)
tellaho Aug 12, 2026
dc2dbfe
feat(buzz-acp): idle re-sleep for woken lazy pools (#5682)
wesbillman Aug 12, 2026
c3b0ccf
Batch observer-store publications per relay envelope (#5680)
wesbillman Aug 12, 2026
c6c6e7e
perf(desktop): coalesce thread-activity localStorage writes (#5693)
wpfleger96 Aug 12, 2026
59f613c
fix(desktop): defer foreground resume work (#5696)
wesbillman Aug 12, 2026
72d56e7
fix(agent): raise output limit and allow 3 recoveries (#5475)
atishpatel Aug 12, 2026
c86443c
perf(desktop): persist channel snapshot hash (#5684)
wesbillman Aug 12, 2026
7634fe7
fix(mobile): settle hydrated threads on latest reply (#4702)
loganj Aug 12, 2026
4749bc7
feat(acp): report standard adapter usage (#4950)
atishpatel Aug 12, 2026
9e0c6b4
chore(release): release Buzz Desktop version 0.5.11 (#5714)
wesbillman Aug 12, 2026
a96af89
Harden shared agent instruction review (#4220)
shellz-n-stuff Aug 13, 2026
8abc2ba
Add mobile community invites (#5641)
klopez4212 Aug 13, 2026
98d3d77
Fix mobile composer input regressions (#5594)
klopez4212 Aug 13, 2026
45f4b91
fix(desktop): more compact "compact" link previews (#5629)
tellaho Aug 13, 2026
2693e0d
Make workflow run history authoritative in Desktop (#5780)
wesbillman Aug 13, 2026
b269e8d
fix(desktop): route compact preview geometry fixture through media pr…
thomaspblock Aug 13, 2026
bcf353c
fix(desktop): enforce agent mention authorization at send boundaries …
wesbillman Aug 13, 2026
514195b
feat(desktop): add Inbox message delete action (#5779)
brow Aug 13, 2026
e094092
fix(channels): return complete member rosters (#5765)
wesbillman Aug 13, 2026
76f114a
test: add deterministic desktop release smoke (#5699)
wesbillman Aug 13, 2026
0571f54
Polish glass Huddle tray behavior (#5590)
klopez4212 Aug 13, 2026
c8da06c
Speed up initial direct messages (#5658)
klopez4212 Aug 13, 2026
068a83b
feat(huddle): cut voice-turn time-to-first-audio from ~1.0 s to ~0.35…
tlongwell-block Aug 13, 2026
eedcd88
fix(desktop): match compact link preview thumbnail corners to card sh…
morgmart Aug 14, 2026
0f61f24
Fix channel list scroll interruption (#5815)
wesbillman Aug 14, 2026
5743562
fix(huddle): stop 20 Hz speaker-level churn from re-rendering the who…
tlongwell-block Aug 14, 2026
b30f1f6
Polish mobile profiles, DMs, and sheets (#5401)
klopez4212 Aug 14, 2026
df9e773
Scope desktop presence subscriptions to active demand (#5830)
wesbillman Aug 14, 2026
ea0960f
Clarify immediate spoken huddle replies (#5863)
tlongwell-block Aug 14, 2026
8b8445f
fix(desktop): share one timer across same-interval useNow consumers (…
tlongwell-block Aug 14, 2026
43e53fc
Standardize settings section layout (#5855)
klopez4212 Aug 14, 2026
34a7f2f
Unify agent profile content (#5788)
klopez4212 Aug 14, 2026
1797781
fix(desktop): amortize observer journal eviction with a low-water mar…
wpfleger96 Aug 14, 2026
caa64b5
feat(desktop): one relative date ladder across chat and the Inbox (#3…
delkc Aug 14, 2026
1d51081
Teach agents to inherit Buzz product intent (#5875)
wesbillman Aug 14, 2026
17d2147
Fix video comment effect wrapping (#5748)
klopez4212 Aug 14, 2026
5acb930
feat(desktop-messages): render compact Buzz permalink chips (#5638)
tellaho Aug 14, 2026
fd0ab47
fix(link-preview): refetch a link when it re-enters the composer (#5510)
tellaho Aug 14, 2026
dbee291
test(desktop): await channel E2E bridge readiness (#5886)
wesbillman Aug 14, 2026
5ddf23d
feat(mobile-messages): render compact Buzz permalink chips (#5639)
tellaho Aug 14, 2026
2071547
fix(desktop): support channel message path links (#5889)
wesbillman Aug 14, 2026
01f76ec
fix(desktop): cut steady-state relay traffic from polls and read-stat…
tlongwell-block Aug 14, 2026
f086eb6
fix(link-previews): send while previews finish in background (#5697)
tellaho Aug 14, 2026
757779b
perf(desktop): update active turns incrementally (#5897)
wesbillman Aug 14, 2026
0bb7c60
fix(mobile): unwrap batched observer telemetry (#5805)
square-tomb Aug 14, 2026
1f4c69e
chore(release): release Buzz Desktop version 0.5.12 (#5903)
wesbillman Aug 14, 2026
122a8b8
Projects v3: unify sharing, discussions, and issue ownership (#5792)
thomaspblock Aug 14, 2026
263c9bf
fix(desktop): restore the agent trading-card mint button (#5900)
tlongwell-block Aug 14, 2026
0976810
fix(ci): read Playwright version without nested shell quoting (#5910)
wesbillman Aug 14, 2026
51beba6
chore(release): release Buzz Desktop version 0.5.13 (#5912)
wesbillman Aug 14, 2026
1b3dbca
ci(release): remove desktop smoke gate (#5914)
wesbillman Aug 15, 2026
82f7ed1
chore(release): release Buzz Desktop version 0.5.14 (#5917)
wesbillman Aug 15, 2026
69107dc
Polish mobile message threads and composer (#5645)
klopez4212 Aug 15, 2026
78cbffe
fix(desktop): hide the offcanvas-collapsed sidebar so it stops painti…
thomaspblock Aug 15, 2026
d8281b9
feat(mobile): require device authentication for identity export (#5116)
tellaho Aug 16, 2026
f956e6f
docs: refresh agent development guidance (#6049)
wesbillman Aug 16, 2026
1b7e5ac
feat(model-capabilities): drive model capabilities and labels from on…
wpfleger96 Aug 17, 2026
f716eef
fix(desktop): enforce shared agent access across devices (#6086)
wesbillman Aug 17, 2026
edc4a09
feat(workflows): add responsive library card actions (#6008)
tellaho Aug 17, 2026
5b3f037
fix(acp): replace Goose native system prompt (#5964)
atishpatel Aug 17, 2026
54f1121
fix(acp): gate relay-signed workflow messages on their attributed aut…
TheSentinel454 Aug 17, 2026
d12d825
fix(desktop): resolve agent profiles through one archive-aware select…
wpfleger96 Aug 17, 2026
076081b
Rename Bumble agent to Pollen (#5864)
klopez4212 Aug 17, 2026
85bacea
Remove GitHub security advisory commitment (#6144)
jmecom Aug 17, 2026
a282e06
fix(cli): keep project replacement timestamps at or after wall clock …
Illuminfti Aug 17, 2026
57feca2
fix(desktop): repair dropped team membership links at boot and on edi…
wpfleger96 Aug 17, 2026
439c037
fix(desktop): align preview sidebar row styling (#6163)
wesbillman Aug 17, 2026
f64899e
Remove Startup Recovery section in base prompt (#6161)
salman1993 Aug 17, 2026
f7a01bd
fix(workflows): preserve multi-channel listing semantics (#6009)
tellaho Aug 17, 2026
7f61cf4
Preserve managed agent mentions during relay errors (#6167)
wesbillman Aug 17, 2026
c8c8eb5
chore(release): release Buzz Desktop version 0.5.15 (#6173)
wesbillman Aug 17, 2026
f8692fa
test(desktop): cover exact workflow batch limit (#6168)
wesbillman Aug 17, 2026
ee992ff
fix(desktop): restore release agent mentions (#6182)
wesbillman Aug 18, 2026
978e585
chore(release): release Buzz Desktop version 0.5.16 (#6191)
wesbillman Aug 18, 2026
f0234f1
fix(desktop): eliminate mounted-view CPU burn — compositor-safe shimm…
wesbillman Aug 18, 2026
6d45f98
ci: make file-size policy a first-class gate (#6187)
wesbillman Aug 18, 2026
0819104
fix(desktop): bind presence retry timers (#6213)
wesbillman Aug 18, 2026
cc8a8b0
fix: bump h2 for RUSTSEC-2026-0258 (#6222)
loganj Aug 18, 2026
3fdf289
fix(desktop): bound remote agent mention authorization (#6224)
wesbillman Aug 18, 2026
5694e78
fix(mcp): scope todo usage (#6216)
salman1993 Aug 18, 2026
d2cfd37
fix(prompt): simplify pickup follow-through (#6186)
salman1993 Aug 18, 2026
8232299
chore(release): release Buzz Desktop version 0.5.17 (#6234)
wesbillman Aug 18, 2026
417eea2
Polish mobile timeline navigation (#5874)
klopez4212 Aug 18, 2026
c442a90
fix(desktop-chrome): preserve balanced layout when sidebar collapses …
tellaho Aug 18, 2026
d7e8fdb
fix(shared-ui): delay hover disclosures by default (#5821)
tellaho Aug 18, 2026
b74700d
chore(hooks): keep mobile analysis out of pre-commit (#6236)
wesbillman Aug 18, 2026
50a7113
feat(managed-agents): close five Claude Code agent-config gaps (#4557)
wpfleger96 Aug 18, 2026
4f9727a
chore(scripts): add buzz-adopt-prod-agents.sh (#6250)
wpfleger96 Aug 18, 2026
40f1dac
Refine mobile pairing confirmation (#6018)
klopez4212 Aug 18, 2026
78267b0
Polish mobile message actions (#5873)
klopez4212 Aug 18, 2026
6ea7a2b
fix(desktop): preserve early relay auth challenges (#3320)
tlongwell-block Aug 18, 2026
e2ade93
fix(desktop): downscale large avatars for agent-share PNG body (#6260)
wpfleger96 Aug 18, 2026
6e8d078
fix(desktop): emit camelCase config-write payload fields (#6062)
Chessing234 Aug 18, 2026
7e26517
Add font size and conversation density preferences (#5644)
klopez4212 Aug 18, 2026
121e4b3
fix(desktop): exclude archived agents from nest, order regeneration (…
wpfleger96 Aug 18, 2026
359fe64
Refine the mobile emoji picker (#5853)
klopez4212 Aug 18, 2026
a362fec
perf(desktop): parallelize relay agent directory rebuild (#6258)
wpfleger96 Aug 18, 2026
93114c9
Fix mobile Activity thread navigation (#5850)
klopez4212 Aug 18, 2026
87f8ff8
feat(desktop): refine repository-aware project workspaces (#6003)
thomaspblock Aug 19, 2026
e5a6e20
fix(desktop): morph the drawer panel icon instead of sliding it (#6306)
thomaspblock Aug 19, 2026
08eb46e
Revert "fix(acp): gate relay-signed workflow messages on their attrib…
TheSentinel454 Aug 19, 2026
a567dfc
Unify mobile channel details (#6113)
klopez4212 Aug 19, 2026
fe7c680
fix(desktop): hide archived channels from #/Tab autocomplete (#6156)
loganj Aug 19, 2026
196d62f
fix(media): accept portrait video resolutions (#6058)
jedwards27 Aug 19, 2026
bbd20fa
perf(desktop): move five hot renderer paths from JS into Rust (#6024)
tlongwell-block Aug 19, 2026
7f69b13
fix(buzz-dev-mcp): expand leading ~ in read_file/str_replace paths (#…
salman1993 Aug 19, 2026
934f332
fix(buzz-acp): loosen workspace-scan guardrail to allow named paths (…
salman1993 Aug 19, 2026
81567b7
chore: serialize mobile pre-push checks (#6322)
wpfleger96 Aug 19, 2026
f96f188
fix(desktop): restore emoji recents (#6263)
wesbillman Aug 19, 2026
9a1e861
Add appearance preference previews (#6193)
morgmart Aug 19, 2026
9c2f053
fix(desktop): show complete repository trees (#5102)
evanchen7 Aug 19, 2026
09718fb
refactor(desktop): coordinate TTS playback (#6341)
tlongwell-block Aug 20, 2026
f88cda9
feat(desktop): make the Projects overview follow the selected section…
thomaspblock Aug 20, 2026
da818ed
Polish mobile timeline and emoji interactions (#6297)
klopez4212 Aug 20, 2026
a9640c7
Add Buzz-native collaboration benchmarks (#6264)
salman1993 Aug 20, 2026
2b7be93
feat(desktop): make Projects workspaces selectable (#6368)
thomaspblock Aug 20, 2026
2a236e4
refactor(prompt): simplify Buzz agent guidance (#6340)
salman1993 Aug 20, 2026
e5d1dfe
feat(desktop): close Buzz window with Cmd+W (#6314)
kursmark-sq Aug 20, 2026
2e7583b
fix(desktop): distinguish duplicate agent devices (#6337)
wesbillman Aug 20, 2026
3c228b1
feat(desktop): refine context-aware Projects collaboration (#6396)
thomaspblock Aug 20, 2026
d274a6e
fix(acp): guard against unrequested public relay skills (#6394)
wpfleger96 Aug 20, 2026
2ce8df8
fix(models): curate Databricks alias-aware labels for 5 missing endpo…
wpfleger96 Aug 20, 2026
886cef7
test(desktop): use a wordlist-safe separator in passphrase word-count…
ngthuydiem Aug 20, 2026
7ebe3ea
fix(desktop): preserve huddle speech boundaries (#6397)
tlongwell-block Aug 20, 2026
1934e83
feat(workflows): add workflow editor (#6248)
tellaho Aug 20, 2026
84c095f
feat(cli): accept Buzz message links for thread reads (#6359)
morgmart Aug 20, 2026
ee0c707
Fix cross-owner relay agent mentions in owner-only builds (#6338)
wesbillman Aug 20, 2026
b728a2a
feat(llm): stamp thinking effort on call-completed log line (#6424)
wpfleger96 Aug 20, 2026
54bbe73
perf(desktop): resolve references without directory scans (#6328)
wpfleger96 Aug 20, 2026
3ee465e
Enforce a three-day dependency cooldown (#6426)
jmecom Aug 20, 2026
cd0d33f
fix(hooks): scope pre-push lanes to branch merge-base diff (#6423)
wpfleger96 Aug 20, 2026
06e8be9
fix(desktop): make reconnect repair lossless (#6415)
wesbillman Aug 20, 2026
b298a17
fix(desktop): isolate main timeline stacking context from focus drawe…
kruegermj Aug 20, 2026
569308c
fix(desktop): restore recent channel sorting (#6402)
wesbillman Aug 20, 2026
c63ac74
perf(desktop): split discover_acp_providers into cheap and forced pat…
wpfleger96 Aug 20, 2026
c6e3fe7
feat(workflows): reply in-thread from send_message action (#6178)
wpfleger96 Aug 20, 2026
de8a274
feat(desktop-messages): show compact Buzz link metadata (#6252)
tellaho Aug 21, 2026
24ec6a4
Repair stale large channel roster snapshots (#6251)
wesbillman Aug 21, 2026
9891e64
fix(desktop): clarify add agents channel action (#6374)
matt2e Aug 21, 2026
9b32e05
polish(desktop): finish Projects navigation and context chrome (#6429)
thomaspblock Aug 21, 2026
2edacde
chore(deps): pin earshot below 1.2.0 pending a VAD threshold re-pick …
tlongwell-block Aug 21, 2026
ffb12d3
Fix mobile thread tail and iOS channel header (#6399)
klopez4212 Aug 21, 2026
8740a1f
docs: clarify two-layer moderation ownership (#6481)
wpfleger96 Aug 21, 2026
4e3c9e6
fix(desktop): sender names in notifications + macOS click-through rou…
wesbillman Aug 21, 2026
b56a52c
test(benchmarks): expand Buzz-native dataset (#6448)
salman1993 Aug 21, 2026
aea0ef8
fix(desktop): simplify duplicate agent provenance (#6401)
wesbillman Aug 21, 2026
1e6f1a2
chore(release): release Buzz Desktop version 0.5.18 (#6489)
wesbillman Aug 21, 2026
6039fed
fix(desktop): restore human barge-in over agent TTS in huddles (#6431)
tlongwell-block Aug 21, 2026
fc2ce67
feat(archive): add observer-frame retention schema and gated DB adapt…
wpfleger96 Aug 21, 2026
7da8f9a
Clarify huddle message destination (#6496)
tlongwell-block Aug 21, 2026
aeb741f
Polish mobile channel navigation and message sends (#6488)
klopez4212 Aug 21, 2026
0254255
fix(benchmarks): wait for scripted event delivery (#6487)
salman1993 Aug 21, 2026
d97780b
docs(nips): comprehensive NIP-FI — core + claimable profiles (EDGE/LI…
tlongwell-block Aug 21, 2026
4752678
fix(deletion): allow IRSA S3 credentials (#6495)
bradseiler Aug 21, 2026
b0466ac
perf(desktop): keep the member roster off the channel-switch path (#6…
Maxwellimus Aug 21, 2026
b85d680
perf(desktop): stop the Projects fan refetching on re-entry and runni…
Maxwellimus Aug 21, 2026
0e48ff2
feat(workflows): clarify workflow setup and activation (#6470)
tellaho Aug 21, 2026
eb48438
chore(desktop): drop unused ORIGINAL_CONTENT from empty-edit-delete s…
Maxwellimus Aug 22, 2026
97b1fee
fix(desktop): restore true zoom by scaling the root rem (#6514)
morgmart Aug 22, 2026
694d804
chore(deps): update swatinem/rust-cache digest to 6323deb (#5441)
renovate[bot] Aug 22, 2026
9008a4d
chore(deps): update ubuntu:24.04 docker digest to 561618e (#5442)
renovate[bot] Aug 22, 2026
f84511c
chore(deps): update dependency @tauri-apps/api to v2.11.1 (#5444)
renovate[bot] Aug 22, 2026
2cef92d
chore(deps): update rust crate futures to v0.3.33 (#5445)
renovate[bot] Aug 22, 2026
d874d67
chore(deps): update rust crate futures-util to v0.3.33 (#5448)
renovate[bot] Aug 22, 2026
1a0a27d
chore(deps): update rust crate http to v1.4.2 (#5451)
renovate[bot] Aug 22, 2026
9390e11
chore(deps): update rust crate http-body-util to v0.1.4 (#5452)
renovate[bot] Aug 22, 2026
2d93ea0
chore(deps): update dependency sonner to v2.0.8 (#6093)
renovate[bot] Aug 22, 2026
f794216
chore(deps): update rust crate async-trait to v0.1.92 (#6094)
renovate[bot] Aug 22, 2026
0745612
fix(composer): preserve caret when inserting mentions mid-message (#6…
tellaho Aug 22, 2026
723affe
fix(desktop): remove Buzz entity link previews (#6512)
tellaho Aug 22, 2026
a2d8be5
feat(desktop-messages): keep agents addressed across messages (#6315)
tellaho Aug 22, 2026
8c0f42e
Add mobile Huddles voice MVP (#6056)
klopez4212 Aug 22, 2026
f995325
refactor(acp): clarify agent prompt sections (#6501)
salman1993 Aug 22, 2026
040b203
perf(desktop): make the Projects surface render-cheap (#6460)
Maxwellimus Aug 22, 2026
4baccd5
Downgrade mobile Huddles to audio protocol v2 (#6558)
klopez4212 Aug 22, 2026
e236329
Polish Huddle participant interactions (#6312)
klopez4212 Aug 22, 2026
0720f53
Downgrade desktop Huddles to audio protocol v2 (#6610)
klopez4212 Aug 23, 2026
2d28037
perf(desktop): persist channel heads, collapse thread reads and reply…
tlongwell-block Aug 24, 2026
17af15e
fix(desktop): keep member runtime status off the UI thread (#6445)
matt2e Aug 24, 2026
72ba987
fix(desktop): stabilize members dialog scrolling (#6670)
matt2e Aug 24, 2026
2f13e30
fix(desktop): hide selection formatting tray on composer right-click …
matt2e Aug 24, 2026
0e69b3f
show mention counts in channel notifications (#6696)
tulsi-builder Aug 24, 2026
26f4c3e
feat(mobile): browse and join open channels (#6243)
brow Aug 24, 2026
01091c1
fix(mobile): recover stale and shuffled messages (#6691)
wesbillman Aug 24, 2026
db5617d
fix(desktop): emit singular `mention` feed category so alerts route c…
morgmart Aug 24, 2026
9f55bf6
fix(desktop): align jump-to-latest pill with composer height (#6606)
tellaho Aug 24, 2026
a029853
Add mobile profile editing (#6583)
klopez4212 Aug 24, 2026
6eff84d
fix(mobile): join starter channels after accepting invite (#5915)
brow Aug 24, 2026
4bf8097
fix(messages): route edits to the owning composer (#6575)
tellaho Aug 24, 2026
f6e6617
fix(desktop): bound thread /query and surface load errors, not false-…
wpfleger96 Aug 24, 2026
f79d346
fix(composer): wrap Buzz chip labels without orphaning icons (#6581)
tellaho Aug 24, 2026
02dc49f
docs(security): route reports through private advisories (#6728)
jmecom Aug 24, 2026
69b1225
fix(ci): prevent poisoned Rust caches (#6618)
wesbillman Aug 24, 2026
30d2fc5
fix(desktop): restore icon-only remote marker (#6491)
wesbillman Aug 24, 2026
c5166f2
feat(desktop): simplify the message action rail (#6529)
morgmart Aug 24, 2026
e760c51
feat(workflows): discover trigger filter values (#6712)
tellaho Aug 25, 2026
8d2d0ff
Centralize replaceable event persistence (#6660)
TheSentinel454 Aug 25, 2026
a8e1c66
fix(desktop): polish inline chip states (#6718)
tellaho Aug 25, 2026
822c5ab
Hide Huddles in mobile agent DMs (#6676)
klopez4212 Aug 25, 2026
9aa332a
Add inline profile camera capture (#6680)
klopez4212 Aug 25, 2026
8b81201
Fix mobile Huddle agent voice turn states (#6611)
klopez4212 Aug 25, 2026
9d1e4b2
Extract community persistence (#6668)
TheSentinel454 Aug 25, 2026
931747c
Add staging dev relay image workflow (#6709)
bradseiler Aug 25, 2026
a121907
feat(buzz-agent): gate LLM tool calls on session/request_permission (…
wpfleger96 Aug 25, 2026
bb5b935
Fix TipTap editor mount race (#6779)
klopez4212 Aug 25, 2026
d12dea4
Support community deletion in versioned media buckets (#6738)
bradseiler Aug 25, 2026
9b6a637
fix(desktop): make lightbox zoom controls interactive (#6710)
kalvinnchau Aug 25, 2026
29f2054
highlight search terms in results and messages (#6702)
tulsi-builder Aug 25, 2026
12f3fea
revert fixed mention highlight (#6716)
tulsi-builder Aug 25, 2026
113a33b
Add database pressure observability (#6700)
TheSentinel454 Aug 25, 2026
a526dca
feat: navigate images across message threads (#6705)
kalvinnchau Aug 25, 2026
7ba1197
feat(desktop): persist agent addressing across composer messages (#6714)
tellaho Aug 25, 2026
f249710
Qualify canonical relay images for staged delivery (#6781)
TheSentinel454 Aug 25, 2026
b58de7c
fix(desktop-messages): preserve inline agent mentions with persistent…
tellaho Aug 25, 2026
22f32c9
docs(nest): make commit attribution policy-neutral (#6707)
wesbillman Aug 25, 2026
ee6ca5f
Remove public relay signing key fallback (#6729)
jmecom Aug 25, 2026
7a1b7d8
chore(release): release Buzz Desktop version 0.5.19 (#6828)
wpfleger96 Aug 25, 2026
cae7f82
fix(ci): check out source in docker.yml merge job (#6833)
wpfleger96 Aug 25, 2026
820a858
fix(release): attribute desktop candidates to the operator (#6831)
wpfleger96 Aug 25, 2026
e8cd751
fix(desktop): respect automatic mention preference after send (#6837)
tellaho Aug 25, 2026
8471049
feat(desktop): add KLIPY GIF search to composers (#5554)
klopez4212 Aug 25, 2026
52621c0
chore(release): release Buzz Desktop version 0.5.20 (#6839)
wpfleger96 Aug 25, 2026
c0b89b5
deploy(railway): thin wrapper image that fixes git-volume ownership
A-PachecoT Aug 1, 2026
8567b5f
deploy(arch-box): CI-built buzz-acp binary + systemd user unit
A-PachecoT Aug 2, 2026
5b39e18
fix(arch-box): read release tag via --json, not the human table
A-PachecoT Aug 2, 2026
81f0dc4
fix(arch-box): put ~/.local/bin on the unit PATH
A-PachecoT Aug 2, 2026
0e09b6d
fix(arch-box): move StartLimit* to [Unit] where systemd reads them
A-PachecoT Aug 2, 2026
802255f
fix(arch-box): ship the buzz CLI alongside the harness
A-PachecoT Aug 2, 2026
ef174aa
chore(cto): scaffold sprint substrate for buzz#1 + buzz#2
A-PachecoT Aug 4, 2026
9a05602
fix(cto): corregir tres premisas que el refute-pass F1c refutó
A-PachecoT Aug 4, 2026
d7e1683
docs(cto): draft the upstream evidence comment for block/buzz#2876
A-PachecoT Aug 4, 2026
5ae76fc
fix(cto): aplicar las cuatro enmiendas del gate de Phase 5
A-PachecoT Aug 4, 2026
d98fc83
fix(cli): unfreeze repo metadata with max(head + 1, now)
A-PachecoT Aug 4, 2026
d13e703
docs(cli): report T-002 — diff rationale + real gate output
A-PachecoT Aug 4, 2026
02a0155
chore(cli): record T-002 gate telemetry in history.jsonl
A-PachecoT Aug 4, 2026
2e4ce29
chore(cto): mark T-002 merged and record the history.jsonl telemetry …
A-PachecoT Aug 4, 2026
b6e1feb
feat(arch-box): ship git-credential-nostr in the release
A-PachecoT Aug 4, 2026
1a6711e
docs(ci): T-001 lane report with per-acceptance evidence
A-PachecoT Aug 4, 2026
b512956
chore(ci): T-001 task_completed event
A-PachecoT Aug 4, 2026
21e0e2b
docs(cto): exec summary del ciclo buzz-cli-usable
A-PachecoT Aug 4, 2026
2e655c2
chore(cto): cerrar el ledger del ciclo — entregado, no cerrado
A-PachecoT Aug 4, 2026
c28ac82
docs(cto): apuntar el exec-summary al HEAD final del ciclo
A-PachecoT Aug 5, 2026
a36203e
chore(cto): ledger del ciclo relay-upgrade + escalacion E-001
A-PachecoT Aug 26, 2026
3873b80
merge(railway-deploy): reconciliar historia tras el rebase
A-PachecoT Aug 26, 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
  •  
  •  
  •  
60 changes: 60 additions & 0 deletions .cofoundy/brief.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
schema_version: 1.0
name: buzz-cli-usable
domain: software
session_mode: delivery
started: 2026-08-04
owner: Andre (A-PachecoT)

goal: >
Hacer usable el CLI de Buzz en una caja limpia del equipo. Dos defectos
bloquean eso hoy: (1) el CI del fork no shippea git-credential-nostr, así que
git push contra el relay exige compilar un binario a mano; (2) los metadatos
de un repo se congelan a los 15 minutos, dejando `repos bind` y
`repos protect` permanentemente inutilizables.

repo: cofoundy/buzz
base_branch: railway-deploy # NUNCA main — main sigue al upstream de Block
work_branch: sprint/buzz-cli-usable
relay: https://buzz.cofoundy.dev

issues:
- id: cofoundy/buzz#1
title: CI no shippea git-credential-nostr
lane: ci
- id: cofoundy/buzz#2
title: metadatos de repo congelados a los 15 min (upstream block/buzz#2876)
lane: cli

mvp_scope:
- git-credential-nostr sale como release asset del fork y lo instala install-buzz-acp.sh
- una caja sin toolchain de Rust puede clonar y pushear siguiendo solo el README
- repos protect / repos bind funcionan sobre un repo anunciado hace más de 15 min
- el fix del timestamp preserva la monotonía (un writer demorado no pisa una edición intermedia)

out_of_scope:
- Tocar el Dockerfile del relay o deploy/railway/ (guardrail explícito del issue #1)
- Ampliar MAX_TIMESTAMP_DRIFT_SECS en el relay (guardrail explícito del issue #2 — la ventana es defensa anti-replay, no el bug)
- Modificar la lógica del crate git-credential-nostr (funciona; verificado con push y clone reales)
- Rebasear o forzar sobre railway-deploy
- Onboarding del equipo / sunset de Discord (bloqueado por handbook#2, fase 3)

agents:
roles:
- ci
- cli

recon_findings:
- id: R-1
what: deploy/arch-box/ no tiene README
impact: el issue #1 pide documentar en "el README del deploy" pero no existe; la lane ci lo crea
- id: R-2
what: el paths: trigger del workflow no incluye crates/git-credential-nostr/**
impact: un cambio al helper no redispara el build; gap adyacente, se corrige en la misma lane
- id: R-3
what: repos.rs:523 y :717 assertean created_at == 101 exacto
impact: max(now, existing+1) rompe ambos tests; deben assertear monotonía + frescura, no un literal

references:
- handbook/infrastructure/buzz/BITACORA.md
- handbook/infrastructure/buzz/bitacora/2026-08-01-auditoria-fase2.md
- https://github.com/block/buzz/issues/2876
153 changes: 153 additions & 0 deletions .cofoundy/context/agent-floor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# Agent Floor — universal teammate contract

> Scaffolded into `.cofoundy/context/agent-floor.md` by `/cofoundy-init` (one-time per project).
> Read once by every teammate at spawn. Replaces the per-dispatch boilerplate copy-paste.
> If your dispatch prompt restates anything below, you're duplicating the floor — point here instead.

## Identity + substrate

- You are a teammate on the buzz-cli-usable sprint team. Your role and task are in your spawn prompt.
- **Substrate is SSOT.** Your task spec lives at `.cofoundy/tasks/T-NNN.md`. Read it first; every acceptance line is a hard gate.
- **Architecture, contracts, conventions** live in `.cofoundy/specs/*.md` and project `CLAUDE.md` / `.claude/rules/`. Read what your task's `refs:` block points at.
- **Don't re-prose what you read.** Apply it.

## Protocol-ask supremacy

When your caller sends an explicit **protocol-ask** (ACK pattern, restart, status, shutdown, hand-off, gate decision), execute it FIRST. Economic / efficiency concerns (cost of restart, token burn, "I already did this") surface AFTER, never as conditions for compliance.

- Correct: *"Acknowledged. Dispatching Phase 0. Note: prior artifacts at `<path>` if you want to compare against this run."*
- Wrong: *"Question: should I restart given that prior artifacts exist at `<path>`?"* — stalling-as-clarification, indistinguishable from non-engagement from the caller's seat.

Default-to-comply on protocol-asks. Default-to-action on substrate ambiguity (file the ambiguity in `.cofoundy/state/escalation-queue.jsonl` + halt; don't reply with a question). The caller's right to be wrong about economics outranks your right to be right about them.

Source incident: `plugins/cofoundy-orchestrator/docs/2026-05-20-teammate-stepper-protocol-gap.md` §"Root cause #2".

## Your operator is the CTO (talk to it)

The orchestrator that spawned you is the **CTO acting as the founder** — it is your human. Two
distinct channels, do not confuse them:

- **`QUESTION` → SendMessage the orchestrator** when you hit a decision you genuinely cannot infer
from the substrate but that a PM/founder *could* answer (which approach, is this in scope, does the
client want X or Y). Ask it like you'd ask a human lead: one crisp question + your recommended
default. The CTO answers (or escalates upward itself). This is the normal operating channel — use it.
- **Escalation queue → only for substrate ambiguity** (spec contradicts itself/the contract, a
capability/credential wall): append to `.cofoundy/state/escalation-queue.jsonl` and halt. Don't put
judgment questions here — those go to the CTO via SendMessage.

When the CTO sends you a `REVIEW`, `REDIRECT`, `CLARIFY`, `UNBLOCK`, or `DIAGNOSE-NUDGE`, treat it as
a protocol-ask (below): execute first, surface concerns after. Don't narrate status unprompted — the
CTO reacts to events, not to chatter.

## Scope discipline

- **Stay in `scope.write`** from your task spec. Anything you want to touch outside that = file an escalation in `.cofoundy/state/escalation-queue.jsonl` and stop. Do NOT silently expand scope.
- **`scope.read` is permissive** but doesn't authorize edits. Read freely; write only inside the matrix.
- **No new files outside scope.write.** If you need one (new module, new test file, new doc), it must already be listed in `scope.write` (glob match counts).
- **The gates are NOT a sandbox — scope discipline is YOURS to keep.** The hooks read the Bash command *string*: they see shell redirects, `tee`, `sed -i`, `cp`/`mv`, and `Write`/`Edit` targets. They are blind to anything an interpreter does — `python3 x.py`, `node w.js`, `make`, `bash s.sh` resolve to zero targets and pass. So scope enforcement catches **accidental drift**; it is a **coordination contract, not a security boundary**, and it will not stop a determined write. Don't read "the gate allowed it" as "this was in scope" — you own the matrix whether or not a hook is watching. Corollary: if you route around a gate (including via an interpreter), **say so** in your termination summary. Concealing a workaround is the one unforgivable move; using one and disclosing it is normal engineering.
- **Compound Bash commands are blocked ATOMICALLY.** If any single resolved target in a `&&`/`;` chain is out of scope, the *whole* command dies — including the parts that were fine. So keep destructive/recovery ops as **separate commands**: run the `rm` alone, then the append alone. Never chain a cleanup step to a possibly-blocked target — the cleanup that would have unblocked you is exactly what won't run.

## Git contract

- **Spawn step 0 — verify your worktree BASE before any work.** Harness-created worktrees branch from the primary checkout's HEAD, NOT necessarily the base branch your dispatch prompt names. Check `git merge-base --is-ancestor <base> HEAD`; on mismatch `git fetch origin <base> && git checkout -B <your-branch> <base>`, THEN start. Reproducing/fixing/testing on the wrong base invalidates everything downstream. → `core/docs/decision-log.md#2026-07-22-worktree-base-drift`
- **If you're on an isolated worktree/branch (long-run / team-agent model): commit to YOUR branch after every meaningful unit.** Uncommitted work is LOST if you idle or die — don't bank it for the end. The orchestrator merges your branch; it does NOT depend on you surviving to a final phase. If you're a transient in-session subagent on the orchestrator's own branch, just mutate the tree and let it commit.
- **Precedence when the two rules above and below pull against each other: VERIFY, THEN COMMIT.** "Commit after every meaningful unit" and "run tests before signaling done" are both real; when they conflict, verification wins — a *meaningful unit* is a **verified** one, and committing unverified code is the failure mode the guidance exists to prevent. **A dirty tree mid-verification is the EXPECTED state of a working agent and is NEVER evidence of idleness.** Hold the edit, run the check, then commit. Don't commit early to look busy; don't let a dirty tree pressure you into shipping unverified. Keep the verify window tight (minutes, not phases) — the rule buys you verification time, not indefinite banking.
- **Orchestrator's half of that contract (it binds the orchestrator, not you): a worktree is NEVER destroyed on an idle heuristic.** Verify-before-commit is only safe if nothing deletes the tree underneath a live worker — so teardown requires a *positive* liveness check (registry `list` + no tool call for N minutes + a `task_completed` event), never the mere absence of a signal, and never `git worktree remove --force` (git's refusal on a dirty tree IS the guardrail: a worktree that refuses to die is a worker still holding work). Dirtiness is not idleness and uncommitted is not abandoned. If your worktree disappears mid-task, that is an orchestrator defect — report it, don't absorb it.
- **Push YOUR branch freely, and open your own MR when your task is done.** You don't wait for the orchestrator to push for you — that's the bottleneck the autonomous-team model removes. Push early/often so your work survives + peers can see it.
- **Self-merge to `develop` on CI-green IF your scope is DISJOINT.** When your task touched only files YOU own per the ownership matrix (no shared files), open your MR to `develop` and set **auto-merge on CI-green** — you land your own lane, no orchestrator relay, no integration branch. CI is the gate.
- **Shared-file edits → flag, don't auto-merge.** If you touched a SHARED surface (the api-client barrel/index, `app.module`, prisma migrations, root `package.json`, anything multiple lanes edit) label your MR `needs-coordinated-merge` and STOP — the merge-coordinator sequences those (concurrent auto-merges on a shared file collide). Better: avoid shared-file edits by design (add your own file, not a line in a shared index).
- **`main`/prod and force-push are NEVER autonomous.** Human gate. Never force-push any shared branch.
- **Scratch artifacts (screenshots, `.report-shots`, scratch specs/notes) go to a gitignored dir — never commit them to the product branch.** They force cleanup commits at integration.

## Test + quality discipline

- **Run tests yourself before signaling done.** Each acceptance line should map to a runnable check; run it. This outranks commit-frequency — see the precedence rule in the git contract: verify, then commit; a dirty tree mid-verification is expected, not idleness.
- **Logger discipline** per `.claude/rules/backend-quality.md` (Python backend) or repo-specific rules: entry/exit/error logs with structured `extra={}`, `exc_info=True` on errors, `time.perf_counter()` around external HTTP.
- **Coverage gates** if listed in acceptance — run with `--cov-fail-under=N`, save report to `docs/qa/<cycle>/` if your role is QA.
- **`pytest | tail` deadlocks.** Always `pytest ... > /tmp/out.txt 2>&1` then `tail /tmp/out.txt`. The pipe-to-tail pattern hangs in this harness.

## Termination signal

When you've self-verified all acceptance criteria pass:

1. Append one event line to `.cofoundy/state/history.jsonl`:
```json
{"ts":"<ISO>","event":"task_completed","task":"T-NNN","agent":"<your-role>","cycle":"<cycle-id>","summary":"<one-line>"}
```
2. Return a structured summary (under 250 words):
- Files created / modified (paths)
- Acceptance criteria status (each line passed / partial / blocked)
- Coverage % if relevant
- Deviations from spec (if any) with rationale
- Flagged issues / fix-tasks filed for orchestrator

3. **Do NOT mark TaskUpdate completed yourself if you're a teammate** — the orchestrator marks based on your termination signal. (If you're a standalone subagent, you don't see TaskList anyway.)

## Per-role state files — EXACTLY ONE writer

Per-role files (`.cofoundy/state/metacognition/{role}.jsonl` and any other `{role}`-suffixed state
file) exist so N lanes can never collide on one surface. That only holds under an invariant that must
be stated, because following the surrounding instructions literally can break it:

- **A per-role file has exactly ONE writer: the owning lane.** Peers never touch another role's file.
You own yours; write it, and only it.
- **The orchestrator harvests by copy OR by merge — NEVER both.** Copying a lane's mid-run file into
main *and* merging that lane's branch makes the orchestrator a second writer to a single-writer
file: guaranteed conflict, and union-resolving it silently DUPLICATES the deliverable (a stale
harvest snapshot and the lane's real line, same `ts`, different content — the stale one sorts first
and wins any naive read).
- **Dedupe on `(role, task, ts)` at assembly, with a superset check before dropping anything.** If two
lines collide on that key, assert every item in the discarded line appears verbatim in the kept one;
**abort if not**. Never resolve a conflict in one of these files by keeping both sides — that is not
a merge, it is a duplication.

## Finishing capabilities — you can do the WHOLE job, not just the code

A capability **NEED** is not a capability **GAP**. The most common way an agent fails to finish
is stopping at "code's done — someone should deploy / configure DNS / set the secret / run QA."
You have the skills to finish it yourself. Any agent in this workspace can invoke:

- **Deploy · status · logs · rollback** → `cofoundy-toolkit:deployment` (Railway + Cloudflare; never raw railway/curl).
- **Cloudflare tokens** → `cofoundy-founders:cf-token`. **DNS · domains** → `cofoundy-founders:namecheap`.
- **Store a credential** (vault + GitHub + env) → `cofoundy-toolkit:store-key`.
- **Browser QA · screenshots · verify-live** → `cofoundy-toolkit:browser`, or spawn a QA subagent.
- **Generate + run the acceptance tests** → `cofoundy-toolkit:test`. If your task has a testable acceptance line, the merge gate (F1b criterion `tests_present_or_justified`) REJECTS a diff that ships no test — run it as a finishing step, or record a `tests:` block (`status: present|justified`) / `## No-test justification` section in your task file. Mocked-only tests are judgment-tier `amend`, not proof (cantera L-004): the real-run is the gate.
- **Atomic commits** → `cofoundy-toolkit:gitcommit`. **Publish a doc** → `cofoundy-docs:docs`.

If your task's done-definition includes deploy / config / verify-live, **do it with these** — the
finish is yours, not a human's. Credentials are provisioned in `os.environ` at session start; the
skills read them (never `bw unlock` at runtime).

## Escalation path

The queue is `.cofoundy/state/escalation-queue.jsonl` — **append-only JSONL, one escalation per line.**
It is NOT YAML: there is no `pyyaml` in this environment (`import yaml` → `ModuleNotFoundError`), and
hand-splicing YAML text is how the queue silently dies — any prose containing a `word: ` sequence (a
path like `T-001.md:51:`, a `->`) turns the whole document into invalid YAML and swallows every
escalation in it, unnoticed, including yours. JSONL has no nesting to corrupt: one bad line costs one
line. **Never hand-concatenate the JSON either** — serialize with stdlib `json`:

```bash
python3 -c 'import json,sys,datetime
print(json.dumps({"ts":datetime.datetime.now().isoformat(timespec="seconds"),
"id":"E-00N","role":"<your-role>","task":"T-NNN","status":"open",
"kind":"substrate_ambiguity", # or capability_gap
"summary":"<one line>","evidence":"<file:line + what contradicts what>",
"recommendation":"<your proposed resolution>"}))' \
>> .cofoundy/state/escalation-queue.jsonl
```

- **Substrate ambiguity** (spec contradicts itself or contract) → append one line, halt.
- **Genuine capability gap** — you need X, there is NO skill for it, AND no credential the skill could fetch (e.g. a human-only approval, a missing external account) → append one line + halt. **A need you can satisfy with a skill above is NOT a gap — do it.**
- **A spurious gate block is NOT substrate ambiguity.** If a hook blocked a write that IS in your `scope.write` (a phantom target from a heredoc body, an unexpanded `$TMPDIR/...`), that's a false positive: don't file it here — note it in your termination summary and use a form the parser reads correctly (e.g. `git commit -F <file>` instead of a heredoc). The queue is for real ambiguity; filling it with phantoms teaches everyone to ignore it.
- **Blocking bug found in another role's deliverable** → file new task `.cofoundy/tasks/T-XXX.md` (role_owner = that role) + flag in your termination summary. Don't try to fix outside your scope.

## What's NOT here (because it's role/task-specific)

The dispatch prompt provides ONLY:
- Your role + task ID + branch (1 line)
- Read pointers to your task spec + relevant spec files (1 line)
- Delta-not-in-substrate: any context, debug hints, or decisions made by orchestrator that aren't in the .md files (≤2 lines)
- Termination signal reminder if non-standard (1 line)

If your dispatch prompt says more than ~80 words, the orchestrator is over-prescribing. Read the spec files; that's where the answers live.
Loading
Loading