You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[2.0.0-rc.20] isPending disagrees with an async memo derived from it #4677
An async memo that reads both id() and isPending(id) can publish a badge containing pending: true while a separate binding of isPending(id) displays false.
In the repro, an independent details memo takes 500 ms. The badge captures the ID and pending status synchronously, then returns that presentation after 1000 ms. Item 0 starts with synchronous, already-loaded values.
The visible sequence after setting id to 1 is:
Time ID Details Pending Async badge
Initially 0 Item 0 false ID: 0, pending: false
~1000 ms 0 Item 0 false ID: 0, pending: true
~2000 ms 1 Item 1 false ID: 1, pending: false
The pending output and its async derivation visibly disagree for about one second.
Open the linked repro, pinned to Solid 2.0.0-rc.20.
Click "Load item 1" once.
After about one second, observe Pending: false beside Async badge: ID: 0, pending: true.
After about two seconds, both settle. Reload to repeat.
Expected behavior
The pending output and ordinary derivations of that output should publish consistently. isPending can intentionally differ from its input's ordinary published value, but its async badge should not disagree with the pending output itself without an explicit deferral boundary.
Verified from the saved repro in a fresh browser context, with no runtime errors. Tailwind is disabled. The example uses ordinary JSX bindings, two memos, real setTimeout delays, and one signal setter. There is no Loading, createDeferred, manual flush, or effect writing a signal.
Activity
fix(signals): a lane reveals whole beside its parent's landing (#4677)
chore(size): re-record lane rows after #4682 and #4677
fix(signals): hold a landing's plain runs for its re-derivation (#4677)
chore(size): re-record lane rows for #4677 case 2
fix(signals): a lane reveals whole beside its parent's landing (#4677) (