Move the console onto ReUI PRO

Install ReUI (MCP, skill, @reui registry, Tailwind v4, shadcn base-nova) and move
the shared UI onto it: Button, Tag, Check, Input/Textarea, Segmented, Alert, Panel,
Dialog, Tooltip, Menu and Select (Popover), Toast (sonner), the Table frame
(DataGrid), the Dashboard KPI strip, the shnt Ops palette, Geist and the type scale.

Design only: behaviour, texts and roles are unchanged. Tests that asserted the old
DOM were updated; the tests now format numbers in English wherever they run.
docs/reui-migration-plan.md records the plan and its decisions.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
DenozordecandClaude Sonnet 5.5 committed 2026-10-27 00:06:06 +07:00
commit f3531c64f9
680 files changed
+139836

No files matched your search

+51
View File
@@ -0,0 +1,51 @@
# Parity checks
## `check-parity-actions.sh`: the one that actually counts
Runs **the same action on both instances** and compares the state the server is
left in, not the bytes of the page. This is the check that makes the project's
governing constraint enforceable: since behaviour does not change, if the body
the new console sends differs by one parameter, the record left behind differs
and it shows up here.
```bash
docker compose up -d
./check-parity-actions.sh
```
It covers fourteen actions: seven creates (including the awkward ones: split TXT,
SVCB with flattened `svcParams`, CAA with its default values), three edits
(among them disabling a record, which upstream does as a `records/update`
resending the whole record), three deletes (including CNAME, which falls to the
`default` branch and sends no identity parameter at all) and the `options/set`
with all six empty lists travelling as the string `"false"`.
It normalises three things before comparing, and all three because they are not
parity: `lastModified`, the SOA serial and **the server's own name**, which is
embedded in the NS and SOA of every zone and is deliberately different in each
container.
## `check-parity.sh`: only for the preserved files
Compares the content of a path between the two instances. The console is ours,
so **for `/` it reports `DIFFERENT` and that is the point of the project**. It
still serves for what the build preserves untouched:
```bash
./check-parity.sh /robots.txt # IDENTICAL
./check-parity.sh /favicon.ico # IDENTICAL
```
## `parity-login.mjs`
Compares the alerts on the login screen between the new console (5380) and
upstream's (5381). Needs Playwright:
```bash
npm i -D playwright && npx playwright install chromium
node parity-login.mjs
```
It found two real divergences the first time it ran: the "×" button to dismiss
the alert was missing, upstream has it, so its absence was a behavioural
difference, and so was the space between the title and the text.