Measure chance reach misses in oracle properties
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 53/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- typescript
调研方向
Start with packages/db/tests/declared-reach-oracle.property.test.ts and docs/contributing/oracle-coverage.md, then find the other files using createOracleReach or runOracleCampaign. Measure normal-budget reach misses across seeds for states not entered by fixed examples; add fixed examples through the shared seam or document probabilistic states with a maintainer decision. Consider whether a lint rule can identify chance-selected reach prefixes.
由索引模型根据 Issue 内容生成。
描述
Problem
A generated property declares the states its laws depend on, and createOracleReach fails a run in which too few histories entered one (ORC-015). When only random histories enter a declared state, the check can fail by chance at the normal run budget. No law fails, but CI goes red. #2287 was one case: in about 0.3% of 60-run campaigns, source-health.history never chose the one reach prefix that enters two of its states.
The fix for #2287 adds a shared seam for this:
oraclePropertyOptions(…, { examples })runs fixed examples first in every run, on top of the base budget.createOracleReach(…, { fixedHistories })fails for each declared state that those examples did not enter.
The three source-health properties use the seam, so their reach does not depend on the seed. packages/db/tests/declared-reach-oracle.property.test.ts (oracle.declared-reach) owns these rules.
About 40 other files use createOracleReach or runOracleCampaign. Their chance of a reach miss at the normal budget has not been measured.
Work
- For each property with declared reach, list the declared states that no fixed example enters.
- Measure how often a normal-budget run misses each of those states. For example, count the misses across many seeds, or sample the generator.
- For each state that can miss, add a fixed example through the seam, or record the state as probabilistic in
docs/contributing/oracle-coverage.mdwith a maintainer decision. Raise a run budget only with a maintainer decision, because it adds CI time. - Consider a lint rule that reports a property that chooses a reach prefix by chance (
fc.option(fc.constantFrom(...prefixes))) without fixed examples.
The coverage map's "Oracle tooling" section links to this issue as the destination for the gap.
Refs #2234, #2287.
This issue was written by Isaac.
- 主要语言
- TypeScript
- 星标
- 4k
- 派生
- 277
- 平均合并
- 1 天 7 小时
- 30 天内合并 PR
- 170
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
TanStack/db 的其他 Issue
-
难度 1/5 1-3 小时 新手友好度 88/100
维护者通常 1 天内回复
-
OfflineExecutor.dispose() never settles pendingTransactionPromises可能重新可做 @Claire-ovo 于 8 天前认领,目前没有进行中的 PR。 未关闭
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 78/100
维护者通常 1 天内回复
-
Two @tanstack/db tests time out under CPU load because a cold module import counts against the 5 s default timeout可能已有人在做 @jp-knj 于 6 天前认领。 未关闭
难度 2/5 1-3 小时 新手友好度 82/100
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 12/100
维护者通常 1 天内回复
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 72/100
维护者通常 1 天内回复
-
难度 1/5 1 小时以内 新手友好度 82/100
维护者通常 1 天内回复
-
needs-area
难度 2/5 1-3 小时 新手友好度 68/100
Azure/typespec-azure#5936 ·
维护者通常 1 天内回复
-
难度 2/5 半天 新手友好度 72/100
vercel-labs/scriptc#2910 ·
维护者通常 1 天内回复
-
automation missing-model model-sync provider:fireworks-ai
难度 2/5 1-3 小时 新手友好度 72/100
anomalyco/models.dev#12458 ·
维护者通常 1 天内回复