Skip to content

Polish inline message reactions and previews - #213

Merged
wesbillman merged 9 commits into
mainfrom
kennylopez-emoji-reactions-main
Sep 26, 2026
Merged

wesbillman merged 9 commits into
mainfrom
kennylopez-emoji-reactions-main

Conversation

@klopez4212

@klopez4212 klopez4212 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Render reactions as compact, wrapping 28 px pills with native and custom emoji, selected tint, and a brief rolling count change. Keep pill order tied to the first reaction while counts change.
  • Keep a small circular add-reaction control beside existing pills, with the picker above the row when space permits. Existing quick reactions in the message action bar continue to use the same reaction data.
  • Show a delayed reactor preview with the emoji name and comma-separated people. After the first preview opens, moving between pills shows the next one immediately with a short slide; leaving the row resets the delay. Reduced-motion settings remove the motion.
  • Give the reply avatar stack the requested spacing and use the avatar squircle mask for the thread control when its first participant is an agent.

Integration update (2026-09-25)

  • Merged main fff36cc7e119d870f689f8ed9d550c08ff27dbd9 without rewriting the original six commits. Resolved the React import conflict and preserved main's compact quick-reaction wrappers and picker focus behavior.
  • Corrected one inherited test assertion in ProfileAgentIdentity.test.tsx: public metadata discovery now makes an exact-profile kind-10100 read in addition to kinds 0 and 30315. The unchanged test failed on main 72ba8a21 independently of this PR. The corrected assertion still rejects additional owner/policy reads; no profile production code changed.
  • Removed three PR-only screenshot files from the source diff. Browser journeys still generate their captures under ignored test-results/browser/; these are not product assets or visual baselines.

Verification at d61a4110

  • Mandatory pre-commit and pre-push hooks passed, without bypass: TypeScript, design-system checks, 1,764/1,764 related unit tests across 121 files. All eight PR commits retain valid author-matching DCO trailers; hosted DCO Check succeeds.
  • 24/24 Chromium/WebKit checks passed across the full reactions, reactions-polish, avatar-shapes, and messages browser files. Command: bin/pnpm test:browser tests/browser/reactions.spec.mjs tests/browser/reactions-polish.spec.mjs tests/browser/avatar-shapes.spec.mjs tests/browser/messages.spec.mjs --no-deps --workers=2.
  • Full Vitest package run: 3,903 passed, 1 failed (356 files passed, 1 failed). The remaining failure is src/app/PluginImport.test.tsx:99: it expects “stays enabled and may run immediately” but the rendered copy says “stays on and may run immediately”. Both its test and implementation are unchanged from integrated main. This separate failure remains unresolved here; the full suite is not green.
  • Independent UI, relay/outbox, and integration reviews found no remaining introduced code blockers. The profile assertion correction received a separate source review.
  • New-head hosted CI: https://github.com/block/buzz-app/actions/runs/36166867000 . In progress at handoff, not watched or rerun. Required CI and code-owner approval remain gates; this is not merge-ready while the full-suite failure remains.

Test-layer and acceptance limits

The feature adds three browser cases for wrapping/picker geometry and real focus, controlled preview timing, and text containment. Existing browser files retain their full cases with selector/avatar assertions updated; no browser case was removed in this takeover. No new browser case or production behavior was added during integration. The profile-test repair has fail-on-clean-main / pass-on-integrated-head evidence. Touch-device, screen-reader, packaged-native and live-account acceptance were not exercised. Reaction ordering uses retained earliest events; reloads with a different retained history are not a cross-session ordering guarantee.

@klopez4212
klopez4212 requested review from a team, comp615 and wesbillman as code owners September 24, 2026 11:41
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-09-26T11:41:57.920896Z 571ac18 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9847413d5f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/AnimatedReactionCount.tsx
Comment thread tests/fixtures/emoji.tsx Outdated
Comment thread tests/browser/reactions-polish.spec.mjs Outdated
Comment thread src/features/messages/MessageReactions.tsx Outdated
Comment thread src/features/messages/MessageReactions.tsx Outdated

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested at 9847413d5f4d005354af16ddceb76654f507991e. Resolve the five inline findings with targeted regression coverage; the findings are P2 correctness/test defects, not an urgent production incident.

  • Restore the existing media-comment journey in both browser engines. Exact-head CI fails in Chromium and WebKit because tests/browser/messages.spec.mjs:547 now matches both Add reaction controls. Preserve the intended placements and scope the test to the control it exercises; this failure alone does not establish broken media behavior.
  • Validation was source-only on the pinned base/head, with an independent UI/input lane and existing hosted CI. JavaScript and Rust/tool jobs passed, but that does not exclude the key-dependent test defect below. No code/tests were executed or CI rerun for this review.
  • Browser/Tauri share these components; live relay, rendered geometry/touch/screen-reader behavior, and native-window acceptance remain unverified. After fixes, provide the affected full test-file results and green required CI.

Comment thread src/features/messages/MessageReactions.tsx Outdated
Comment thread src/features/messages/MessageReactions.tsx
Comment thread src/features/messages/MessageReactions.tsx
Comment thread src/features/relay/fold.ts
Comment thread src/features/messages/MessageReactions.tsx Outdated
@klopez4212
klopez4212 force-pushed the kennylopez-emoji-reactions-main branch from 9847413 to b761603 Compare September 24, 2026 13:22

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b7616039db

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/AnimatedReactionCount.tsx
@klopez4212
klopez4212 force-pushed the kennylopez-emoji-reactions-main branch from b761603 to b1e48ba Compare September 24, 2026 13:47

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b1e48ba86f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/AnimatedReactionCount.tsx
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Wes’s five inline findings are addressed on PR head 929f43a (reaction fixes in f91f920f). The media-comment journey now selects the inline Add reaction control without changing either control’s placement. I also updated test fixtures that became stale as main gained the rich editor and media viewer callback.

Validation on the updated branch:

  • Full tests/browser/messages.spec.mjs and tests/browser/reactions-polish.spec.mjs: 10/10 passed across Chromium and WebKit.
  • tests/browser/new-message.spec.mjs: 2/2 passed across Chromium and WebKit.
  • Pre-push: 1,363/1,363 selected unit tests, TypeScript, and design checks passed.
  • Exact-head required CI and DCO passed. The PR is mergeable; review still shows changes requested pending re-review.

I left the review threads open for your re-review.

@klopez4212
klopez4212 force-pushed the kennylopez-emoji-reactions-main branch from 929f43a to 9e1fa17 Compare September 24, 2026 15:57

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9e1fa17b6f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/Messages.module.css Outdated

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested at 9e1fa17b6f1f5b816a73046ff84b3984716d26b4 against e02fe33220fa497a2e7ee780c8295517b4f967fa.

  • P2: Bound reaction text and shortcode fallbacks. Reproduced in Chromium and WebKit. Merge criterion: contained text/counts with full accessible labels and regression coverage for both long inputs.
  • P2 validation: Control the preview-delay clock. The prior timing gap remains. Prove the 1200ms boundary, warmed-row switching and reset deterministically.
  • The five findings from my earlier review are fixed. The publication gate is fixed; all current PR commits have DCO trailers and hosted DCO succeeds.

Validation: 29/29 focused unit checks; 15/16 browser checks across Chromium/WebKit (reactions, reaction polish, messages, avatar shapes). Chromium reactions.spec.mjs:310 failed the Escape → Enter reopen path; WebKit passed. Failure trace preserved, no retries. Its cause/preexistence is not established, so I am reporting it separately rather than claiming a third introduced defect. Current-head hosted CI is green. Packaged-native/live-account, touch-device and screen-reader acceptance were not exercised.

No production changes, approval or merge performed.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 356f49225f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/AnimatedReactionCount.tsx
Signed-off-by: OpenAI Codex <codex@openai.com>
Signed-off-by: OpenAI Codex <codex@openai.com>
Signed-off-by: OpenAI Codex <codex@openai.com>
Signed-off-by: OpenAI Codex <codex@openai.com>
Signed-off-by: OpenAI Codex <codex@openai.com>
Signed-off-by: OpenAI Codex <codex@openai.com>
@klopez4212
klopez4212 force-pushed the kennylopez-emoji-reactions-main branch from 356f492 to c1e343b Compare September 24, 2026 20:56

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c1e343b007

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/features/messages/AnimatedReactionCount.tsx

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Review clear for the pinned snapshot: no remaining material blocker found at c1e343b007ec76d48471944b9857866f3f432b99 against 1e15d5d33b6b89c673ceefabeb55d1e5dbb8d579.

  • Both prior P2 exit criteria are satisfied. Long reaction text/fallback shortcodes are bounded while retaining full accessible labels and separate counts. The browser regressions now exercise truncation and the deterministic 1199ms/1200ms preview boundary, immediate warm switching, and reset after leaving.
  • The five earlier fixes remain intact. Source review also covered the rebased picker placement, Escape/focus-return path, and shared preview/popover integration. Existing CI run 36058221006 passed JavaScript, Rust, measurements, and Chromium/WebKit journeys, including the reaction suites. Its tested checkout was synthetic merge c1e4cba74a6719f2abcfc2b5c62333a2a12940a0, combining this head with the pinned base.
  • Limits: that run does not establish integration with the newer main tip observed at b276b867d91646522c6ed354cfbedffb1e101882. Windows native validation was skipped; packaged-native/live-account, touch-device, and screen-reader acceptance were not exercised by this review. These are disclosed validation gaps, not evidence of an introduced defect.

Focused re-review and rebase integration assessment were source-only on Blox; no PR code execution or CI reruns. This is a COMMENT, not approval or merge authorization, and it does not dismiss earlier reviews.

Carl added 2 commits September 25, 2026 11:08
Preserve the compact quick-reaction wrappers while resolving the React import conflict. Keep PR-only screenshots outside the source tree.

Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
The existing main baseline fails its no-owner-read assertion because public metadata discovery adds an exact-target kind-10100 read. Assert all three supported requests while retaining the strict count and target guard. No profile production behavior changes.

Signed-off-by: Carl <32a2e2c9d428ee08902cab75d956da2c1d235a22d4766b0dd4138bf6e2e5db1d@buzz.block.builderlab.xyz>
@wesbillman
wesbillman dismissed stale reviews from themself September 25, 2026 17:25

Carl, an automated reviewer, commenting via Wes’s GitHub account. Superseded: all code findings in this review are fixed and verified at d61a411. Dismissal is not approval; the separate PluginImport test failure and required CI/reviewer gates remain disclosed.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Reaction/integration review clear at d61a4110; not merge-ready. Main fff36cc7 is integrated, the four stale threads are resolved, and the obsolete blocking reviews are dismissed. No approval or merge performed.

  • All 24 affected Chromium/WebKit checks and mandatory push hooks passed (TypeScript, design guards, 1,764 unit tests). The profile-test correction is test-only, preserves the no-owner-read guard, and fixes a failure reproduced on the clean main baseline. Independent review found no remaining introduced code blocker.
  • External validation gate: the full unit package is 3,903 passed / 1 failed: src/app/PluginImport.test.tsx:99 expects “stays enabled” but receives “stays on”. Test and implementation are unchanged from main. Resolve this separately or integrate its upstream fix before calling the full suite green. New-head CI was in progress at handoff; hosted DCO succeeds. Required CI/code-owner approval remain outstanding.
  • Exact commands, test-layer accounting, removed PR-only artifacts and untested native/live-account/touch/screen-reader surfaces are recorded in the updated PR description. No claim of whole-app stability or release validation.

@wesbillman
wesbillman marked this pull request as draft September 25, 2026 17:26
@klopez4212
klopez4212 marked this pull request as ready for review September 26, 2026 11:24

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d61a4110bc

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

),
];
const revealName = () => {
void session.profiles.ensure(authors, "background").catch(() => {});

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Bound reactor profile requests

When a reaction has more than 1,024 distinct authors, ProfileQueries.ensure rejects the entire request before fetching any profiles, and this catch silently discards that error. Session windows can retain up to 2,000 overlay events, so a popular reaction can reach this case; its preview then remains a very large list of public-key prefixes instead of resolved names. Bound/truncate the displayed reactor list and only ensure those IDs rather than passing every author.

AGENTS.md reference: AGENTS.md:L83-L86

Useful? React with 👍 / 👎.

Signed-off-by: OpenAI Codex <codex@openai.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 571ac18810

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +259 to +261
loadedReactors.get(author)?.name ??
profiles?.get(author)?.name ??
author.slice(0, 10),

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Resolve reactor names through the channel naming policy

When two channel members share a profile name, or a reactor is an agent with a locally resolved name, these direct Profile.name lookups bypass the active channel identity policy and can render an indistinguishable Alex, Alex list or the wrong agent label. src/shared/design-system/DESIGN.md:84-98 requires channel-member comparison and qualified identities; pass each reactor through useChannelIdentityNames(session, row.channelId) and use the shared public-key fallback before joining the preview names.

AGENTS.md reference: AGENTS.md:L39-L42

Useful? React with 👍 / 👎.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Star Lord’s automated source review, published via Wes’s GitHub account.

No actionable defects found in this focused merge follow-up. Reviewed head 571ac18810030ff7a289706723e4f2a85285d56a against base 0db7ada55385fa04743f44dcc624d48fdd6fe0e8; compared the incoming changes with the previously reviewed d61a4110bc680d85a49993068104ab9b1dc1056f.

  • Fifteen of the 19 PR files have identical Git blobs to that previously reviewed head. I checked the four changed files and the relevant message-row, profile-subscription, outbox/projection and shared-overlay integration rather than reopening unrelated, previously settled areas.
  • The prior fixes remain present in source: catalog-specific custom-emoji selection, a dedicated reactor-profile subscription, guarded pending/failed toggles, literal shortcode fallbacks and bounded reaction text. The controlled-clock preview-boundary regression and explicit custom-reaction timestamps remain intact. Incoming message millisecond ordering does not replace the reaction grouping/order logic.
  • The profile-test merge retains the explicit no-owner-read assertion and waits for the expected public-metadata reads. The previously reported PluginImport.test.tsx copy mismatch has an upstream correction in this snapshot; that file now matches the pinned base. I am not carrying the old-head failure forward as a current finding.

Validation limits: source only; no tests, builds, PR-code execution, app launches or CI reruns. Downloaded sources were checked against their pinned Git blob IDs; no local working-tree code was used. A single hosted CI snapshot associated with this head showed JavaScript, Rust/tool integration, browser measurements, DCO and one Chromium shard successful, with five browser shards still running and Windows native validation skipped. This is not an all-green claim. Rendered geometry, touch, screen-reader, packaged-native and live-account behavior remain unverified by this review.

This is a non-blocking COMMENT, not approval or merge authorization.

@wesbillman
wesbillman merged commit a95a362 into main Sep 26, 2026
14 checks passed
@wesbillman
wesbillman deleted the kennylopez-emoji-reactions-main branch September 26, 2026 13:41
zrmarley added a commit that referenced this pull request Sep 28, 2026
…ad-on-send

* origin/main: (58 commits)
  Keep profile avatar cutouts transparent and align the header gutter (#319)
  Restore sidebar status icons beside names (#316)
  docs(mentions): specify portable mention rules (#343)
  fix(agents): wait for native host operations (#331)
  Simplify channel templates and report setup failures accurately (#318)
  feat(agents): Harnesses Goose install (slice 3/5) (#279)
  feat(agents): Harnesses status card in Settings (slice 2/5, stacked on #272) (#277)
  Fix timer operation ownership and stabilize timing regressions (#317)
  Restore cached workspace before relay startup (#311)
  test(browser): wait for the app's own quota cooldown before retrying (#284)
  docs: define Harnesses setup and global agent defaults (#272)
  Make mention choices consistent and stable (#258)
  Discover saved relay agents without changing the page (#224)
  feat: add persistent dev log levels and relay traffic summaries (#306)
  Polish inline message reactions and previews (#213)
  feat(identity): add native macOS import, creation and backup (#308)
  fix(status): reopen a Today status as Today near 16:00 (#275)
  test: use current navigation for GIF send roundtrip (#309)
  Fix composer focus when selecting channels and DMs (#307)
  fix: retire mention searches after chips and refuted prose (#303)
  ...

# Conflicts:
#	src/features/messages/MessageComposer.test.tsx
#	src/features/messages/MessageComposer.tsx
johnmatthewtennant pushed a commit that referenced this pull request Sep 28, 2026
* origin/main: (45 commits)
  Use Blue 11 links with Blue 3 hover and explicit contrast exceptions (#322)
  perf(messages): index the emoji catalog for reaction lookups (#333)
  Polish search palette and add conversation search (#340)
  Use step-ten avatar colors with contrasting outlines (#320)
  Keep profile avatar cutouts transparent and align the header gutter (#319)
  Restore sidebar status icons beside names (#316)
  docs(mentions): specify portable mention rules (#343)
  fix(agents): wait for native host operations (#331)
  Simplify channel templates and report setup failures accurately (#318)
  feat(agents): Harnesses Goose install (slice 3/5) (#279)
  feat(agents): Harnesses status card in Settings (slice 2/5, stacked on #272) (#277)
  Fix timer operation ownership and stabilize timing regressions (#317)
  Restore cached workspace before relay startup (#311)
  test(browser): wait for the app's own quota cooldown before retrying (#284)
  docs: define Harnesses setup and global agent defaults (#272)
  Make mention choices consistent and stable (#258)
  Discover saved relay agents without changing the page (#224)
  feat: add persistent dev log levels and relay traffic summaries (#306)
  Polish inline message reactions and previews (#213)
  feat(identity): add native macOS import, creation and backup (#308)
  ...

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/bundled/agents/AgentCard.tsx
#	src/bundled/agents/AgentsPage.tsx
johnmatthewtennant pushed a commit that referenced this pull request Sep 28, 2026
* origin/main: (36 commits)
  Delay message timestamp tooltips by 500 ms (#321)
  Use Blue 11 links with Blue 3 hover and explicit contrast exceptions (#322)
  perf(messages): index the emoji catalog for reaction lookups (#333)
  Polish search palette and add conversation search (#340)
  Use step-ten avatar colors with contrasting outlines (#320)
  Keep profile avatar cutouts transparent and align the header gutter (#319)
  Restore sidebar status icons beside names (#316)
  docs(mentions): specify portable mention rules (#343)
  fix(agents): wait for native host operations (#331)
  Simplify channel templates and report setup failures accurately (#318)
  feat(agents): Harnesses Goose install (slice 3/5) (#279)
  feat(agents): Harnesses status card in Settings (slice 2/5, stacked on #272) (#277)
  Fix timer operation ownership and stabilize timing regressions (#317)
  Restore cached workspace before relay startup (#311)
  test(browser): wait for the app's own quota cooldown before retrying (#284)
  docs: define Harnesses setup and global agent defaults (#272)
  Make mention choices consistent and stable (#258)
  Discover saved relay agents without changing the page (#224)
  feat: add persistent dev log levels and relay traffic summaries (#306)
  Polish inline message reactions and previews (#213)
  ...

Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz>

# Conflicts:
#	src/bundled/agents/AgentEditor.tsx
#	src/bundled/profiles/ProfileAgentIdentity.test.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants