项目文件夹

文件
wehub-resource-sync 289935721d
Deploy Website / build (push) Has been cancelled
Deploy Website / deploy (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:28:21 +08:00

43 行
1.7 KiB
Markdown

# Vibe Architecture
## Overview
Vibe is a desktop transcription app built with **Tauri** (Rust + TypeScript frontend).
## Components
### Desktop App (`desktop/`)
- **Frontend**: TypeScript + React (UI)
- **Backend**: Rust/Tauri (`desktop/src-tauri/`)
- Handles UI, file management, settings, analytics
- Spawns and communicates with the Sona runner via local HTTP
### Sona Runner (`sona/` folder)
- **Language**: Rust + whisper.cpp bindings
- **Location**: Separate repository at `github.com/thewh1teagle/sona` (also cloned locally in `./sona`)
- **Purpose**: Single local runner process for audio transcription, model loading, streaming, and diarization
- Bundled as one `sona` binary sidecar with the desktop app
- Diarization is in-process in Sona via `diarize-rs`; Vibe does not bundle or spawn a separate `sona-diarize` binary
- **Build**: Separate CI/CD in sona repository
- **Distribution**: Pre-built Sona binaries downloaded during Vibe build (see `scripts/pre_build.py`)
### FFmpeg Helper
- macOS and Windows builds also bundle `ffmpeg` from the Sona release archives
- Vibe passes its path to Sona with `SONA_FFMPEG_PATH`
### Build Flow
1. Vibe CI runs `scripts/pre_build.py`
2. Script downloads pre-built Sona binaries from Sona releases
3. Binaries placed in `desktop/src-tauri/binaries/`
4. Tauri bundles `sona` and, where configured, `ffmpeg` into the final app
## Key Point for Agents
Native runtime compatibility issues for transcription usually come from the Sona runner or its linked whisper/ggml libraries, not the Vibe UI code.
To fix Sona runtime compatibility issues, update **Sona's** build configuration in the Sona repository, then bump `.sona-version` in Vibe.