* # This is a combination of 6 commits.
# This is the 1st commit message:
feat(channel): add WeChat (weixin) adapter with QR code (#278)
* feat(channel): add WeChat (weixin) adapter with QR code
* fix(channel): fix weixin block streaming
* chore(channel): update weixin logo
# The commit message #2 will be skipped:
# build: 修改lint配置
# The commit message #3 will be skipped:
# build: 修改lint配置
# The commit message #4 will be skipped:
# 修改lint配置
# The commit message #5 will be skipped:
# 检测类型错误
# The commit message #6 will be skipped:
# ts类型检测错误
* feat(husky): update linting configuration to improve pre-commit checks
---------
Co-authored-by: 晨苒 <16112591+chen-ran@users.noreply.github.com>
* 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>