Skip to content

Reading an unchanged store property holds an independent synchronous update #3688

Description

@GabbeV

Describe the bug

An action writes store.saved and stays pending. A later, separate click sets and flushes an independent enabled signal. A memo reads enabled() and the unchanged store.stable property:

const derived = createMemo(() => enabled() && store.stable === "same");

The second update stays pending until the action finishes: latest(enabled) is true, but derived() is still false and isPending(enabled) is true. The action never writes store.stable.

Your Example Website or App

https://s.olid.uk/id/VYa_ygLZSLaM4KBUVcsBtw

Steps to Reproduce the Bug or Issue

  1. Click Start held action.
  2. Click Set independent signal.
  3. Observe derived: false, signal latest: true, and signal pending: true.
  4. Click Finish action. Only then does derived become true and the signal stop being pending.

Expected behavior

The second, synchronous update should publish immediately: derived should become true and isPending(enabled) should remain false while the unrelated action is still open.

Platform

  • OS: Linux
  • Browser: Chromium 153 (Playwright)
  • Solid: 2.0.0-rc.10 in the linked playground

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions