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

solidjs / solid / 35812872548
74%
main: 89%

Build:
Build:
LAST BUILD BRANCH: fix/optimistic-undeclared-flight-owner
DEFAULT BRANCH: main
Ran 23 Sep 2026 03:11AM UTC
Jobs 1
Files 8
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

23 Sep 2026 03:04AM UTC coverage: 72.852%. Remained the same
35812872548

push

github

web-flow
fix(signals): a projection draft is valid until superseded or disposed, not until no longer in flight (#3585) (#3595)

* fix(signals): a projection draft is valid until superseded or disposed, not until no longer in flight (#3585)

The draft handed to a createProjection / createStore(fn) / createOptimisticStore(fn)
run now stays writable after the derive returns until the next run of the derive
starts or the owner is disposed (proj R37). A subscription set up inside a sync
derive can push into the draft from its callback without the never-resolving-
Promise workaround.

The old gate (`!settled || owner._x?._inFlight === result`) was timing-dependent:
a sync derive's `undefined` result equalled a never-installed `_x`'s `_inFlight`,
so the "dead" draft was live exactly while nothing had read the projection, and a
superseded run's leaked callback kept writing into the next run's state. The gate
is now a per-run token on the family plus `isDisposed(owner)`.

A late write with no flight up arms the flush itself: `schedule()` withholds its
microtask under projectionWriteActive (a landing normally drains those writes and
a drain before the landing tears the run), and the draft re-arms it through
`scheduleWithheld` — before, such a write left `scheduled` set with no microtask
and stranded the whole scheduler until an explicit flush().

Writes to a superseded or disposed draft are dropped silently (same as R26).
seedLoadingValue's detached shadow is a documented carve-out.

Co-authored-by: Claude via Cursor <noreply@cursor.com>

* fix(signals): a projection run's own draft writes arm the flush they withheld (#3585 follow-on)

A derive body only runs outside a flush at creation. Its own draft writes
made schedule() withhold the microtask (projectionWriteActive) and, for a
sync derive, nothing ever re-armed it: a projection created in a top-level
createRoot left `scheduled` set with no microtask, so its root's effects and
every unrelated write anywhere waited fo... (continued)

555 of 824 branches covered (67.35%)

Branch coverage included in aggregate %.

827 of 1073 relevant lines covered (77.07%)

17.56 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35812872548.1 23 Sep 2026 03:11AM UTC 8
72.85
GitHub Action Run
Source Files on build 35812872548
  • Tree
  • List 8
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35812872548
  • 310116a6 on github
  • Prev Build on next (#35800446262)
  • Next Build on next (#35826707746)
  • 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