fix(mcp): make needs-auth hint accessible - #3715
Conversation
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
5ecc188 to
a44bd22
Compare
GPT 5.6 Review (fork) — ✅ no blocking findingsReviewed Review detailsNo findings. |
Design Review (Fable 5, fork) — ✅ PASSDesign-level review of Design-Verdict: PASS Real accessibility gap, fixed at the root by relocating the hint onto the repo's existing focusable InfoTip affordance — proportionate and well-scoped. Suggestions
[DESIGN-REVIEWED] d502969 |
Opus 4.8 Review (fork) — ✅ no blocking findingsReviewed |
UX Review (Fable 5, fork) — ✅ PASSUX-level review of UX-Verdict: PASS Moves a decision-critical hint from an unreachable hover [UX-REVIEWED] d502969 |
First Principles Review (Fable 5, fork) — 🟡 CONCERNSPremise-level review of All evidence gathered. The fix uses the repo's existing First-Principles-Verdict: CONCERNS The needs-auth fix earns its place, but the same hover-only- What this change shipsIntent: make the needs-auth status explanation reachable by keyboard, touch, and assistive technology (#3626) — a FIX.
Watch
[FIRST-PRINCIPLES-REVIEWED] d502969 |
a44bd22 to
88af6bb
Compare
|
Rebased onto current What this PR actually contributes is unchanged and still needed: upstream's
|
88af6bb to
fd96352
Compare
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
7 similar comments
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
👋 Hi! This PR is currently in draft status. Workflow runs won't be auto-approved until it's marked as ready for review. When you're ready, click "Ready for review" and the workflows will be approved on the next cycle automatically. |
|
🤖 Kiro Crew [operator: NicholasRBowers#a942f9ca]: This PR has been inactive for 7+ days with failing CI. I've assessed the blockers and they appear resolvable — I'll push fixes directly to this branch as a co-author. Assessment: The CI reds are from an Aug-27 run on a stale base — the backend shard failures live in If you'd prefer I don't touch this PR, add the |
2a1afa6 to
bd71dce
Compare
|
🤖 Kiro Crew [operator: NicholasRBowers#a942f9ca] Drive-to-green update — head is now
Local gates: Original fix by Adi Arora (@adiarora06) — authorship preserved on the commit. |
The needs_auth hint was the only default-reachable explanation of the OAuth probe limitation, and it lived in a native `title` tooltip — hover-only, so unreachable by keyboard, touch, and assistive tech (kirodotdev#3626). The hint now renders through a focusable, tappable InfoTip next to the badge, and the needs_auth badge itself drops its `title` so the two affordances don't duplicate each other. Every other status keeps its `title` hint: since this branch was cut, main gave the 'ok' status a host-check caveat delivered via the badge title (pinned by "explains that Online is a host check..."), so the title is now suppressed only for needs_auth rather than removed unconditionally. Original fix by Adi Arora (@adiarora06). Co-authored-by: Kiro Crew <noreply@kirodotdev.github.io>
bd71dce to
d502969
Compare
|
🤖 Kiro Crew [operator: NicholasRBowers#a942f9ca] Round 2 — rebase-only push, head is now
No code change in this round; frontend gates re-verified after the rebase ( |
|
🤖 Kiro Crew [operator: NicholasRBowers#a942f9ca]
|
iamwhatever
left a comment
There was a problem hiding this comment.
Tier 1 auto-approve: fix (3 files). Criteria: no conflict, no requested changes, security path denylist clean, design-doc gate clean, SAST annotations clean, security checklist all-NO, AI reviewers green. Category: replaces the hover-only native title hint on the MCP needs_auth badge with a focusable/tappable InfoTip so the OAuth-probe explanation is reachable by keyboard, touch and AT (#3626) -- presentation-only, no auth logic touched. CodeQL is not applicable on this fork PR (default-setup emits no check-run); SAST coverage is Semgrep only, latest run success with 0 annotations.
Problem / Motivation
The authorization-status explanation was stored only in a native
titleon a non-focusable badge, so keyboard, touch, and assistive-technology users could not reliably reach it.Why it matters
This is the only default-reachable explanation of the OAuth probe limitation. Without it, the status badge gives users no accessible way to learn whether sign-in is required, present but unverifiable, or unknown.
What changed (motivation → approach → change)
Keep the evidence-based status label and tone from current
main, but move everyneeds_authexplanation into the repository's focusable InfoTip helper. Keyboard, touch, pointer, and assistive-technology users now share one help affordance for the needs-auth hint.Since this branch was cut,
maingave theokstatus its own hover hint ("Online" is a host check) delivered via the badgetitleand pinned by a test. The badge therefore keeps itstitlefor every status exceptneeds_auth, where InfoTip is the sole affordance — the title is suppressed only where the InfoTip replaces it, not removed unconditionally.Tests
McpTab.test.tsxfor unknown, sign-in-required, and signed-in authorization states.titlehints (main's "Online is a host check" test passes unchanged).npm exec -- vitest run src/test/McpTab.test.tsx(28 passed).Manual verification
Verified the production component preserves current-main authorization labels while rendering the focusable help control only for
needs_authstates.Screenshots / video
Related Issues
Fixes #3626
Pattern harvest
Not generalizable: the fix relocates one status hint to the repo's existing InfoTip affordance; no reusable rule emerges beyond the already-documented "hover-only
titleis not an accessible affordance", which #3626 tracks.Checklist
feat|fix|docs|refactor|perf|test|chore|ci|build|revert: ...)