Commit Graph

482 Commits

Author SHA1 Message Date
ringotypowriter f00e4bcd4e fix(flow): support UUID model refs when provider filter is set 2026-02-22 16:53:30 +08:00
Acbox Liu ee0aa319e2 feat: add restful apis of container file system (#92)
* feat: add restful apis of container file system

* feat: add fs tools in agent
2026-02-22 16:42:30 +08:00
Acbox 928b0c0ee5 refactor: subagent usage and related tools 2026-02-22 16:35:50 +08:00
BBQ 6a6600a440 ci(docker): add push-to-main trigger with dev tag and optimize build (#95)
- Trigger Docker build on push to main (with paths-ignore for docs/md/devenv)
- Push `dev` tag on main, `latest` + semver on release tags, build-only on PRs
- Skip QEMU/provenance/sbom for non-release builds to reduce CI time
- Rename ci.yml to migrations.yml for clarity
2026-02-22 14:10:01 +08:00
ringotypowriter ce5588cc84 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 13:33:48 +08:00
Ringo.Typowriter 08daa83178 fix(agent): resolve workspace dependency @memoh/agent in Docker build (#94) 2026-02-22 13:32:31 +08:00
ringotypowriter de3fca6a2a fix(migrations): renumber model_id uniqueness migration to 0012 2026-02-22 12:51:10 +08:00
ringotypowriter 8cd7c4aa86 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 12:47:37 +08:00
Acbox 3669027c95 fix(typo): ./packages/agent/README.md 2026-02-22 02:08:04 +08:00
Acbox Liu e6d70b523e refactor: divide agent logic and gateway into different package (#90)
* feat: add @memoh/agent

* chore: use @memoh/agent in @memoh-gateway
2026-02-22 02:06:47 +08:00
Acbox Liu c591af14b0 feat: bot inbox (#77)
* feat: bot inbox

* feat: unified header

* fix: missing tool_call usage

* feat: add group name in header
2026-02-22 01:27:24 +08:00
Acbox 2c6b5e5565 release: v0.1.0-beta.5 v0.1.0-beta.5 2026-02-21 23:10:02 +08:00
ringotypowriter 50bdbd519c fix(models,settings,conversation): scope model_id uniqueness per
provider and harden model reference resolution
2026-02-21 22:31:32 +08:00
Menci 0b03eac309 fix: postgres volume mount path 2026-02-21 22:14:47 +08:00
Ringo.Typowriter 9461f923df fix(flow): stabilize chunked SSE and unify prune limits for read/exec/gateway (#71)
* fix(agent): emit chunked SSE data

fix(flow): reassemble chunked SSE and prune tool payloads

fix: avoid whitespace prune bypass; optimize chunked SSE builder

* refactor: LLM provider pruning use shared textprune library

* chore: smaller range
2026-02-21 17:06:02 +08:00
Fodesu 2de8095c75 cleanup: rm unnecessary binary agent (#74) 2026-02-21 13:32:55 +08:00
Acbox e2652d0884 fix: keep ext name when file was missing mime type 2026-02-21 01:36:33 +08:00
Acbox 7b12fb0b0c fix: send file out of /data/media failed 2026-02-21 00:04:38 +08:00
Acbox cb5d2c5fab fix: send message in group failed 2026-02-20 22:47:02 +08:00
Fodesu 313c3b84f3 chore(husky): large file pre-commit check support (#75)
* 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>
2026-02-20 22:40:37 +08:00
Acbox 654d51a142 release: v0.1.0-beta.4 v0.1.0-beta.4 2026-02-20 22:19:50 +08:00
Acbox 1a78ba3f53 feat: add platform metadata in contacts 2026-02-20 22:19:15 +08:00
Acbox c9d96d9da3 feat(web): remove user header in chat 2026-02-20 22:10:46 +08:00
Acbox 82cc9c357f feat: support attachment send to tool send 2026-02-20 22:04:00 +08:00
Acbox de5c3f47a4 chore: add bumpp config 2026-02-20 22:01:08 +08:00
Acbox 6b7c3db952 refactor: process user header in go side 2026-02-20 21:40:13 +08:00
Acbox 4278675799 refactor(channel): add get_contacts tools and remove lookup_channel_user 2026-02-20 16:12:40 +08:00
Acbox ab84e29dde fix: change memory message role from system to user caused by the imcompatibility of anthropic messages api v0.1.0-beta.3 2026-02-20 15:19:24 +08:00
BBQ d82b6fdeeb Merge pull request #73 from memohai/ci/docker-publish
ci(docker): add docker-publish workflow
2026-02-20 14:48:30 +08:00
BBQ 68e0f6e98f Merge pull request #72 from memohai/fix/propagate-host-timezone
fix(container): propagate host timezone to all containers
2026-02-20 14:48:08 +08:00
晨苒 3c76ca6b61 Merge pull request #76 from Fodesu/fix-lint-ignores
chore(lint): add vitepress generate cache dir to eslint ignores config
2026-02-20 14:44:15 +08:00
Fodesu 5d5bf60c66 chore(lint): add vitepress generate cache dir to eslint ignores config 2026-02-20 14:34:22 +08:00
BBQ e6bd5a11af ci: only run migrate job when db/migrations changes 2026-02-20 03:55:48 +08:00
BBQ f472182b82 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
2026-02-20 03:54:43 +08:00
BBQ 50b05be183 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
2026-02-20 03:51:04 +08:00
BBQ 6304869c3c 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.
2026-02-20 03:45:53 +08:00
BBQ fcb51e066e 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.
2026-02-20 03:37:41 +08:00
BBQ 4fc0ca5110 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.
2026-02-20 03:22:31 +08:00
Acbox 3c1ab85349 Revert "refactor: agent (#60)"
This reverts commit 19f87dbae8.
2026-02-19 23:41:25 +08:00
Fodesu 19f87dbae8 refactor: agent (#60) 2026-02-19 23:39:56 +08:00
Ran a340a48b1f chore(ci): github action push to docker hub 2026-02-19 20:06:59 +08:00
Acbox 5e1de4fe7b fix: include system tokens in max tokens compute 2026-02-19 18:28:29 +08:00
Acbox 7588c99668 chore: release v0.1.0-beta.2 v0.1.0-beta.2 2026-02-19 17:30:23 +08:00
Acbox 52f1fdc4b1 fix(migrate): database migrate failed 2026-02-19 17:29:44 +08:00
Acbox a65c741e28 fix(agent): missing user header in message store 2026-02-19 17:19:39 +08:00
Ringo.Typowriter 53f080503c fix(telegram): aggregate media_group inbound and preserve ordering with (#69)
attachment fallback query
2026-02-19 17:14:12 +08:00
Acbox 51faa1f29f fix(wrokflow): pnpm version of release github action v0.1.0-beta.1 2026-02-19 00:46:08 +08:00
Acbox 66b25d5b9c chore: release v0.1.0-beta.1 2026-02-19 00:40:30 +08:00
Acbox Liu 26405bf7c1 feat: dynamic version to install.sh (#70) 2026-02-19 00:39:41 +08:00
BBQ bc374fe8cd refactor: content-addressed assets, cross-channel multimodal, infra simplification (#63)
* refactor(attachment): multimodal attachment refactor with snapshot schema and storage layer

- Add snapshot schema migration (0008) and update init/versions/snapshots
- Add internal/attachment and internal/channel normalize for unified attachment handling
- Move containerfs provider from internal/media to internal/storage
- Update agent types, channel adapters (Telegram/Feishu), inbound and handlers
- Add containerd snapshot lineage and local_channel tests
- Regenerate sqlc, swagger and SDK

* refactor(media): content-addressed asset system with unified naming

- Replace asset_id foreign key with content_hash as sole identifier
  for bot_history_message_assets (pure soft-link model)
- Remove mime, size_bytes, storage_key from DB; derive at read time
  via media.Resolve from actual storage
- Merge migrations 0008/0009 into single 0008; keep 0001 as canonical schema
- Add Docker initdb script for deterministic migration execution order
- Fix cross-channel real-time image display (Telegram → WebUI SSE)
- Fix message disappearing on refresh (null assets fallback)
- Fix file icon instead of image preview (mime derivation from storage)
- Unify AssetID → ContentHash naming across Go, Agent, and Frontend
- Change storage key prefix from 4-char to 2-char for directory sharding
- Add server-entrypoint.sh for Docker deployment migration handling

* refactor(infra): embedded migrations, Docker simplification, and config consolidation

- Embed SQL migrations into Go binary, removing shell-based migration scripts
- Consolidate config files into conf/ directory (app.example.toml, app.docker.toml, app.dev.toml)
- Simplify Docker setup: remove initdb.d scripts, streamline nginx config and entrypoint
- Remove legacy CLI, feishu-echo commands, and obsolete incremental migration files
- Update install script and docs to require sudo for one-click install
- Add mise tasks for dev environment orchestration

* chore: recover migrations

---------

Co-authored-by: Acbox <acbox0328@gmail.com>
2026-02-19 00:20:27 +08:00