Latest Results
feat(signals)!: optimistic overrides mask isPending — certainty by decree (#2844, #2728)
Adopts GabbeV's model after the #2844/#2728 discussions. One conceptual
change — an active optimistic override decrees the shown value settled, and
verdicts follow the channel the read observes — replacing the "overrides are
unsettled" algebra:
- Active override reads isPending === false (every node kind, both forms,
whole override lifetime). Action affordances belong in the data as
co-written flags, not in verdicts.
- Store-wide mask for derived optimistic stores (_optimisticMask counter +
maskStoreTarget): any live optimistic write silences the whole store,
refetch included; same-store writes entangle. Background polling idiom
refresh(store) + optimistic self-write revalidates silently.
- latest() is a self-applied override: isPending(() => latest(x)) follows
x's own in-flight async only (never pending on signals/sync computeds).
- Store leaves report a firewall refetch in both forms (old latest-form
filter removed; the store-wide mask is the only silencer).
- Companion verdicts revert on owner disposal (INV-9, the #2845 edge).
- INV-10 asserts the mask (node- and store-scoped arms); dead lane-merge
block in updatePendingSignal and read()'s probe special-case removed.
Spec re-ruled (A8/A9/A19/A20 rewritten, A21 added, V4 half-superseded,
re-ruling log) with INTERNALS §5f implementation notes; tests re-pinned with
live-probe contrasts so mask assertions can't pass vacuously; triage drafts
for #2844/#2728 updated with the final ruling. Size/perf neutral
(-27 B raw / +8 B gzip minified; benches flat).
Co-authored-by: Cursor <cursoragent@cursor.com> Latest Branches
0%
yumemi-thomas:fix/ispending-companion-retention 0%
yumemi-thomas:fix/snapshot-trailing-holes 0%
yumemi-thomas:fix/repeat-disjoint-window © 2026 CodSpeed Technology