Skip to content

fix(public): point llms.txt and offer.md buyer URLs at the clean non-307 paths - #57

Closed
nish3451 wants to merge 2 commits into
mainfrom
fix/llms-offer-clean-buyer-urls
Closed

fix(public): point llms.txt and offer.md buyer URLs at the clean non-307 paths#57
nish3451 wants to merge 2 commits into
mainfrom
fix/llms-offer-clean-buyer-urls

Conversation

@nish3451

@nish3451 nish3451 commented Aug 9, 2026

Copy link
Copy Markdown
Collaborator

What

The deployed worker 307-redirects every .html form to its clean
extensionless twin, so the buyer URLs in the machine-readable pair
(public/llms.txt, public/offer.md) named addresses that redirect
before they serve. Point them at the clean paths that serve 200:

  • https://tinystudio.io/audit.htmlhttps://tinystudio.io/audit
  • https://tinystudio.io/pricing.htmlhttps://tinystudio.io/pricing

Changed in both files: the AI-search evidence artifact pointer, all
seven preferred-source mappings, and the price-and-terms pointers.

Guard updates

  • scripts/check-site.mjs: the offer-fact needle, the price-question
    preferred-source guard, the audit evidence-artifact pointer guard, and
    the surrounding comments/messages now require the clean forms.
  • scripts/test-agent-ui.mjs: the offer-fact needle, the served-pages
    membership list, the price-question mapping assertion, and the
    audit/pricing pointer assertions now require the clean forms.

Verification

  • Live: curl -sI https://tinystudio.io/audit.html → 307 → /audit;
    https://tinystudio.io/audit → 200. Same shape for /pricing.
  • npm run check passes.
  • npm test passes (headings 7, sitemap 53, worker 6, UI 16).

…307 paths

The deployed worker 307-redirects every .html form to its clean
extensionless twin, so the machine-readable pair's buyer URLs named
addresses that redirect before they serve. Point the audit and pricing
URLs at https://tinystudio.io/audit and https://tinystudio.io/pricing
(the addresses that serve 200) and move the check-site and agent-ui
guard expectations to match.

@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

Warning

Review limit reached

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

Next review available in: 28 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: f4ef83ce-8803-4e92-9d26-c450958fb67d

📥 Commits

Reviewing files that changed from the base of the PR and between f9f0b0f and 06d460d.

📒 Files selected for processing (4)
  • public/llms.txt
  • public/offer.md
  • scripts/check-site.mjs
  • scripts/test-agent-ui.mjs

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

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

ℹ️ 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/test-agent-ui.mjs
Comment on lines +621 to 624
assert.equal(preferred, "https://tinystudio.io/pricing", `price question ${question.id} must map to the clean /pricing`);
}
const offerLine = offerSection.split("\n").find((line) => line.includes(question.id));
assert.ok(offerLine?.includes(preferred), `offer.md must mirror the preferred source page for ${question.id}`);

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 Compare extensionless mirror URLs as complete tokens

If only offer.md regresses a preferred-source mapping to the old https://tinystudio.io/pricing.html or .../audit.html form, this test still passes because the clean preferred value is a prefix of that redirecting URL. The equivalent mirror check in check-site.mjs uses the same substring comparison, so CI would not enforce the stated clean-URL contract on both files; extract the URL from offerLine and compare it for equality instead.

Useful? React with 👍 / 👎.

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

@nish3451

Copy link
Copy Markdown
Collaborator Author

Closing: llms/offer clean URLs landed via #19/#42/#102.

@nish3451 nish3451 closed this Aug 14, 2026
nish3451 added a commit that referenced this pull request Aug 21, 2026
…nt main and live (2026-08-21, lane 1, item 7a215e4e7a) (#279)

The closed twin's fix PR #57 (commit d187f48, 'fix(public): point llms.txt
and offer.md buyer URLs at the clean non-307 paths') was re-landed and
merged to origin/main as PR #202 (squash c447585, 2026-08-15). This
lane-1 closeout re-verifies the survivor tree authoritatively against
current origin/main (92d55c3) and the live deployment:

- public/llms.txt and public/offer.md both point every buyer URL at the
  clean form (/audit, /pricing) that serves 200; live md5 matches the
  worktree copy of both files.
- /audit.html and /pricing.html still 307 to their clean twins (worker
  behavior unchanged from the twin's fix); /audit and /pricing serve 200.
- The check-site and agent-ui guards require the clean form; a one-line
  revert (pricing.html) makes node scripts/check-site.mjs exit 1 with
  the named guard message; restore passes.
- PR #57 closed 2026-08-15 with a comment naming survivor #202; the
  cluster is reconciled.

No code change on this branch — opening a duplicate of PR #202 would
recreate the duplicate open-PR cluster the fleet reconciled. The two
remaining 'pricing.html' strings in llms.txt:6 and offer.md:3 are
prose file-name references, not buyer URLs, and are outside the twin's
fix scope (touched independently on branch growth/geo-llms-pricing-clean-b,
origin/pr/275).

Files:
- docs/evidence/llms-offer-clean-buyer-urls-rereverify-2026-08-21-lane1.md (new evidence receipt)
- .lane/reports/chore-llms-offer-clean-buyer-urls-rereverify-lane1-2026-08-21.md (lane-1 closeout)

Co-authored-by: minimax-vps <minimax-vps@local>
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