Skip to content

Improve inbox thread updates#1114

Open
klopez4212 wants to merge 23 commits into
mainfrom
kennylopez-inbox-updates
Open

Improve inbox thread updates#1114
klopez4212 wants to merge 23 commits into
mainfrom
kennylopez-inbox-updates

Conversation

@klopez4212

Copy link
Copy Markdown
Contributor

Summary

  • Surface interested thread replies in Home inbox without turning on main channel unread dots
  • Add inbox item read/unread handling, Threads filtering, unread-only toggle, and numeric dock badge counting
  • Polish inbox row labels, channel chips, two-line previews, and thread context loading

Tests

  • cd desktop && . ../bin/activate-hermit && ../node_modules/.bin/biome check --write ...
  • cd desktop && . ../bin/activate-hermit && pnpm typecheck
  • cd desktop && . ../bin/activate-hermit && pnpm test -- src/features/channels/unreadReadMarker.test.mjs src/features/home/lib/inbox.test.mjs src/features/home/lib/inboxViewHelpers.test.mjs
  • git diff --check

klopez4212 added a commit that referenced this pull request Jun 18, 2026

@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: f6387f9aed

ℹ️ 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 desktop/src/features/notifications/hooks.ts Outdated
klopez4212 added a commit that referenced this pull request Jun 18, 2026

@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: 66d905a89b

ℹ️ 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 desktop/src/features/channels/useUnreadChannels.ts
Comment thread desktop/src/features/notifications/hooks.ts Outdated

@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: 084e71809b

ℹ️ 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 desktop/src/features/channels/useUnreadChannels.ts
Comment thread desktop/src/features/home/ui/HomeView.tsx Outdated

@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: 279381c4be

ℹ️ 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 desktop/src/features/home/useHomeInboxReadState.ts

@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: 248244200a

ℹ️ 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 desktop/src/app/AppShell.tsx

@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: 248244200a

ℹ️ 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 desktop/src/app/AppShell.tsx
klopez4212 added a commit that referenced this pull request Jun 19, 2026
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Updated screenshots from the latest kennylopez-inbox-updates branch.

Inbox overview

Inbox rows with unread dots, muted metadata, channel chips, two-line previews, thread activity, and the selected item detail.

inbox-overview

Filter menu

Inbox header controls with the filter menu, including Threads.

inbox-filter-menu

Inbox hover tray

Hovering an inbox item reveals the row action tray.

inbox-hover-tray

Inbox detail action tray

The selected inbox message detail uses the same midpoint action tray placement as the channel view.

inbox-detail-action-tray

@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: 460a75f954

ℹ️ 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 desktop/src/app/AppShell.tsx

@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: a2cb35c921

ℹ️ 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 desktop/src/features/channels/useLiveChannelUpdates.ts Outdated

@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: b58412ed7d

ℹ️ 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 desktop/src/app/AppShell.tsx Outdated

@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: 742b8c57d7

ℹ️ 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 +480 to +485
if (
!(
threadRootId === null &&
item.channelId &&
highPriorityChannelIds.has(item.channelId)
)

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 Exclude DM thread replies from the Home badge subtotal

When the unread event is a DM thread reply, the new routing keeps it in unreadChannelNotificationCount, and the same reply is also present as a synthetic thread inbox item. Because this guard only subtracts high-priority channel items when threadRootId === null, the dock badge adds the same DM reply once through the DM channel count and again through homeBadgeCountExcludingHighPriority; exclude high-priority channel items regardless of thread status, or avoid adding DM thread replies to the Home subtotal.

Useful? React with 👍 / 👎.

Comment on lines 137 to 139
(itemId: string) => {
undoUnreadLocal(itemId);
const item = itemById.get(itemId);

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 Clear grouped unread overrides when reading a thread row

When a root mention/needs-action row is manually marked unread and later represented by a newer thread reply, reading the visible row only removes the local unread override for the reply id. The old root id remains in localUnreadSet, and useHomeFeedNotificationState checks that override before channel/thread read markers, so the Home/dock badge can stay stuck even though the grouped row is read; clear unread overrides for the grouped item ids as well as itemId.

Useful? React with 👍 / 👎.

@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

const merged = [...threadActivityRef.current, ...newItems];
const capped =
merged.length > MAX_ACTIVITY_ITEMS
? merged.slice(merged.length - MAX_ACTIVITY_ITEMS)

P2 Badge Preserve newest thread replies when capping

When a cold-start catch-up returns more than MAX_ACTIVITY_ITEMS thread replies, relay history is newest-first (the DB query orders by created_at DESC in crates/buzz-db/src/event.rs), but this merge appends that newest-first batch and then keeps the tail. With an empty or small threadActivityRef, the cap drops the newest replies and persists older ones, so the Inbox can miss the latest unread thread activity after restart; sort by createdAt before slicing or reuse the sorted addThreadActivityItems helper here.

ℹ️ 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".

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.

1 participant