Brand and design · Hi-fi screens · S20 Processing · Processing
Data-binding map: S20 Processing · Processing
Data-binding map of Processing · Processing: every field to its source, and what each required state shows.
Generated by
botgumi-design indexfrom../../screens.json. Edit that file, not this page.
Every field S20 shows and where it comes from.
| Field | Source (endpoint or local state) | Format | Fallback |
|---|---|---|---|
| stage rows | api GET /attempts/{attempt_id} status · attempt.status, attempt.progress.stage / stage_index / stage_count; upload stage = local:uploadQueue |
✓ / spinner / pending | — |
| stage rows | api GET /attempts/{attempt_id} progress.stage |
||
| stage rows | api GET /attempts/{attempt_id} progress.stage_index |
||
| stage rows | api GET /attempts/{attempt_id} progress.stage_count |
||
| stage rows | local uploadQueue |
||
| upload sub | local recorder.effectiveMs · local:recorder.effectiveMs |
processing.sub.upload |
— |
| transcribed length | api GET /attempts/{attempt_id} transcript.length.label · attempt.transcript.length.label |
processing.done.transcribe |
"Transcribed" without count |
| ETA | api GET /attempts/{attempt_id} progress.eta_ms · attempt.progress.eta_ms |
seconds | hide |
| long wait | api GET /config limits.poll_timeout_ms · config.limits.poll_timeout_ms exceeded |
processing.slow.* |
— |
| failed | api GET /attempts/{attempt_id} error.code · attempt.error.code / message (Accept-Language) / retryable / stage |
retry if retryable |
non-retryable → generic error |
| failed | api GET /attempts/{attempt_id} error.message |
||
| failed | api GET /attempts/{attempt_id} error.retryable |
||
| failed | api GET /attempts/{attempt_id} error.stage |
||
| unreliable | api GET /attempts/{attempt_id} unreliable_reason · attempt.unreliable_reason → unreliable.<reason>.*; attempt.transcript.length vs floor (CCR-13); language_mismatch uses session.language endonym |
— | generic unreliable copy |
| own-audio playback | call GET /attempts/{id}/audio · GET /v1/attempts/{id}/audio |
player | 410 → hide player |
POST /v1/attempts/{id}/discard |
call POST /attempts/{id}/discard · From the board's data-bind; no row in data-binding.md yet. |
||
POST /v1/attempts/{id}/discard → record idle |
call POST /attempts/{id}/discard · From the board's data-bind; no row in data-binding.md yet. |
||
POST /v1/attempts/{id}/retry (attempt.error.retryable) |
call POST /attempts/{id}/retry · From the board's data-bind; no row in data-binding.md yet. |
||
attempt.error.code + attempt.error.stage |
api GET /attempts/{attempt_id} error.code · From the board's data-bind; no row in data-binding.md yet. |
||
attempt.error.code + attempt.error.stage |
api GET /attempts/{attempt_id} error.stage |
||
attempt.error.message (Accept-Language) |
api GET /attempts/{attempt_id} error.message · From the board's data-bind; no row in data-binding.md yet. |
||
attempt.transcript.length.label vs per-language floor (D2) |
api GET /attempts/{attempt_id} transcript.length.label · From the board's data-bind; no row in data-binding.md yet. |
||
attempt.unreliable_reason = too_short |
api GET /attempts/{attempt_id} unreliable_reason · From the board's data-bind; no row in data-binding.md yet. |
||
session.stage → derived step |
api GET /sessions/{session_id} stage · From the board's data-bind; no row in data-binding.md yet. |
Binds on the boards
The data-bind values across every state.
POST /v1/attempts/{id}/discardPOST /v1/attempts/{id}/discard → record idlePOST /v1/attempts/{id}/retry (attempt.error.retryable)attempt.error.code + attempt.error.stageattempt.error.message (Accept-Language)attempt.progress.eta_msattempt.progress.stage / stage_index / stage_countattempt.statusattempt.transcript.length.label vs per-language floor (D2)attempt.unreliable_reason = too_shortsession.stage → derived step
States
- Loading: From states.md (Processing): processing--uploading, processing--transcribing, processing--assessing
- Empty: From states.md (Processing): —
- Error (retryable / not): From states.md (Processing): processing--failed (retry, no re-upload) · fatal: non-retryable → generic error, the recording stays retrievable
- Offline: Network lost during upload. File persisted; upload resumes automatically when reachable.