In dev there is no supervisor: concurrently's --kill-others-on-fail tears the whole stack down the moment uvicorn exits, the cause scrolls away with the terminal, and the browser tab just says it can't reach the backend — which is exactly how #1164 arrived with zero diagnostics. - scripts/dev-backend.mjs: dev:api now runs uvicorn through a wrapper (command args byte-identical, stdio inherited). On a non-Ctrl+C, non-zero exit it prints a boxed banner: exit code/signal, the last 20 lines of omnivoice.log (data dir resolved exactly like backend/core/config.py), an OOM hint (SIGKILL/137 + the Linux journalctl -k check), and a pointer to the crash notice the run sentinel raises on the next backend start. Exits with the child's own code so --kill-others-on-fail still works. Verified live: started the dev backend, SIGKILLed it, banner printed with the real log tail and exit code 137. - docs-sync: troubleshooting.md gains §14c (browser/dev/Docker crash forensics: the mode-aware error, the dev banner, run_sentinel.json / last_run_crash.json / GET /system/last-run-crash, cap+ack+version-gate semantics) and §14's crash-notice blockquote no longer implies the notice is desktop-only; CONTRIBUTING.md documents the dev:api wrapper. - CHANGELOG.md: [Unreleased] entry for the #1164 class fix. Tests: tests/frontend/devBackend.test.mjs (5) — the uvicorn args are pinned byte-identical, data-dir resolution mirrors config.py, tail/banner content incl. the OOM shapes.
47 lines
2.1 KiB
JSON
47 lines
2.1 KiB
JSON
{
|
|
"name": "omnivoice-studio-monorepo",
|
|
"version": "1.0.0",
|
|
"license": "AGPL-3.0-only",
|
|
"private": true,
|
|
"packageManager": "bun@1.3.11",
|
|
"scripts": {
|
|
"setup:api": "uv sync && uv run python scripts/setup.py",
|
|
"dev:api": "bun scripts/dev-backend.mjs",
|
|
"dev:frontend": "bun run --cwd frontend dev",
|
|
"dev:desktop": "TAURI_SKIP_BACKEND=1 bun run --cwd frontend desktop",
|
|
"wait:api": "wait-on -t 300000 http-get://localhost:3900/system/info",
|
|
"wait:frontend": "wait-on -t 120000 http://localhost:5173",
|
|
"predev": "bun install && (kill-port 3900 3901 || true)",
|
|
"dev": "bun run setup:api && concurrently -n api,fe -c green,cyan --kill-others-on-fail \"bun run dev:api\" \"bun run dev:frontend\"",
|
|
"predesktop": "bun install && (kill-port 3900 3901 || true)",
|
|
"desktop": "bun run setup:api && concurrently -n api,app -c green,magenta --kill-others-on-fail \"bun run dev:api\" \"bun run dev:desktop\"",
|
|
"desktop-prod": "bun scripts/desktop-prod.mjs",
|
|
"desktop-prod:run": "bun scripts/desktop-prod.mjs --skip-build",
|
|
"desktop-prod:upgrade": "bun scripts/desktop-prod.mjs --keep-data",
|
|
"desktop-prod:keep-models": "bun scripts/desktop-prod.mjs --keep-models",
|
|
"desktop-prod:pill": "bun scripts/desktop-prod.mjs --pill",
|
|
"desktop-prod:run:pill": "bun scripts/desktop-prod.mjs --skip-build --pill",
|
|
"desktop-fresh": "bun scripts/desktop-fresh.mjs",
|
|
"desktop-fresh:run": "bun scripts/desktop-fresh.mjs --skip-build",
|
|
"build": "turbo run build",
|
|
"start": "turbo run start",
|
|
"test:frontend": "node --test tests/frontend/*.test.mjs",
|
|
"smoke-test": "bash scripts/smoke-test.sh",
|
|
"smoke-test:quick": "bash scripts/smoke-test.sh --skip-build --skip-model",
|
|
"smoke-test:upgrade": "bash scripts/smoke-test.sh --keep-data --skip-build",
|
|
"deps:check": "taze -r --maturity-period 7"
|
|
},
|
|
"workspaces": [
|
|
"frontend"
|
|
],
|
|
"devDependencies": {
|
|
"concurrently": "^9.2.1",
|
|
"kill-port-process": "^4.0.2",
|
|
"playwright": "^1.60.0",
|
|
"taze": "^19.14.1",
|
|
"turbo": "^2.9.18",
|
|
"typescript": "^6.0.3",
|
|
"wait-on": "^9.0.10"
|
|
}
|
|
}
|