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

zwave-js / zwave-js-ui / 29848312111
12%

Build:
DEFAULT BRANCH: master
Ran 21 Jul 2026 04:23PM UTC
Jobs 1
Files 50
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

21 Jul 2026 04:22PM UTC coverage: 12.408%. Remained the same
29848312111

push

github

web-flow
fix(bot): measure index staleness by upload time, not content age (#4754)

Follow-up to #4753, found while verifying that PR's artifacts after
merge.

## The bug

The staleness warning read `createdAt` from inside `index.json`:

```
.docs-index/index.json   built 2026-07-18T05:40:44.763Z (3 day(s) ago)   ← limit is 3
.posts-index/index.json  built 2026-07-21T13:09:16.340Z (0 day(s) ago)
```

But `docs-embeddings.yml` only rebuilds the index when the docs hash
changes:

```yaml
- name: Build index
  # An exact cache hit means the index is already up to date
  if: steps.cache.outputs.cache-hit != 'true'
```

On a cache hit the upload step still runs and re-publishes the *same*
file. So `createdAt` records **when the docs last changed**, which says
nothing about whether the pipeline is alive. Docs last changed on Jul
18, so tomorrow the check would have fired

```
::warning:: docs-index is 4 days old - the nightly rebuild may be failing
```

on every new issue, with nothing wrong and no way for it to ever recover
short of someone editing the docs. That is precisely the alarm fatigue
the check existed to prevent. `posts-index` was unaffected because
`posts-embeddings.yml` rebuilds unconditionally.

## The fix

Measure the artifact's **upload** time instead. The nightly publishes
either way, so it only ages when the pipeline genuinely stops.

The lookup step already fetches the artifact; it now runs even on a
cache hit to get `created_at` (one API call), which also makes the check
work on both restore paths rather than only after an eviction. The
download and directory-clear steps keep their cache-miss condition
explicitly. Content age is still logged — it is useful — just not
alarmed on.

Same real artifacts, before and after:

| | old (content age) | new (upload age) |
|---|---:|---:|
| `docs-index` today | 3 days → warns tomorrow | 0 days |
| `posts-index` today | 0 days | 0 days |

## Also: a scheduled self-check

`zwave-js-bot_post.yml` only runs on `... (continued)

493 of 4531 branches covered (10.88%)

Branch coverage included in aggregate %.

938 of 7002 relevant lines covered (13.4%)

2.08 hits per line

Jobs
ID Job ID Ran Files Coverage
1 29848312111.1 21 Jul 2026 04:23PM UTC 50
12.41
GitHub Action Run
Source Files on build 29848312111
  • Tree
  • List 50
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • c236df2d on github
  • Prev Build on master (#29833164293)
  • Delete
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