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

microlinkhq / keyvhq / 40743697818
97%

Build:
DEFAULT BRANCH: master
Ran 28 Oct 2026 06:20PM UTC
Jobs 14
Files 14
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

28 Oct 2026 06:17PM UTC coverage: 97.374% (+0.4%) from 97.015%
40743697818

push

github

web-flow
fix: delete expired keys before get and iteration continue (#291)

* test: await the call in every 'returns a Promise' test

The set, get, delete and has 'returns a Promise' tests checked the type
and dropped the promise. On stores with real I/O the un-awaited
set('foo', 'bar') could land after a later test's set('foo', 'bar', ttl)
and overwrite it with a key that never expires: the sqlite suite opens a
connection per store with a 30s busy timeout. A reproduction with the
real sqlite store and the suite's order left the TTL key live in 5 of 40
runs with the write pending and 0 of 40 with it awaited. This is the
second cause of the '.set(key, value, ttl) sets a value that expires'
flake that #287 did not cover; it still failed on #290.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test: fail if a returned promise is still pending

The 'returns a Promise' tests stayed green when the await was removed, so a
floating set could still land after a later TTL write. Assert that the
promise has settled before the test ends.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: finish expiry deletion before returning

get and iterator started a delete for an expired key and continued
without waiting, so a slow delete could remove a newer write of the
same key. iterator also passed the stored key back through delete,
which prefixed a namespace a second time and left the real key in place.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: note why iterator strips the prefix before delete

The stored key already includes the namespace, and delete() adds it again.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: remove the full namespace prefix before expiry deletion

A namespace that contains a colon was only stripped at the first colon, so cleanup deleted a different key.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(sql): page the iterator by key instead of offset

Deleting an expired row during a scan shifted later rows... (continued)

353 of 374 branches covered (94.39%)

Branch coverage included in aggregate %.

18 of 18 new or added lines in 2 files covered. (100.0%)

1019 of 1035 relevant lines covered (98.45%)

67.2 hits per line

Jobs
ID Job ID Ran Files Coverage
1 @keyvhq/offline - 40743697818.1 28 Oct 2026 06:20PM UTC 1
100.0
GitHub Action Run
2 @keyvhq/core - 40743697818.2 28 Oct 2026 06:20PM UTC 1
98.63
GitHub Action Run
3 @keyvhq/multi - 40743697818.3 28 Oct 2026 06:20PM UTC 1
100.0
GitHub Action Run
4 @keyvhq/postgres - 40743697818.4 28 Oct 2026 06:20PM UTC 1
91.3
GitHub Action Run
5 @keyvhq/redis - 40743697818.5 28 Oct 2026 06:21PM UTC 1
99.04
GitHub Action Run
6 @keyvhq/sqlite - 40743697818.6 28 Oct 2026 06:20PM UTC 1
89.09
GitHub Action Run
7 @keyvhq/file - 40743697818.7 28 Oct 2026 06:20PM UTC 1
94.64
GitHub Action Run
8 @keyvhq/compress - 40743697818.8 28 Oct 2026 06:20PM UTC 1
100.0
GitHub Action Run
9 @keyvhq/sql - 40743697818.9 28 Oct 2026 06:20PM UTC 1
95.21
GitHub Action Run
10 @keyvhq/mysql - 40743697818.10 28 Oct 2026 06:21PM UTC 1
97.67
GitHub Action Run
11 @keyvhq/max-size - 40743697818.11 28 Oct 2026 06:20PM UTC 1
91.89
GitHub Action Run
12 @keyvhq/memoize - 40743697818.12 28 Oct 2026 06:20PM UTC 1
100.0
GitHub Action Run
13 @keyvhq/stats - 40743697818.13 28 Oct 2026 06:20PM UTC 1
98.68
GitHub Action Run
14 @keyvhq/mongo - 40743697818.14 28 Oct 2026 06:20PM UTC 1
97.5
GitHub Action Run
Source Files on build 40743697818
  • Tree
  • List 14
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #40743697818
  • d7fd8023 on github
  • Prev Build on master (#40739756220)
  • Next Build on master (#40745992793)
  • 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