fix(public): restore Promptly support heading hierarchy - #20
Conversation
intended-outcome: Promptly support exposes a coherent H1-to-H2 heading outline without changing visible copy or routing. verify: /home/nish/.local/bin/test-gate npm test; /home/nish/.local/bin/test-gate npm run ci; git diff --check; node --check scripts/test-active-operator-surfaces.mjs; sgscan (pre-existing warnings only). Co-Authored-By: Claude <noreply@anthropic.com>
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.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe support page now uses H2 elements for its three card headings. Automated checks validate that H2 content follows the H1 and that no H3 appears before H2 content. ChangesSupport heading hierarchy
Estimated code review effort: 1 (Trivial) | ~5 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b4db763013
ℹ️ 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".
| <article class="info-card reveal delay-1"> | ||
| <p class="eyebrow">Email route</p> | ||
| <h3>A support address that is ready now.</h3> | ||
| <h2>A support address that is ready now.</h2> |
There was a problem hiding this comment.
Preserve card styling when promoting the headings
At every viewport, changing these elements to h2 also changes their presentation: the global h2 rule in public/styles.css:212-216 uses a 2.2–4.2rem size and a 12ch maximum width, whereas these cards previously received the 1.65–2.35rem h3 size and the .info-card h3 spacing in public/styles.css:218-220,703-705. Consequently all three card headings become substantially larger and reflow, despite this change's stated semantic-only outcome; add equivalent card-scoped styling for the promoted h2 elements.
Useful? React with 👍 / 👎.
| const promptlySupport = readFileSync(join(C, "public/promptly/support/index.html"), "utf8") | ||
| const promptlySupportHeadings = [...promptlySupport.matchAll(/<h([1-3])\b/gi)].map(match => Number(match[1])) | ||
| ok(promptlySupportHeadings.indexOf(2) > promptlySupportHeadings.indexOf(1), "Promptly support must introduce H2 content after its H1") | ||
| ok(!promptlySupportHeadings.slice(promptlySupportHeadings.indexOf(1) + 1).some((level, index, levels) => level === 3 && (index === 0 || levels[index - 1] < 2)), "Promptly support must not skip H2 before content H3 headings") |
There was a problem hiding this comment.
Assert every promoted card heading
If either the second or third content-card heading regresses to h3, the resulting sequence still begins h1, h2, h3, so both new assertions pass because every later h3 is effectively blessed by the first card's h2. This therefore does not guard the three promotions it was added to protect; select the three .info-card headings or compare their expected levels directly.
Useful? React with 👍 / 👎.
… leave the June-20 bundle (#81) * fix(public): add the tinystudio.in release lane (Cloudflare Pages deploy path repair) The live site has served the 2026-06-20 bundle (07acd07) since June 20 while 17+ public PRs merged to main; the Cloudflare Pages git connection for tiny-studio-3f5 never shows checks/statuses on commits and no deploy workflow or secrets exist in the repo. The fleet Workers token lacks Cloudflare Pages:Edit, so no automation on this box can publish today. Add an in-repo release lane that works the moment a Pages-scoped token is provisioned (documented fail-closed message): - scripts/prepare-public-deploy-bundle.mjs: filtered bundle (public/ minus the snoozed-by-Nish managed-service buyer path from PRs #10/#11; every other merged fix preserved), fail-closed in both directions - scripts/test-public-deploy-bundle.mjs: regression guard, wired into npm test/ci (62 checks) - scripts/publish-public-site.mjs: prepare -> wrangler pages deploy to tiny-studio-3f5 -> live verification - scripts/check-public-live-deploy.mjs: live proof for the deploy-path accept (H2-after-H1 /promptly/support/ #18/#20, JSON-LD /contact/ #19, real 404s #34, homepage portfolio-only #29 + no buyer path) - .github/workflows/deploy-public-site.yml: vps-verify lane on push to main - wrangler 4.120.0 devDependency verify: npm test (603 checks, 0 failures); node scripts/prepare-public-deploy-bundle.mjs; git diff --check * fix(public): attach the source commit to Cloudflare Pages deployments wrangler pages deploy accepts --commit-hash/--commit-message/--commit-dirty for dashboard provenance. The bundle already records source_commit in deploy-manifest.json; pass it through so the Pages dashboard links the deployment to the exact tinystudio-in commit that produced the bundle. verify: node --check scripts/publish-public-site.mjs; node scripts/test-public-deploy-bundle.mjs (62 checks, 0 failures) Co-authored-by: CommandCodeBot <noreply@commandcode.ai> --------- Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
…-heading finding The 2026-08-08 scout item named /promptly/support/: it was repaired in source by PR #20 (H1 -> H2 cards, no outline jumps) and origin/main already carries the fixed outline, but the live site still serves the June-20 bundle: the deployed page jumps H1 -> H3 (live outline [1,3,3,3,2,3,3,3]) and the deployed stylesheet keeps the old .info-card h3-only rule, so the finding silently stays open against tinystudio.in. The local suite (test-public-heading-hierarchy.mjs) did not even assert public/promptly/support/index.html, and the live heading-hierarchy guard from PR #76 checks Drishti support and Privacy Choices but not the scout's own page. Add /promptly/support/ to the local suite's affected pages (50 checks, 0 failures) and add scripts/test-public-live-heading-hierarchy.mjs guarding /promptly/support/ plus the two pages PR #76 covers, wired into npm test and npm run ci. Network-tolerant: skips when the site is unreachable, fails loudly while it serves the stale bundle. Once the release lane (PR #70) publishes the fixed bundle, the guard flips green. Publishing from this box is still blocked: the fleet Cloudflare token returns 403 on the Pages projects API (no Pages:Edit), and no Pages-scoped secret or wrangler exists here. intended-outcome: the Promptly support heading hierarchy can no longer regress silently on the live site; the stale June-20 deployment fails npm test/ci loudly until the fixed bundle is published. verify: node scripts/test-public-heading-hierarchy.mjs 50 checks 0 failures; node scripts/test-public-live-heading-hierarchy.mjs fails loudly on the current deployment (25 checks, 14 failures, all stale-deployment detections); npm test otherwise clean; find scripts -name '*.mjs' node --check clean; git diff --check clean
…-heading finding The 2026-08-08 scout item named /promptly/support/: it was repaired in source by PR #20 (H1 -> H2 cards, no outline jumps) and origin/main already carries the fixed outline, but the live site still serves the June-20 bundle: the deployed page jumps H1 -> H3 (live outline [1,3,3,3,2,3,3,3]) and the deployed stylesheet keeps the old .info-card h3-only rule, so the finding silently stays open against tinystudio.in. The local suite (test-public-heading-hierarchy.mjs) did not even assert public/promptly/support/index.html, and the live heading-hierarchy guard from PR #76 checks Drishti support and Privacy Choices but not the scout's own page. Add /promptly/support/ to the local suite's affected pages (50 checks, 0 failures) and add scripts/test-public-live-heading-hierarchy.mjs guarding /promptly/support/ plus the two pages PR #76 covers, wired into npm test and npm run ci. Network-tolerant: skips when the site is unreachable, fails loudly while it serves the stale bundle. Once the release lane (PR #70) publishes the fixed bundle, the guard flips green. Publishing from this box is still blocked: the fleet Cloudflare token returns 403 on the Pages projects API (no Pages:Edit), and no Pages-scoped secret or wrangler exists here. intended-outcome: the Promptly support heading hierarchy can no longer regress silently on the live site; the stale June-20 deployment fails npm test/ci loudly until the fixed bundle is published. verify: node scripts/test-public-heading-hierarchy.mjs 50 checks 0 failures; node scripts/test-public-live-heading-hierarchy.mjs fails loudly on the current deployment (25 checks, 14 failures, all stale-deployment detections); npm test otherwise clean; find scripts -name '*.mjs' node --check clean; git diff --check clean
…-heading finding (fresh, superseding stale PR #77) The 2026-08-08 scout item named /promptly/support/: the source outline was repaired by PR #20 (H1 -> H2 cards) and origin/main carries the fixed markup, but production still serves the June-20 bundle - the deployed page jumps H1 -> H3 (verified live 2026-08-12) and the deployed stylesheet keeps the old .info-card h3-only rule, so the finding stays open against tinystudio.in. The closed live-delivery item's guard (PR #77, fix/lane1-promptly-support- heading-hierarchy-live-guard) was never merged: it conflicts with current main and its script asserted npm test/ci wiring that its own header forbids. This lands the guard fresh from origin/main following the fleet's settled convention (standalone, out of the blocking chain, in the nightly net - matching PR #118 for the other two repaired pages): - scripts/test-public-heading-hierarchy.mjs now asserts public/promptly/support/index.html (68 checks, 0 failures; the scout's own page was previously unasserted in source) - scripts/test-public-live-promptly-support-heading.mjs (new): re-asserts the repaired outline + card-heading CSS rule against the live site; network-tolerant skip, fails loudly while the stale bundle is served (verified: 14 checks, 8 failures against the current deployment) - npm run site:check-live-promptly-support-heading on-demand entry point - .github/workflows/live-site-check.yml: nightly job alongside soft-404 The deploy acceptance (scripts/check-public-live-deploy.mjs, already on main) verifies H2-after-H1 on /promptly/support/ the moment the release lane publishes; the lane stays dormant until the Pages-scoped CLOUDFLARE_API_TOKEN secret is provisioned (documented NEEDS-NISH step).
…ve blocked on missing Cloudflare token (#167) Re-verified 2026-08-15 on lane resume: fix 1536cc8 (PR #20) is in main and test-pinned; live tinystudio.in/promptly/support/ still serves the old H1->H3 outline because every deploy run fails at the fail-closed missing CLOUDFLARE_API_TOKEN step. NEEDS-NISH: provision the secret. Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
…upport-live-heading-guard fix(public): alarm live Promptly support H2 cards from PR #20
…he outline is live The nightly live guard's closing line claimed the finding "stays open" against tinystudio.in; production now serves the PR #20 repaired outline (9 checks, 0 failures), so the line now states the deployed page keeps the repaired outline and names the reverify lane report. Assertions unchanged. Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
Intended outcome
Promptly support exposes a coherent H1-to-H2 heading outline without changing visible copy, styling, links, or support workflow.
What changed
Verify
test-gate npm test— passed, 126 checkstest-gate npm run ci— passed, 126 checksgit diff --check— passednode --check scripts/test-active-operator-surfaces.mjs— passedsgscan— pre-existing warnings only; no new finding attributable to this diffLive deployment proof remains separate from this PR.
Summary by CodeRabbit
Accessibility
Tests