feat(registry): the account pages in the brand shell #307

Merged
argus merged 2 commits from loop/295-account-pages-brand-shell into main 2026-10-10 13:31:03 +00:00
Collaborator

Closes #295

What. Every page of tools/registry/src/account.trb goes through registryPageHtml (the shell of #12) and wears brand/tokens.css; BRAND.md slice 2 is done.

Two commits:

  1. feat(docs): the registry stylesheet's form rules - registryStylesheet gains the account pages' rules (labelled field, text input, form row, record list, tokens table), tokens only, with a test; docs/tooling/torb-docs-site.md.
  2. feat(registry): the account pages in the brand shell - pageOf calls the shell; forms/buttons/tables/notices use the brand's classes (ink primary button, never red); contentSecurityPolicy = previous + script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self', ceremonyPolicy = previous + style-src 'self'; font-src 'self'; img-src 'self' (form-action, frame-ancestors, base-uri, policyOf unchanged); README, RELEASE.md 7.1/7.11, BRAND.md.

Decisions (issue #295 comments). script-src 'self' is added to the plain policy because the shell loads /assets/registry.js in every head; no inline script is added.

Tests. New tools/registry/tests/account-shell.trb (shellProblems: policy has no unsafe-*, every <script has src="/, no style=, no event handler, one shell document) is asserted for the account, refusal, sign-in, sign-up, claim, passkey (registration and sign-in), step-up (ceremony and approved), enrolment and recovery-codes pages. Existing assertions that the body has no <script/http:// were changed to the shell's one script / no external src.

Seed impact. None (markup, CSS, policy strings in .trb).

Test. Not run locally (no gates/bootstrap per dev-workflow); the forge CI runs them.

After merge. Deploying the registry is outside the loop.

Closes #295 **What.** Every page of `tools/registry/src/account.trb` goes through `registryPageHtml` (the shell of #12) and wears `brand/tokens.css`; BRAND.md slice 2 is done. Two commits: 1. `feat(docs): the registry stylesheet's form rules` - `registryStylesheet` gains the account pages' rules (labelled field, text input, form row, record list, tokens table), tokens only, with a test; `docs/tooling/torb-docs-site.md`. 2. `feat(registry): the account pages in the brand shell` - `pageOf` calls the shell; forms/buttons/tables/notices use the brand's classes (ink primary button, never red); `contentSecurityPolicy` = previous + `script-src 'self'; style-src 'self'; font-src 'self'; img-src 'self'`, `ceremonyPolicy` = previous + `style-src 'self'; font-src 'self'; img-src 'self'` (`form-action`, `frame-ancestors`, `base-uri`, `policyOf` unchanged); README, RELEASE.md 7.1/7.11, BRAND.md. **Decisions (issue #295 comments).** `script-src 'self'` is added to the plain policy because the shell loads `/assets/registry.js` in every head; no inline script is added. **Tests.** New `tools/registry/tests/account-shell.trb` (`shellProblems`: policy has no `unsafe-*`, every `<script` has `src="/`, no `style=`, no event handler, one shell document) is asserted for the account, refusal, sign-in, sign-up, claim, passkey (registration and sign-in), step-up (ceremony and approved), enrolment and recovery-codes pages. Existing assertions that the body has no `<script`/`http://` were changed to the shell's one script / no external `src`. **Seed impact.** None (markup, CSS, policy strings in `.trb`). **Test.** Not run locally (no gates/bootstrap per dev-workflow); the forge CI runs them. **After merge.** Deploying the registry is outside the loop.
feat(registry): the account pages in the brand shell
Some checks failed
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Failing after 10s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the VS Code extension (editors/vscode) (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / bootstrap (linux-x64) (pull_request) Has been cancelled
0b0de5cabb
orion requested review from argus 2026-10-10 10:57:48 +00:00
orion force-pushed loop/295-account-pages-brand-shell from 0b0de5cabb
Some checks failed
ci / commit messages (pull_request) Successful in 6s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Failing after 10s
ci / which runners exist (pull_request) Successful in 1s
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / gates (pull_request) Has been cancelled
ci / tier A (linux-x64) (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been cancelled
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / the VS Code extension (editors/vscode) (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / bootstrap (linux-x64) (pull_request) Has been cancelled
to 5e6daf8754
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 3s
pdisc / pdisc (pull_request) Successful in 8s
ci / which runners exist (pull_request) Successful in 0s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m7s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 3m53s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Failing after 25s
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
2026-10-10 11:29:52 +00:00
Compare
orion force-pushed loop/295-account-pages-brand-shell from 5e6daf8754
Some checks failed
ci / commit messages (pull_request) Successful in 4s
ci / what the change touches (pull_request) Successful in 3s
pdisc / pdisc (pull_request) Successful in 8s
ci / which runners exist (pull_request) Successful in 0s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 15s
ci / bootstrap (linux-x64) (pull_request) Successful in 5m7s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 3m53s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Failing after 25s
ci / gates (pull_request) Has been cancelled
ci / the playground (torb as WebAssembly) (pull_request) Has been cancelled
ci / pack the seed (pull_request) Has been cancelled
ci / archives (pull_request) Has been cancelled
ci / every host emits the same C (pull_request) Has been cancelled
ci / tier B (linux-x64) (pull_request) Has been cancelled
to c6d20d097e
All checks were successful
ci / commit messages (pull_request) Successful in 5s
ci / what the change touches (pull_request) Successful in 5s
pdisc / pdisc (pull_request) Successful in 10s
ci / which runners exist (pull_request) Successful in 2s
ci / bootstrap and conformance (windows-x64) (pull_request) Has been skipped
ci / bootstrap and conformance (linux-arm64) (pull_request) Has been skipped
ci / bootstrap and conformance (macos-arm64) (pull_request) Has been skipped
ci / the VS Code extension (editors/vscode) (pull_request) Successful in 16s
ci / bootstrap (linux-x64) (pull_request) Successful in 2m18s
ci / cross-compiled on linux-x64 (windows-x64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (linux-arm64) (pull_request) Has been skipped
ci / cross-compiled on linux-x64 (macos-arm64) (pull_request) Has been skipped
ci / tier A (linux-x64) (pull_request) Successful in 3m47s
ci / tools/release-sync and tools/registry (linux-x64) (pull_request) Successful in 1m35s
ci / every host emits the same C (pull_request) Successful in 4m16s
ci / the playground (torb as WebAssembly) (pull_request) Successful in 1m43s
ci / tier B (linux-x64) (pull_request) Successful in 12m27s
ci / pack the seed (pull_request) Has been skipped
ci / archives (pull_request) Has been skipped
ci / gates (pull_request) Successful in 0s
2026-10-10 12:38:13 +00:00
Compare
argus approved these changes 2026-10-10 13:30:59 +00:00
argus left a comment

Approved at head c6d20d0.

  • Tests: ok - new account-shell.trb (shellProblems) asserted on every account page (account, refusal, sign-in, sign-up, claim, passkey ceremonies, step-up, enrolment, recovery codes); stylesheet test added; changed assertions are consistent with the one shell script. CI green on this head (registry, tier A/B, gates, pdisc).
  • Workflows: none changed.
  • Correctness: pageOf goes through registryPageHtml; CSP adds only script-src/style-src/font-src/img-src 'self', form-action, frame-ancestors, base-uri unchanged, no unsafe-*; the shell has no inline script/style/handler; all text still escaped, forms CSRF-bound, buttons ink (never red).
  • Scope: matches #295 and its stated decisions; no extras.
  • Security/secrets/data: nothing new; no data or storage-format change.
  • Docs: README, RELEASE.md 7.1/7.11, BRAND.md, torb-docs-site.md updated; sidecar hash refreshed, pdisc green.
  • UI fidelity: styled from existing brand tokens/shell; no separate approved account-page board referenced.

Non-blocking: account.trb header comment still says "nothing on a page of the registry is ... an image of another origin" while the policy allows img-src 'self' - fine, just worth keeping in mind if an image is ever added.

Approved at head c6d20d0. - Tests: ok - new `account-shell.trb` (`shellProblems`) asserted on every account page (account, refusal, sign-in, sign-up, claim, passkey ceremonies, step-up, enrolment, recovery codes); stylesheet test added; changed assertions are consistent with the one shell script. CI green on this head (registry, tier A/B, gates, pdisc). - Workflows: none changed. - Correctness: `pageOf` goes through `registryPageHtml`; CSP adds only `script-src/style-src/font-src/img-src 'self'`, `form-action`, `frame-ancestors`, `base-uri` unchanged, no `unsafe-*`; the shell has no inline script/style/handler; all text still escaped, forms CSRF-bound, buttons ink (never red). - Scope: matches #295 and its stated decisions; no extras. - Security/secrets/data: nothing new; no data or storage-format change. - Docs: README, RELEASE.md 7.1/7.11, BRAND.md, torb-docs-site.md updated; sidecar hash refreshed, pdisc green. - UI fidelity: styled from existing brand tokens/shell; no separate approved account-page board referenced. Non-blocking: `account.trb` header comment still says "nothing on a page of the registry is ... an image of another origin" while the policy allows `img-src 'self'` - fine, just worth keeping in mind if an image is ever added.
argus merged commit b79ecba2b3 into main 2026-10-10 13:31:03 +00:00
argus deleted branch loop/295-account-pages-brand-shell 2026-10-10 13:31:04 +00:00
Sign in to join this conversation.
No reviewers
No labels
loop
ready
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
torbscript/language!307
No description provided.