For AI agents: the complete documentation index is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms.txt, the full documentation bundle is available at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/llms-full.txt, and this page is available as Markdown at https://open-spaced-repetition.github.io/ts-fsrs/zh-TW/updates/binding/0.6.0.md.
  • 繁體中文
  • @open-spaced-repetition/binding 0.6.0

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

    All updates

    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) Thanks @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, #431) Thanks @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, #550) Thanks @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) Thanks @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) Thanks @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) Thanks @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) Thanks @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 and live 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, #433) Thanks @ishiko732!
    • Accept ReadableStream<Uint8Array> input for CSV conversion. (#447) Thanks @ishiko732!
    • Add convertCsvToFsrsItemsWithCardIds and card IDs in training/evaluation workflows, preserving card identity across converted review items. (#553) Thanks @ishiko732!
    • Add enableSchedPenalties for FSRS-7 training and evaluation. (#558) Thanks @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, #553) Thanks @ishiko732!
    • Fix dynamic loader cleanup after asynchronous work and update native/WASI dependencies and binding validation. (#536, #594) Thanks @ishiko732!
    • Incorporate upstream training/evaluation fixes and update fsrs-rs to revision d7f337b. (#571, #600) Thanks @ishiko732!