Commit Graph
204 Commits
Author SHA1 Message Date
Matt TooheyandClaude Fable 5 4b9b0639b2 refactor(desktop): retire codex version gate and bridge npm-install flow
With the ACP bridges (@agentclientprotocol/claude-agent-acp,
@agentclientprotocol/codex-acp) bundled with the app at pinned versions
and resolved ahead of user installs, three pieces of machinery are dead
code for those two runtimes:

- The codex 0.16.x version gate: probe_codex_acp_major_version,
  codex_adapter_availability / codex_adapter_is_outdated, and the
  AdapterOutdated availability status (Rust enum variant plus the
  frontend "adapter_outdated" union member and all its UI branches).
  The bundled adapter is always the pinned 1.x package, so probing for
  the deprecated @zed-industries/codex-acp package has no trigger left.
- The EEXIST uninstall-then-reinstall two-step in plan_adapter_install,
  which existed only to swap the deprecated codex package for the new
  one. The plan is now the simple missing -> catalog-commands mapping,
  and the function drops its runtime_id parameter.
- The in-app `npm install -g` flow for the two bundled bridges: their
  catalog entries now carry empty adapter_install_commands and a hint
  that the adapter ships with the Buzz desktop app. Goose keeps its
  npm install flow untouched — its adapter is not bundled.

cli_login_requirements now classifies availability purely via
classify_runtime (which resolves bundle-first), replacing the codex
version-probe special case.

The configNudge validator rejects the retired "adapter_outdated"
literal, so stale nudge JSON emitted by an older app version cannot
render a card the current UI has no branch for (regression test
inverted accordingly).

This is a Buzz-specific retirement enabled by the bundling series; the
donor series (block/builderbot apps/staged, berd) had no equivalent
version gate to remove. File-size ledger entries for discovery.rs
(1178 -> 1056), discovery/tests.rs (1029 -> 825), and readiness.rs
(1754 -> 1583) are ratcheted down to bank the deletions, per the note
left in the bundled-resolution commit.

Verification:
- cargo test --lib (desktop/src-tauri): 1381 passed, 0 failed
- cargo clippy --lib --tests -D warnings: clean
- cargo fmt --check: clean
- tsc --noEmit: clean; biome check src: no new diagnostics
- pnpm test (desktop): 2744 passed, 0 failed
- node scripts/check-file-sizes.mjs: pass with ratcheted limits

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
2026-07-15 13:43:26 +10:00
Matt TooheyandClaude Fable 5 f88d903534 feat(desktop): surface bundled-bridge Node.js requirement in Doctor
The bundled ACP bridges are shell shims that exec node; without a
suitable Node.js on the spawn PATH the first agent session dies with a
bare exit 127. Surface the requirement in the Doctor panel instead:

- New managed_agents::node_runtime module reads the staged
  resources/acp/node-runtime.json manifest (one entry per npm-sourced
  bridge, each with its own required Node major), resolves node from
  the same augmented PATH the agent spawn and CLI auth probes use (so
  the check cannot disagree with what the wrapper shims find at spawn
  time), probes `node -p process.versions.node` with a 10s timeout,
  and reports pass/warn with a per-bridge satisfied/unmet/unknown
  verdict list. A missing manifest keeps the check silent (no
  npm-sourced bridges bundled); an unreadable one warns instead of
  hiding a packaging break.
- New check_acp_node_runtime Tauri command plus a Doctor panel section
  (message, node path, per-bridge requirements, Install Node.js fix
  link on warn) that the Re-run button refreshes alongside the runtime
  rows. The e2e mock bridge grows a nodeRuntimeCheck fixture knob.
- tokio gains the "process" feature for the async node probe.

Readiness gating for bundled bridges needs no code here: Buzz's
classify_runtime already reports adapter_missing when find_command
(which prefers the bundle since the previous commit) cannot resolve
the bridge, and cli_login_requirements resolves the adapter the same
way — so a broken bundle reads not_installed instead of ready. This
is the behaviour squareup/berd 17c5e9e5 had to add explicitly.

Ports block/builderbot apps/staged adea4017 (node-runtime doctor
manifest), itself a port of squareup/berd 07087303.

Verification:
- cargo test --manifest-path desktop/src-tauri/Cargo.toml --lib:
  1392 passed, 0 failed, 11 ignored (10 new tests: version parsing,
  requirement labels, all four check states, manifest missing/invalid/
  loaded including the exact staging-script JSON shape)
- cargo clippy --all-targets: clean; cargo fmt --check: clean
- desktop: tsc --noEmit clean; biome clean; pnpm test 2744 passed
- playwright doctor-states.spec.ts (smoke): 8 passed, including new
  06-node-runtime-pass / 07-node-runtime-warn /
  08-node-runtime-hidden-when-not-bundled

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
2026-07-15 13:40:57 +10:00
Matt TooheyandClaude Fable 5 f32d436daa feat(desktop): resolve bundled ACP bridge tools ahead of user installs
Register the staged ACP tools bin dir (BUZZ_ACP_TOOLS_DIR dev override,
else the resources/acp/bin Tauri resource dir) once at app setup, and
consult it everywhere bridge commands are resolved:

- New managed_agents::acp_tools module: OnceLock registration plus
  command_in_bundled_dir, which resolves bare command names only —
  path-like commands name a specific binary the user picked and are
  never redirected into the bundle (Path::join with an absolute path
  would replace the bundled dir entirely).
- resolve_command_uncached consults the bundled dir first, so the
  discovery sweep, readiness find_command, and spawn-time agent-command
  resolution (BUZZ_ACP_AGENT_COMMAND) all prefer the pinned bridges.
  Registration runs at the top of .setup() because resolutions are
  cached for the app lifetime.
- build_augmented_path gains the bundled dir as its highest-priority
  segment, covering both the agent spawn PATH and the CLI auth-probe
  PATH, and now joins entries best-effort: an entry embedding the PATH
  separator (legal in macOS paths) is dropped with a log line instead
  of collapsing the entire augmented PATH to None.

The donor's GOOSE_SEARCH_PATHS pinning is deliberately not ported —
Buzz spawns bridges via its own buzz-acp harness, which takes the
resolved command from BUZZ_ACP_AGENT_COMMAND and the augmented PATH.

The discovery.rs file-size ratchet is bumped 1171 -> 1178 for the new
sweep check; the codex version-gate retirement later in this series
shrinks the file and ratchets it back down.

Ports block/builderbot apps/staged 55eb2772 (resolve bundled ACP tools
at runtime) and afa524e7 (best-effort PATH join), themselves ports of
squareup/berd 2add3727 and bb912c96.

Verification:
- cargo test --manifest-path desktop/src-tauri/Cargo.toml --lib:
  1382 passed, 0 failed, 11 ignored (14 new tests cover env-override
  precedence, bare-name-only bundled resolution, executable checks,
  bundled-dir PATH priority, and un-joinable entry handling)
- cargo clippy --all-targets: clean; cargo fmt --check: clean

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
2026-07-15 13:40:04 +10:00
Matt TooheyandClaude Fable 5 a29a3da6fe feat(desktop): pin and stage bundled ACP bridge tools
Buzz desktop spawned the claude-agent-acp and codex-acp bridges from
whatever the user had installed globally — an unpinned `npm install -g`
surface with no integrity checking, which produced stale-bridge drift
(the deprecated @zed-industries/codex-acp 0.16.x gate) and
missing-tool failures. Bundle both bridges as app resources instead,
pinned per target:

- desktop/acp-tools.lock.json pins @agentclientprotocol/claude-agent-acp
  0.58.1 and @agentclientprotocol/codex-acp 1.1.2 (npm `latest` at time
  of commit) for the four supported targets, with integrity hashes and
  Block Artifactory tarballs for the package, its claude-agent-sdk /
  @openai/codex dependency, and the per-target native package.
- desktop/scripts/update-acp-tools-lock.mjs regenerates the lock from
  the registry's `latest` dist-tags, failing loudly on any unresolvable
  package — never silently pinning an older version. Ranged
  dependencies (codex-acp's ^0.144.0) resolve to the highest matching
  version when `npm view` returns an array.
- desktop/scripts/ensure-acp-tools.sh installs the locked tools into a
  shared dev cache (~/Library/Caches/buzz-dev/acp-tools), validates
  versions + integrity against the lock, and stamps staged binaries
  next to the shared bin dir so any lock change — including a revert —
  forces a re-stage; binaries no longer in the lock are pruned.
- desktop/scripts/prepare-acp-tools-resource.sh stages the vendored npm
  trees + node wrapper shims into desktop/src-tauri/resources/acp,
  writes the node-runtime.json manifest for the app's Node.js doctor
  check, and ad-hoc signs every nested Mach-O (file(1) scan — the codex
  package vendors rg, zsh, and codex-code-mode-host beyond the main
  CLIs) so Gatekeeper doesn't kill them in local builds.
- desktop/scripts/lib/acp-node-wrapper.sh is the single wrapper-shim
  generator shared by both scripts, so the dev-cache and bundled
  wrappers (and the Node major they enforce) cannot drift.
- Wiring: `just dev` / `just staging` stage the resources and export
  BUZZ_ACP_TOOLS_DIR; `just desktop-release-build` stages per target
  before `tauri build`; `just bump-acp-tools` reruns the lock updater;
  tauri.conf.json bundles resources/acp; staged artifacts are
  gitignored with a .gitkeep placeholder.

Runtime resolution of the staged dir follows in the next commit. The
sprout-releases internal pipeline will need the same staging step
before its `tauri build`; that lives in a separate repo.

Ports the build-time half of the Staged implementation in
block/builderbot#876 (branch commits 16b115a7 bundle feature, f5c6bba9
re-stage after lock revert, 288fa7eb shared node wrapper lib, adea4017
node-runtime manifest, 5124302a sign all nested Mach-Os, de6a9782
ranged-dependency updater fix), itself ported from squareup/berd
f07df1d2 + 1db993fb + 24d7518b + 07087303 + 737e33a5.

Verified: update-acp-tools-lock.mjs regenerated the lock against the
Block registry (byte-identical pins to the donor lock; both packages
confirmed at npm `latest`); fresh stage installs both tools and the
staged wrappers report 0.58.1 / 1.1.2; no-op re-run performs zero npm
installs; a stamp/lock mismatch forces a re-stage and stray binaries
are pruned; all five staged Mach-Os pass `codesign --verify`; cargo
check on desktop/src-tauri passes with the new resources entry.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Signed-off-by: Matt Toohey <contact@matttoohey.com>
2026-07-15 13:38:21 +10:00
Will PflegerandGitHub 1742dce7b2 feat(desktop): add API key field, global default indicators, and collapsed advanced (#1875) 2026-07-14 20:10:39 -04:00
448baeef77 feat(teams): unify team model, snapshot sharing, and PNG memory parity (#1846)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-14 17:10:51 -04:00
cf97237965 feat(desktop): add Sign Out to Settings to reset and relaunch (#1842)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-14 16:52:57 -04:00
Will PflegerandGitHub 1aec7ea7a7 fix(desktop): resolve Doctor install shell and command detection on Windows (#1854)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
2026-07-14 13:05:25 -04:00
a653406309 ci(desktop): surface flaky E2E tests instead of retry-masking them (#1838)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-13 22:14:40 -04:00
020ac7f405 fix(desktop): resolve Git Bash for Windows shell tool via PATH/git/registry fallback (#1821)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-13 16:53:02 -04:00
51ee1c473d feat(desktop): show read-only MCP server config (#1780)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-13 16:29:21 -04:00
095f3c7280 fix(desktop): centralize known-agent trust set in useKnownAgentPubkeys (#1703)
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Signed-off-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: npub12gtutshhh76rx0jx697f32f9tffd4hhp3hx58fp4x6u4uemkm7sqf8f757 <5217c5c2f7bfb4333e46d17c98a9255a52dadee18dcd43a43536b95e6776dfa0@sprout-oss.stage.blox.sqprod.co>
2026-07-13 11:01:46 -04:00
11a286b9a4 feat(desktop): auto-restart setup-mode agents after adapter install, badge drift fallback (#1786)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-12 22:27:51 -04:00
1fa91f5691 refactor(desktop): remove legacy persona-card flows (#1781)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-12 21:05:03 -04:00
1580046b3c feat(desktop): add buzz-agent-snapshot v1 export, import, sender-native send, and recipient card/import (#1753)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-12 19:30:21 -04:00
Will PflegerandGitHub d2e87e1ca7 feat(desktop): add key backup and agent defaults to onboarding, make avatar optional (#1767) 2026-07-12 18:46:02 -04:00
Will PflegerandGitHub f3319dd111 fix(desktop): correct provider and model handling in agent config dialogs (#1764) 2026-07-12 18:23:27 -04:00
Will PflegerandGitHub 7c346d7f85 fix(desktop): cascade persona deletes and restart agents on global config save (#1766) 2026-07-12 18:03:36 -04:00
Will PflegerandGitHub 25bb714752 fix(desktop): make doctor installs retryable with per-runtime progress and auth status (#1765) 2026-07-12 17:42:35 -04:00
6d1a77e492 fix(codex): swap to @agentclientprotocol/codex-acp 1.x + detect outdated adapter (#1750)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-12 16:52:04 -04:00
ec37625522 fix(desktop): surface codex config-parse failures and -32603 internal errors clearly (#1745)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 21:25:52 -04:00
e8df6ba694 fix(desktop): fix workspace rail badge disappearance and persist mark-as-unread (#1747)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 21:15:53 -04:00
58aee8f913 fix(desktop): preflight npm prefix writability in doctor installs (#1732)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 19:25:58 -04:00
26966aacec feat(desktop): add explicit Edit avatar CTA in agent instance edit dialog (#1736)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 17:58:26 -04:00
67a2d047eb fix(observer): order system prompt below current-session divider on restart (#1734)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 17:44:12 -04:00
d9e4edbbf5 feat(desktop): default observer archive on for dev-nest builds (#1726)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 16:06:25 -04:00
2f2ad409a7 feat(desktop): thread baked build env into global agent config UI (#1722)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 15:45:42 -04:00
77c08365e4 feat(desktop): global agent config defaults with readiness/spawn parity (#1448)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-10 13:38:33 -04:00
Will PflegerandGitHub 1f48860b7b fix(desktop): propagate agent definition edits to instances and remove dead config knobs (#1715) 2026-07-10 13:21:48 -04:00
5f0d8309d2 fix(desktop): make @mention clicks reliably open the profile panel (#1705)
Signed-off-by: Matt Toohey <contact@matttoohey.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 09:15:33 -07:00
Will PflegerandGitHub 389a956e02 chore(desktop): remove dead archive-migration and keyring load_readonly helpers (#1701) 2026-07-10 00:08:28 -04:00
e15f068571 fix(desktop): stop losing imported identity on every launch (#1568)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-09 17:58:36 -04:00
e5d215e3c2 fix(desktop): isolate dev keyring from production and make BUZZ_SHARE_IDENTITY keyring-aware (#1680)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-09 17:33:52 -04:00
1f2afce29d fix(desktop): migrate Databricks V1→V2 records at boot and fix readiness gate (#1686)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-09 17:29:03 -04:00
4f1a487ab4 feat(config-nudge): distinguish install/auth state in cli_login nudge cards (#1633)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-08 16:00:03 -04:00
Aaron GoldsmithandGitHub 3e982fd371 fix(desktop): make ⌘K open the composer link editor for selections (#1644)
Signed-off-by: Aaron Goldsmith <aarong@squareup.com>
2026-07-08 10:24:17 -07:00
Will PflegerandGitHub 563dab92e4 fix(linux): make AppImage work on Mesa 25+ / GLib 2.88 distros (#1567) 2026-07-08 13:18:48 -04:00
klopez4212andGitHub 5b1a53ceba Update DMG background and label size (#1629) 2026-07-08 15:28:32 +01:00
5dce80aff5 feat(desktop): unified AgentRecord groundwork — record-first resolution + runtime materialization (Phase 1A.1) (#1618)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-07 20:24:35 -07:00
Will PflegerandGitHub e5f831d2c2 fix(desktop): restrict shared-agent sync to dev data dirs (#1597) 2026-07-07 17:35:15 -04:00
cc42a49799 feat(desktop): restart-required badge from spawn-time config hash (#1602)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
2026-07-07 13:53:58 -07:00
c5a541ee2d feat(desktop): boot-time reconcile of managed agents to relay events (#1601)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
2026-07-07 13:53:41 -07:00
777babf393 feat(desktop): canonical <PubKey> component — hover to view/copy full keys, owner "you" labels (#1589)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-07 13:35:15 -07:00
Will PflegerandGitHub a3ee2c5693 fix(desktop): preserve agent model/provider when persona snapshot fields are blank (#1583) 2026-07-07 12:49:31 -04:00
b394e95ef0 feat(desktop): active-draft badge, send-from-drafts confirm dialog, thread-deleted state (#1581)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-07 12:48:57 -04:00
Will PflegerandGitHub b90e80443e fix(desktop): treat baked build env vars as satisfying required agent config (#1580) 2026-07-07 12:30:31 -04:00
dcbb3ff789 fix(nest): use buzz-dev symlink name for dev builds (#1587)
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-07 12:17:53 -04:00
c258ffc4a8 refactor(desktop): unify EditAgentDialog styling with PersonaDialog (#1540)
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co>
2026-07-07 16:03:39 +01:00
ed84a87358 feat(desktop): emoji avatar picker for agents + reliable picker scroll (#1576)
Signed-off-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub1n6taw59js7ztz8pt9vma9uqx6g3gcvrwg37nmx9m8lq88yla0tjqfy2ncn <9e97d750b28784b11c2b2b37d2f006d2228c306e447d3d98bb3fc07393fd7ae4@sprout-oss.stage.blox.sqprod.co>
Co-authored-by: npub13fn4ahfnvaa2qwylvegdgeajqs0mph6v4qsw4jcqnw4mjh3hzh2quuucm5 <8a675edd33677aa0389f6650d467b2041fb0df4ca820eacb009babb95e3715d4@sprout-oss.stage.blox.sqprod.co>
2026-07-07 07:16:31 -07:00
1f5ba5bb27 fix(desktop): sync derived active-turn liveness in channel activity path (#1492)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-07 03:59:23 +00:00