* chore: add large file check in husky
* refactor(husky): modularize pre-commit hooks
* chore(lint): add vitepress generate cache dir to eslint ignores config
* fix(container): propagate host timezone to all containers
Replace TZ env var with /etc/localtime bind-mount in docker-compose
and inject timezone spec opts into containerd bot containers.
* ci(docker): add docker-publish workflow and clean up release.yml
Add dedicated docker-publish.yml with full CI/CD pipeline:
- Build & push server/agent/web/mcp images on tag, main push, and PR
- Publish to both Docker Hub and GHCR
- Semver tag strategy (latest, version, major.minor, major, sha)
- GHA build cache, SLSA provenance, and SBOM
- PR builds validate without pushing
Remove superseded dockerhub job from release.yml.
* ci: add migration validation workflow
Run migrate up -> down -> up against a temporary PostgreSQL service
container on every PR and push to main, verifying all migrations
apply, rollback, and re-apply correctly.
* ci(docker): only push on tag, skip latest for prereleases
- Remove push-to-main trigger; only tag push publishes images
- Prerelease tags (e.g. v0.1.0-beta.2) publish their version tag
only, without updating latest or short semver tags
* ci: optimize workflow performance
- PR docker builds use single arch (amd64 only), tag push uses dual
- Add paths-ignore to skip CI on docs-only changes
- Add concurrency groups to cancel stale runs on re-push
- Build Go binary once instead of 3x go run in migrate job
* ci: only run migrate job when db/migrations changes
* fix: change memory message role from system to user caused by the imcompatibility of anthropic messages api
* chore(husky): rm web build
---------
Co-authored-by: BBQ <ckr@chenkr.cn>
Co-authored-by: Acbox <acbox0328@gmail.com>
- PR docker builds use single arch (amd64 only), tag push uses dual
- Add paths-ignore to skip CI on docs-only changes
- Add concurrency groups to cancel stale runs on re-push
- Build Go binary once instead of 3x go run in migrate job
- Remove push-to-main trigger; only tag push publishes images
- Prerelease tags (e.g. v0.1.0-beta.2) publish their version tag
only, without updating latest or short semver tags
Run migrate up -> down -> up against a temporary PostgreSQL service
container on every PR and push to main, verifying all migrations
apply, rollback, and re-apply correctly.
Add dedicated docker-publish.yml with full CI/CD pipeline:
- Build & push server/agent/web/mcp images on tag, main push, and PR
- Publish to both Docker Hub and GHCR
- Semver tag strategy (latest, version, major.minor, major, sha)
- GHA build cache, SLSA provenance, and SBOM
- PR builds validate without pushing
Remove superseded dockerhub job from release.yml.