Skip to content

rc.21 regrade: DV-19 (latest of a shown guess, per solidjs/solid#4695), count read under its region, guide and harness follow-ups - #31

Open
ryansolid wants to merge 5 commits into
mainfrom
tembo/rc21-followups
Open

ryansolid wants to merge 5 commits into
mainfrom
tembo/rc21-followups

Conversation

@ryansolid

@ryansolid ryansolid commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

Requested by Ryan · project thread

The rc.21 repin (#30) carried the fixes for every Solid issue the eval had filed but did not rerun anything. This regrades what the repository holds on rc.21, records what it found, and lines the spec up with Solid's rulings in solidjs/solid#4695.

DV-19: latest of a shown guess (solidjs/solid#4689, ruled in #4695)

The fuzzer found a tab count read with latest issues showing 3 beside 2 rows while a close was in flight. A re-ask from outside the action had landed under the guess. #4695 rules this (decision 3; D-22 "a slot that is displaying a guess has the guess as its newest value", D-34 "the screen, untracked reads and latest of the displayed slot keep the guess until the commit"). It is not built yet.

  • H-11: a landing answer, from the action's re-ask or one from outside it, is compared with the guess. A different answer corrects the graph now (derivations re-derive). The screen, the guess's effects and latest x of a guess the screen shows keep the guess until the hold commits. H-7's "after a correction, the truth" now applies only to a guess the screen never showed.
  • S-latest-reask: 2 / 2 throughout, plus a variant where the outside answer changes the truth (the closed row stays out when the write lands under the action's refresh). DV-19 is recorded at four instants on the oracle and the compiled runner.
  • Interpreter (ref/src/runtime.ts): corrects on any landing answer that differs from the guess. latest of a shown, answer-corrected guess answers the guess until the commit. Effects over a corrected guess wait.

References

chain2, chain3, chain4 and count read the open count outside the loading on(filter) region, which CN-3e has refused since 2026-10-30. They now read it where the list is read, in a small OpenCount component under the list's region. By the spec this is as right as latest issues, but it doesn't depend on #4689, and it is what 10 of 12 agent desks in rounds 10 and 11 wrote. chain4 on the desk9 brief: 77/77 hidden, 38/38 overlap (including "retry after not found"), and 2 fuzz seeds with a hole, both from a rename sent before its target was on screen. chain2 64/64 + 29/29, chain3 70/70 + 32/32, count 56/56 + 24/24.

DV-20 (solidjs/solid#4690)

A guess read by effects alone reverts under the action's refresh once an outside re-ask has landed under it. An effect over a source nothing renders reaches it, so S-guess-reask-refresh has an effect-only variant recording it at instants 5 and 6 (divergence entries may now name effects). Fixed on next (4fe7532); recorded until the repin.

Interpreter: a guess is its own action's, per key

S-store-8 had failed on the interpreter since edb76be (one guess per node with one owner). Guesses are now entries per (key, hold): an action's end removes its own entries and leaves the others, and the body-end correction (D-35) corrects only that action's keys. A correction (D-34) marks the entry spent rather than dropping it, so the action's re-ask still holds the corrected guess. A same-key variant was added to S-store-8.

Guide

guide/async.md §4, two bullets stated as semantics: refresh every question you guessed on (round 4's one surviving defect), and a write whose value is not on screen yet guesses nothing.

Harness

Playwright is a dependency of eval/, and CHROMIUM=/path/to/chromium drives a system browser in harness/driver.mjs and ref/ssr/run.ts. The eval README says a round can be regraded only if its runs are committed (rounds 5, 7, 10 and 11 are not).

Results note

eval/results/rc21-regrade-2026-11-05/ has the tables above, the graded outputs, and the 18 round 4 .rx apps regraded on rc.21: 14 pass everything, 3 are refused by STALE_WRITE_BACK as the round 4 write-up predicted, and 1 keeps the missing-refresh defect.

Suites on rc.21

Interpreter 114 pass. Oracle and compiled 114 pass, with 6 recorded divergences (DV-19 at four instants, DV-20 at two). Types 156 pass. The crate agrees with ref/ on 321/321 programs. Server render was 107 pass, 7 skip before the review fixes and has not been rerun since.

🤖 Generated with Claude Code

https://claude.ai/code/session_0117BoWMbSPnht6GSU1vp8Pe

…al form, guide and harness follow-ups

The rc.21 repin did not rerun anything. Regrading what the repository
holds on rc.21 (eval/results/rc21-regrade-2026-11-05):

- S-latest-reask records DV-19: `latest` of a pending guess answers the
  re-asked truth once a re-ask lands under it (solidjs/solid#4689;
  ref/oracle/repros/dv19-latest-reask.mjs). S-guess-reask-refresh records
  the D-35 hold under an outside re-ask, with no divergence; the
  effect-only shape that does revert is solidjs/solid#4690
  (repros/4690-guess-reask-refresh.mjs), which no .rx program reaches.
- The chain2, chain3, chain4 and count references read the open count
  outside the loading on(filter) region, which CN-3e has refused since
  2026-10-30; they now read `latest issues`, the program H-7 wants. Each
  passes its task's hidden and overlap tests; chain4's one count hole is
  DV-19.
- guide/async.md §4: refresh every question you guessed on; a write
  whose value is not on screen yet guesses nothing.
- eval: Playwright is a dependency; CHROMIUM=… drives a system browser in
  the harness and the server-render runner; a round is regradable only
  with its runs committed.

Suites on rc.21: oracle and compiled 114 pass with the one recorded
divergence; server render 107 pass; types 154; the crate agrees with
ref/ on 319/319 programs. S-store-8 fails on the interpreter before and
after this change.

Co-authored-by: tembo[bot] <208362400+tembo-io[bot]@users.noreply.github.com>
@tembo tembo Bot added the tembo Pull request created by Tembo label Nov 5, 2026
ryansolid and others added 3 commits November 5, 2026 04:16
…asses, same-key variant added

The interpreter kept one guess per node with one owner (`guessBy`), so
when a second action guessed on the same row, the first action's end
found nothing of its own to revert and its declined guess stayed up
(S-store-8 instant 4, `Z+B-` for `Z-B-`, failing since edb76be). Guesses
are now entries per (key, hold); the node's guess is the truth with the
live entries applied in order, an action's end removes its entries and
leaves the others, the body-end correction (D-35) corrects only that
action's keys, and a new answer at a guessed key spends that entry
(D-34). The oracle and the compiled runtime agree on all 114 scenarios,
S-store-8's new same-key variant included.

Co-authored-by: tembo[bot] <208362400+tembo-io[bot]@users.noreply.github.com>
… DV-20; DV-19 caveat

- runtime: a correction marks the action's guess entry spent instead of dropping it, so the
  action's re-ask still holds the corrected guess (a closed row came back between the write
  landing and the re-ask). S-latest-reask variant covers it; Solid rc.21 agrees.
- #4690 is reachable: an effect over a source nothing renders. S-guess-reask-refresh gets an
  effect-only variant with DV-20; divergence entries may now name effects.
- DV-19: note that it rests on reading H-11's correction narrowly, and what changes if
  Solid declines #4689.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWMbSPnht6GSU1vp8Pe
…DV-20 fixed on next

- H-11: a landing answer is compared with the guess, not with the truth the guess was made
  over, so an outside re-ask's answer corrects it (`latest x` the truth); a corrected guess's
  effects wait for the commit as its views do. S-latest-reask instant 4 is `2 / 3`, no divergence.
- Interpreter: corrects on any landing answer that differs from the guess; effects over a
  frozen (corrected) guess wait.
- chain2/3/4 and count references read the open count in a small component under the
  list's region instead of `latest issues`: chain4 77/77, 38/38, fuzz holes 3 -> 2 (both the
  app's); chain2/3/count pass their hidden and overlap tests.
- CN-3e message (rxc and ref/) and spec/08 say when each fix fits; guide/reference.md one line.
- DV-20 (#4690) noted fixed on next, recorded until the repin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWMbSPnht6GSU1vp8Pe
@ryansolid ryansolid changed the title rc.21 regrade: DV-19 (latest under a re-ask), references in their ideal form, guide and harness follow-ups rc.21 regrade: DV-19 adopted (latest under a re-ask), count read under its region, guide and harness follow-ups Nov 5, 2026
…he commit; DV-19 is Solid's

- H-11: an answer is compared with the guess and corrects the graph now, but the screen, the
  guess's effects and `latest x` of a guess the screen shows keep it until the hold commits
  (Solid D-22, D-34, decision 3). H-7's "after a correction, the truth" narrowed to a guess the
  screen never showed.
- Interpreter: `latest` of a shown, answer-corrected guess answers the guess until the commit.
- S-latest-reask back to `2 / 2`, with the changed-truth variant; DV-19 recorded at four
  instants (#4689 ruled, not built).
- CN-3e message, spec/08 and guide/reference.md back to what holds: both fixes show the guess.
- References keep the count under the list's region (right by the spec either way, and not
  dependent on #4689).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWMbSPnht6GSU1vp8Pe
@ryansolid ryansolid changed the title rc.21 regrade: DV-19 adopted (latest under a re-ask), count read under its region, guide and harness follow-ups rc.21 regrade: DV-19 (latest of a shown guess, per solidjs/solid#4695), count read under its region, guide and harness follow-ups Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tembo Pull request created by Tembo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants