Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Close the remaining #2136-class gaps in the ordered refetch oracles

オープン
#2,186 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
5/100
issue の種類
機能追加
明瞭さ
説明が足りない
活発さ
活発
技術スタック
typescript
領域
testing

調査の方向性

Start with the coverage map row "Query DB ordered refetch" in docs/contributing/oracle-coverage.md and the existing oracle in packages/query-db-collection/tests/refetch-ordered-prefix-oracle.test.ts. Read the loader rules in packages/db/src/query/live/ARCHITECTURE.md, section "Ordered requests, continuation, and recovery". Run the oracle test to understand the current laws, then pick one unchecked item such as held answers combined with a reporting refetch. Done means a generated campaign reproduces the gap before the fix and passes after it.

索引モデルが issue の本文から書いたものです。

説明

Summary

Follow-up oracle work for the #2136 bug class: a loader that treats rows as loaded after the provider's state has moved. #2154 closed the reported trace and strengthened the query-db refetch oracle. This issue records the histories, paths and observations that are still outside the oracles, so a later agent can close more of the class.

What #2154 established

packages/query-db-collection/tests/refetch-ordered-prefix-oracle.test.ts:

  • Window law and coverage law, after preload and after each refetch, invalidation and hold release.
  • Generated campaigns: marker flips, lagging backend changes, a peer observe query, invalidation, and optimistic update and delete holds across a refetch.
  • A premise-directed held campaign for the loader's first-page skip.
  • At four times the run count, six random seeds pass.

Each new dimension found real bugs: four in the loader, two in the gate. So the finding rate has not yet reached zero, and a green campaign is weak evidence beyond these dimensions.

Remaining work

  • Held answers combined with a reporting refetch (ordered-work oracle). Combine the holding provider with the refetch-signal provider, and keep the ledger law (the Collection holds exactly the provider's sent rows). This would have found the stale-prefix retirement bug fixed in #2154 as a generated failure. It is a natural part of #2155.
  • #2155, unindexed peer pairing. Seed -1471487158 fails with peer rows after step 2: expected [ 100 ] to deeply equal [ 100, 101 ].
  • Window check after marker flips in the query-db campaigns. During #2154, both campaigns at 1× passed with a window check after every flip (provider current, no hold). Add that law.
  • Order values. The query-db model types ranks as numbers. Add null, undefined and NaN order values. A gate bug with undefined order values was found by review, not by the oracle.
  • Providers. The campaigns use an uncapped cursor provider only. They need offset-only (#2182) and page-capped (#2183) providers.
  • Refetch kinds. Interval, focus and reconnect refetches share the invalidation path, but no history drives them.
  • Windows during a hold. No window is checked while an optimistic transaction persists (#2169, #2148).
  • Optimistic inserts are not generated.
  • Preload during a hold. The harness defers awaiting a preload that starts during a hold (#2184).
  • Multi-tab. Follower tabs never get the report (#2174). That needs a witness in the real-tab coordinator lane.
  • A joined user refetch is not reported (#2185).
  • Process. When an oracle's limits section hands a case to another owner, the coverage map should name that owner's witness. #2154's review found an overlap case that the named owner did not cover.

Pointers

  • Coverage map row: "Query DB ordered refetch" in docs/contributing/oracle-coverage.md.
  • Loader rules: packages/db/src/query/live/ARCHITECTURE.md, "Ordered requests, continuation, and recovery".

This issue was written by Isaac.

主要言語
TypeScript
スター
3.9k
フォーク
272
平均マージ
1日 21分
マージ済み PR(30日)
241

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

TanStack/db のほかの issue

TanStack/db の issue をすべて見る

似ている issue

TypeScript の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。