Skip to content

fix(cycles): make cycle detail issue rows open the issue on click - #59

Open
bhackett1024 wants to merge 1 commit into
mainfrom
fix/sh-bug-mupwu86k-vvxe
Open

bhackett1024 wants to merge 1 commit into
mainfrom
fix/sh-bug-mupwu86k-vvxe

Conversation

@bhackett1024

Copy link
Copy Markdown
Contributor

Why

Self Healing bug bug-mupwu86k-vvxe (high): on the Cycle 12 detail view (#/cycle/cyc_12), clicking an issue row — its ID, its title, or the row body — does nothing. The row is a static <div> with no role, no tabindex, no onClick, and no link, so a user cannot reach the issue detail page from a cycle. Identical rows on the Issues list are clickable (role="button", tabindex="0", onClick → #/issue/<id>), so the app contradicts itself between surfaces.

What changed

IssueRow makes row clickability opt-in via its onOpenIssue prop; CycleDetail rendered rows without it. This wires useOpenIssue() into CycleDetail and passes it to each IssueRow, restoring the same role="button" / tabindex="0" / Enter-key navigation the Issues list already has. No shared-component changes; the My Issues and Projects views are separate instances of the same call-site pattern and are intentionally untouched here.

Tradeoffs

Minimal call-site fix matching the existing IssuesView wiring exactly. A larger refactor (making onOpenIssue required in IssueRow) would have forced simultaneous decisions on the other bare call sites and collided with a parallel fix worker covering My Issues; that refactor can follow after both land.

Verification

  • npm run lint clean; npm run build (tsc -b && vite build) green locally.
  • Behavior on the deploy preview is verified by Self Healing QA against the exact PR head SHA before merge.

Human author: Brian Hackett (bhackett@replay.io)

🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact

Cycle detail rows rendered IssueRow without onOpenIssue, so rows were static divs (no role, tabindex, onClick, or link) — clicking DT-113 in Cycle 12 never navigated, while identical rows on the Issues list do. Wire useOpenIssue into CycleDetail and pass it to IssueRow.

Fixes Self Healing bug bug-mupwu86k-vvxe.

Co-authored-by: Brian Hackett <bhackett@replay.io>
@bhackett1024

Copy link
Copy Markdown
Contributor Author

Self Healing verification status (worker note): The fix is on this PR at 698376b7f852c83456cd4232509a9d7f11541bf8. Lint + build green, Socket CI checks pass. Deploy preview deploy-preview-59--obvious-issue-tracker-github.netlify.app serves the exact head build (SHA-1 verified: index.html 689cb3bc…, bundle index-dVUPF7fE.js 3a16a5ad…; preview published via API because the Netlify git integration is stalled).

Direct verification on that preview: the Cycle 12 DT-113 row renders with role="button" / tabindex="0", and a real click navigates to #/issue/_JKsdOkegcbXp88sW61J9 with the issue detail page rendering (verified in-browser, screenshot on file).

Vendor verification runs:

The recording's own step log shows the journey loaded this preview, navigated Cycles → Cycle 12, found the DT-113 row, and probed it via page.evaluate (no real click on the row in the step list). The "bug" verdict contradicts the direct click-through verification above, and its fields are internally inconsistent (bug verdict, zero bugs found). The failure reason is not exposed in the anonymous recording viewer (Details pane unavailable; the QA task page requires sign-in). Not merged pending a human call — see the worker report.

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.

2 participants