mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-28 07:32:52 +00:00
hanzo.ai/login and /signup render partially unstyled in production right now. They use 18 react-native-web `r-*` classes each and no stylesheet the page delivers defines a single one of them. /auth/callback and /zen/models are the same; all four render a gui Spinner, which wraps react-native-web's ActivityIndicator. @hanzo/gui ships `css-check.mjs` for exactly this. Its own header says the failure has happened three times before — hanzo.app served 18KB of CSS holding zero of its ~240 atomic classes, @hanzogui/shell published 966 Tailwind class names with no Tailwind in its dependencies, both type-checked, both built, both completely unstyled in production. Nothing in this repo referenced it. This is the fourth, and it was live. Now `pnpm css-check` runs it over `out/`. It reports 1,416 of 1,438 classes covered and fails on the 22 that are not. gui-css-check.json allows two, each with its source named: `language-jsx` is a highlighter hook styled by inline attributes rather than a rule, and `css-g5y9jx` is a stray hash from an embed with no visual role. The 22 `r-*` stay unallowed, because they are the real defect. WHAT IT IS NOT: `disableInjectCSS`. Rebuilt with injection on and the same 24 classes are missing, while inline CSS per document goes from 4 KB to 110 KB — the duplication that flag was added to stop. Re-enabling it pays that cost and fixes nothing. The classes are hashed at build time and appear in no package on disk, so the fix belongs with whatever registers them, not here. And the runner comment in deploy.yml said the forge advertises no `linux-arm64` label. It does — read off a live runner today. That note was written while evo was down, when every deploy queued against a label only evo held. Co-authored-by: Hanzo Dev <[email protected]>
10 lines
592 B
JSON
10 lines
592 B
JSON
{
|
|
"//": "Classes in the markup that no delivered stylesheet defines, and why each is tolerated. An allowance without a source is a guess, and a guess here is how a real miss gets waved through.",
|
|
"allow": [
|
|
"language-jsx",
|
|
"css-g5y9jx"
|
|
],
|
|
"//language-jsx": "Prism/shiki token hook on fenced code. The highlighter ships its own theme via inline style attributes rather than a class rule, so the class is a selector hook nothing styles. Emitted by components/code.",
|
|
"//css-g5y9jx": "A stray emotion-style hash from a third-party embed; carries no rule and no visual role."
|
|
}
|