Skip to content

fix(web): explicit cursor:pointer on .nav-btn - #228

Merged
jakepresent merged 1 commit into
mainfrom
changliu2/fix-nav-cursor
Jun 13, 2026
Merged

fix(web): explicit cursor:pointer on .nav-btn#228
jakepresent merged 1 commit into
mainfrom
changliu2/fix-nav-cursor

Conversation

@changliu2

Copy link
Copy Markdown
Collaborator

What

One-line CSS: add cursor: pointer to .nav-btn.

Why

Top-nav buttons (Documentation, Read the blog, Get started) relied on the browser's a:any-link default to render the pointer cursor on hover. With display: inline-flex on the anchor and nested spans inside .nav-btn-shine (shine-border + shine-label), that browser default did not apply consistently across browsers.

User-reported repro: hovering Read the blog on any /docs/* sub-page shows the default arrow cursor, making the button look unclickable even though the click works.

Verification

  • HTML for the anchor is correct: <a href="https://commandline.microsoft.com/assert-written-intent-executable-evals/" target="_blank" rel="noopener noreferrer" class="nav-btn nav-btn-secondary">Read the blog</a>
  • URL returns 200 OK (real published blog post)
  • Existing .nav-btn-secondary:hover styles are unaffected
  • No other site rule sets cursor on a or .nav-btn (verified via grep cursor website/app/globals.css)

Diff: 1 file, +1 / −0.

Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com

Top-nav buttons (Documentation, Read the blog, Get started) relied on the browser's a:any-link default to render the pointer cursor. With display: inline-flex on the anchor and nested spans inside .nav-btn-shine (shine-border + shine-label), that default did not apply consistently — observed missing on 'Read the blog' over docs/* sub-pages.

Explicit cursor: pointer guarantees the affordance regardless of inner content or display mode. One-line CSS addition.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@changliu2
changliu2 requested a review from sooyeonni June 11, 2026 22:59
jakepresent pushed a commit that referenced this pull request Jun 13, 2026
* docs: run the maintainer-assist loop on an always-on host (PR #230 follow-up)

Addresses @tangym's review note on #230: the 24h/72h escalation windows are wall-clock thresholds, but the loop was documented as running on the maintainer's local workstation — which is offline in exactly the scenario the escalation is for (maintainer away). Document running it on an always-on host (small VM, CI cron, or scheduled GitHub Action) instead, and note that .github/CODEOWNERS already covers the baseline independent of the loop.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* feat: scheduled review-escalation Action (deterministic CODEOWNERS routing)

Reference implementation of the always-on escalation loop the docs now call for. .github/workflows/review-escalation.yml runs every 6h (plus manual workflow_dispatch with a dry-run default) and calls .github/scripts/escalate_reviews.py, which applies the 24h/72h/7d windows and CODEOWNERS routing deterministically — no LLM, so it runs reliably in CI on GitHub's always-on schedule.

Routing mirrors AGENTS.md: last-match CODEOWNERS, exclude author + OOO owners, fallback admin only as last resort, prefer the owner covering the most changed paths. Validated in dry-run against all open PRs (correctly routes #228->@minthigpen, #226->@AaronAspinwall123, observes PRs that already have reviewers, excludes authors).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix(escalation): align routing with governance contract (Jake's #232 review)

Three blocking issues from the review:

1. Routing now matches AGENTS.md / dev-maintainer.md. Updated both docs to state the deterministic tie-break the stateless reference Action uses (most changed-path coverage, then alphabetical) in place of the stateful 'least recently pinged', and documented the author-guard. Docs and code now agree.

2. The 7-day fallback is reachable. evaluate_pr now cascades by severity: never-requested -> first owner; requested + >=7d -> fallback admin; requested + >=72h -> second non-fallback owner; else observe. A requested-but-silent PR at 7d+ now reaches the fallback branch instead of looping on the 72h step. The fallback admin is reserved for 7d (72h uses non-fallback owners only).

3. The fallback never requests the PR author. New _safe_fallback() returns None when the fallback admin is the author (or already requested/reviewed); the caller then widens to another owner or emits a 'manual escalation' warning instead of pinging the author. Verified in dry-run: PR #88 (authored by the catch-all owner) now routes to a real co-owner, not the author.

Adds tests/test_escalate_reviews.py (7 cases incl. all three regressions). Dry-run across all open PRs confirmed no PR targets its own author.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

@jakepresent jakepresent left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Small, targeted website polish: adds cursor: pointer to .nav-btn, matching the element's clickable behavior.

Checked the diff and there are no conflict markers. Existing checks are passing. Looks good.

@jakepresent
jakepresent merged commit 37a4b95 into main Jun 13, 2026
14 checks passed
@jakepresent
jakepresent deleted the changliu2/fix-nav-cursor branch June 13, 2026 00:05
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