Close the remaining #2136-class gaps in the ordered refetch oracles
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 5/5
- 预计耗时
- 一周以上
- 新手友好度
- 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
observequery, 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-signalprovider, 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
-1471487158fails withpeer 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 分钟
- 30 天内合并 PR
- 241
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
TanStack/db 的其他 Issue
-
难度 5/5 一周以上 新手友好度 8/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 25/100
维护者通常 1 天内回复
-
query-db: a Query refetch that joins a loader's refetch acquisition does not report shifted pages未关闭
难度 5/5 一周以上 新手友好度 8/100
维护者通常 1 天内回复
-
A live query's preload on an on-demand collection waits for any persisting optimistic transaction未关闭
难度 5/5 一周以上 新手友好度 12/100
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 18/100
维护者通常 1 天内回复
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 80/100
aws/agentcore-cli#2606 ·
维护者通常 1 天内回复
-
ai-driven-qa bug Cosmetic
难度 2/5 1-3 小时 新手友好度 74/100
维护者通常 1 天内回复
-
ai-driven-qa bug claude Minor
难度 2/5 1-3 小时 新手友好度 64/100
linagora/twake-mail-admin#301 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
维护者通常 1 天内回复
-
reproduced
难度 2/5 1-3 小时 新手友好度 70/100
anomalyco/opencode#56038 · 1 条评论 ·
维护者通常 1 天内回复