Skip to content

Show agent activity in navigation - #423

Merged
klopez4212 merged 6 commits into
mainfrom
kennylopez-nav-agent-thinking-pr
Sep 30, 2026
Merged

klopez4212 merged 6 commits into
mainfrom
kennylopez-nav-agent-thinking-pr

Conversation

@klopez4212

@klopez4212 klopez4212 commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Add theme-aware animated working badges to channel and agent DM rows, separate from avatars.
  • Show working agents with timers, squircle avatars, unread threads, and hover actions in the activity preview.
  • Open the working thread or agent activity directly; let the preview close on pointer exit.

Validation

  • Pre-push: TypeScript, design checks, 2,347 unit tests.
  • Chromium and WebKit: activity, unread threads, nested replies, channel opening, and scroll measurements.

Snapshots

Light mode

Light mode activity preview

Dark mode

Dark mode activity preview

Signed-off-by: OpenAI Codex <codex@openai.com>
@klopez4212
klopez4212 requested review from a team, comp615 and wesbillman as code owners September 29, 2026 19:44
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 29, 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-30T15:56:09.154081Z 37beec2 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.

@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 automated source review, published through Wes's account.

Reviewed head 453c23f9888909150cc16ff079d1b139d32d6ed4 against base ac002d36aafbaae2a88fae34972f2a438bf1dcd6. Three actionable keyboard-focus findings are attached inline: pending/error retry, clearing the last activity item, and returning from a working thread opened through the exact-message fallback. These are non-blocking review comments; the human maintainer decides disposition.

Scope: all 22 changed files, relevant activity/unread/navigation owners and shared focus primitives. The independent UI lane was reconciled against the pinned Base UI 1.8.0 implementation: its popup-container recovery is why this review does not claim that every removed row loses focus. Public-material inspection covered the updated PR description and both light/dark fixture screenshots; no internal-data disclosure found in those materials or the reviewed delta/commit metadata.

Validation limits: source only, using a Git-blob-verified head snapshot. No PR code, tests, builds, installs, app workflows or exploits were executed. Browser-focus outcomes below are source-derived, not observed Chromium/WebKit/native runs. The PR's reported validation is author evidence; CI was not independently checked in this cycle.

Comment thread src/bundled/channels/ChannelActivityPopover.tsx Outdated
Comment thread src/bundled/channels/ChannelActivityPopover.tsx Outdated
Comment thread src/features/channel-navigation/ChannelSidebar.tsx Outdated
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: 4681e76f2e

ℹ️ 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/bundled/channels/ChannelSidebarItem.tsx Outdated
Comment on lines +77 to +80
const agentProfiles = useSyncExternalStore(
agents.length ? session.profiles.subscribe : noSubscribe,
agents.length ? session.profiles.snapshot : () => noProfiles,
);

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 Load and resolve identities for off-channel workers

For an agent working in a non-selected stream, no ActivityAccessory is mounted and channel-label loading does not fetch stream members, so this path merely subscribes to an empty profile cache without ever calling profiles.ensure. The activity preview consequently keeps showing an npub fragment and no avatar even when the agent has a profile, and it also bypasses the session identity-name service that supplies configured agent names; request the active keys in the background and resolve them through the existing session-owned naming pipeline.

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.

Changes needed: one P2 lifecycle regression in the subscription refactor, inline. The three earlier focus findings remain unchanged; this follow-up does not duplicate them.

Star Lord's automated source review via Wes's account. Head 4681e76f2e0b515c62a104354948a1f36d01a523, base ac002d36aafbaae2a88fae34972f2a438bf1dcd6. Reviewed the one-file delta since 453c23f9, its callers and success/error/retry lifecycle; immutable Git objects, no dirty inputs.

Source only: no tests, builds or app execution. One hosted snapshot shows required CI failing (WebKit shard 5/6); causality was not established, and native/browser acceptance remains unverified. Public description, both fixture screenshots and commit metadata inspected with no additional privacy finding; existing reviewer SVG badges could not be rendered. Non-blocking COMMENT only, not approval.

Comment thread src/bundled/channels/ChannelSidebarItem.tsx Outdated
Signed-off-by: OpenAI Codex <codex@openai.com>
@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Follow-up pushed at e5a6de3. All four Wes threads and the duplicate row-remount bot thread are addressed and resolved.

Validation: 2,349 unit tests, TypeScript and design checks passed in pre-push; all six new focus regressions passed in Chromium and WebKit. The broader local just scan stopped at three integration failures in unchanged test infrastructure: the Rust setup assertion compares macOS /var with canonical /private/var, and two preview-feed tests treat the worktree's space as literal %20 in filesystem paths. Consequently, a full local scan is not claimed. Hosted CI at this head is still running; DCO passes.

The separate bot finding about loading/naming off-channel worker profiles remains open.

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

@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.

No further changes requested on this focus/lifecycle follow-up: the four earlier findings are addressed, and the new focus journeys passed in hosted Chromium and WebKit. The separate off-channel identity comment remains unaddressed.

Required CI remains red: Chromium shard 3 cannot find the second “1 new message” control at message-navigation.spec.mjs:244; causation is not established.

Star Lord’s automated source review via Wes’s account; head e5a6de3e035eab68766a2ef878406e1361e49ece, base ac002d36aafbaae2a88fae34972f2a438bf1dcd6. Source-only: no local tests or app execution; COMMENT, not approval or runtime sign-off.

@klopez4212

Copy link
Copy Markdown
Contributor Author

🤖 Fixed the three local integration failures in e3565a3. The Rust setup fixture now uses a canonical temporary directory, and the preview-feed fixture converts its file URL with fileURLToPath so spaces are decoded correctly. Product/release behavior is unchanged.

All 10 tests in browser-ci.test.mjs and preview-feed.test.mjs pass, including the three previously failing cases. Pre-push types, 2,349 unit tests and design checks pass. The previous head's separate Chromium message-navigation failure also passed in a focused local run; its cause is not established and no unrelated change was made. Fresh hosted CI is pending; a full local scan is not claimed.

@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.

No changes requested on the two-file portability follow-up: canonicalizing the temporary directory and using fileURLToPath fix the path mismatches without weakening assertions or changing production behavior. The previous product-review disposition, including the outstanding off-channel identity comment, is unchanged.

Star Lord’s automated source review via Wes’s account; head e3565a35881822c494940bd59d20e0b62f7a44b0, base ac002d36aafbaae2a88fae34972f2a438bf1dcd6. Source-only, no local execution; hosted Rust/tool integration, JavaScript and DCO passed, but full CI was unfinished at the snapshot, and macOS/space-path execution plus before/after timing remain independently unverified.

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: 37beec2b2a

ℹ️ 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 [error, setError] = useState(false);
const markRead = async () => {
if (pending) return;
setPending(true);

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 Restore focus when a marked thread disappears

When a keyboard user activates this action while another unread thread or working agent remains, a successful markThrough removes the focused ActivityRow, but hasActivity stays true so the popover remains open. The focused DOM node is therefore unmounted and focus falls out of the still-visible dialog; after success, move focus to a remaining item or the trigger, or close the popover.

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.

No additional changes requested on the merged-main integration: the conflict resolution preserves the activity-navigation cancellation guard while removing the retired placeholder route, and the prior focus fixes remain intact in source. The existing off-channel identity finding remains unresolved.

Star Lord’s automated source review via Wes’s account; head 37beec2b2a7d82136ead46b7030f00afa4be83e4, base 1b30cb340dfa17f8b48f314e7468697cfdf0a48d.

Source-only, no tests or app execution; hosted CI was still running, so browser/native acceptance is not established by this review. Both attached fixture screenshots and the publication delta were inspected without a new privacy finding; the pre-existing reviewer SVG severity badge could not be rendered. COMMENT, not approval.

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

@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.

Existing findings remain to resolve: off-channel worker identities and focus after clearing a thread while other activity remains; this test-only commit leaves both paths unchanged. No new finding on the six-line layout wait: its label observes the shell’s responsive React state, while the geometry assertions, engines and tolerances remain intact.

Star Lord automated source follow-up via Wes’s account: head 2c5da8dfdf054d7b5b892bcdb6c02f74b13eeab9, base 1b30cb340dfa17f8b48f314e7468697cfdf0a48d. Source-only; no code/tests executed, current CI still running at the snapshot, and post-change timing/runtime validation unavailable. Both public screenshots inspected without a new privacy finding; the existing SVG severity badge could not be rendered. COMMENT only, not approval.

@klopez4212
klopez4212 merged commit 42de532 into main Sep 30, 2026
31 of 37 checks passed
@klopez4212
klopez4212 deleted the kennylopez-nav-agent-thinking-pr branch September 30, 2026 17:36
TheSentinel454 pushed a commit that referenced this pull request Sep 30, 2026
* origin/main: (27 commits)
  Let plugin pages publish NIP-AR artifacts and embed the host thread view (#434)
  test(app): migrate entity-navigation test off removed buzz://open locator API (#463)
  Show agent activity in navigation (#423)
  test(browser): hold motion when it commits, not on its start event (#459)
  fix(navigation): ignore unknown query parameters on Buzz links and remove the buzz://open locator (#457)
  feat(design-system): distinguish controls on floating surfaces (#429)
  feat(native): add community extras and media preparation (#450)
  Clone inventory identities through reviewed text and fresh identity creation (#289)
  feat(communities): add right-click actions to the community rail (#400)
  fix(messages): keep a send reveal pending until its scroll runs (#454)
  fix(messages): reserve a stable scrollbar gutter on the channel feed (#451)
  fix(sidebar): list plugin pages as sidebar rows via an opt-in primary flag (#401)
  feat(channels): surface canvas content in channel settings (#426)
  fix(profiles): remove redundant presence status row (#394)
  test(browser): count live retries once the page handles startup controls (#443)
  feat(composer): host-owned resource links for the Projects picker (#445)
  feat: support native read state and recent channel activity (#444)
  feat(native): serve relay media and uploads in packaged builds (#433)
  feat(channels): suggest joined channels in the composer (#446)
  feat: support native agent activity, library, memories, and community resolution (#441)
  ...

Signed-off-by: Codex <noreply@openai.com>
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