Files
church-translate/app/package.json
T
Waters ChurchandClaude Opus 5 39dea80433 Do not step down twice for the same backlog
Build 120.

Swapping the speech model did nothing about the queue that caused the swap. The
first of those chunks went straight to a model that had just loaded, took the
full 30 s worker timeout, and tripped the absolute rule — so the ladder fell
again. MEASURED on a campus Mac: large-v3-turbo to small to base in 34 seconds,
landing on a model measurably SLOWER than the one it started from, which is the
opposite of what stepping down is for.

Two changes. A successful step-down now discards the queued chunks: they are
already past the caption-only cutoff, so they cannot be translated in time and
are worth nothing to the room, and it says how many it dropped. And no further
step-down is allowed for twenty seconds, so the new model is judged on sentences
it was actually given rather than on the wreckage of the old one.

Twenty seconds covers a cold first inference while still letting a genuinely
hopeless model fall through the ladder within a sentence or two. Checked against
the real cascade from the log, including that a hung model long after a swap is
still caught.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 13:54:26 -04:00

161 lines
4.1 KiB
JSON

{
"name": "church-translate-engine",
"productName": "Church Translate",
"version": "3.23.2",
"buildNumber": 120,
"private": true,
"description": "Live sermon translation — self-contained: captures audio, transcribes, translates, and serves the congregation page itself",
"main": "main.js",
"scripts": {
"predist": "node tools/sync-build-version.js && node tools/check-packaged-files.js",
"start": "electron .",
"dist": "electron-builder --mac",
"dist:mac": "electron-builder --mac",
"dist:win": "electron-builder --win"
},
"devDependencies": {
"electron": "^33.2.0",
"electron-builder": "^25.1.8"
},
"dependencies": {
"@huggingface/transformers": "^3.8.1",
"espeak-ng": "^1.0.2",
"kokoro-js": "^1.2.1",
"qrcode": "^1.5.4",
"sherpa-onnx-node": "^1.13.6",
"tar-stream": "^3.2.1",
"unbzip2-stream": "^1.4.3",
"ws": "^8.18.0"
},
"build": {
"appId": "org.waterschurch.translate.engine",
"productName": "Church Translate",
"directories": {
"output": "dist"
},
"files": [
"main.js",
"preload.js",
"index.html",
"engine.css",
"engine.js",
"model-worker.js",
"mt-service.js",
"capture-worklet.js",
"selftest.html",
"selftest.js",
"selftest.wav",
"vendor/transformers.min.js",
"vendor/ort-wasm-simd-threaded.jsep.wasm",
"vendor/ort-wasm-simd-threaded.jsep.mjs",
"server/**/*",
"tts-service.js",
"kokoro-sidecar.js",
"voices.js",
"pt-variants.js",
"speech-text.js",
"tools/setup-local-voices.sh",
"voice-catalog.js",
"out-routing.js",
"mt-guard.js",
"liturgy.js",
"preach.js",
"spa-variants.js",
"bible-lexicon.js",
"app-log.js",
"sidecar-langs.js",
"short-questions.js",
"tools/verify-windows.js"
],
"mac": {
"target": [
{
"target": "dir",
"arch": [
"arm64"
]
},
{
"target": "dmg",
"arch": [
"arm64"
]
}
],
"category": "public.app-category.utilities",
"extendInfo": {
"NSMicrophoneUsageDescription": "Church Translate listens to the sermon audio you select so it can caption and translate it."
},
"identity": null,
"extraResources": [
{
"from": "vendor/node",
"to": "node"
},
{
"from": "vendor/cloudflared",
"to": "cloudflared"
}
],
"artifactName": "${productName}-${version}-${arch}.${ext}",
"files": [
"!node_modules/**/.cache${/*}",
"!node_modules/onnxruntime-node/bin/napi-v3/win32${/*}",
"!node_modules/onnxruntime-node/bin/napi-v3/linux${/*}",
"!node_modules/sherpa-onnx-win-x64${/*}"
]
},
"asar": false,
"buildVersion": "120",
"win": {
"target": [
{
"target": "nsis",
"arch": [
"x64"
]
},
{
"target": "zip",
"arch": [
"x64"
]
}
],
"artifactName": "${productName} Setup ${version}.${ext}",
"extraResources": [
{
"from": "vendor-win/node.exe",
"to": "node.exe"
},
{
"from": "vendor-win/cloudflared.exe",
"to": "cloudflared.exe"
},
{
"from": "vendor-win/ffmpeg.exe",
"to": "ffmpeg.exe"
},
{
"from": "vendor-win/FFMPEG-LICENSE.txt",
"to": "FFMPEG-LICENSE.txt"
}
],
"files": [
"!node_modules/**/.cache${/*}",
"!node_modules/onnxruntime-node/bin/napi-v3/darwin${/*}",
"!node_modules/onnxruntime-node/bin/napi-v3/linux${/*}",
"!node_modules/sherpa-onnx-darwin-arm64${/*}"
]
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"createDesktopShortcut": true,
"createStartMenuShortcut": true,
"deleteAppDataOnUninstall": false
}
}
}