> For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/llms-full.txt.

# @open-spaced-repetition/binding 0.6.0

Published: 2026-10-28 14:10:23 UTC

<div class="release-update-links">

[npmx](https://npmx.dev/package/@open-spaced-repetition/binding/v/0.6.0) · [GitHub Release](https://github.com/open-spaced-repetition/ts-fsrs/releases/tag/%40open-spaced-repetition%2Fbinding%400.6.0)

</div>

[All updates](https://open-spaced-repetition.github.io/ts-fsrs/zh-CN/updates/binding/index.md)

### Breaking Changes

- Remove `@open-spaced-repetition/binding-win32-ia32-msvc` and the `i686-pc-windows-msvc` build target. Native 32-bit Windows builds are no longer supported; Windows x64 and ARM64 packages remain available. ([#429](https://github.com/open-spaced-repetition/ts-fsrs/pull/429)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Require Node.js 24 or later and use an ESM default loader. Threaded WASI initialization is exposed through `./dynamic`; `./dynamic-wasi` remains an alias. ([#406](https://github.com/open-spaced-repetition/ts-fsrs/pull/406), [#431](https://github.com/open-spaced-repetition/ts-fsrs/pull/431)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Resolve timezones in Rust for CSV conversion instead of accepting a JavaScript offset callback. Use `convertCsvToFsrsItems(data, nextDayStartsAt, timezoneOrOffset, modelVersion?)`, with an IANA timezone name or a fixed UTC offset in minutes; IANA offsets are resolved per review timestamp, including daylight saving transitions. ([#384](https://github.com/open-spaced-repetition/ts-fsrs/pull/384), [#550](https://github.com/open-spaced-repetition/ts-fsrs/pull/550)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Default optimizer/model workflows to FSRS-7, with fast stability and fractional study-day intervals. Set `modelVersion: 'FSRS-6'` explicitly for FSRS-6 training/evaluation and pass `'FSRS-6'` to CSV conversion to retain whole study-day intervals. Use the same model version throughout conversion, training, and evaluation. `new FSRSBinding()` (or an empty parameter array) also defaults to FSRS-7; pass an explicit FSRS-6 parameter vector to retain FSRS-6 in that constructor. ([#530](https://github.com/open-spaced-repetition/ts-fsrs/pull/530)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Require an explicit positive numeric decay for `computeOptimalSteps`: FSRS-4 uses `1`, FSRS-4.5/5 use `0.5`, and FSRS-6 uses `weights[20]`. This single-decay fitting API does not support the FSRS-7 mixture curve. ([#538](https://github.com/open-spaced-repetition/ts-fsrs/pull/538)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Memory-state JSON serialization now includes `stability_fast`. Update strict stored-data schemas and preserve this field for FSRS-7; do not treat an FSRS-6 memory state as a complete FSRS-7 state. ([#530](https://github.com/open-spaced-repetition/ts-fsrs/pull/530)) Thanks [@ishiko732](https://github.com/ishiko732)!

### New Features

- `FSRSBindingReview.deltaT` preserves fractional elapsed days, and `FSRSBinding.nextStates` accepts fractional days for FSRS-7 while retaining whole-day behavior for FSRS-6. `BindingMemoryState(stability, difficulty, stabilityFast?)` adds a `stabilityFast` getter; the optional constructor argument defaults to `stability` for compatibility. ([#530](https://github.com/open-spaced-repetition/ts-fsrs/pull/530)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Add the threadless `@open-spaced-repetition/binding-wasm32-wasip1` package, including its `/workerd` and `/wasm` exports. The trainer can run across Node.js, browser Workers, and Cloudflare Workers/workerd using the appropriate native or WebAssembly entry. The threadless WASIp1 build requires no COOP/COEP headers or shared memory, so static sites hosted on GitHub Pages can run training locally in a browser Worker without a training backend. See the [optimizer guide](https://open-spaced-repetition.github.io/ts-fsrs/guide/optimizer/) and [live playground](https://open-spaced-repetition.github.io/ts-fsrs/playground). Training and time-series evaluation retain Promise-based APIs but execute synchronously on the current worker; use a dedicated Worker in browsers. Progress callbacks are supported, and returning `false` stops the operation. ([#432](https://github.com/open-spaced-repetition/ts-fsrs/pull/432), [#433](https://github.com/open-spaced-repetition/ts-fsrs/pull/433)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Accept `ReadableStream<Uint8Array>` input for CSV conversion. ([#447](https://github.com/open-spaced-repetition/ts-fsrs/pull/447)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Add `convertCsvToFsrsItemsWithCardIds` and card IDs in training/evaluation workflows, preserving card identity across converted review items. ([#553](https://github.com/open-spaced-repetition/ts-fsrs/pull/553)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Add `enableSchedPenalties` for FSRS-7 training and evaluation. ([#558](https://github.com/open-spaced-repetition/ts-fsrs/pull/558)) Thanks [@ishiko732](https://github.com/ishiko732)!

### Fixes and Dependencies

- Validate optimizer inputs and bound review-history expansion. `FSRSBindingItem` rejects review ratings outside 1–4, including Manual, and supplied `cardIds` must match the item count. ([#550](https://github.com/open-spaced-repetition/ts-fsrs/pull/550), [#553](https://github.com/open-spaced-repetition/ts-fsrs/pull/553)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Fix dynamic loader cleanup after asynchronous work and update native/WASI dependencies and binding validation. ([#536](https://github.com/open-spaced-repetition/ts-fsrs/pull/536), [#594](https://github.com/open-spaced-repetition/ts-fsrs/pull/594)) Thanks [@ishiko732](https://github.com/ishiko732)!
- Incorporate upstream training/evaluation fixes and update fsrs-rs to revision `d7f337b`. ([#571](https://github.com/open-spaced-repetition/ts-fsrs/pull/571), [#600](https://github.com/open-spaced-repetition/ts-fsrs/pull/600)) Thanks [@ishiko732](https://github.com/ishiko732)!
