# Contributing ## Commit format [Conventional Commits](https://www.conventionalcommits.org). `.github/workflows/auto-version.yml` parses messages since the last semver tag and decides whether to bump. | Prefix | Bump | | |---|---|---| | `fix:` | patch | bug fix | | `feat:` | minor | new feature | | `feat!:` / `fix!:` / `BREAKING CHANGE:` in body | major | breaking change | | `docs:` `refactor:` `chore:` `test:` `style:` `ci:` `build:` | none | no release | Append `[skip ci]` to suppress the run for that commit. ## Manual release ```bash scripts/release.sh 6.2.0 --push # local ``` or Actions tab → **Version bump & release** → Run workflow → pick bump type. ## What a tag push triggers | Workflow | Output | |---|---| | `android-release.yml` | signed APK on GitHub release, `make_latest=true` | | `docker-publish.yml` | `danielonyejesi/pediatric-ai-scribe-v3:{version,latest}` on Docker Hub (amd64) | ## Local dev ```bash docker compose up -d # Postgres + app docker logs -f pediatric-ai-scribe ``` Web changes hot-reload via browser refresh (JS/CSS cached 1h — add `?v=` query or clear cache; the build-ID server-side cache-buster appends `?v=` automatically on fresh page loads). Server code changes require `docker compose build pediatric-scribe && docker compose up -d`. ## Mobile See `docs/mobile-build.md`. ## DB migrations `src/db/database.js` is the baseline (idempotent CREATE-IF-NOT-EXISTS). New changes go in `migrations/` via `node-pg-migrate`. See `docs/migrations.md`.