# Behavior traces — dubzzz/fast-check

> Canonical page: https://codevetter.com/unpack/fast-check/behavior-traces

# Behavior traces — dubzzz/fast-check

Scanned commit ecf7193810d1057253808105444e147d948051a1 (2026-10-01). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Source reads followed ordinary assertion, failure replay, worker-backed assertion, and framework registration through their output boundaries. Additional traces cover sampling, model commands, scheduler release, and website onboarding. These are execution-order reconstructions from source, not observed runtime results. The replay flow reconstructs a failure from seed/path rather than loading persisted execution objects.
- Assertion flow: asyncProperty → PropertyImplem(tuple(...)) → assert → check → read(parameters) → plugin construction/decoration → toss → SourceValuesIterator → runIt → RunnerIterator; runIt awaits each predicate and feeds its result back before advancing. — [packages/fast-check/src/check/property/AsyncProperty.ts#L19-L22](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/AsyncProperty.ts#L19-L22) [packages/fast-check/src/check/runner/Runner.ts#L19-L31](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L19-L31) [packages/fast-check/src/check/runner/Runner.ts#L92-L140](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L92-L140) [packages/fast-check/src/check/runner/Runner.ts#L156-L158](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L156-L158)
- Failure flow: PropertyImplem.run converts an error/false result → RunnerIterator.handleResult calls RunExecution.fail → the iterator switches to property.shrink → each further failure extends the path; endOnFailure substitutes an empty shrink iterator before execution. — [packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L14-L22](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/property/_internals/PropertyImplem.ts#L14-L22) [packages/fast-check/src/check/runner/RunnerIterator.ts#L42-L52](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/RunnerIterator.ts#L42-L52) [packages/fast-check/src/check/runner/reporter/RunExecution.ts#L38-L46](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/reporter/RunExecution.ts#L38-L46) [packages/fast-check/src/check/runner/Runner.ts#L129-L138](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L129-L138)
- Replay flow: check with a nonempty path → lazyToss → pathWalk parses colon-separated indices → drops initial producers → generates the selected value → repeatedly shrinks and drops candidates → ordinary execution; RunExecution.mergePaths incorporates the starting offset. — [packages/fast-check/src/check/runner/Runner.ts#L126-L138](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Runner.ts#L126-L138) [packages/fast-check/src/check/runner/Tosser.ts#L43-L54](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Tosser.ts#L43-L54) [packages/fast-check/src/check/runner/utils/PathWalker.ts#L8-L29](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/utils/PathWalker.ts#L8-L29) [packages/fast-check/src/check/runner/reporter/RunExecution.ts#L94-L99](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/reporter/RunExecution.ts#L94-L99)
- Worker flow: propertyFor → workerProperty → runMainThread selects a pool/builds the property → worker assert injects the worker plugin → beforeEach acquires a lock and worker → register/postMessage → runWorker executes the predicate → response resolves the run → assert finally invokes associated pool cleanup; file-scoped pools may defer actual worker termination. — [packages/worker/src/main.ts#L38-L53](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/main.ts#L38-L53) [packages/worker/src/main.ts#L95-L122](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/main.ts#L95-L122) [packages/worker/src/internals/MainThreadRunner.ts#L31-L73](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/MainThreadRunner.ts#L31-L73) [packages/worker/src/internals/worker-runner/WorkerRunner.ts#L19-L38](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-runner/WorkerRunner.ts#L19-L38) [packages/worker/src/internals/worker-pool/GlobalPool.ts#L51-L67](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/worker/src/internals/worker-pool/GlobalPool.ts#L51-L67)
- Vitest .prop flow: buildTest exposes .prop → buildTestProp selects tuple or record conversion → buildTestWithPropRunner selects a seed and creates asyncProperty → registered callback collects suite hooks and adds lifecycle plugins → awaited fc.assert executes the property. — [packages/vitest/src/internals/TestBuilder.ts#L122-L163](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/vitest/src/internals/TestBuilder.ts#L122-L163) [packages/vitest/src/internals/TestBuilder.ts#L186-L211](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/vitest/src/internals/TestBuilder.ts#L186-L211) [packages/vitest/src/internals/TestWithPropRunnerBuilder.ts#L84-L111](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/vitest/src/internals/TestWithPropRunnerBuilder.ts#L84-L111) [packages/vitest/src/internals/TestWithPropRunnerBuilder.ts#L125-L173](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/vitest/src/internals/TestWithPropRunnerBuilder.ts#L125-L173)
- Sampling flow: sample → streamSample merges parameters → toProperty wraps the input → toss or replay pathWalk → take(numRuns) → value_ extraction → array materialization; statistics consumes that stream and emits sorted category percentages. — [packages/fast-check/src/check/runner/Sampler.ts#L11-L33](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Sampler.ts#L11-L33) [packages/fast-check/src/check/runner/Sampler.ts#L51-L52](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Sampler.ts#L51-L52) [packages/fast-check/src/check/runner/Sampler.ts#L88-L107](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/runner/Sampler.ts#L88-L107)
- Model/scheduler flow: asyncModelRun → internalAsyncModelRun → setup → genericModelRun chains commands → await command.check → conditionally await command.run; scheduledModelRun wraps commands, schedules startModel, then waits for the model and all remaining scheduler tasks. — [packages/fast-check/src/check/model/ModelRunner.ts#L26-L44](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/model/ModelRunner.ts#L26-L44) [packages/fast-check/src/check/model/ModelRunner.ts#L77-L93](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/model/ModelRunner.ts#L77-L93) [packages/fast-check/src/check/model/ModelRunner.ts#L125-L129](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/model/ModelRunner.ts#L125-L129) [packages/fast-check/src/check/model/ModelRunner.ts#L154-L157](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/packages/fast-check/src/check/model/ModelRunner.ts#L154-L157)
- Website onboarding flow: Home renders HomepageHeader and feature content → Quick Start links to basic-setup → the guide scaffolds a tutorial with degit → identifies sort.mjs/sort.test.mjs and Vitest → instructs npm test; homepage example demonstrates awaited assert(asyncProperty(...)). — [website/src/pages/index.js#L11-L23](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/website/src/pages/index.js#L11-L23) [website/src/components/HomepageHeader/index.js#L37-L40](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/website/src/components/HomepageHeader/index.js#L37-L40) [website/docs/tutorials/quick-start/basic-setup.md#L20-L45](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/website/docs/tutorials/quick-start/basic-setup.md#L20-L45) [website/src/components/HomepageFeatures/index.js#L80-L88](https://github.com/dubzzz/fast-check/blob/ecf7193810d1057253808105444e147d948051a1/website/src/components/HomepageFeatures/index.js#L80-L88)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
