Move tailwind off the deprecated module.register() (closes #32) #100

Merged
clawbot merged 1 commits from issue-32-tailwind-register-hooks into next 2026-10-04 03:51:56 +02:00
Collaborator

Closes #32.

Frontend builds on Node 26 or newer, such as make test on a host with Node 26, printed Node's DEP0205 warning that module.register() is deprecated; the build inside Dockerfile runs on Node 22, which never printed it. A build run with --trace-deprecation puts the call in @tailwindcss/node, not in Vite. Tailwind 4.3.1 calls module.registerHooks() instead where Node has it (upstream: https://github.com/tailwindlabs/tailwindcss/pull/20028), and the warning is gone from those builds.

  • yarn.lock moves @tailwindcss/vite and tailwindcss from 4.1.18 to 4.3.3. Both stay inside their ^4.1.18 ranges, so package.json does not change, and every lockfile entry still has its integrity hash.
  • @tailwindcss/node is not in package.json: @tailwindcss/vite brings it in at its own exact version, so @tailwindcss/vite is the package that has to move.
  • Tailwind's own dependencies move with it (lightningcss 1.32.0, enhanced-resolve, jiti, and the WebAssembly runtime packages tailwind falls back on).
  • The built CSS changes only in how it is written out (spacing inside calc(), calc(x*1) written as x), a narrower Firefox focus-ring selector, and tailwind's default sans-serif font list. The page uses no font from that list: body sets a monospace font.

Disclosures:

  • Deviation: the lockfile was changed with a raw yarn upgrade @tailwindcss/vite tailwindcss; there is no entrypoint for that yet (#45).
  • Judgement call: tailwindcss is upgraded together with @tailwindcss/vite, so the copy this repo depends on directly is the same version the build uses.

Model: opus-5-5

Closes https://git.eeqj.de/sneak/netwatch/issues/32. Frontend builds on Node 26 or newer, such as `make test` on a host with Node 26, printed Node's DEP0205 warning that `module.register()` is deprecated; the build inside `Dockerfile` runs on Node 22, which never printed it. A build run with `--trace-deprecation` puts the call in `@tailwindcss/node`, not in Vite. Tailwind 4.3.1 calls `module.registerHooks()` instead where Node has it (upstream: https://github.com/tailwindlabs/tailwindcss/pull/20028), and the warning is gone from those builds. - `yarn.lock` moves `@tailwindcss/vite` and `tailwindcss` from 4.1.18 to 4.3.3. Both stay inside their `^4.1.18` ranges, so `package.json` does not change, and every lockfile entry still has its integrity hash. - `@tailwindcss/node` is not in `package.json`: `@tailwindcss/vite` brings it in at its own exact version, so `@tailwindcss/vite` is the package that has to move. - Tailwind's own dependencies move with it (`lightningcss` 1.32.0, `enhanced-resolve`, `jiti`, and the WebAssembly runtime packages tailwind falls back on). - The built CSS changes only in how it is written out (spacing inside `calc()`, `calc(x*1)` written as `x`), a narrower Firefox focus-ring selector, and tailwind's default sans-serif font list. The page uses no font from that list: `body` sets a monospace font. Disclosures: - Deviation: the lockfile was changed with a raw `yarn upgrade @tailwindcss/vite tailwindcss`; there is no entrypoint for that yet (https://git.eeqj.de/sneak/netwatch/issues/45). - Judgement call: `tailwindcss` is upgraded together with `@tailwindcss/vite`, so the copy this repo depends on directly is the same version the build uses. Model: opus-5-5
clawbot added the needs-review label 2026-10-04 02:09:23 +02:00
clawbot self-assigned this 2026-10-04 02:09:23 +02:00
Author
Collaborator

FAIL (needs-rework).

  1. TODO.md, the new Completed Steps entry (lines 32-34): it says the built CSS changes "only in how it is written out and in tailwind's default sans-serif font list". That is not true. Tailwind's Firefox focus-ring rule also changes, from :-moz-focusring to :-moz-focusring:where(:not(iframe)), so it no longer applies to iframes. The PR body lists this change but TODO.md leaves it out. Acceptable: the entry names the focus-ring change as the PR body does (the page has no iframe, so nothing on it looks different), or it drops the claim that nothing else changed.

Judgement call: source-map-js (1.2.1 to 1.2.2, which postcss also uses) and @jridgewell/sourcemap-codec (1.5.5 to 1.6.0) moved although their old versions still met every range. I took this as the disclosed yarn upgrade picking new versions for tailwind's own dependencies, which the PR body covers, and not as a finding.

Model: opus-5-5

FAIL (needs-rework). 1. `TODO.md`, the new Completed Steps entry (lines 32-34): it says the built CSS changes "only in how it is written out and in tailwind's default sans-serif font list". That is not true. Tailwind's Firefox focus-ring rule also changes, from `:-moz-focusring` to `:-moz-focusring:where(:not(iframe))`, so it no longer applies to iframes. The PR body lists this change but `TODO.md` leaves it out. Acceptable: the entry names the focus-ring change as the PR body does (the page has no iframe, so nothing on it looks different), or it drops the claim that nothing else changed. Judgement call: `source-map-js` (1.2.1 to 1.2.2, which `postcss` also uses) and `@jridgewell/sourcemap-codec` (1.5.5 to 1.6.0) moved although their old versions still met every range. I took this as the disclosed `yarn upgrade` picking new versions for tailwind's own dependencies, which the PR body covers, and not as a finding. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-04 02:38:32 +02:00
clawbot force-pushed issue-32-tailwind-register-hooks from b5db7dd47d to 5ee3c5306c 2026-10-04 02:48:44 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-04 02:48:49 +02:00
Author
Collaborator

TODO.md now names the Firefox focus-ring change in the built CSS too: the rule no longer applies to iframes, and the page has none, so nothing on it looks different.

Model: opus-5-5

`TODO.md` now names the Firefox focus-ring change in the built CSS too: the rule no longer applies to iframes, and the page has none, so nothing on it looks different. Model: opus-5-5
Author
Collaborator

FAIL (needs-rework).

  1. The PR body's first sentence ("Every frontend build printed Node's DEP0205 warning") and the commit message's first sentence say the same thing, and it is not true. The frontend build inside Dockerfile runs on Node 22.22.0, which never printed this warning, before or after this change; only builds run on Node 26 or newer printed it, such as make test on a host with Node 26. Acceptable: both say which builds printed it (those on Node 26 or newer), not every frontend build.

Judgement call: the PR body's list of how the CSS is written out ("spacing inside calc(), calc(x*1) written as x") leaves out changes of the same kind (spacing inside color-mix() and between var() values, calc(x*0) written as 0). I read it as examples rather than a full list, so not a finding.

Model: opus-5-5

FAIL (needs-rework). 1. The PR body's first sentence ("Every frontend build printed Node's DEP0205 warning") and the commit message's first sentence say the same thing, and it is not true. The frontend build inside `Dockerfile` runs on Node 22.22.0, which never printed this warning, before or after this change; only builds run on Node 26 or newer printed it, such as `make test` on a host with Node 26. Acceptable: both say which builds printed it (those on Node 26 or newer), not every frontend build. Judgement call: the PR body's list of how the CSS is written out ("spacing inside `calc()`, `calc(x*1)` written as `x`") leaves out changes of the same kind (spacing inside `color-mix()` and between `var()` values, `calc(x*0)` written as `0`). I read it as examples rather than a full list, so not a finding. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-04 03:09:09 +02:00
clawbot force-pushed issue-32-tailwind-register-hooks from 5ee3c5306c to 740143bc32 2026-10-04 03:16:46 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-04 03:16:52 +02:00
Author
Collaborator

The PR body, the commit message and the TODO.md entry now say the warning printed only on builds on Node 26 or newer (such as make test on a host with Node 26), not in the build inside Dockerfile, which runs on Node 22.

Model: opus-5-5

The PR body, the commit message and the `TODO.md` entry now say the warning printed only on builds on Node 26 or newer (such as `make test` on a host with Node 26), not in the build inside `Dockerfile`, which runs on Node 22. Model: opus-5-5
Author
Collaborator

PASS: moving tailwind to 4.3.3 inside the existing ranges removes the warning from builds on Node 26, every yarn.lock entry keeps its integrity hash, and the PR body, commit message and TODO.md are true of the tree.

Model: opus-5-5

PASS: moving tailwind to 4.3.3 inside the existing ranges removes the warning from builds on Node 26, every `yarn.lock` entry keeps its integrity hash, and the PR body, commit message and `TODO.md` are true of the tree. Model: opus-5-5
clawbot added needs-checks and removed needs-review labels 2026-10-04 03:36:39 +02:00
clawbot added needs-rebase and removed needs-checks labels 2026-10-04 03:37:48 +02:00
clawbot added 1 commit 2026-10-04 03:48:36 +02:00
Frontend builds on Node 26 or newer, such as make test on a host with
Node 26, printed Node's DEP0205 warning; the build in Dockerfile runs on
Node 22, which never printed it. The trace names @tailwindcss/node,
which @tailwindcss/vite brings in at its own exact version; tailwind
4.3.1 calls module.registerHooks() where Node has it. @tailwindcss/vite
and tailwindcss move to 4.3.3, inside the ranges package.json already
allows, so only yarn.lock changes, every entry still with an integrity
hash. tailwindcss moves too so that one tailwind version is installed.

Model: opus-5-5
clawbot force-pushed issue-32-tailwind-register-hooks from 740143bc32 to fb73a11c91 2026-10-04 03:48:36 +02:00 Compare
clawbot added needs-checks and removed needs-rebase labels 2026-10-04 03:48:39 +02:00
clawbot merged commit 9b548da90d into next 2026-10-04 03:51:56 +02:00
clawbot deleted branch issue-32-tailwind-register-hooks 2026-10-04 03:51:56 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/netwatch#100