Commit Graph

349 Commits

Author SHA1 Message Date
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
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
BBQ 740f620fe4 Merge pull request #66 from chiyuki0325/fix/mcp-tool-name
fix(mcp): replace dot with underscore in tool name to meet ai sdk's need
2026-02-18 22:28:36 +08:00
Ringo.Typowriter 1bd080c155 fix(flow): drop leading orphan tool messages after token trimming (#68) 2026-02-18 22:27:38 +08:00
Acbox b19df8156a chore: add husky hook 2026-02-18 22:21:32 +08:00
Menci 3a441aaac2 fix(web): add missing package lucide-vue-next (#67) 2026-02-18 21:46:33 +08:00
Kirikaze Chiyuki b69d355383 fix(mcp): replace dot with underscore in tool name to meet ai sdk's need 2026-02-18 21:24:08 +08:00
Acbox 9c338a3806 refactor(web): login page 2026-02-18 19:06:45 +08:00
Acbox 1294b4cf75 feat: connection test of provider 2026-02-18 18:52:26 +08:00
Acbox d6c47472b2 refactor: move client_type key from provider to model 2026-02-18 18:30:27 +08:00
Acbox 77e9f585a1 feat: max context tokens 2026-02-18 17:20:22 +08:00
BBQ 46e8a48ab8 Merge pull request #65 from Fodesu/docs
Docs: add `create bot`, `platform telegram` sections
2026-02-18 17:13:25 +08:00
Fodesu 7b87b4d9cd docs: add platform telegram 2026-02-18 17:08:56 +08:00
Fodesu 5815995d5d docs: add create-bot 2026-02-18 15:35:14 +08:00
Acbox 34f9ec79c7 chore(agent): sync identity structure with go 2026-02-18 06:33:01 +08:00
Acbox 7d72f86152 Revert "refactor(agent): move user identity headers to system prompt and sanitize input (#64)"
This reverts commit c9d4ee2a60.
2026-02-18 06:29:25 +08:00
tommy0103 c9d4ee2a60 refactor(agent): move user identity headers to system prompt and sanitize input (#64)
* refactor(agent): move user identity headers to system prompt and sanitize input

- Relocate user-context headers from User Prompt to System Prompt for better instruction adherence.
- Implement soft-sanitization to strip header-like patterns from user input to prevent prompt injection.
- Update resolver logic in Go to support the new prompt structure.

* refactor(agent): move user identity headers to system prompt and sanitize input
- Relocate user-context headers from User Prompt to System Prompt for better instruction adherence.
- Implement soft-sanitization to strip header-like patterns from user input to prevent prompt injection.
- Update resolver logic in Go to support the new prompt structure.

* chore: remove same process in go side

---------

Co-authored-by: Acbox <acbox0328@gmail.com>
2026-02-18 05:36:50 +08:00
ringotypowriter 05905a33da fix(agent): preload image base64 via MCP before model input 2026-02-17 21:50:51 +08:00
Ringo.Typowriter daed9d2d95 fix(models): guard bot memory model type and fallback for memory LLM (#61) 2026-02-17 20:14:44 +08:00
斬風千雪 cd8cb59236 improvement(telegram): add ellipsis and "typing" action in streamed message (#59) 2026-02-17 19:13:55 +08:00
BBQ df7876a30c feat: add media asset system, channel lifecycle refactor, and chat attachments (#54) 2026-02-17 19:06:46 +08:00
斬風千雪 0bdc31311c improvement(mcp): make CNI binary & data path configurable (#55) 2026-02-17 17:57:13 +08:00
Ringo.Typowriter 3aea635e44 fix: skill normalize (#57) 2026-02-17 17:55:07 +08:00
Ringo.Typowriter f9c613b4f9 fix: password placeholder (#53) 2026-02-16 19:48:50 +08:00
Acbox 09d7840a5f docs(blog): add header in README 2026-02-16 18:49:40 +08:00
Acbox Liu 3a2cf708ba docs(blog): Introduction (Feb 2026) (#52)
* docs(blog): add 2026-02-16

* docs(blog): update contents

* docs: add blogs section

* docs(blog): update contents for diff

* docs(blog): add images

---------

Co-authored-by: Ran <16112591+chen-ran@users.noreply.github.com>
2026-02-16 18:38:19 +08:00
BBQ b8a6a85fbb fix(containerd): re-apply CNI network after server restart for running MCP tasks
Server container restart drops cni0 bridge, veth and iptables masquerade
in its network namespace while MCP tasks keep running in containerd.
Reconcile and ensureContainerAndTask now re-run SetupNetwork for already-
running tasks so outbound connectivity is restored.
2026-02-16 16:45:38 +08:00
Acbox b329475359 chore: add release scripts 2026-02-16 15:55:49 +08:00
Acbox a0cf434218 chore: move CONTRIBUTING.md 2026-02-16 15:17:14 +08:00
Acbox dd66a0fb0a chore: add AGENTS.md 2026-02-16 15:12:49 +08:00
BBQ d268483d81 fix(migrations): add 0004 for search_providers table
Add incremental migration for existing databases to create the
search_providers table and bots.search_provider_id column introduced
in the search provider feature.
2026-02-16 02:37:25 +08:00
BBQ 75904022c0 fix(settings): search_provider_id NULL scan failure
The ::text cast on search_providers.id prevented sqlc from inferring
nullability via LEFT JOIN, generating a non-nullable string field that
crashes when the bot has no search provider bound.
2026-02-16 02:11:16 +08:00
Acbox 95b63188b2 refactor(web): merge /settings/user to /settings 2026-02-16 01:30:54 +08:00
Acbox 05f4f08d9c fix(web): render failed when entry bot details twice 2026-02-16 01:26:54 +08:00
Acbox 961ecbb96d feat: search provider 2026-02-16 01:22:15 +08:00