• 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