• v0.1.0 4cf4e46c83

    v0.1.0
    All checks were successful
    ci / rust-quality (push) Successful in 1m58s
    ci / android-portability (push) Successful in 1m56s
    Stable

    albert released this 2026-06-22 02:51:18 +00:00 | 1 commits to main since this release

    First consumable release: the QWERTY-English v1 decoder, adult/child signed
    bundles, and the stable integration contract (docs/integration.md).

    Added

    • Phase 0 bootstrap: Cargo workspace (shepherd-swipe-core, shepherd-swipe-cli),
      gesture interchange format (docs/gesture-format.md), consumption contract
      (docs/integration.md), bundle format, DATA_SOURCES.md with the verified FUTO
      dataset schema, CI, and scripts/setup-box.sh.
    • Pure-Rust decoder: layout + proximity features, CTC alphabet, lexicon FST
      (closed-vocabulary), n-gram backoff context LM (SSLM1), lexicon-constrained CTC beam
      search with LM fusion, ONNX encoder via tract, signed-bundle loader (minisign +
      SHA-256). Cross-compiles to aarch64-linux-android.
    • Training pipeline (training/pipeline/01..09): FUTO download + schema verification,
      preprocessing, calibrated synthetic generator, dilated-TCN CTC encoder (GPU), per-
      profile lexicon + context LM, signed bundle assembly, real-test evaluation, and
      Rust↔PyTorch parity. just bundle <profile> reproduces a signed bundle.
    • Safety: child profile enforces INV-1/INV-2/INV-3 (closed-vocabulary, adversarial
      battery, denylist-free corpus). Adult bundle: 89.1% top-1 / 93.6% top-4 on the real
      test set. Encoder parity 99.94% argmax agreement.
    • CLI: decode, eval (with latency), bench, info, build-lexicon, debug-logits.
    • Performance: temporal-downsampling encoder and an interned prefix-arena beam bring
      decode to ~10.3 ms single-thread (adult top-1 90.4% / top-4 94.1% on the real test set).
    • Release polish: fully documented public API (deny(missing_docs)), a decode example,
      crate keywords/categories, and docs.rs metadata.

    Notes

    • Int8 quantization was evaluated and not adopted (tract-onnx 0.21 lacks native int8
      conv); the fp32 encoder ships. See pipeline/10_quantize.py and EVAL.md.
    Downloads