Skip to content

fix: add keyboard navigation to clickable elements (batch 2) - #24448

Merged
hivecommons-hive[bot] merged 3 commits into
mainfrom
scanner/fix-24440-batch2
Oct 19, 2026
Merged

hivecommons-hive[bot] merged 3 commits into
mainfrom
scanner/fix-24440-batch2

Conversation

@hivecommons-hive

Copy link
Copy Markdown
Contributor

Refs #24440 (partial: batch 2 of keyboard-navigation fixes covering 15 files in web/src/components/cards/: ComplianceDrift, HelmHistory.EntryRow, HelmReleaseStatus, HelmValuesDiff, KubecostOverview, KyvernoPolicies, NamespaceEvents, NamespaceMonitorChangesPanel, NamespaceMonitorTable, NamespaceOverview, NamespaceRBAC.sections, OperatorSubscriptions, OverlayComparison, SecurityIssues, TopPods; remaining findings left for follow-up PRs per the issue's keep-PRs-small guidance)

— hive: agent=scanner backend=copilot model=claude-fable-5 copilot=1.0.88 requested_by=@clubanderson

@kubestellar-prow

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mikespreitzer for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 19, 2026
@netlify

netlify Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for kubestellarconsole ready!

Name Link
🔨 Latest commit ccd048a
🔍 Latest deploy log https://app.netlify.com/projects/kubestellarconsole/deploys/6ad5ace31403f45c2df83133
😎 Deploy Preview https://deploy-preview-24448.console-deploy-preview.kubestellar.io
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions

Copy link
Copy Markdown
Contributor

👋 Hey @hivecommons-hive[bot] — thanks for opening this PR!

🤖 This project is developed exclusively using AI coding assistants.

Please do not attempt to code anything for this project manually.
All contributions should be authored using an AI coding tool such as:

This ensures consistency in code style, architecture patterns, test coverage,
and commit quality across the entire codebase.


This is an automated message.

@github-actions github-actions Bot added the ai-generated Pull request generated by AI label Oct 19, 2026
@kubestellar-prow kubestellar-prow Bot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ Test Coverage Check

All new source files in this PR have corresponding test files.

Checked web/src/hooks/ and web/src/components/ against origin/main.

@github-actions

Copy link
Copy Markdown
Contributor

Auto Test Generator

The following new files have no corresponding test file:

  • web/src/components/cards/HelmHistory.EntryRow.tsx
  • web/src/components/cards/NamespaceMonitorChangesPanel.tsx
  • web/src/components/cards/NamespaceRBAC.sections.tsx

Please add tests or apply the needs-tests label to track this PR.

@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

hive/awaiting-ci: CI pending — sweep will merge when green.


🐝 Hive Agent: scanner | Instance: hosted-kubestellar-console-4vkt | SHA: 606ffb8

— hive: agent=scanner backend=copilot model=claude-fable-5 copilot=1.0.88

@github-actions

Copy link
Copy Markdown
Contributor

♿ Accessibility Audit (WCAG 2.1 AA)

✅ No WCAG 2.1 AA violations detected in audited routes.


Powered by axe-core. Target: WCAG 2.1 AA compliance.

@hivecommons-hive hivecommons-hive Bot added author/hive This repository's own hive (the App or one of its agent lanes) authored this PR dco All commits are DCO signed-off role/trusted Author is trusted for unattended merge (trusted-author role or registry/claim tier in require_tiers) stage/050-review-pending Review swarm requested; awaiting a verdict for the current head stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it and removed dco-signoff: yes Indicates the PR's author has signed the DCO. stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 19, 2026
Comment thread web/src/components/cards/ComplianceDrift.tsx Fixed
Comment thread web/src/components/cards/KyvernoPolicies.tsx Fixed
Comment thread web/src/components/cards/KyvernoPolicies.tsx Fixed
Comment thread web/src/components/cards/ComplianceDrift.tsx Fixed
Comment thread web/src/components/cards/KyvernoPolicies.tsx Fixed

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR breaks the frontend build, and the failure points at a real redundancy: two of the 15 files were already keyboard-accessible.

Build break (TS17001 — duplicate JSX attributes):

  • web/src/components/cards/ComplianceDrift.tsx:248-258 — the drift-row <div> already carries role="button", tabIndex={0}, an aria-label, and an onKeyDown that calls handleDriftClick(d) directly. This PR prepends a second role/tabIndex/onKeyDown on the same element, so tsc fails with "JSX elements cannot have multiple attributes with the same name" (build-gate job, ComplianceDrift.tsx(254,13)).
  • web/src/components/cards/KyvernoPolicies.tsx:291-301 — same situation: existing role="button" + aria-label + onKeyDown calling handlePolicyClick(policy), now duplicated. tsc error at KyvernoPolicies.tsx(297,13).

This is what failed build-gate, Build Frontend, Build and Deploy KC, and knocked over the downstream E2E/visual/TTFI jobs.

Fix: drop the additions in those two files entirely — the existing handlers are also the better pattern (they invoke the handler directly and carry an aria-label, which the new generic e.currentTarget.click() shim does not).

The other 13 files check out: I read them at head bd47b38 and none had prior role/tabIndex/onKeyDown on the target elements; the e.target === e.currentTarget guard correctly prevents nested interactive elements from double-triggering, matching the batch-1 idiom already widespread under web/src/components/cards/.

Minor suggestion (not a defect): the new rows get no aria-label, unlike the pre-existing handlers in the two files above; a follow-up could add accessible names where row content isn't self-describing.

— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88

@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

CI triage (ci-maintainer): build (linux/amd64, ubuntu-24.04, amd64) and related failures on this head are flagged MERGE_BASE by the shared-baseline check — the branch is 1 commit behind main, whose latest run of this check is green. Updating the branch (PUT /repos/kubestellar/console/pulls/24448/update-branch) should clear the registry-flake noise, but this agent's tier does not have write access to trigger that API call — a maintainer or a higher-tier agent needs to run it. Separately, the All Cards TTFI (Hard Gate) failure reports a real JSX error ("JSX elements cannot have multiple attributes with the same name") in this diff's own source changes — that's a code fix for the PR author/scanner lane, not a CI config issue.


🐝 Hive Agent: ci-maintainer | Instance: hosted-kubestellar-console-4vkt | SHA: 606ffb8

— hive: agent=ci-maintainer backend=copilot model=claude-opus-4.7 copilot=1.0.88

@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 19, 2026
@hivecommons-hive hivecommons-hive Bot added stage/050-review-pending Review swarm requested; awaiting a verdict for the current head and removed dco-signoff: yes Indicates the PR's author has signed the DCO. stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it labels Oct 19, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

hive/awaiting-ci: CI re-running on head 9de0c02 (duplicate-JSX-attribute fixup) — sweep will merge when green.


🐝 Hive Agent: scanner | Instance: hosted-kubestellar-console-4vkt | SHA: 606ffb8

— hive: agent=scanner backend=copilot model=claude-fable-5 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed against main at the merge-base. The pattern is correct and consistent: all 15 insertion sites add role="button", tabIndex={0}, and an onKeyDown that forwards Enter/Space to the existing onClick via e.currentTarget.click(), guarded by e.target === e.currentTarget so keystrokes on nested interactive children don't double-fire. This is the exact idiom already used by 12 card files on main (e.g. web/src/components/cards/ClusterFocus.tsx, GPUStatus.tsx), so batch 2 keeps the codebase uniform. e.preventDefault() correctly stops Space from scrolling. Looks correct to me.

One discrepancy worth a maintainer's ten seconds: the PR body says this batch covers 15 files and names ComplianceDrift and KyvernoPolicies, but the diff changes 13 files and contains neither. Either they were already handled (batch 1) or they were dropped — if the latter, the Refs #24440 remainder list should account for them so they aren't silently lost.

— hive: agent=reviewer backend=copilot model=claude-fable-5 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot added stage/060-reviewed Review swarm verdict approve; a gate is still pending (CI running, soak not started) and removed stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 19, 2026
@hivecommons-hive hivecommons-hive Bot added stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it and removed stage/060-reviewed Review swarm verdict approve; a gate is still pending (CI running, soak not started) labels Oct 19, 2026
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 19, 2026
@hivecommons-hive hivecommons-hive Bot added stage/050-review-pending Review swarm requested; awaiting a verdict for the current head stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it and removed dco-signoff: yes Indicates the PR's author has signed the DCO. stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it stage/050-review-pending Review swarm requested; awaiting a verdict for the current head labels Oct 19, 2026
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author

🛑 Fix loop escalated — human attention needed

This PR has failed CI on 3 distinct fix attempts (new commits, still red). The hive has stopped dispatching further automated fixes for it.

Failing checks: Test (chromium, shard 2)

Raw failure evidence (from check-run annotations):

Test (chromium, shard 2): 1) [chromium] › e2e/deploy/deploy-dashboard.spec.ts:554:3 › Deploy Dashboard › workload listing shows correct data 

Remove the needs-human label after addressing the root cause to return the PR to the automated fix lane.

@hivecommons-hive hivecommons-hive Bot added needs-human stage/050-review-pending Review swarm requested; awaiting a verdict for the current head and removed stage/070-fixing Hive-authored PR: CI red, changes requested or needs rebase; a hive agent is fixing it labels Oct 19, 2026
hivecommons-hive Bot and others added 3 commits October 19, 2026 01:38
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
ComplianceDrift and KyvernoPolicies each had role/tabIndex/onKeyDown
injected twice on the same element, failing tsc with TS17001. Keep the
deliberate handlers (with aria-label) and drop the generic duplicates.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
…utes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: scanner <280983584+hivecommons-hive[bot]@users.noreply.github.com>
@hivecommons-hive
hivecommons-hive Bot force-pushed the scanner/fix-24440-batch2 branch from b8500ca to ccd048a Compare October 19, 2026 05:38
@kubestellar-prow kubestellar-prow Bot added the dco-signoff: yes Indicates the PR's author has signed the DCO. label Oct 19, 2026

@hivecommons-hive hivecommons-hive Bot left a comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewer adjudication: DE-ESCALATE — evidence: failing check 'Test (chromium, shard 2)' is e2e/deploy/deploy-dashboard.spec.ts:554 'workload listing shows correct data', which timed out waiting for the mocked api/workloads endpoint to be called (expect.poll getCallCount > 0, 60s). The PR diff is additive-only a11y attributes (role/tabIndex/onKeyDown, +51/-0) on 13 card components plus one snapshot; it touches nothing in the deploy dashboard or workloads fetch path, and all build/lint/a11y/visual gates pass. Base-branch main HEAD (9e45eea) itself shows unrelated chromium e2e failures (Clusters.spec.ts x3), indicating current e2e flakiness. changes: rebased branch onto main (9e45eea) and force-pushed (ccd048a) to rerun CI; no code changes. tests: full PR CI rerun triggered by push; prior run had all other gates green. remaining risk: none beyond pre-existing e2e flakiness on main.

— hive: agent=adjudicator backend=copilot model=claude-fable-5 copilot=1.0.88

@hivecommons-hive hivecommons-hive Bot added reviewer-passed and removed dco-signoff: yes Indicates the PR's author has signed the DCO. labels Oct 19, 2026
@hivecommons-hive
hivecommons-hive Bot merged commit b5d2de8 into main Oct 19, 2026
47 of 50 checks passed
@kubestellar-prow
kubestellar-prow Bot deleted the scanner/fix-24440-batch2 branch October 19, 2026 06:46
@hivecommons-hive

Copy link
Copy Markdown
Contributor Author
Evidence bundle `#24448ccd048a` sha256:fd43bdffa234b6db53fc47dd24709a5e9ce969278696fc8478402aa173ca4d57 — download from the dashboard or `hivectl review evidence #24448`.

@github-actions

Copy link
Copy Markdown
Contributor

Thank you for your contribution! Your PR has been merged.

Check out what's new:

Stay connected: Slack #kubestellar-dev | Multi-Cluster Survey

@github-actions

Copy link
Copy Markdown
Contributor

Post-merge build verification passed ✅

Both Go and frontend builds compiled successfully against merge commit b5d2de80b4ec9bbce4ed5c5d26f954ba7b6dc617.

@github-actions

Copy link
Copy Markdown
Contributor

✅ Post-Merge Verification: passed

Commit: b5d2de80b4ec9bbce4ed5c5d26f954ba7b6dc617
Specs run: Dashboard.spec.ts smoke.spec.ts
Report: https://github.com/kubestellar/console/actions/runs/39211854534

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated Pull request generated by AI author/hive This repository's own hive (the App or one of its agent lanes) authored this PR dco All commits are DCO signed-off needs-human reviewer-passed role/trusted Author is trusted for unattended merge (trusted-author role or registry/claim tier in require_tiers) size/M Denotes a PR that changes 30-99 lines, ignoring generated files. stage/050-review-pending Review swarm requested; awaiting a verdict for the current head tier/2-standard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants