Skip to content

Drop all nine zone-shell audit exemptions — every child renders the shell - #1148

Merged
MaxGhenis merged 1 commit into
mainfrom
drop-shell-exemptions
Aug 10, 2026
Merged

MaxGhenis merged 1 commit into
mainfrom
drop-shell-exemptions

Conversation

@MaxGhenis

Copy link
Copy Markdown
Contributor

Completes the shell rule rollout begun in #1145: SHELL_BRAND_EXEMPT_SOURCES is now empty, and the unit tests pin it there.

Each of the nine bare legacy zone children now renders the PolicyEngine site shell itself (header with wordmark + Research / Model / API / Donate, plus the site footer links), merged and deployed:

Route Child PR
/uk/scotland-income-tax-reform PolicyEngine/scotland-income-tax-reform#11
/uk/student-loan-visualisation PolicyEngine/student-loan-visualisation#4
/us/obbba-household-explorer PolicyEngine/obbba-household-by-household#245
/uk/uc-rebalancing PolicyEngine/uc-rebalancing#4
/uk/cancelling-fuel-duty-rise PolicyEngine/cancelling-fuel-duty-rise#6
/uk/young-worker-nics PolicyEngine/young-worker-nics#5
/uk/nics-exemption-inactive-employees PolicyEngine/nics-exemption-inactive-employees#11
/uk/electricity-vat-cut PolicyEngine/electricity-vat-cut#1
/uk/bus-fare-cap PolicyEngine/bus-fare-cap#9

No appZoneRoutes.ts entries are touched (removing a zone rewrite 404s the route — #1143/#1144). CLAUDE.md's shell-rule paragraph now documents the drained list, and the exemption-era comment in the audit script is replaced with a pointer at the child PRs.

Verification

  • node --test .github/scripts/audit-app-zone-shell.test.mjs — 13/13 pass.
  • Full production audit run locally with the empty list: 67/67 enforced app-zone routes render the PolicyEngine shell (node .github/scripts/audit-app-zone-shell.mjs), including all nine routes above.

🤖 Generated with Claude Code

…he shell

All nine bare legacy zone children shipped the PolicyEngine site shell
(header/nav + footer, rendered by the child app) and deployed:

  /uk/scotland-income-tax-reform        scotland-income-tax-reform#11
  /uk/student-loan-visualisation        student-loan-visualisation#4
  /us/obbba-household-explorer          obbba-household-by-household#245
  /uk/uc-rebalancing                    uc-rebalancing#4
  /uk/cancelling-fuel-duty-rise         cancelling-fuel-duty-rise#6
  /uk/young-worker-nics                 young-worker-nics#5
  /uk/nics-exemption-inactive-employees nics-exemption-inactive-employees#11
  /uk/electricity-vat-cut               electricity-vat-cut#1
  /uk/bus-fare-cap                      bus-fare-cap#9

SHELL_BRAND_EXEMPT_SOURCES is now empty and the tests pin it there.
Full production audit passes with zero exemptions: 67/67 enforced
app-zone routes render the shell.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Aug 10, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
policyengine-calculator-next Ready Ready Preview Aug 10, 2026 8:49pm
policyengine-website Ready Ready Preview Aug 10, 2026 8:49pm

Request Review

@MaxGhenis
MaxGhenis merged commit 0a5366d into main Aug 10, 2026
13 checks passed
@MaxGhenis
MaxGhenis deleted the drop-shell-exemptions branch August 10, 2026 21:11
vahid-ahmadi added a commit to PolicyEngine/policyengine-uk-chat that referenced this pull request Aug 11, 2026
/uk/chat is served on policyengine.org through a multizone rewrite, which
does not inject the parent app's header into this response. Since
PolicyEngine/policyengine-app-v2#1148 every zone child renders the shell
itself, and the app-zone-shell-audit failed here with "PolicyEngine brand
missing from top shell", blocking the beta launch PR.

Adds a SiteHeader with the wordmark and the Research, Model, API and
Donate links the audit asserts are present in the top 140px. It lives in
the root layout rather than ChatPage so it is in the server-rendered HTML
— ChatPage is loaded with ssr: false.

The chat is a full-height layout, so the header would otherwise push the
composer below the fold. Its height is published as --pe-shell-h; the
full-height panes are now calc(100dvh - var(--pe-shell-h)) and the sticky
sidebars anchor at that offset instead of 0. Embedded copies (?embed)
already sit inside another page's chrome, so the header is skipped there
and --pe-shell-h drops to 0px.

Fixes #239

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

This branch was successfully deployed

2 active deployments
Preview – policyengine-website — 76fedaaf Deployed Aug 10, 2026 by vercel[bot]
Preview – policyengine-calculator-next — 76fedaaf Deployed Aug 10, 2026 by vercel[bot]
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