npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 and Will Pfleger
5862b3109e
fix(desktop): close D-12, D-15, F8, C-10 gaps before Thufir pass 1/3
...
D-12: Revert mobile/pubspec.lock to origin/main. The meta 1.17→1.18 /
test 1.30→1.31 churn was a no-source-change lockfile bump introduced by
accident; reverting eliminates the unrelated diff.
D-15: Add OpenClaw execution-locus note to the preset's install_hint.
Eva's finding: openclaw acp executes tools inside the Gateway daemon, not
in the Desktop process. Desktop-injected BUZZ_* env vars reach the
openclaw harness process itself but do NOT automatically propagate to
the Gateway's execution environment. The install_hint now surfaces this
caveat so users who need BUZZ_* credentials at execution time know they
must set them on the Gateway's own environment.
F8 (onboarding navigate test): New pure-logic test file
postOnboardingNav.test.mjs proves the App.tsx postOnboardingNav
useEffect predicate — navigateAfterComplete does not fire before
machine.stage reaches 'ready', fires exactly once on the ready
transition, is cleared after firing (no double-fire), fires immediately
if nav arrives while already ready, and carries the exact
{to: '/settings', search: {section: 'agents'}} shape from
MachineOnboardingFlow's navigateToAgentSettings action.
C-10 (e2eBridge + handler tests): Extract save_custom_harness /
delete_custom_harness handler logic into e2eBridgeCustomHarnesses.ts
(exported module-level functions + mockCustomHarnesses Map +
resetMockCustomHarnesses). Wire the handlers into e2eBridge.ts:
- mockCustomHarnesses imported and appended to discover_acp_providers
results so saved custom harnesses appear in future discovery calls
- case 'save_custom_harness' → handleSaveCustomHarness
- case 'delete_custom_harness' → handleDeleteCustomHarness
New test file e2eBridgeCustomHarnesses.test.mjs (14 tests across 3
describe groups) proves: save → store, non-empty env preserved,
empty env absent, same-ID edit replaces, rename removes old + inserts
new, delete removes, delete idempotent, Map reference is shared.
Co-authored-by: Will Pfleger <pfleger.will@gmail.com >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
2026-07-25 01:55:03 -04:00
npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 and Will Pfleger
277d8b02db
feat(desktop): bring-your-own-harness (BYOH) generic ACP mechanism
...
Implement a generic BYOH mechanism that lets any ACP-speaking harness
(Cursor, Pi, Amp, OpenClaw, Hermes, etc.) work with Buzz without
maintaining separate backend code per harness type.
Backend (Rust):
- Add HarnessDefinition, HarnessSource, PRESET_HARNESSES (8 presets:
cursor/omp/grok/opencode/kimi/amp/hermes/openclaw) + custom harness
loading from ~/.config/buzz/custom-harnesses/
- warm_harness_registry_from_dir called at startup (before restore) and
transactionally on save/delete; try_record_agent_command returns typed
DANGLING_HARNESS_ID:<id> error — never silently falls to default
- Full descriptor resolved at spawn/readiness/spawn_hash paths; definition
env merges below Buzz-reserved vars; edit round-trip carries definition_env
in catalog entry
- All sweep paths (reap_dead_instance_agents, kill_stale_tracked_processes,
receipt cleanup) use marker/receipt ownership — no name-gating
- save_custom_harness validates before mutation; atomic write + old-file
delete on rename; preset ids reserved in check_id_collision
- buzz_sweep_owns_process cross-platform (no #[cfg(unix)] guard)
Frontend (TypeScript):
- Settings > Agents BYOH gallery: preset cards (Detected/Not-installed +
docs link, no Add button), custom cards (full edit/delete)
- ArgsEditor (repeatable rows) + EnvEditor (KEY=VALUE pairs)
- HarnessManagementCard + harnessFormLogic.ts (21 behavior tests)
- harnessGalleryLogic.ts (11 tests: detected-first sort, preset filtering)
- Onboarding: actionable 'More harnesses...' button → Settings > Agents
- PRESET_LOGOS bundled map; avatarUrl stripped from all surfaces
Tests: +27 frontend / +20 Rust lib (registry lifecycle, env round-trip,
sweep ownership, legacy-JSON serde, preset collision)
Co-authored-by: Will Pfleger <pfleger.will@gmail.com >
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
2026-07-25 01:20:14 -04:00
8398468ec9
Refine the mobile message composer ( #2730 )
...
## Summary
- replace the mobile composer sheet with a compact expanding capsule
- add vertically stacked attachment actions and an inline camera preview
- align suggestion, formatting, and send treatments with desktop
## Validation
- `just mobile-check`
- `just mobile-test` (541 passed, 1 skipped)
---------
Signed-off-by: npub102wg7q285p64ch2fjvstmf2ntn2sz3c4u5hmwatalc76mhsuauysftjtfj <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
Co-authored-by: npub102wg7q285p64ch2fjvstmf2ntn2sz3c4u5hmwatalc76mhsuauysftjtfj <7a9c8f0147a0755c5d499320bda5535cd5014715e52fb7757dfe3dadde1cef09@buzz.block.builderlab.xyz >
2026-07-24 16:32:22 -07:00
37f65c08dc
fix(mobile): handle buzz:// links ( #1826 )
...
Signed-off-by: Tom Brow <tomb@block.xyz >
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: Goose <opensource@block.xyz >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-14 16:00:13 -07:00
7b6e12657d
fix(mobile): fix agent avatars on mobile ( #1837 )
...
Signed-off-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1ux8n2yfs8qfvgd75s7kyhar2mztac355v6vmrz4juc9l3msw4pgstums9e <e18f3511303812c437d487ac4bf46ad897dc46946699b18ab2e60bf8ee0ea851@sprout-oss.stage.blox.sqprod.co >
2026-07-14 11:25:00 -07:00
fdd366bc18
chore(release): release Buzz Mobile version 0.3.33 ( #1828 )
...
Signed-off-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
Co-authored-by: npub1shglkdhngx3hrnhf4gf8vhpqdrmeludctechdvpwd3988zzs7ncq2cmtxu <85d1fb36f341a371cee9aa12765c2068f79ff1b85e7176b02e6c4a738850f4f0@sprout-oss.stage.blox.sqprod.co >
2026-07-13 15:16:09 -07:00
Will Pfleger and GitHub
1fc7488ea5
Serialize managed agent PATH tests ( #1777 )
...
Signed-off-by: Will Pfleger <pfleger.will@gmail.com >
2026-07-12 20:48:32 -04:00
Will Pfleger and GitHub
3b78dc5690
feat(mobile+desktop): two-tier Slack-style app icon badge ( #802 )
2026-06-03 18:16:49 -07:00
Will Pfleger and GitHub
56c504a4c7
feat: code block rendering, syntax highlighting, and compose fixes ( #803 )
2026-06-02 14:43:08 -07:00
fbbb2d1d6e
fix(deps): update dependency pointycastle to v4 ( #687 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Will Pfleger <wpfleger@block.xyz >
Co-authored-by: Will Pfleger <pfleger.will@gmail.com >
2026-05-26 22:16:00 +00:00
0faf89816c
fix(deps): update dependency package_info_plus to v10 ( #686 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-23 16:16:37 -04:00
renovate[bot] and GitHub
e968aa6bbc
fix(deps): update dependency flutter_secure_storage to v10 ( #684 )
2026-05-23 14:52:40 -04:00
75af57c92c
fix(deps): update dependency connectivity_plus to v7 ( #683 )
...
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-23 03:04:31 +00:00
3973080dce
Refine conversation visual affordances ( #615 )
...
Co-authored-by: Cursor <cursoragent@cursor.com >
2026-05-19 08:54:41 -04:00
1d926355b2
feat: show app version in mobile settings ( #425 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-29 13:15:47 -07:00
57186963e3
feat(mobile): multi-workspace support ( #408 )
...
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-27 13:47:06 -07:00
30adbad810
feat(mobile): day dividers, video upload, emoji picker & UX polish ( #396 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-24 09:32:36 -07:00
e2c94a8538
feat(mobile): image upload + media viewer parity with desktop ( #384 )
...
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-04-22 11:54:29 -07:00
fc67dac4c6
feat: NIP-AB device pairing — Phase 2 (desktop + mobile UI) ( #343 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 15:25:18 -07:00
a43c6df878
feat(mobile): upgrade mobile_scanner to v7 (Apple Vision) ( #336 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-16 08:28:27 -07:00
3d48be8777
[codex] Add mobile chat timeline rendering and hardening ( #327 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-15 08:55:32 -07:00
94d4e16461
feat(mobile): websocket streaming with real-time messaging ( #323 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 20:20:35 -07:00
3eabe74c61
feat(mobile): align design language with desktop and polish UI ( #321 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 14:33:48 -07:00
4c37a57cfe
feat(mobile): QR/code pairing flow with security hardening ( #317 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 10:44:54 -07:00
08be36471e
feat(mobile): add channel list with relay integration ( #315 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-14 08:42:29 -07:00
a444fb9516
feat(mobile): scaffold Flutter app with Riverpod & Catppuccin theme ( #306 )
...
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-04-13 09:55:14 -07:00