Skip to content

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

Merged
nish3451 merged 58 commits into
mainfrom
fix/brief-requested-clean-links-lane1
Aug 14, 2026
Merged

fix(public): point brief-requested nav and back links at clean non-307 paths#145
nish3451 merged 58 commits into
mainfrom
fix/brief-requested-clean-links-lane1

Conversation

@nish3451

@nish3451 nish3451 commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

What

The post-signup surface at /brief-requested (public/brief-requested.html) still carries the redirecting-internal-link fault PR #34 removed from the five public pages: its logo, three nav links and the back link point at .html forms that the deployed worker 307-redirects to their clean extensionless twins (verified live 2026-08-12: /audit.html → 307 → /audit, and the live page still serves all four .html hrefs):

anchor was now
logo index.html → 307 → / /
nav "The appraisal" audit.html → 307 → /audit /audit
nav "The desk" agents.html → 307 → /agents /agents
nav "Pricing" pricing.html → 307 → /pricing /pricing
back link index.html → 307 → / /

Why it slipped past the guard

The "Internal page links (dogfood 996dffe45ef7)" guard in scripts/check-site.mjs only covered the five public pages — brief-requested.html was not in internalLinkPages. This PR fixes the instance and the detector: the guard now includes the brief-requested page, and a negative probe confirmed it exits 1 if any .html page-name anchor returns there.

Re-land provenance

This is a re-land of the identical fix from PR #97 (fix/brief-requested-clean-links, fix commit ad5164e), cherry-picked onto current origin/main (5864e39). The re-landed commit's content lines are byte-identical to #97's fix commit (verified by diff); only hunk line numbers shifted because PR #113 (rel=icon favicon) landed since. #97 sat BEHIND current main since 2026-08-11 with ten main-merge commits, so per the repo's reconciliation pattern (docs/evidence/duplicate-open-pr-clusters-residual-2026-08-11.md) this clean re-land supersedes it and #97 is closed as the stale duplicate.

Validation

  • npm run check passes ("TinyStudio.io checks passed.").
  • npm test green: headings 6/6, sitemap 7/7, worker 55/55, UI 16/16, contract 8/8 (92 tests, 0 failures).
  • Item verify command: rg -q 'href="[^"]*\.html' public/brief-requested.html → no match.
  • Negative probe: re-introducing href="audit.html" (and href="agents.html") makes check-site.mjs exit 1 with Internal page link on brief-requested page must point at the clean destination "/audit"; passes again after restore.
  • Live evidence 2026-08-12: https://tinystudio.io/brief-requested still serves index.html/audit.html/agents.html/pricing.html; each .html path returns 307 to its clean twin — the fault this PR removes is live today.

Files

  • public/brief-requested.html — five anchors pointed at clean paths
  • scripts/check-site.mjs — internal-links guard extended to cover the post-signup page

Summary by CodeRabbit

  • Bug Fixes
    • Updated navigation and “Back to the site” links on the Brief Requested page to use clean, root-relative URLs.
    • Improved link consistency across the site by replacing outdated page-style destinations.
    • Expanded link validation to include the Brief Requested page.
    • Reduced the likelihood of visitors encountering broken or obsolete navigation links.

The post-signup /brief-requested page still linked its logo, nav and back
link at the .html forms (index.html, audit.html, agents.html, pricing.html),
each of which the worker 307-redirects to its clean extensionless twin —
the same redirecting-internal-link fault PR #34 removed from the five public
pages, left unfixed on the sixth surface. Point the five anchors at /,
/audit, /agents, /pricing and extend the check-site.mjs internal-links guard
(dogfood 996dffe45ef7) to cover the brief-requested page so the shape cannot
return.

@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 12, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 005700cc-d097-43b8-b152-8709ee1ca69c

📥 Commits

Reviewing files that changed from the base of the PR and between ef53651 and 61e4a80.

📒 Files selected for processing (2)
  • public/brief-requested.html
  • scripts/check-site.mjs
🚧 Files skipped from review as they are similar to previous changes (2)
  • public/brief-requested.html
  • scripts/check-site.mjs

📝 Walkthrough

Walkthrough

The /brief-requested page now uses root-relative links. The site validation script checks this page for links that target .html paths.

Changes

Clean URL validation

Layer / File(s) Summary
Update page links and validation
public/brief-requested.html, scripts/check-site.mjs
Navigation and “Back to the site” links now use extensionless destinations. The internal-link regression check now includes /brief-requested.

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

Mergeability Score: ⚪ Minimal · up to 61e4a

The post-signup page now uses clean navigation paths and validates them against regressions; no actionable merge-blocking risk remains after normal checks and review.

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 identifies the navigation and back-link fix for clean, non-307 paths in the updated public page.
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
📝 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-links-lane1

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

@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 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: edc128a55f

ℹ️ 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 page", read("public/pricing.html")],
["specimen page", read("public/specimen.html")]
["specimen page", read("public/specimen.html")],
["brief-requested page", read("public/brief-requested.html")]

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 URLs in the new link guard

When a future edit on this newly guarded page uses a root-relative redirecting URL such as href="/audit.html", the check still passes: target remains /audit.html, while htmlPageTargets only contains the bare audit.html key. This permits the same 307-producing link shape the guard claims to prevent; normalize leading / and ./ forms (or parse the pathname) before the lookup.

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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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: 7fe35ee25b

ℹ️ 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 page", read("public/pricing.html")],
["specimen page", read("public/specimen.html")]
["specimen page", read("public/specimen.html")],
["brief-requested page", read("public/brief-requested.html")]

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 Add brief-requested.html to the forbidden targets

When any guarded page contains href="brief-requested.html", the check still passes because that target is absent from htmlPageTargets, even though the deployed .html URL redirects to /brief-requested. Adding this page only to internalLinkPages scans links originating from it; it does not guard links pointing to it. I confirmed this by inserting such an anchor into public/index.html and running npm run check, which still passed.

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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@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.

Your trial has ended. Reactivate Greptile to resume code reviews.

@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.

@nish3451
nish3451 merged commit f9214c1 into main Aug 14, 2026
3 checks passed
nish3451 added a commit that referenced this pull request Aug 14, 2026
…8-14)

PR #145 merged to main as f9214c1 (2026-08-14T09:42:02Z): brief-requested
now serves the clean anchors and the internal-links guard covers the page.
Update the receipt and lane report from "survivor verified, awaiting merge"
to the landed closeout.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
nish3451 added a commit that referenced this pull request Aug 14, 2026
…on current main and live (2026-08-14) (#188)

* docs(evidence): re-verify brief-requested clean-links survivor PR #145 on current main and live (2026-08-14)

The post-signup surface still carries the redirecting-.html fault the item
names (verified live: all four .html hrefs 307 to their clean twins). The
fix lives on the sole surviving delivery path PR #145, open and MERGEABLE
against current origin/main with CI green; this receipt records the
authoritative re-verify of that tree (check + 117 tests + negative probe)
so the surface closes when #145 merges.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>

* docs(evidence): record the merged landing of survivor PR #145 (2026-08-14)

PR #145 merged to main as f9214c1 (2026-08-14T09:42:02Z): brief-requested
now serves the clean anchors and the internal-links guard covers the page.
Update the receipt and lane report from "survivor verified, awaiting merge"
to the landed closeout.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>

---------

Co-authored-by: nish3451 <nish3451@users.noreply.github.com>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
nish3451 added a commit that referenced this pull request Aug 14, 2026
…duals (#196)

* docs(evidence): close the two post-#105 duplicate fix-PR cluster residuals

Both residual clusters from the #105 reconciliation are in terminal state:
cluster 1 (brief-requested clean links) merged via survivor #145 (f9214c1),
cluster 2 (favicon) delivered via #85 and #113. Verified on this run that
no open PR carries either fix, main carries both, checks/tests are green on
a fresh main tree, and live /brief-requested serves no .html hrefs.
Records the authoritative closeout of item f3c90474c1.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>

* docs(lane-report): note PR #196 delivery in closeout report

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>

---------

Co-authored-by: nish3451 <nish3451@users.noreply.github.com>
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
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