d3ro-voice/server/supabase/functions/_shared
Yun Chan 0273c6abaa
All checks were successful
ci / 정본·보안·린트·타입·테스트 (push) Successful in 52s
ci / 모바일 린트·타입·Jest (push) Successful in 41s
ci / Supabase Edge Functions + Cloudflare Worker (push) Successful in 22s
ci / .NET API 서버 테스트 (push) Successful in 14s
deploy-site / deploy (push) Successful in 41s
ci / 워크스페이스 빌드 검증 (push) Successful in 36s
fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable
A five-second phone recording took over a minute: stt-proxy waited up to
60 s for the self-hosted gateway, whose GPU endpoint was off and whose NAS CPU
Whisper needs 30-90 s per clip. With a direct provider configured the gateway
now gets 5 s plus the clip length (30 s cap).

The direct OpenAI fallback never produced a result. The production key held
characters that are not valid in an HTTP header, so every request threw while
being built; provider keys are now stripped of BOM/zero-width characters and a
still-invalid key counts as not configured. whisper-1 verbose_json reports the
language by name, which the result contract rejected; names now map to codes.
Fail-closed responses list each provider's failure (status or error class,
no secrets) so an outage can be diagnosed without log access.
2026-09-27 18:02:14 +09:00
..
admin-auth.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admin-current-role.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admob-ssv.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
admob-ssv.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
apns.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
apns.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
audit.ts feat(admin): Phase V2-6 Admin CRM 고도화 — CRUD + 차트 + 결제 + 감사 2026-04-12 21:32:47 +09:00
auth.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
billing-catalog.test.ts refactor(billing): remove Stripe; payments are Payple (web) and Google Play (mobile) 2026-09-26 20:56:18 +09:00
billing-catalog.ts refactor(billing): remove Stripe; payments are Payple (web) and Google Play (mobile) 2026-09-26 20:56:18 +09:00
content-report-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
content-report-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
core-contract.generated.ts refactor(billing): remove Stripe; payments are Payple (web) and Google Play (mobile) 2026-09-26 20:56:18 +09:00
cors.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generation-receipt.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generation-receipt.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generative-ai-safety.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
generative-ai-safety.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-play.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-play.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-pubsub.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
google-pubsub.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
llm-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
llm-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
meeting-document-contract.test.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
meeting-document-contract.ts feat(release): prepare 1.1.0 candidate 2026-08-29 18:33:45 +09:00
payple.test.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
payple.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
provider-key.test.ts fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable 2026-09-27 18:02:14 +09:00
provider-key.ts fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable 2026-09-27 18:02:14 +09:00
push-contract.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
push-contract.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
quota.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
stt-contract.test.ts fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable 2026-09-27 18:02:14 +09:00
stt-contract.ts fix(edge): stop short clips waiting a minute on the NAS and make the OpenAI STT fallback usable 2026-09-27 18:02:14 +09:00
team-contract.test.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
team-contract.ts refactor(core): keep plan prices, cloud quotas and public URLs in one contract (WS-A) 2026-09-26 15:48:18 +09:00
webpush.test.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00
webpush.ts feat(server): deliver push without a Firebase project 2026-09-16 23:24:44 +09:00