• v0.4.0 1b055fa08c

    DmitryBykov-ISPO released this 2026-04-23 11:10:17 +03:00 | 0 commits to master since this release

    Closes a known gap with the Python fork v0.2.0+: post-wake-word listening window now ends as soon as the user stops talking, not on a fixed timeout.

    What's in

    • webrtc-vad workspace dep (pure-Rust port of Google's WebRTC VAD; same algorithm as Python's webrtcvad).
    • jarvis-core::audio_processing::vad::listen_window \u2014 pure state machine (ListenWindow::push(is_speech) -> WindowDecision), no I/O. Closes the window when silence run \u2265 1200 ms AND \u2265 500 ms of speech was detected; refuses to close before 1000 ms; hard cap at 15000 ms. 4/4 unit tests.
    • jarvis-core::audio_processing::vad::webrtc \u2014 adapter that buffers pv_recorder's 512-sample frames into 480-sample VAD frames at 16 kHz.
    • jarvis-core::stt::vosk::finalize_speech \u2014 forces Vosk to emit final result when VAD says "speech ended".
    • jarvis-app::recognize_command \u2014 feeds every frame through VAD, handles WindowDecision::Close (fast path) and HardCap (return to wake-word).
    • 5 new config constants in jarvis-core::config mirroring Python v0.2.0 exactly.

    What does NOT happen

    • The pre-existing wake-word VAD path (audio_processing::vad/{init,detect,reset} with energy/none/nnnoiseless backends) is not touched. New webrtc-vad runs only in the post-wake listening window.
    • The legacy fixed-timeout path is gone.

    Build / test

    • cargo build --workspace --release \u2014 succeeded, 0 new warnings vs v0.3.0 baseline.
    • cargo test for the new tests \u2014 4/4 pass.

    Reaction time

    On short commands ("стоп", "пауза") the bot now reacts in ~1.5 s instead of waiting the full timeout window. Same speedup as Python v0.2.0.

    License

    CC BY-NC-SA 4.0. Original attribution to Priler/Tugalov preserved.

    Downloads
  • v0.3.0 ff70e6019f

    DmitryBykov-ISPO released this 2026-04-23 02:18:31 +03:00 | 7 commits to master since this release

    Reaches functional parity with the Python fork v0.1.0+ for free-form voice queries.

    What's in

    • LLM fallback in voice loop (crates/jarvis-app/src/llm_fallback.rs). Trigger-prefix pattern: any user utterance starting with скажи, ответь, or произнеси is forwarded to Groq. Word-boundary safe (won't fire mid-word).
    • Bounded conversation history in jarvis-core::llm::history — caps at 8 turns + system prompt; system prompt always preserved when old turns evict.
    • System prompt mirrors the Python fork: J.A.R.V.I.S. as British butler in Russian, brief, calls user "сэр", no prudish censorship.
    • Reply path: LLM response published as IpcEvent::LlmReply { text }. Pre-recorded play_ok cue accompanies the text reply (Rust core has no real TTS engine — only voice clips).
    • Error path: play_error cue + russian fallback "Не могу связаться с сервером, сэр." over IPC. Voice loop never crashes from LLM errors.
    • Config knobs in jarvis-app: llm_enabled, llm_max_history, llm_max_tokens, llm_trigger_phrases.

    What does NOT happen

    • No real TTS in Rust yet — LLM reply text goes via IPC for the GUI/host to speak. (Python fork uses Silero locally; Rust still relies on pre-recorded clips.)

    Build / test

    • cargo build --workspace --release — succeeded, zero new warnings vs v0.2.0 baseline. (6 pre-existing warnings on jarvis-app / jarvis-gui, 1 on jarvis-core — all upstream.)
    • cargo test -p jarvis-core --features llm --no-default-features — 8/8 pass (includes new pop_last_user history test).

    How to test

    set GROQ_TOKEN=gsk_...
    target\release\jarvis-app.exe
    # "Джарвис... скажи, что такое квантовая запутанность одной фразой?"
    

    Without GROQ_TOKEN the assistant still works — fallback is silently disabled (warning in log).

    Лицензия

    CC BY-NC-SA 4.0. Атрибуция Priler/Tugalov сохранена.

    Downloads
  • v0.2.0 b2045cf950

    DmitryBykov-ISPO released this 2026-04-22 19:44:20 +03:00 | 14 commits to master since this release

    Adds a foundation for LLM capability in the Rust fork. Upstream Priler/jarvis has had ChatGPT (coming soon) in the README since 2022 without an implementation. This release ships the implementation — parity with the Python fork — but does NOT yet wire it into the voice/intent loop. That's the next step (v0.3).

    What's in

    • New jarvis-core/src/llm.rs module behind the llm cargo feature:
      • LlmClient with new(base_url, api_key, model) and from_env() constructors.
      • complete(messages, max_tokens) over the OpenAI-compatible chat-completions endpoint.
      • thiserror-derived LlmError and ConfigError enums (HTTP error, JSON error, API error, missing env var).
      • Defaults: GROQ_BASE_URL=https://api.groq.com/openai/v1, GROQ_MODEL=llama-3.3-70b-versatile (same as the Python fork).
    • jarvis-cli ask <prompt> — one-shot invocation (argv) and REPL ask command both wired.
    • 3 unit tests in jarvis-core (parses_valid_chat_response, from_env_fails_when_token_missing, chat_message_helpers_set_role) all pass.
    • thiserror added to workspace deps; llm feature auto-enabled by default jarvis_app feature set and explicitly by jarvis-cli.
    • README updated: new "LLM (Groq)" section in Russian.

    Build / test

    • cargo build --workspace --release — succeeds (~1m56s cold). Zero new warnings vs v0.1.0 baseline.
    • cargo test -p jarvis-core --features llm -- llm — 3/3 pass. Full-workspace cargo test has a pre-existing vosk-link limitation carried from v0.1.0 (test binary for jarvis-core lacks build.rs); release workspace build is unaffected.

    Not yet

    • Wake-word / intent loop still uses only local rules. Wiring the LLM as a fallback (analog of Python's "скажи …") is v0.3.

    Licensing

    CC BY-NC-SA 4.0. Original Priler/Tugalov attribution preserved.

    Downloads
  • v0.1.0 3b4835935f

    DmitryBykov-ISPO released this 2026-04-22 18:11:11 +03:00 | 20 commits to master since this release

    First full release where every crate in the workspace compiles cleanly in cargo build --workspace --release.

    What builds

    • jarvis-core (library)
    • jarvis-apptarget/release/jarvis-app.exe (~38 MB)
    • jarvis-clitarget/release/jarvis-cli.exe (~33 MB)
    • jarvis-guitarget/release/jarvis-gui.exe (~42 MB)

    Build fixes vs v0.1.0-alpha

    • jarvis-cli: added build.rs mirroring jarvis-app so libvosk.lib link path is registered.
    • jarvis-gui: added its own build.rs too — Cargo workspace feature unification pulls vosk into all crates depending on jarvis-core, so gui also needed the link path.
    • frontend/: added build step (npm install && npm run build inside frontend/) — tauri::generate_context!() needs frontend/dist/client/ to exist at compile time. Also rearranged npm build script to run routify build before svelte-check so Routify's generated routes.default.js is available for type-check.
    • gitignore: tauri-regenerated schemas (crates/jarvis-gui/gen/schemas/*.json) no longer dirty the tree after builds.

    Caveat

    This release was verified by build-cleanliness only, not runtime smoke test. First run after cd frontend && npm install && npm run build && cargo build --workspace --release should produce the three binaries above.

    License

    CC BY-NC-SA 4.0. Original attribution to Abraham Tugalov / Priler preserved.

    Downloads
  • v0.1.0-alpha 3c81525ab6

    DmitryBykov-ISPO released this 2026-04-22 17:46:44 +03:00 | 26 commits to master since this release

    First modified release of the fork. Alpha because 2 of 4 crates do not yet build:

    What's in this release

    • Rebranded to Bossiara13 fork. Original Tugalov/Priler attribution preserved in LICENSE.txt, Cargo.toml, and voice-pack voice.toml files per CC BY-NC-SA 4.0.
    • README fully rewritten in Russian to reflect actual workspace architecture (4 crates: jarvis-core, jarvis-app, jarvis-gui, jarvis-cli). Upstream README was outdated.

    What builds

    • jarvis-core (1 warning)
    • jarvis-app — produces target/debug/jarvis-app.exe

    What doesn't (reserved for v0.1.0)

    • jarvis-cli — link error LNK1181: libvosk.lib. No build.rs in that crate to surface the vendored DLL path.
    • jarvis-guitauri::generate_context!() needs frontend/dist/client/ built first (cd frontend && npm install && npm run build).

    No code changes vs upstream

    This alpha has no behavioral differences from Priler/jarvis master beyond attribution. Full v0.1.0 will land build fixes for the two broken crates.

    Downloads
  • v0.0.1-import 520b98143f

    DmitryBykov-ISPO released this 2026-04-22 17:13:43 +03:00 | 30 commits to master since this release

    Initial import of Priler/jarvis Rust master branch. Missing Git LFS objects (Priler's LFS budget exceeded) were re-sourced from HuggingFace:

    No functional changes yet. First proper release (v0.1.0) will land Bossiara13 rebrand and a verified cargo build.

    Downloads