kcode-audio-ingress 0.1.1

Durable automatic audio transcription with restart recovery
Documentation

kcode-audio-ingress

kcode-audio-ingress provides durable, automatic audio transcription. It retains complete caller-owned WAV bytes, runs the transcription and reconciliation pipeline, durably stores each completed audio-piece transcript, persists progress and the canonical transcript, and recovers interrupted work after restart.

use chrono::Utc;
use kcode_audio_ingress::{AudioIngress, AudioInput, AudioTranscriber};

async fn accept(
    transcriber: AudioTranscriber,
    wav_bytes: Vec<u8>,
) -> Result<(), kcode_audio_ingress::Error> {
    let ingress = AudioIngress::open("./audio-ingress", transcriber).await?;
    let submission = ingress
        .submit(AudioInput {
            bytes: wav_bytes,
            recorded_at: Utc::now(),
            original_filename: Some("recording.wav".into()),
        })
        .await?;
    println!("{}", submission.recording_id);
    Ok(())
}

The ingress boundary remains deliberately small: open, submit, status, and manual retry. Processing starts automatically. Retry policy is fixed at five full-job attempts, and the library imposes no configurable storage or input size limit. AudioTranscriber and its status types are included in the same crate so callers only need this library.

The library owns every path beneath its configured persistence root. It does not provide HTTP routes, multipart parsing, streaming submission, transcript delivery, or application-specific memory ingress.

See Documentation.md for the complete API and Specification.md for behavioral guarantees.