fix(public): guard live llms.txt coverage in both live-site checkers - #109
fix(public): guard live llms.txt coverage in both live-site checkers#109nish3451 wants to merge 8 commits into
Conversation
…ve-site guards The June-20 bundle's llms.txt lists only 7 of the 12 public URLs; the five per-app support/privacy trust pages (privacy-choices, Promptly support/privacy, Drishti support/privacy) are missing. The repo source was fixed in #68, but the deploy lane cannot leave the June-20 bundle until a Pages-scoped token is provisioned, and neither live guard checked llms.txt coverage - so a stale or truncated llms.txt shipped silently. Add a single source of truth (scripts/lib/public-pages.mjs) for the public page set and assert llms.txt coverage from: - check-public-live-deploy.mjs: the release-lane post-deploy verifier now fails loudly when the deployed llms.txt misses any public page - check-public-live-soft-404.mjs: the nightly stale-bundle net now reports exactly which URLs llms.txt is missing - prepare-static-site-bundle.mjs: the generator uses the shared list, so generator and guards cannot drift again verify: node --check all four files; public test suite green (test-public- deploy-bundle 62/62, brand-disambiguation 11/11, heading-hierarchy 62/62, conversion-signal 126/126, structured-data 127/127, link-targets 77/77, social-preview 137/137, soft-404 19/19); both live guards now FAIL against the current June-20 bundle with the exact missing-URL list
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
|
Warning Review limit reached
Next review available in: 12 minutes Limit details: You’ve used the included review currently available. Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the 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 within each organization. For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: 📒 Files selected for processing (4)
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8d538629a0
ℹ️ 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".
| { | ||
| const { status, body } = await get("/llms.txt") | ||
| ok(status === 200, `/llms.txt returns 200 (got ${status})`) | ||
| const missing = PUBLIC_PAGE_URLS.filter((url) => !body.includes(url)) |
There was a problem hiding this comment.
Match complete llms.txt URL entries
Using body.includes(url) treats parent URLs as present whenever a child URL is listed: for example, https://tinystudio.in/promptly/support/ satisfies checks for both the homepage and /promptly/. Consequently, both live-site guards can pass even if the Home, Promptly, or Drishti entries are absent, defeating the coverage check this commit adds. Parse the file into complete URL tokens or lines and compare exact entries instead.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
nish3451 has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
…erage-check # Conflicts: # scripts/check-public-live-deploy.mjs
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
Why
The live llms.txt at tinystudio.in lists only 7 of the 12 public URLs — the five per-app support/privacy trust pages are missing:
The repo source was already fixed in #68 (
public/llms.txt+ the bundle generator both list all 12), but the live site still serves the June-20 bundle because the release lane cannot publish until a Cloudflare Pages-scoped token is provisioned (repo has no secrets; the fleet Workers token lacks Pages:Edit). While that provisioning is pending, the regression must be loudly detectable instead of silent.What
/llms.txtlists every public page (new proof E).Verification
node --checkclean on all four files.Follow-up (out of this PR's scope)
The live site itself leaves the June-20 bundle only after the one-time Cloudflare dashboard step: create a
Cloudflare Pages: Edittoken, thengh secret set CLOUDFLARE_API_TOKENandgh secret set CLOUDFLARE_ACCOUNT_ID -b f670a698e17bf160c8e4679823e68916on this repo; the deploy lane then publishes on the next main merge.