Skip to content

fix(client): exclude ineligible Bots from IM app pickers - #3243

Draft
DoodleBears wants to merge 2 commits into
mainfrom
t3/issue-3220-fix
Draft

DoodleBears wants to merge 2 commits into
mainfrom
t3/issue-3220-fix

Conversation

@DoodleBears

Copy link
Copy Markdown
Contributor

Closes #3220 · delivery claim

Tasks: codex/local/01a191d8-2941-78f0-b560-5a779e027f81 (reproduction and fix), codex/local/01a191cc-31b6-7271-bf8b-6ed6689e15d0 (independent PR and verification docs).

Why the change

Keep deleted and paused Bots out of IM app creation and binding pickers, including when a selected Bot becomes ineligible while the dialog is open.

Special things to note

  • Merge risk: two-way door — revert these commits, with no data repair; small blast radius — IM settings option lists and button eligibility, with a wrongly hidden option or stale selection as the main risks; review filtering before equality comparison and bound-name preservation.
  • Canonical roster tombstones, shared name comparison, Host binding authority and [Performance] Switching channels/conversations in Bot mode freezes renderer main thread at ~113% CPU (1.6.0 follow-up to #2413) #3214 remain unchanged; paused bound Bots retain display names through a separate name roster.
  • Draft pending full Create/Bind runtime and Human/native Desktop QA: the isolated Profile has no qualified IM setup provider or unbound app. Real component red→green and canonical Host tombstone evidence do not substitute for those journeys.

Change outline

 canonical roster (includes historical tombstones)
-  all rows → name-only equality → picker
+  nondeleted rows → name-only equality → existing bound names
+  live, unpaused rows → name-only equality → Create/Bind options
-  submit enabled whenever selected slug is nonempty
+  submit enabled only while selected slug remains eligible

The independent branch passes 2 focused test files / 17 tests, root TypeScript, feature-map validation and changelog checks. The child also passed full lint/build and 123 Client tests on the combined current-main baseline. The regression exercises the real React component, including deletion while Bind is mounted.

UI capture blocker: the stock isolated rc.3 Profile advertises apps: [] and setups: [], so Create app is intentionally unavailable. No fixture screenshot is presented as live UI proof. Review path: provide a qualified test IM setup provider or an unbound test app; open Create and Bind with one live Bot and one retained tombstone; verify only the live Bot appears. Delete or pause the selected test Bot while the picker is open and require its option to disappear and submission to disable. Confirm an existing paused binding retains its display name. This does not require production receiver access or a model call.

Issue: #3220
Agent-Task: codex/local/01a191d8-2941-78f0-b560-5a779e027f81
Issue: #3220
Agent-Task: codex/local/01a191cc-31b6-7271-bf8b-6ed6689e15d0
@coderabbitai

coderabbitai Bot commented Oct 31, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

Share

@DoodleBears

Copy link
Copy Markdown
Contributor Author

Exact-head review artifact: c9b91b4. A five-panel HTML explainer is saved in the local task handoff; no authorized public HTML hosting or working browser bootstrap was available, so public access and visual rendering remain unverified. It is not runtime evidence. The independent branch also passes full lint (existing warnings only). The PR remains draft pending provider-backed Create/Bind screenshots and native/Human QA; no merge or release performed.

This branch has not been deployed

No deployments
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.

[Bug] 「Bot 设置 → IM 应用 → 创建应用」的 Bot 下拉会列出已删除的 Bot

1 participant