Phase 9A0: make local and Docker startup reliable - #33
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
npm run devlauncher that builds shared packages once, starts API and web together, prints local URLs, handles sibling failure, and uses Windows-aware process termination.npm run dev:apiandnpm run dev:web.GET /readyreadiness endpoint with shared contract coverage and required/optional check semantics.npm ci, and built before the apps start.docker-smokejob.Local launcher behavior
npm run devnow:npm run build:packagesonce before starting servicesnpm run dev --workspace apps/apinpm run dev --workspace apps/webhttp://localhost:5173http://localhost:4000http://localhost:4000/healthhttp://localhost:4000/readynpm.cmdon Windows, with a Node/npm-cli fallback when inherited stdio is unavailable from hidden/background Windows parentsThe separate commands remain supported:
npm run dev:apinpm run dev:webReadiness endpoint
Path:
GET /readySemantics:
readywith HTTP 200 when required core checks passdegradedwith HTTP 200 when core checks pass but storage pressure or optional tooling is degradednot_readywith HTTP 503 when required checks failRequired checks include runtime initialization, storage availability, manifest load state, FFmpeg, FFprobe, H.264 capability, WebM/AV1 capability, and storage pressure. Optional checks include yt-dlp and whisper.cpp status. Responses are intentionally redacted and do not expose filesystem paths, command strings, model paths, filenames, manifests, stack traces, or user media details.
Docker notes
npm ci, copy shared package source, and build shared packages before app startup.video_datanamed volume.HOST=0.0.0.0andALLOW_LAN_ACCESS=trueso the published host port can reach the container. Ordinary local Node development remains loopback-oriented.--host 0.0.0.0.Frontend startup behavior
Cannot reach the local APIstartup panel with the expected API URL and retry action.Tests added
Local validation
npm ci: passednpm run format: passednpm run format:check: passednpm run lint: passednpm run typecheck: passednpm run test:run: passednpm run build: passednpm run check: passednpm run test:coverage: passednpm audit --omit=dev: passed, 0 vulnerabilitiesnpm run test:e2e: passed, 10 testsnpm run test:integration:media: passed, 5 testsgit diff --check: passedUnit/component counts from
npm run test:run:Coverage headline:
Local smoke
npm run devstarted both services on Windows.http://127.0.0.1:4000/healthreturned HTTP 200.http://127.0.0.1:5173returned HTTP 200.taskkillreturnedAccess denied; interactive Ctrl+C behavior is covered by launcher tests.Docker validation
Docker was not available on the owner's Windows machine in this environment (
dockercommand not found), so Docker was not tested locally and was not installed. The new GitHub Actionsdocker-smokejob is the authoritative Docker validation for this phase.GitHub Actions Docker smoke result: passed.
Scope exclusions
No UI-B, new media features, batch processing, projects, presets, retention policies, desktop packaging, CLI, MCP, authentication, authorization, rate limiting, cloud services, dependency major upgrades, or Dependabot changes are included.