feat(voice): GET /architect/transcribe/health probe (VOICE-2, #774) #779
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!779
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/774"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds
GET /architect/transcribe/healthso the composer and dashboard can check whether speaches is enabled and reachable before rendering the mic button.{ enabled, reachable, model, default_language, allowed_languages, last_error? }— always 200${transcribe_url}/v1/models(HEAD); result cached 30 s;?refresh=1busts itenabled=falsereturns early — no upstream callreachable: false+last_errorguardMutating, same as the rest of/architect/*dev/773); base branch isdev/773Test plan
enabled=false→reachable=false, no upstream fetch called?refresh=1doesreachable=false, last_error="timeout", 200reachable=false, last_error="upstream returned 503"reachable=true, nolast_errorallowed_languages_json=null→allowed_languages=[]Closes #774
Returns { enabled, reachable, model, default_language, allowed_languages, last_error? }. Probes speaches /v1/models with a 30 s cache; ?refresh=1 busts it. Disabled when speech.enabled=false (200 with reachable=false, no upstream call). Timeout and non-2xx failures surface as reachable=false + last_error. Auth: guardMutating. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>CI still pending at review time (no run found for sha
1c56be8). Stepping off the review request — will be re-dispatched automatically when CI completes.CI still pending at review time (no runs found for sha
1c56be8). Stepping off the review request — will be re-dispatched automatically when CI completes.All ACs met: health endpoint returns correct shape, cache + refresh logic correct, probe error handling covers timeout and non-2xx, guardMutating auth in place. Tests cover all required unit cases.
Nit:
guardMutatingon a GET is a naming oddity but matches the spec — not blocking.