syntaqxsudo is a React app now, hydrated in the browser as the site is: pages are still rendered on the server, then React Router takes over, so a sidebar link opens the next page without reloading. A lavender bar across the top shows while the next page loads (it appears at once, creeps, then fills and fades, as on the site) and the page dims after a moment. The phone menu closes when a link is followed, and a <Form> that was sent goes back to what the page now says, its button letting go of the spinner. The pages run only sudo's own scripts: each page's content security policy names a nonce made for that page (script-src 'self' 'nonce-…', connect-src 'self', everything else as strict as before, still no inline style), entry.server.tsx hands it to React Router's inline scripts and preloads, and every answer that is not a page (data, redirects, files) still forbids every script. The <details> folds still open before any script loads. Comments and the README that said sudo ships no JavaScript now say what is true. Checked: npm run typecheck and npm test in apps/sudo (160, new: the page policy and its nonce), npm run build, and the built worker run locally with the Access check stubbed (not committed) in headless Chrome: no CSP violations or console errors, the page hydrates, a folded section opens on click, a sidebar link navigates client-side with the bar and the dimming, the phone menu closes on navigation, and .data answers keep script-src 'none'. Posting a form was not tried locally (the same-origin check wants https://sudo.g1t.sh).5d7461bHistory
- ..
- access.test.ts
- access.ts
- aliases.test.ts
- aliases.ts
- billing-actions.server.ts
- chart.test.ts
- chart.ts
- costs-route.server.ts
- costs.test.ts
- costs.ts
- credits.test.ts
- credits.ts
- deleted-accounts.test.ts
- deleted-accounts.ts
- deleted-workspaces.test.ts
- deleted-workspaces.ts
- forms.test.ts
- forms.ts
- guard.test.ts
- guard.ts
- incidents.test.ts
- incidents.ts
- invites.test.ts
- invites.ts
- latency.test.ts
- latency.ts
- ledgers.test.ts
- ledgers.ts
- money.test.ts
- money.ts
- nav.test.ts
- nav.ts
- postmortem.ts
- pricing.test.ts
- pricing.ts
- review.ts
- sales-actions.server.ts
- services.server.ts
- settle.ts
- signals.test.ts
- signals.ts
- staff.ts
- suspension.test.ts
- suspension.ts
- terms.test.ts
- terms.ts
- test-detach.server.ts
- test-detach.test.ts
- test-detach.ts
- time.test.ts
- time.ts
- workspaces.test.ts
- workspaces.ts