# Audio Session View
`kcode-audio-session-view` 0.1.1 is a deterministic leaf for adapting one
`kcode_audio_ingress::RecordingStatus` and one
`kcode_audio_history_handoff::RecordingProjection` into the established audio
session facade view.
```rust
use kcode_audio_session_view::{RecordingView, render};
let view: RecordingView = render(recording_status, history_projection);
```
## Public boundary
The library exposes one operation:
```rust
pub fn render(
recording: kcode_audio_ingress::RecordingStatus,
projection: kcode_audio_history_handoff::RecordingProjection,
) -> RecordingView;
```
`RecordingView` contains the adapted `Recording` and its ordered
`Vec<IngressPiece>`. `Recording`, `SpeakerReview`, and `IngressPiece` preserve
the field sets and `Clone, Debug` derives established by
`kcode-audio-session-ingress` 0.2.3. The operation is infallible and performs no
I/O or mutation. The projection's `recording_id` is not compared because Audio
History Handoff guarantees projection identity and input order.
## Status adaptation
Audio states retain the facade strings:
- queued: `uploaded`;
- processing: `chunking`, `transcribing`, `analyzing_speakers`,
`training_speakers`, or `reconciling`;
- failed: `failed`;
- completed but awaiting human speaker confirmation: `speaker_review`; and
- other completed recordings without projected pieces: `ready_for_ingress`.
Represented History pieces override those base states. All-complete pieces
produce `complete`; otherwise any `ingress_failed` piece produces
`ingress_failed`; otherwise any `ingress_in_progress` piece produces
`ingressing`; every other represented phase produces `ready_for_ingress`.
Processing progress is serialized into `transcription_status` with the same
best-effort JSON behavior as the facade. Completed-piece counts include only
the exact `complete` phase. `updated_at` remains equal to Audio Ingress
`received_at`.
## Ownership and exclusions
Audio Ingress remains the authority for recording identity, source metadata,
processing progress, speaker correction, and transcript completion. Audio
History Handoff remains the authority for History correlation, projected
piece order, synchronization, retry, and retained lifecycle records.
This leaf owns only deterministic field and status adaptation. It owns no
persistence, AudioIngress or Session History operation, confirmation, retry,
synchronization, provider, credentials, transport, tracing, locking, recovery,
deployment, publication, or state mutation.
Direct tests cover queued, failed, completed, and speaker-review recordings;
History phase priority and completed counts; complete recording and piece field
mapping; and all feasible Audio processing-stage mappings through the published
dependency types.