• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

clay / claycli / 35020584094
83%
master: 83%

Build:
Build:
LAST BUILD BRANCH: jordan/relative-preloads
DEFAULT BRANCH: master
Ran 15 Sep 2026 08:36PM UTC
Jobs 1
Files 31
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Sep 2026 08:35PM UTC coverage: 83.002% (-0.02%) from 83.02%
35020584094

Pull #265

github

jjpaulino
🍕 Fix scoped-style data-v mismatch between clay vite and clay compile

Found by live-testing 6.0.0-rc.6 on stg.curbed.com's Agora Kiln plugin
(#258 landed correctly -- verified the exact autoprefixer bug it fixed is
gone in the live _kiln-plugins.css -- but every `<style scoped>` rule in
Agora was silently failing to match, rendering a plain, unstyled UI).

Root cause: clay vite's computeScopeId() used a hand-rolled djb2 hash of
the file path, self-consistent within this plugin but never actually
verified against clay compile's algorithm. clay compile's
@nymag/vueify computes scope ids via hash-sum(filePath) (lib/gen-id.js).
For the SAME file, these produce COMPLETELY DIFFERENT ids (verified:
40406d57 vs 0dbbeed6 for one real Agora component).

nymag/sites' staged Vite rollout (CLAYCLI_VITE_SITES=grubstreet,curbed)
builds `build:both` -- both pipelines run, and both write
public/css/_kiln-plugins.css; whichever runs last (clay compile) wins on
disk. The Vue component actually MOUNTED in the browser during edit mode
comes from clay vite's kiln-edit bundle and carries vite's scope id
(data-v-40406d57). The CSS file on disk, last written by clay compile,
only has selectors for compile's scope id (data-v-0dbbeed6). These never
match, so every scoped rule for every Kiln plugin silently fails to apply
-- with no error anywhere, on either pipeline.

This mismatch is not new -- it predates this whole pass of fixes. It was
masked the entire time by clay vite's runtime <style> injection (removed
by #258's "stop double-applying" fix): that injection delivered clay
vite's OWN compiled CSS -- with vite's OWN (self-consistent) scope id --
directly into <head>, independent of whatever ended up in the linked
file. Removing the double-delivery bug removed the thing that had been
accidentally compensating for this separate, pre-existing bug, surfacing
it for the first time.

Fix: computeScopeId() now calls the SAME hash-sum(filepath) both
pipelines already use for the ... (continued)
Pull Request #265: 🍕 Fix scoped-style data-v mismatch between clay vite and clay compile

784 of 1040 branches covered (75.38%)

Branch coverage included in aggregate %.

2 of 2 new or added lines in 1 file covered. (100.0%)

1682 of 1931 relevant lines covered (87.11%)

10.67 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35020584094.1 15 Sep 2026 08:36PM UTC 31
83.0
GitHub Action Run
Source Files on build 35020584094
  • Tree
  • List 31
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35020584094
  • Pull Request #265
  • PR Base - master (#35012372806)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc