Skip to content

fix(public): point brief-requested nav and back links at clean non-307 paths - #60

Closed
nish3451 wants to merge 13 commits into
mainfrom
fix/brief-requested-clean-nav-links
Closed

nish3451 wants to merge 13 commits into
mainfrom
fix/brief-requested-clean-nav-links

Conversation

@nish3451

@nish3451 nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

What

The post-signup surface (/brief-requested) still carried the redirecting internal links this site's own leak audit flags. Its logo, nav ("The appraisal", "The desk", "Pricing") and "Back to the site" anchors targeted .html files that 307-redirect to the clean extensionless twins the worker serves:

  • index.html → 307 → /
  • audit.html → 307 → /audit
  • agents.html → 307 → /agents
  • pricing.html → 307 → /pricing

PR #34 (dogfood finding 996dffe45ef7) fixed the five indexable pages and added the check-site.mjs internal page links guard, but brief-requested.html was left out — so every link a real user clicks after signup still resolves through a 307.

Change

  1. public/brief-requested.html — every anchor now points at the clean URL (/, /audit, /agents, /pricing), never a .html form that resolves to it.
  2. scripts/check-site.mjs — the internal page links guard now covers the sixth served page (brief-requested page in internalLinkPages, brief-requested.html → /brief-requested in htmlPageTargets), so the redirecting shape cannot return.

Validation

  • npm run check — passed (incl. the extended internal links guard)
  • npm test — passed: 6/6 headings, 7/7 sitemap, 53/53 worker, 16/16 UI
  • Negative test: temporarily re-pointing /auditaudit.html makes npm run check fail with Internal page link on brief-requested page must point at the clean destination "/audit" (found "audit.html")., proving the guard bites.

Evidence

  • docs/evidence/internal-links-2026-08-09.md — live 307 baseline for the five .html forms
  • docs/evidence/sitemap-2026-08-09.md/brief-requested served as the noindex signup page

Summary by CodeRabbit

  • Bug Fixes

    • Updated confirmation page links to use clean, root-relative URLs.
    • Fixed navigation for the logo, appraisal, desk, pricing, and back-to-site links.
  • Tests

    • Added regression coverage to verify the confirmation page resolves correctly at its clean URL.

…7 paths

The post-signup page still carried the redirecting internal links the
leak audit flags: its logo, nav and back anchors targeted .html files
that 307-redirect to the clean extensionless twins the worker serves
(index.html -> /, audit.html -> /audit, agents.html -> /agents,
pricing.html -> /pricing). PR #34 fixed the five indexable pages and
guarded them in check-site.mjs, but brief-requested.html was missed.

Point every anchor on brief-requested.html at the clean URL and extend
the internal page links guard to cover the sixth served page, so the
redirecting shape cannot return on the post-signup surface.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@coderabbitai

coderabbitai Bot commented Aug 9, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@nish3451, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 4 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e252cb1c-99a6-4426-9308-a95ff9df8435

📥 Commits

Reviewing files that changed from the base of the PR and between db7b2b1 and 31487e9.

📒 Files selected for processing (1)
  • scripts/check-site.mjs
📝 Walkthrough

Walkthrough

The confirmation page now uses root-relative clean URLs for navigation. The site checker validates the /brief-requested route and its .html mapping.

Changes

Clean URL navigation

Layer / File(s) Summary
Update confirmation page links
public/brief-requested.html
Navigation and back-to-site links now use root-relative routes instead of .html filenames.
Extend clean URL validation
scripts/check-site.mjs
The internal-link checks now include brief-requested.html and its /brief-requested clean URL mapping.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the main change: updating brief-requested navigation and back links to use clean, non-redirecting paths.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/brief-requested-clean-nav-links

Comment @coderabbitai help to get the list of available commands.

@nish3451 nish3451 closed this Aug 10, 2026
@nish3451 nish3451 reopened this Aug 10, 2026

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d0cf0027f0

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread scripts/check-site.mjs
"pricing.html": "/pricing",
"specimen.html": "/specimen"
"specimen.html": "/specimen",
"brief-requested.html": "/brief-requested"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Normalize root-relative targets in the new link guard

The page now uses root-relative links such as /audit, but every lookup key here omits the leading slash. Consequently, changing one of the newly covered links to /audit.html leaves target as /audit.html, which does not match audit.html, and the check still passes. I verified this by making that substitution on this commit and running scripts/check-site.mjs; it reported success. Normalize the target or include root-relative keys so the guard actually prevents the redirect regression it claims to cover.

Useful? React with 👍 / 👎.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, add credits to your account and enable them for code reviews in your settings.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@nish3451

Copy link
Copy Markdown
Collaborator Author

Closing as the stale duplicate in the duplicate open-PR reconciliation (docs/evidence/duplicate-open-pr-clusters-residual-2026-08-11): #97 re-lands the byte-identical brief-requested clean-links fix (public/brief-requested.html anchors + the check-site.mjs internal-links guard extension) on the fresh current-main base, while this branch is mergeStateStatus BEHIND against a stale base and its body lacks the guard-coverage receipt. Verified: the brief-requested.html diff and the guard extension are identical between #60 and #97 (only guard-comment wording differs); #97 passes npm run check on its own tree and sits directly on current origin/main HEAD (a30f2ad). #97 is the superior delivery path.

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.

1 participant