Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
e395892
feat(desktop): host MCP Apps as channel tabs
tmarman Jul 28, 2026
4d0fc44
fix(mcp): enforce app transport and sandbox policy
tmarman Jul 29, 2026
58a71fb
fix(desktop): complete MCP App channel lifecycle
tmarman Jul 29, 2026
1e29d32
chore: merge upstream main into MCP Apps
tmarman Jul 29, 2026
a9d6f0f
fix(desktop): keep MCP APIs behind feature module
tmarman Jul 29, 2026
9489a97
style(mcp): format app host modules
tmarman Jul 29, 2026
e7186ae
fix(desktop): harden MCP App policy and lifecycle
tmarman Jul 29, 2026
b628678
docs(architecture): document MCP App host boundary
tmarman Jul 29, 2026
c171b5f
Merge remote-tracking branch 'upstream/main' into explore/channel-sur…
tmarman Jul 29, 2026
11db9d3
fix(desktop): close MCP App review gaps
tmarman Jul 29, 2026
a15ef46
docs(architecture): clarify MCP App proxy path
tmarman Jul 29, 2026
45e7b51
chore: merge upstream main into MCP Apps
tmarman Jul 29, 2026
e30c7c4
fix(desktop): preserve MCP App review fidelity
tmarman Jul 29, 2026
3328f84
test(desktop): capture MCP App channel lifecycle
tmarman Jul 29, 2026
2e50615
Merge remote-tracking branch 'upstream/main' into explore/channel-sur…
tmarman Jul 29, 2026
65273fc
test(desktop): align MCP App evidence theme
tmarman Jul 29, 2026
5f5dbb5
chore: merge upstream main into MCP Apps
tmarman Jul 30, 2026
68bb27e
feat(desktop): pass scoped context to MCP Apps
tmarman Jul 30, 2026
dffb188
chore(branch): merge current upstream main
tmarman Jul 30, 2026
2ce1cc6
Merge remote-tracking branch 'upstream/main' into explore/channel-sur…
tmarman Jul 30, 2026
02a2945
Merge remote-tracking branch 'upstream/main' into explore/channel-sur…
tmarman Jul 30, 2026
a6bad51
Merge remote-tracking branch 'upstream/main' into explore/channel-sur…
tmarman Jul 30, 2026
4add5d6
fix(mcp-apps): harden channel app host
tmarman Jul 31, 2026
afb2d59
chore(branch): reconcile MCP Apps draft lineage
tmarman Jul 31, 2026
353df26
chore(branch): merge current upstream main
tmarman 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
80092c4
Merge MCP Apps channel tabs onto current upstream main
tmarman Jul 31, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -948,5 +948,5 @@ jobs:
run: gh release edit "desktop-v${VERSION}" --draft=false

- name: Upload latest.json to rolling release last
if: ${{ env.already_published != 'true' && !contains(needs.setup.outputs.version, '-') }}
if: ${{ !contains(needs.setup.outputs.version, '-') }}
run: gh release upload buzz-desktop-latest latest.json --clobber
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,10 @@
/dist/
/admin-web/dist/

# Python cache
__pycache__/
*.pyc

# lefthook-generated hook scripts (machine-specific)
.hooks/

Expand Down
31 changes: 31 additions & 0 deletions ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -712,6 +712,37 @@ Defines `parse_relay_message`, `OkResponse`, `RelayMessage` directly in `src/lib

---

### Desktop channel apps

Buzz Desktop can install an MCP App as a channel tab. The Tauri host reads the
app resource and sanitizes its Content Security Policy (CSP) before the user
reviews the requested domains and browser permissions. Buzz stores that
approved policy with the channel installation.

Buzz reads the resource again when the user opens the tab. The current policy
must be a subset of the approved policy. The trusted outer frame then places the
app HTML in an opaque-origin iframe with `allow-scripts`. The app can call
MCP tools that are visible to app callers through the host bridge. An app can
request a channel post, but Buzz publishes the exact attributed message only
after user approval.

For each MCP tool call, Buzz can add host-owned binding context under
`params._meta["xyz.block.buzz/context"]`. The current context contains available
community, channel, and app-installation references. Buzz removes any
caller-supplied value under the `xyz.block.buzz/*` host namespace before it adds
the current host value. These references are routing context, not authorization.
This contract does not currently define thread, project, or external Space
references.

See the [MCP App channel-host trust-boundary diagram](docs/architecture/mcp-app-channel-host.mmd).

This host is disabled on Windows until the WebView2 subframe IPC boundary has
been verified. The desktop UI does not advertise channel Apps on that platform,
the Rust connection boundary rejects them, and the untrusted App protocol is
not registered.

---

## 7. Security Model

Every security-sensitive operation uses an explicit, verified pattern. No implicit trust.
Expand Down
Loading