next ships a target edit form whose Tailwind classes are missing from the committed CSS #236

Closed
opened 2026-08-20 07:40:29 +02:00 by clawbot · 2 comments
Collaborator

Found while reworking #219, which re-verified the generated stylesheet against every template on next.

templates/target_edit.html arrived with #229 (closing #127). Counting class tokens across all templates on next: 19 are missing from the committed static/css/tailwind.css, including hover:text-red-700, which that new template uses.

static/css/tailwind.css is a committed, SERVED artefact and nothing in Dockerfile or script/ regenerates it, so whatever is in the tree is what users get. The target edit form therefore renders with unstyled elements on next right now.

This is the second time this exact defect has shipped — #219 originally added ten classes without regenerating, which left the chevron rendering at the 300x150 CSS default on every delivery row. Both instances have the same root cause: nothing verifies the artefact matches the templates. That systemic gap is #231, and fixing it is what stops a third occurrence.

Note the branch on #219 already carries a regenerated artefact covering all 147 class tokens with 0 missing, so landing that PR is expected to resolve this. Filed anyway so it is not lost if that PR changes shape, and so the defect on next is recorded rather than fixed as a side effect of an unrelated unit.

Definition of done:

  • static/css/tailwind.css on next contains every utility class used by every template, verified by a token diff rather than a spot check
  • the target edit form renders correctly
  • if #219 lands first and closes this, confirm the token diff on next afterwards and close with that evidence
Found while reworking https://git.eeqj.de/sneak/webhooker/pulls/219, which re-verified the generated stylesheet against every template on `next`. `templates/target_edit.html` arrived with https://git.eeqj.de/sneak/webhooker/pulls/229 (closing https://git.eeqj.de/sneak/webhooker/issues/127). Counting class tokens across all templates on `next`: **19 are missing from the committed `static/css/tailwind.css`**, including `hover:text-red-700`, which that new template uses. `static/css/tailwind.css` is a committed, SERVED artefact and nothing in `Dockerfile` or `script/` regenerates it, so whatever is in the tree is what users get. The target edit form therefore renders with unstyled elements on `next` right now. This is the second time this exact defect has shipped — https://git.eeqj.de/sneak/webhooker/pulls/219 originally added ten classes without regenerating, which left the chevron rendering at the 300x150 CSS default on every delivery row. Both instances have the same root cause: nothing verifies the artefact matches the templates. That systemic gap is https://git.eeqj.de/sneak/webhooker/issues/231, and fixing it is what stops a third occurrence. Note the branch on https://git.eeqj.de/sneak/webhooker/pulls/219 already carries a regenerated artefact covering all 147 class tokens with 0 missing, so landing that PR is expected to resolve this. Filed anyway so it is not lost if that PR changes shape, and so the defect on `next` is recorded rather than fixed as a side effect of an unrelated unit. Definition of done: - `static/css/tailwind.css` on `next` contains every utility class used by every template, verified by a token diff rather than a spot check - the target edit form renders correctly - if https://git.eeqj.de/sneak/webhooker/pulls/219 lands first and closes this, confirm the token diff on `next` afterwards and close with that evidence
clawbot added this to the 1.0.0 milestone 2026-08-20 07:40:29 +02:00
Author
Collaborator

Correction to the count in the issue body: it is 3 missing tokens, not 19.

Re-measured in the third review of #219 with a strict selector match (escaped identifier plus a non-identifier lookahead, so .border cannot be satisfied by .border-gray-200):

  • next at aba02bc: 132 class tokens, 3 missinghover:text-red-700, text-red-500, underline
  • the branch on #219: 143 tokens, 0 missing

The 19 came from a looser count that the reviewer could not reproduce by any construction. The defect is real and hover:text-red-700 is genuinely used by templates/target_edit.html, so the target edit form does render wrong on next — only the magnitude was overstated.

The material claim is confirmed: landing #219 resolves this.

Correction to the count in the issue body: it is **3 missing tokens, not 19**. Re-measured in the third review of https://git.eeqj.de/sneak/webhooker/pulls/219 with a strict selector match (escaped identifier plus a non-identifier lookahead, so `.border` cannot be satisfied by `.border-gray-200`): - `next` at `aba02bc`: 132 class tokens, **3 missing** — `hover:text-red-700`, `text-red-500`, `underline` - the branch on https://git.eeqj.de/sneak/webhooker/pulls/219: 143 tokens, 0 missing The 19 came from a looser count that the reviewer could not reproduce by any construction. The defect is real and `hover:text-red-700` is genuinely used by `templates/target_edit.html`, so the target edit form does render wrong on `next` — only the magnitude was overstated. The material claim is confirmed: landing https://git.eeqj.de/sneak/webhooker/pulls/219 resolves this.
Author
Collaborator

Closed by #219, which regenerated static/css/tailwind.css from the current templates.

Evidence, from that PR's fourth review, measuring each ref's own templates against its own stylesheet:

  • next before the merge (3b0ed82): 4 missinghover:text-red-700, text-red-500, underline, w-28
  • the merged branch: 0 missing

w-28 joined the set after this issue was filed, arriving with #240. The two independent counts of the total token set differ slightly (132/144 vs 134/145) on tokenizer edge cases, but the missing SETS agree exactly, which is the part that matters.

One correction for the record: the regeneration was NOT purely additive, as that PR's body claimed. Eleven selectors were dropped from the stylesheet — all stale or inlined by @apply, and transform is no longer needed because Tailwind v4 emits .rotate-180{rotate:180deg} standalone. Harmless, but the claim was wrong and is corrected here rather than left standing.

The systemic gap remains open at #231: tailwindcss is unpinned and nothing verifies the committed artefact matches the templates. This is the second time the stylesheet has drifted; fixing that issue is what prevents a third.

Closed by https://git.eeqj.de/sneak/webhooker/pulls/219, which regenerated `static/css/tailwind.css` from the current templates. Evidence, from that PR's fourth review, measuring each ref's own templates against its own stylesheet: - `next` before the merge (`3b0ed82`): **4 missing** — `hover:text-red-700`, `text-red-500`, `underline`, `w-28` - the merged branch: **0 missing** `w-28` joined the set after this issue was filed, arriving with https://git.eeqj.de/sneak/webhooker/pulls/240. The two independent counts of the total token set differ slightly (132/144 vs 134/145) on tokenizer edge cases, but the missing SETS agree exactly, which is the part that matters. One correction for the record: the regeneration was NOT purely additive, as that PR's body claimed. Eleven selectors were dropped from the stylesheet — all stale or inlined by `@apply`, and `transform` is no longer needed because Tailwind v4 emits `.rotate-180{rotate:180deg}` standalone. Harmless, but the claim was wrong and is corrected here rather than left standing. The systemic gap remains open at https://git.eeqj.de/sneak/webhooker/issues/231: `tailwindcss` is unpinned and nothing verifies the committed artefact matches the templates. This is the second time the stylesheet has drifted; fixing that issue is what prevents a third.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/webhooker#236