Show agent name and ID in Slack modal dropdowns#2281
Conversation
Agent names are not guaranteed unique. Show both name and ID (e.g. 'Inkeep QA Graph (facts-agent)') in the dropdown to make selection unambiguous. Co-Authored-By: Claude Opus 4.6 <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
🦋 Changeset detectedLatest commit: ed1f29d The changes in this PR will be included in the next version bump. This PR includes changesets to release 9 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
There was a problem hiding this comment.
PR Review Summary
(0) Total Issues | Risk: Low
This is a clean, well-scoped PR that consistently applies a disambiguation pattern across both Slack modal builders. The change is straightforward and the rationale (agent names aren't unique within a project) is sound.
💭 Consider (2) 💭
💭 1) modals.ts:82,328 Cross-surface display format divergence
Issue: The Slack modal now uses Name (id) inline format, while the Management UI Slack configuration components (bulk-select-agent-bar.tsx, workspace-default-section.tsx, channel-agent-cell.tsx) use a two-line format with name on top and project name below.
Why: This creates different agent display conventions depending on where the user is selecting agents. However, this is justified by Slack Block Kit constraints — plain_text option text in select menus only supports single-line display.
Fix: The divergence is acceptable given the platform constraint. The Name (id) pattern also has precedent in traces/observability UI (timeline-item.tsx, conversation-list-item.tsx). No change needed, but worth being aware of for future consistency considerations.
Refs:
- bulk-select-agent-bar.tsx:87-89 — existing 2-line pattern
- conversation-list-item.tsx:95-97 — existing
Name (id)pattern
💭 2) modals.test.ts Display format test coverage
Issue: Existing tests verify initial_option.value (the JSON payload) but don't assert on the text property that now contains the new Name (id) format.
Why: Adding assertions for the display text would catch regressions if the format logic changes. This is minor since the change is straightforward and tests pass.
Fix: Consider adding test cases that verify:
- When
agent.nameexists → text is${name} (${id}) - When
agent.nameis null → text falls back to justid
Refs:
- modals.test.ts:82-93 — existing test structure
✅ APPROVE
Summary: Clean implementation that applies the disambiguation pattern consistently to both modal builders. The Name (id) format aligns with existing traces UI patterns and is justified by Slack's single-line display constraint. Ship it! 🚀
Reviewers (3)
| Reviewer | Returned | Main Findings | Consider | While You're Here | Inline Comments | Pending Recs | Discarded |
|---|---|---|---|---|---|---|---|
pr-review-standards |
0 | 0 | 0 | 0 | 0 | 0 | 0 |
pr-review-consistency |
2 | 0 | 1 | 0 | 0 | 0 | 1 |
pr-review-product |
2 | 0 | 1 | 0 | 0 | 0 | 1 |
| Total | 4 | 0 | 2 | 0 | 0 | 0 | 2 |
Note: The INFO-level findings about pattern alignment with traces UI were merged with the consistency concern (counted once in Consider). The LOW-confidence finding about multi-persona coherence was merged with the cross-surface consistency finding.
Discarded (2)
| Location | Issue | Reason Discarded |
|---|---|---|
modals.ts:82,328 |
INFO: Pattern aligns with traces UI | Informational, not an issue — merged into the consistency consideration |
modals.ts:82 |
INFO: Display format differs from Manage UI | LOW confidence, duplicative of consistency finding — merged |
Summary
buildAgentSelectorModalandbuildMessageShortcutModalTest plan
pnpm typecheckpasses (14/14 tasks)pnpm testin agents-work-apps passes (434/434 tests, including 14 modal tests)🤖 Generated with Claude Code