Commit Graph
1295 Commits
Author SHA1 Message Date
klopez4212andClaude Fable 5 b93d168ccf Place unanchored turn activity by time instead of pinning it last
Turn blocks attach to their prompt message by id; when the id can't be
matched (replayed backlog outside the fetched window, a prompt that
didn't carry the id) the block fell into the trailing bucket rendered
after ALL messages — so old "Thought for Xs" summaries sat stuck at the
bottom while newer messages and turns rendered above them.

Unmatched blocks now attach to the latest message at or before the
block's start time (5s skew tolerance for the agent-host clock), so
they render at their chronological spot and move up naturally as the
conversation continues. The trailing bucket remains only for blocks
with no usable timestamp or an empty message list.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:51:25 +01:00
klopez4212andClaude Fable 5 83d577dc34 Ellipsize the shimmer overlay and center the stop icon
The shimmer ::before repeats the full data-shimmer-text, so on
truncating labels it painted the clipped characters over the base
text's ellipsis. The overlay now truncates identically (same font and
box, so the ellipsis lands in the same spot).

The stop square sized its svg directly, which competed with the
button's [&_svg]:size-4 rule and sat the glyph off-center — the size
override now lives on the button so class merge resolves it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:51:24 +01:00
klopez4212andClaude Fable 5 e369ad801e Composer stop button, message-derived branch, muted markers, shimmer punch
Stop button: while the chat's agent has an active turn, the composer's
send button becomes a stop button that sends the cancel-turn control
frame to the agent; a user message in flight keeps the sending spinner.
(MessageComposerProps moves to a sibling file to stay under the
1000-line ceiling.)

Branch chip: tool activity only exists from observer-subscription time,
so a worktree created before the app attached left "No current branch"
even though the agent had announced it. The agent's persisted messages
are now a fallback source — "…on branch kennylopez-dictation",
backticked branch names, and quoted git commands all parse.

Markers: the completed-work expander label and tool preview text drop
to muted-foreground so every marker row reads as secondary to the
conversation.

Shimmer: per-theme band colors — light keeps primary washed toward
white; dark mixes primary toward black in oklch, which keeps the hue
saturated instead of graying into the background, for a clearly
stronger sweep against near-white text.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:51:24 +01:00
klopez4212andClaude Fable 5 ba8ac20fec Make the accent shimmer contrasty and robust to mid-turn attach
Contrast: the accent shimmer band swept raw primary, which sits too
close to the text's lightness in both themes (58%-L purple vs
near-black text in light; 80%-L purple vs near-white text in dark) and
barely read. The band now mixes primary toward the background — lighter
in light mode, darker in dark mode, both directions pulling away from
the text — and narrows so the highlight covers more visible text per
pass.

Robustness: observer frames are ephemeral, so an app subscribing
mid-turn missed turn_started and the turns store stayed empty (dark
sidebar shimmer, no working badges) until a liveness ping happened to
land. Any frame carrying a turn context — tool calls included, which
stream constantly during work — now establishes the turn, still gated
by the terminal tombstone so completed turns stay dead.

Adds an e2e spec covering the sidebar title shimmer end to end via
seeded active turns.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:18 +01:00
klopez4212andClaude Fable 5 463c74d5a2 Show the agent's live branch in the work panel, animated on change
The branch chip previously only knew head.ref from the GitHub PR, so it
sat on "No current branch" until a PR existed and snapped when it did.
The chat's channel-scoped transcript already carries the agent's shell
commands, so the panel now derives the current branch from the latest
`git worktree add` / `checkout -b` / `switch` the agent ran (live
activity wins over the PR's head ref) and swaps the chip text with the
same character animation the chat title uses.

File checkouts, `--` restores, and bare shas are ignored so only real
branch moves update the chip.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:17 +01:00
klopez4212andClaude Fable 5 e787698a76 Expandable CI monitor with per-check runs and open-comment count
The CI chip in the chat work panel is now a dropdown: the summary row
keeps the aggregate state plus a chevron, and expanding it lists each
check run with its own pass/fail/pending icon, followed by the two
automation checkboxes (moved out of their standalone chip).

The comment count now shows review threads still awaiting the PR
author's reply instead of the raw total — REST can't see GitHub's
resolved bit, so replying is what clears a thread. New
fetch_github_pr_comment_state command groups review comments into
threads and counts the ones whose last word isn't the author's; the
address-comments automation nudges on rises in that count and re-arms
once it returns to zero.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:17 +01:00
klopez4212andClaude Fable 5 1ee49bce2f CI monitor and automation toggles in the chat work panel
The work drawer becomes a PR monitor: a CI chip shows running (with
progress), failing (red, count), or passing (green) from the head
commit's check runs, alongside the PR's comment count — both polled
while the panel is mounted.

Two persisted per-chat checkboxes arm automation: "Auto-fix CI
failures" prompts the chat's agent to investigate and fix once a head
sha's checks settle red (one nudge per sha), and "Address comments &
resolve" prompts it to work through comments and replies, reply, and
resolve addressed threads whenever the comment count rises (watermarked
so it never repeats).

Adds fetch_github_check_summary and head sha/comment counts to the PR
fetch.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:17 +01:00
klopez4212andClaude Fable 5 e24f4a8c8a Defer opening the rename dialog past the context menu's close
Opening the dialog synchronously from the menu item's onSelect races
Radix's menu close/focus-restore against the dialog's focus lock and
can freeze the webview (observed as an app crash on rename). Deferring
one tick lets the menu fully close first.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:16 +01:00
klopez4212andClaude Fable 5 8aa9839884 Always offer the work drawer; lighten the Share button
The header's PR toggle now shows for every chat: the drawer auto-opens
once the agent produces a pull request and shows a "No current branch"
empty state before that (explicit toggles override per chat). The
Share button trades its filled pill for a light border stroke with a
hover fill.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:16 +01:00
klopez4212andClaude Fable 5 f8a84deb63 Widen the work drawer and match generic card styling
The drawer grows to w-96 so the PR card's stats fit, and the container
wash is gone: the branch chip and card use the same attachment styling
as the generic link chips, directly on the chat background.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:16 +01:00
klopez4212andClaude Fable 5 090d5f6d9c Reserve the rich PR card for the chat work drawer
Plain dropped GitHub PR links go back to the compact static chip they
had before; the live rich card (status, diff stats) now appears only in
the chat work drawer — at the same compact-attachment scale as the
generic chips — and agent-authored messages keep their banner variant.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:16 +01:00
klopez4212andClaude Fable 5 0640bd31b2 Soften the work panel container to a muted wash
bg-secondary read too heavy next to the conversation; bg-muted/40
keeps the grouping while blending with the chat background.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:15 +01:00
klopez4212andClaude Fable 5 8f8c4a70e6 Drop the Work label from the chat work panel
The branch chip and PR card speak for themselves.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:15 +01:00
klopez4212andClaude Fable 5 c3d49f111c Give the work panel's PR card its own surface
The card's default muted background matched the panel's secondary
container exactly; it now uses the same background inset as the branch
chip so both read as distinct items on the surface.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:15 +01:00
klopez4212andClaude Fable 5 c201f0431a Style the work drawer as a secondary-surface container
The work module's contents (label, branch chip, PR card) sit in a
rounded secondary-background container, the divider against the
conversation is gone, and the drawer eases open/closed on its width
(300ms ease-out) instead of popping — the panel stays mounted so the
close animates too.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:14 +01:00
klopez4212andClaude Fable 5 4224f9d511 Drop the leading icon from the chat header
The chat title stands alone in the header — the MessageCircle glyph
added no information. Other modes keep their icons.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:14 +01:00
klopez4212andClaude Fable 5 8c7f49d1fb Toggle the chat work panel from the header
A pull-request button sits left of the chat settings menu whenever the
agent has posted a PR, toggling the top-right work module (tinted
primary while open; each chat starts with it visible). The panel's
card now uses the standard rich PR card style, matching PR link cards
elsewhere.

Splits ChatList out of ChatsScreen (file size ceiling) with the
shared-chat metadata check moved to lib/chatShared.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:14 +01:00
klopez4212andClaude Fable 5 3c23b8e62c Stop Vite from watching test artifacts
A Playwright or build run in the same checkout wrote playwright-report/
test-results/dist, and the dev server's watcher force-reloaded any live
app window on every write — killing in-flight Tauri IPC ("Couldn't find
callback id") and making interactions appear to crash mid-flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:14 +01:00
klopez4212andClaude Fable 5 f19c35e025 Chat stream polish, PR work panel, and branch e2e fixes
Chat stream:
- Activity markers span the full conversation column (matching the
  "Thought for Xs" row) instead of capping at 42rem.
- Own bubbles drop the redundant "You" header.

PR work panel: when the chat's agent posts a pull request, a module
docks top-right inside the chat area (conversation and composer shrink
to make room) showing the PR's source branch and the live PR card.
fetch_github_pull_request now returns head.ref for the branch chip.

Branch e2e repairs (both regressions pre-dated today):
- "Jump to latest" now re-asserts the bottom until row re-measurement
  settles — a smooth jump aimed at a stale scrollHeight landed short
  once grouped rows changed height estimates.
- Sidebar dnd gains a keyboard sensor with keyboard-aware collision
  detection, and channel-assignment drop zones are disabled while a
  section drag is active. The dnd e2e uses a viewport tall enough that
  auto-scroll can't move the drop target mid-drag.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:13 +01:00
klopez4212andClaude Fable 5 ecaa8573d5 Fade chat content under the header like the sidebar's pinned edge
Adds an opt-in top fade overlay to the message scroller (mirroring its
bottom fade) and enables it for chats, so messages dissolve as they
scroll under the chat header — the same treatment the sidebar's pinned
header applies to channels scrolling beneath it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:13 +01:00
klopez4212andClaude Fable 5 faed867294 Phase-shift the shimmer keyframes instead of a negative delay
WKWebView renders the negative calc() animation-delay unreliably, which
killed the sweep in the real app while Playwright engines showed it
fine. Encode the same mid-sweep start directly in the keyframes (the
50%→50.01% wrap lands while the band is outside the text, so the jump
is invisible) and drop the delay.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:13 +01:00
klopez4212andClaude Fable 5 2c4b5b0f7b Steady the Working shimmer; instant archive slot
The Working marker mounts and unmounts with every gap between tool
executions; replaying its entrance fade on each reappearance read as
blinking instead of a shimmer. Drop the entrance animation on that row
and start the shimmer band mid-sweep (negative animation-delay) so even
short-lived mounts show the moving band rather than the transparent
lead-in.

The sidebar archive slot now appears instantly on hover instead of
animating its width.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:12 +01:00
klopez4212andClaude Fable 5 60a67a9f3b Keep sidebar shimmer titles readable and truncating
Two fixes to the working-chat shimmer in the sidebar:

- New buzz-shimmer-accent variant: the title keeps its normal text
  color and a primary-colored band sweeps across it, instead of the
  default treatment that dims the base text to make the highlight
  read.
- The shimmer class now lives on the truncating span itself (the
  MarkerLabel pattern), so long names ellipsize normally. The archive
  slot is zero-width until hover/focus, giving the title the full row
  and only shrinking to make room for the button on demand.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:12 +01:00
klopez4212andClaude Fable 5 7d7babbc2f Chat sidebar and stream polish
- Sidebar chat titles shimmer while the agent works, replacing the
  spinner (the archive affordance keeps its hover slot).
- Chat projects use the Notebook icon family instead of folders
  (sidebar groups, project picker, new/none rows).
- Right-click on any chat offers Rename (dialog writing owner
  metadata — hidden on shared chats), Pin/Unpin (persisted per
  workspace; pinned chats sort to the top of their section), and
  Archive.
- Solo chats (you plus one agent) hide the agent's avatar and name so
  replies read as a plain stream; identities return automatically the
  moment another agent or person participates.

The switching e2e now covers the context menu, pinning order, and
rename round-trip.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:12 +01:00
klopez4212andClaude Fable 5 1fe8695c69 Track live turns per turn id; distinct agent-authored PR cards
Three chat fixes:

- "Working" no longer renders once per turn block: the active-turn store
  now exposes the live turn ids per channel, so only the actually-live
  turn shows the marker and completed turns collapse even while a new
  turn runs (previously a channel-wide boolean re-expanded every old
  turn and gave each its own Working row).

- Agent-authored PR links render a distinct, prominent card (banner
  layout with repo, status pill, title, and diff stats) instead of the
  compact chip a pasted link gets. Threaded through a Markdown
  agentAuthored flag set on agent message rows.

- New chats resolve their default agent immediately: quick-start
  refreshes the managed-agents cache after ensuring Fizz, so the first
  chat's agent replies render as agent rows instead of member bubbles.

The chats e2e now covers the agent card and pins mock message ordering
with explicit timestamps (same-second events sorted unstably).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:12 +01:00
klopez4212andClaude Fable 5 7d5f97d742 Render rich GitHub PR cards in messages
PR links in messages now show a live card instead of the static
preview: repo and PR number, PR title, current status (open / draft /
merged / closed with a matching state icon), additions in green,
deletions in red, and the files-changed count. The whole card links to
the PR.

Details come from the GitHub REST API via a new Tauri command —
anonymous for public repos, with GITHUB_TOKEN/GH_TOKEN attached when
the shell that launched the app has one. Any fetch failure (rate
limit, private repo without a token, offline) falls back to the
existing compact card.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:46:11 +01:00
klopez4212andClaude Fable 5 d24d56f809 Restore the last-viewed chat when returning to the Chats tab
The Chats tab always landed on the new-chat screen. Remember the
last-viewed chat per workspace (localStorage) and redirect plain
/chats navigations back to it when it still exists. Explicit new-chat
navigations carry a projectId in the route search and are never
redirected.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:45:34 +01:00
klopez4212andClaude Fable 5 17e18343f1 Hide turn-setup lifecycle markers in chats
"Turn started" / "Session ready" rows repeat on every turn without
telling the user anything actionable — the Working marker (and its
raw-event dropdown) already covers turn liveness. Drop them from the
chat timeline and the completed-turn dropdown; their timestamps still
feed the "Thought for Xs" duration.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:45:34 +01:00
klopez4212andClaude Fable 5 9d67921af6 Anchor multi-message turns to the user's latest message
A turn can span several user messages — a mid-turn steer, or a batch
that merged a replayed backlog message with a fresh one. Chat activity
placement anchored the turn to the FIRST of them, so the turn's output
(including the reply to the newest message) rendered above the user's
latest message, pinning it to the bottom of the conversation.

Attach the block to the latest prompt/steer message id instead, and
make merged prompts resolve their prompt item to the newest embedded
Buzz event section rather than the oldest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:45:33 +01:00
klopez4212andClaude Fable 5 8f38eddcad Polish chats mode: live feedback, auto-titles, and turn readability
A batch of chat-mode UX improvements:

- Per-element shimmer on loading markers (label and elapsed time each
  get an aligned overlay instead of one misaligned combined pass).
- Slide-up entrance animation for newly arrived rows (messages and
  activity markers), recency-gated so opening a chat never cascades.
- Consecutive completed shell commands fold into "Ran N commands"; the
  in-flight command stays visible as its own live row until it lands.
- Chats auto-title once the conversation takes shape: agent-generated
  chat_title frames are preferred, with a lead-in-stripping heuristic
  as fallback. Titles swap in with the search-placeholder character
  animation, never override a manual rename, and the sidebar list now
  follows the metadata title.
- The "Working" row gets a dropdown showing the turn's recent raw
  observer events (reusing RawEventRail).
- The agent activation card holds a 20s grace window after activation
  so it doesn't flash back while the agent boots.
- Message scroller: bottom fade as an overlay (masks repaint per frame
  in WKWebView), removed content-visibility sizing that broke
  stick-to-bottom, simplified the scroll anchor.
- Fix duplicate sibling key that leaked a stacked header per chat
  switch, and circular sizing that collapsed the animated title.

Adds e2e coverage for the first-message flow (send, entrance
animation, retitle) and a header-stacking regression test.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:45:33 +01:00
klopez4212andClaude Fable 5 4a19f5ae25 Teach buzz-acp to title chats and replay unanswered chat backlog
Two chat-mode harness features:

- chat_title observer frames: after the first successful turn in a chat
  channel, run a tool-less side session (no MCP servers, no system
  prompt, observer muted so its wire traffic never pollutes the turn's
  transcript) that titles the conversation, and emit the sanitized
  result as a chat_title frame for the desktop to apply.

- chat backlog replay: chats now subscribe from just after the agent's
  own last reply (capped at 6h) instead of the startup watermark, so a
  message sent while the agent was stopped is delivered once the owner
  activates it, instead of being silently skipped forever.

Adds streamed assistant-text capture to AcpClient for side prompts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:44:38 +01:00
klopez4212andClaude Fable 5 1eacdea1d8 Add request deadlines to the desktop relay HTTP bridge
The shared reqwest client had no timeout, so a stalled connection (e.g.
an expired VPN tunnel that blackholes packets) left relay bridge calls
pending forever — chat creation and message sends spun indefinitely with
no error surfaced. Relay requests now carry a 30s per-request deadline
and the shared client gets a 10s connect timeout (connect-phase only, so
media streaming stays unbounded).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-07 07:43:31 +01:00
klopez4212 fb548c6373 Add Chats mode 2026-07-07 07:43:31 +01: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
e3008b3604 fix(personas): remove goose runtime pin from Fizz built-in (#1566)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 23:36:32 -04:00
08e707eb57 feat(acp,buzz-agent): thread model name through NIP-AM kind 44200 emit path (#1564)
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 21:12:42 -04:00
04a9d10299 sync channel sort preferences across clients (#1556)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 23:53:23 +00:00
2ef26ec210 fix desktop canvas header blur in split channel management (#1558)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:46:31 -07:00
1aa87bb26b feat(composer): compose spoiler, annotation, and tooltip controls (#1491)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:36:01 -07:00
36ac5243ff feat(channel list): add persistent channel sort toggle (#1505)
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>
Co-authored-by: npub1223z34hd7vtwc6qj4s7flsxkj644nlre2nthu7lrrmkumhu3xddsrx9r6w <52a228d6edf316ec6812ac3c9fc0d696ab59fc7954d77e7be31eedcddf91335b@sprout-oss.stage.blox.sqprod.co>
2026-07-06 16:31:22 -07:00
Will PflegerandGitHub 5f7f774ea1 chore(release): release Buzz Desktop version 0.3.45 (#1561) v0.3.45 2026-07-06 19:15:02 -04:00
75b52ad7e5 chore(deps): bump crossbeam-epoch to 0.9.20 for RUSTSEC-2026-0204 (#1563)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co>
2026-07-06 18:57:47 -04:00
484bede759 fix(archive): atomic remove-kind path + split test modules (#1562)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1fgdl5qqnh3k3f2xkqrvt7cujalhm623x4s7fdjdj5yrtp5fzjl9qrjpucw <4a1bfa0013bc6d14a8d600d8bf6392efefbd2a26ac3c96c9b2a106b0d12297ca@sprout-oss.stage.blox.sqprod.co>
2026-07-06 18:45:05 -04:00
429f54b4f4 feat(archive): add agent turn-metric (kind 44200) local archive (#1555)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 22:30:22 +00:00
d8355d3188 feat(desktop,buzz-acp): add harness-agnostic config bridge and setup-listener mode (#1411)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 18:23:38 -04:00
76806cb1f6 fix(desktop): stop edit-channel dialog hanging on "Saving..." (#1557)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 15:05:44 -07:00
7110788077 feat(archive): add local-save archive with observer-feed default-on option (#1442)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 17:41:56 -04:00
4c598dcef5 feat(desktop): add Slack-like Drafts inbox with persistence and image fix (#1539)
Signed-off-by: Will Pfleger <pfleger.will@gmail.com>
Co-authored-by: npub1mn7jgtj4w2pd0g0zeuhxsa6jy6p0rewxz4kujt98my82ahfmp72sxjexk7 <dcfd242e557282d7a1e2cf2e6877522682f1e5c6156dc92ca7d90eaedd3b0f95@sprout-oss.stage.blox.sqprod.co>
2026-07-06 17:40:57 -04:00
Yoav AmitandGitHub 3729a65156 fix(setup): fix syntax error in seed-local-community.sh (#1547) 2026-07-06 14:24:03 -07:00
0e87998f8f feat(desktop): add right-click context menu to workspace rail (#1552)
Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co>
2026-07-06 14:23:44 -07:00