Thanks for contributing to the computer-vision kit.
- Node.js 22+
- Python 3.12+
- Git
- Install root dependencies:
npm install- Install frontend dependencies:
cd frontend
npm install
cd ..- Install backend dependencies:
python -m pip install -e ./backend[dev]- Generate frontend types from the API contract:
npm run api:typesRun both apps from the repo root:
npm run devFrontend: http://localhost:3000
Backend: http://127.0.0.1:8000
If backend/.venv exists, the root scripts will prefer that interpreter automatically.
Run these before opening a pull request:
npm run check:contract
npm run checkWhat they cover:
check:contract: regenerates frontend API types and fails if generated files drift fromdocs/openapi.yamlcheck: frontend lint, frontend typecheck, frontend production build, backend Ruff lint, backend tests, backend bytecode compile
If Docker is available locally, you can also verify the production-style images:
npm run check:imagesIf Go is available locally, you can also lint GitHub Actions workflows:
npm run check:workflowsIf Go is available locally, you can also scan tracked git content for secrets:
npm run check:secretsFor a pre-commit style check on staged content, run:
npm run check:secrets -- --stagedIf you want a full dependency license inventory locally, run:
npm run report:licensesThat command writes generated reports into reports/licenses/.
If you modify request or response shapes:
- update
docs/openapi.yaml - update backend schemas and implementation
- run
npm run api:types - update frontend usage of the generated types
- run
npm run check:contract - run
npm run check
- Keep the main story detection-first.
- Reuse the same inference contract for upload, webcam, and later extensions.
- Keep model-specific logic behind the backend vision service boundary.
- Treat
frontend/src/app/docs-preview/as docs-only seeded preview routes used for README screenshots.
- Keep changes scoped and explain user-facing impact clearly.
- Mention contract changes explicitly.
- Include screenshots when UI behavior changes.
- Add or update tests when backend behavior changes.
- Merge pull requests into
main. - Let Release Drafter refresh the draft release and category buckets.
- Apply
minorormajorto a pull request when the default patch bump is not enough. - Push a semver tag like
v0.1.0. - Wait for the release workflow to verify the repo, publish GHCR images, and create the GitHub Release.
- Confirm the release smoke workflow passes against the published images, or dispatch it manually for a tag if you need to re-check a release.
The release notes will also include links to the image provenance attestations generated during the publish workflow. The release itself will also carry attached SPDX SBOM files for the source tree and the published runner images.
The component labels used by Release Drafter are synced from .github/labels.json, and most of the common ones are applied automatically from changed paths.
To run the same image smoke check locally, set BACKEND_IMAGE and FRONTEND_IMAGE, then run npm run check:release-smoke.