Skip to content

Releases

OpenRecall 0.3.0

Choose a tag to compare

@github-actions github-actions released this 14 Nov 14:35
ac265bc

OpenRecall 0.3.0

This release provides Windows x64 and Linux x64 packages.

  • Add essay prompts with native copy to clipboard, optional notes and direct spaced-repetition ratings.
  • Add single-answer and multiple-answer choices with optional shuffling. Correct submissions unlock all four ratings. Incorrect and skipped submissions record Again and show durable correction, the actual due time and an undo action.
  • Author and preview both types in Arabic. JSON imports support per-form types and portable answer keys. Alternatives share scheduling and may use different question types.
  • Retain typed source context for spelling practice. Correct choices contribute words alongside eligible prompt and notes text.
  • Export and restore format 2, schema 10. Genuine 0.1.0 and 0.2.0 backups remain supported. Keep a current backup before upgrading.
  • Update the Windows updater dependency to use a ZIP library version with the published fixes.

Study and local grading work offline. The pinned FSRS-7 model and default Schedule Penalties are unchanged.

The Linux packages retain the existing upstream GLib advisory.

Arabic guide · Automated evidence · Human NVDA checklist

OpenRecall 0.2.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 09:12
ffd7a80

OpenRecall 0.2.0

This release adds a dedicated spelling deck, configurable question labels and
calendar-based daily completion statistics to the offline Arabic desktop app.

  • Create one spelling deck per local library and bind an ordinary source deck.
    Unique eligible Latin-script words/terms are collected from existing and new
    questions, answers, notes and alternative forms. Unknown names are included;
    URLs, email addresses and pure numbers are excluded. The extraction policy is
    versioned and runs locally in Rust.
  • Source edits, deletion and rebinding retain vocabulary and learning progress.
    Each word keeps its last matching source-form context, even when every live
    source is gone. Original contexts load on request and support pagination.
  • Spelling review starts with the whole target word on the native textarea's
    first line, a blank line below, focus in the field and an unselected caret at
    its beginning. The field is freely editable. There is no correction,
    comparison, automatic grade, synthesized speech or saving of user attempts.
    Leaving a presentation discards the attempt; undo, resume and restart restore
    only the target plus newline. Same-card polling, blur and disclosure preserve
    the current field. The four grades are available immediately.
  • Explicit word deletion records an exclusion. Allowing collection again uses
    the current source and starts fresh progress. Deleting the whole spelling deck
    clears its owned data while preserving ordinary sources.
  • Optional per-form questionTitle customizes the label-only H1. Missing/null or
    blank values use السؤال. Omitted variant titles inherit the root during JSON
    import; explicit null/blank resets that label. Titles remain plain text, up to
    160 Unicode characters without control characters or line breaks.
  • Deck and library statistics count one completion per logical card/study day
    when its last effective review moves the due date to a later study day. Later
    reviews preserve earlier daily results; undo/deletion use surviving history.
    Library totals show the separate spelling-word subset. Current timezone and
    day-start settings, including Cairo DST, determine the calendar buckets.
  • Rating buttons retain their Arabic labels and approximate intervals. The extra
    expected calendar date and delayed-rating caveat have been removed. Actual
    committed due-date feedback remains available after grading.
  • Complete format-2 backups include spelling vocabulary, context snapshots,
    exclusions and every existing setting/progress/model/history collection. The
    versioned reader verifies genuine v0.1.0 format-1 payloads before upgrading
    defaults, including nested undo images. Restore still previews, exports a
    safety copy and replaces the library transactionally.

FSRS-7 and its 34-parameter model remain pinned to the existing upstream commit;
stability, stability_fast and difficulty are preserved. Scheduling, selection,
history, training, validation and transactions remain authoritative in Rust.
Schedule Penalties stay enabled by default.

See automated evidence and limits,
the Arabic guide, human NVDA checks
and signing custody. Automated tests cover real Windows WebView2
study, both backup formats, retained contexts, typed-attempt privacy and process
restart. No screen reader was launched. Build/signature results do not establish
an OS installer run or a complete v0.1.0-to-v0.2.0 installation/update test.

Windows 11 x64 is primary; Windows 10, Linux and macOS are secondary. Normal and
WebView2-inclusive offline Windows installers are signed for the updater. Linux
and both macOS architectures are built in CI; their runtime behavior has not been
tested here. Updater signatures do not provide a Windows publisher certificate
or Apple notarization. Linux retains the disclosed, unpatched
upstream GLib iterator advisory; its alert remains open.

OpenRecall 0.1.0

Choose a tag to compare

@aimansour aimansour released this 26 Oct 05:18
4665c5d

OpenRecall 0.1.0

Initial offline desktop release: Arabic dark RTL UI, accessible semantic review headings, bundled multilingual fonts, native SQLite storage and the pinned FSRS-7 engine/optimizer. Variants use one logical learning state and a persisted shuffled bag with reserved presentations and no immediate repeat at a multi-form cycle boundary.

Reviews support urgency-ordered due cards, new/previous filters, live due arrivals, native interval previews, atomic idempotent rating, one-step complete undo and session summaries. Profile-scoped training includes explicit membership, minimum-data gates, chronological holdout, cancellation and stale-result rejection. Schedule Penalties default to enabled.

JSON card import includes readonly preview, validation, explicit invalid-variant exclusion and library-wide duplicate detection. Format-1 portable backup includes settings, cards/forms, scheduling/history, sessions/undo and models/jobs. Restore validates its digest and relationships, writes a safety export, and replaces the library transactionally.

Final review regressions protect cross-profile drafts and late navigation/training responses, keep exports valid after form removal, reject scheduler-incompatible restored memory, and present Arabic native recovery without replacing an unavailable library with empty data.

Updates require an explicit user request, official updater signature and signed-version verification, edit/review/job guards and a durable SQLite checkpoint. Release CI compiles without credentials, signs only during bundling, verifies every signed artifact, assembles all four updater targets and publishes only a complete draft after checking server asset digests.

Windows x64 is the primary target; normal and WebView2-inclusive offline NSIS packages are produced. Secondary build targets are Linux x64 (AppImage/deb), macOS Apple Silicon and macOS Intel. See verification and its limits, the human NVDA checklist and signing custody. No OS publisher certificate, notarization, unperformed screen-reader result or full older-version update run is claimed.

Known Linux dependency advisory

Dependabot reports medium-severity GHSA-wrw7-89jp-8q8g (RUSTSEC-2024-0429) in glib 0.18.5, required by the current Tauri/GTK3 Linux dependency chain. Windows and macOS target graphs do not include this crate. The affected API is VariantStrIter/array_iter_str; inspection of the locked application and downloaded Linux dependency sources found no production call site outside the crate's own definitions/examples/tests. This is a reachability assessment, not a claim that the vulnerable dependency is patched. The advisory remains open. A direct upgrade to glib 0.20 cannot satisfy GTK3's 0.18 dependency. Linux remains a secondary, build-verified target; this upstream limitation is accepted for this release, and future dependency changes must reassess reachability and a compatible fix.

References: RustSec advisory, Tauri upstream dependency issue.