Title: determinism: the CLI's heartbeat list depends on wall-clock timing, so five determinism units fail on main · Issue #91 · TanStack/oracles · GitHub
Open Graph Title: determinism: the CLI's heartbeat list depends on wall-clock timing, so five determinism units fail on main · Issue #91 · TanStack/oracles
X Title: determinism: the CLI's heartbeat list depends on wall-clock timing, so five determinism units fail on main · Issue #91 · TanStack/oracles
Description: Summary Five determinism units of the end-to-end gap oracle fail on main (35422e3). Each one runs a history twice and compares the two traces. The traces differ in the CLI's heartbeats list, which records which busy mutants beat. Whether...
Open Graph Description: Summary Five determinism units of the end-to-end gap oracle fail on main (35422e3). Each one runs a history twice and compares the two traces. The traces differ in the CLI's heartbeats list, which ...
X Description: Summary Five determinism units of the end-to-end gap oracle fail on main (35422e3). Each one runs a history twice and compares the two traces. The traces differ in the CLI's heartbeats list, wh...
Opengraph URL: https://github.com/TanStack/oracles/issues/91
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"determinism: the CLI's heartbeat list depends on wall-clock timing, so five determinism units fail on main","articleBody":"## Summary\n\nFive determinism units of the end-to-end gap oracle fail on `main` (35422e3). Each one runs a history twice and compares the two traces. The traces differ in the CLI's `heartbeats` list, which records which busy mutants beat. Whether a mutant beats depends on wall-clock timing, so the comparison is timing-dependent. Found by the determinism units that CI-1 moves onto pull requests (PR #90).\n\n## Failing units (main 35422e3, one Arclet, one Vitest worker)\n\n- `determinism: constructed history: an edit sequence over the witness module`\n- `determinism: constructed history: every outcome class`\n- `determinism: constructed history: a declaration fault: brokenOwner`\n- `determinism: constructed history: a declaration fault: noTypescript`\n- `determinism: generated 2`\n\n## Evidence\n\nEach failure is at observation 0 (`cli`). A structural diff of the two full traces (captured with a scratch patch that prints the untruncated texts, since the message keeps 2,000 characters) differs only in `$.heartbeats`. For `brokenOwner`, one run's list includes `sut.ts:M177` and the other's does not. The other units show the same kind of shift in the list.\n\n## Replay\n\nDeterminism units have no replay line. Run one unit with the project's command:\n\n cd packages/oracles && pnpm exec vitest --run --config oracle-gaps/vitest.config.mjs gap-report-oracle -t \"determinism: constructed history: a declaration fault: brokenOwner\"\n\nThe history is printed in the failure message (`History: {...}`).\n\n## Why it matters\n\nThe register's \"determinism under load\" decision (2026-11-13) says that an oracle driver must not rely on wall-clock ordering. This comparison records a timing-dependent set, so it fails under load even when the CLI is deterministic. #84 is the reach side of the same timing (the heartbeat state's count per shard). This issue is the determinism side.\n\n## Open question for the maintainer\n\nEither the determinism comparison should leave the heartbeat set out, since \"each beat is observed as its mutant and file, not how long or how often it beat\" (the law's own wording), or the beat set should be made deterministic through a test-only pause point as in #84's proposed fix. Not decided here.\n","author":{"url":"https://github.com/KyleAMathews","@type":"Person","name":"KyleAMathews"},"datePublished":"2026-11-15T04:55:10Z","url":"https://github.com/TanStack/oracles/issues/91"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:f8f0c4cc-f5c7-ca90-1b3c-8ee9cda8279a |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D88A:1D3F1B:260E145:3233C07:6AF9A85E |
| html-safe-nonce | edd7bedcc7c97a4e29b99f3a79c4c7d899b691723181332584261a7988d18fc4 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEODhBOjFEM0YxQjoyNjBFMTQ1OjMyMzNDMDc6NkFGOUE4NUUiLCJ2aXNpdG9yX2lkIjoiMTAwNjIxMDI2NzI2NjE5MjMwIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 631ed06ac6208c89e6fb8cf2090486b824c50be65740316a360c04b307d74729 |
| hovercard-subject-tag | issue:6400168586 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/TanStack/oracles/91/issue_layout |
| twitter:image | https://opengraph.githubassets.com/dd6a26228767e79ae61be10a33aa7a25bdbaa8725da34b595ffab410cf3c7606/TanStack/oracles/issues/91 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/dd6a26228767e79ae61be10a33aa7a25bdbaa8725da34b595ffab410cf3c7606/TanStack/oracles/issues/91 |
| og:image:alt | Summary Five determinism units of the end-to-end gap oracle fail on main (35422e3). Each one runs a history twice and compares the two traces. The traces differ in the CLI's heartbeats list, which ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | KyleAMathews |
| hostname | github.com |
| expected-hostname | github.com |
| None | 612d3e6ffd693e7ea8d9fcf452370995872baef31d825b1fedef704cd3d24ac7 |
| turbo-cache-control | no-preview |
| go-import | github.com/TanStack/oracles git https://github.com/TanStack/oracles.git |
| octolytics-dimension-user_id | 72518640 |
| octolytics-dimension-user_login | TanStack |
| octolytics-dimension-repository_id | 1443546044 |
| octolytics-dimension-repository_nwo | TanStack/oracles |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1443546044 |
| octolytics-dimension-repository_network_root_nwo | TanStack/oracles |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 072e34035c13c31543fba9f025cbbbda4210dae4 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width