kcode-audio-ingress 0.1.0

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, delegates the in-memory transcription pipeline to kcode-audio-transcribe, persists progress and the canonical transcript, and recovers interrupted work after restart.

use chrono::Utc;
use kcode_audio_ingress::{AudioIngress, AudioInput};
use kcode_audio_transcribe::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 public boundary is 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.

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.