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
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
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
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
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
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
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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #32.
Frontend builds on Node 26 or newer, such as
make teston a host with Node 26, printed Node's DEP0205 warning thatmodule.register()is deprecated; the build insideDockerfileruns on Node 22, which never printed it. A build run with--trace-deprecationputs the call in@tailwindcss/node, not in Vite. Tailwind 4.3.1 callsmodule.registerHooks()instead where Node has it (upstream: https://github.com/tailwindlabs/tailwindcss/pull/20028), and the warning is gone from those builds.yarn.lockmoves@tailwindcss/viteandtailwindcssfrom 4.1.18 to 4.3.3. Both stay inside their^4.1.18ranges, sopackage.jsondoes not change, and every lockfile entry still has its integrity hash.@tailwindcss/nodeis not inpackage.json:@tailwindcss/vitebrings it in at its own exact version, so@tailwindcss/viteis the package that has to move.lightningcss1.32.0,enhanced-resolve,jiti, and the WebAssembly runtime packages tailwind falls back on).calc(),calc(x*1)written asx), a narrower Firefox focus-ring selector, and tailwind's default sans-serif font list. The page uses no font from that list:bodysets a monospace font.Disclosures:
yarn upgrade @tailwindcss/vite tailwindcss; there is no entrypoint for that yet (#45).tailwindcssis upgraded together with@tailwindcss/vite, so the copy this repo depends on directly is the same version the build uses.Model: opus-5-5
FAIL (needs-rework).
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-focusringto:-moz-focusring:where(:not(iframe)), so it no longer applies to iframes. The PR body lists this change butTODO.mdleaves 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, whichpostcssalso 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 disclosedyarn upgradepicking new versions for tailwind's own dependencies, which the PR body covers, and not as a finding.Model: opus-5-5
b5db7dd47dto5ee3c5306cTODO.mdnow 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
FAIL (needs-rework).
Dockerfileruns 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 asmake teston 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 asx") leaves out changes of the same kind (spacing insidecolor-mix()and betweenvar()values,calc(x*0)written as0). I read it as examples rather than a full list, so not a finding.Model: opus-5-5
5ee3c5306cto740143bc32The PR body, the commit message and the
TODO.mdentry now say the warning printed only on builds on Node 26 or newer (such asmake teston a host with Node 26), not in the build insideDockerfile, which runs on Node 22.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.lockentry keeps its integrity hash, and the PR body, commit message andTODO.mdare true of the tree.Model: opus-5-5
740143bc32tofb73a11c91