Commit Graph

287 Commits

Author SHA1 Message Date
Acbox 18535f97f2 feat: improve prompts 2026-02-23 14:18:41 +08:00
Ran 5a08b280ab fix: double reply bug 2026-02-23 05:55:20 +08:00
Fodesu 51acb4b546 feat: add replay Message 2026-02-23 05:55:20 +08:00
Fodesu 77ff24c6fd feat(platforms): add discord channel support 2026-02-23 05:55:20 +08:00
Acbox 44ab3792d2 fix(channel): create new message when tool calling 2026-02-23 00:31:59 +08:00
Acbox ac929f9f44 feat: add message id in user header 2026-02-23 00:06:15 +08:00
ringotypowriter 45e7362b44 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 17:00:51 +08:00
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
ringotypowriter 8cd7c4aa86 Merge branch 'main' into fix/provider-scoped-model-id-resolution 2026-02-22 12:47:37 +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
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
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
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
Acbox 1a78ba3f53 feat: add platform metadata in contacts 2026-02-20 22:19:15 +08:00
Acbox 82cc9c357f feat: support attachment send to tool send 2026-02-20 22:04:00 +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 2026-02-20 15:19:24 +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 5e1de4fe7b fix: include system tokens in max tokens compute 2026-02-19 18:28:29 +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
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
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 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
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
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
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
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 961ecbb96d feat: search provider 2026-02-16 01:22:15 +08:00
Acbox 38753ef054 refactor: channel tools 2026-02-15 17:48:20 +08:00
Acbox 37360ad8e4 fix: schedule run failed 2026-02-15 16:12:53 +08:00
Acbox c014fd3095 chore: change tool names of schedule 2026-02-15 15:09:03 +08:00
Acbox 3d575e031e feat: run memory extraction in the background 2026-02-15 14:15:55 +08:00
Ran 399c6eb4f1 Merge branch 'pr/46' 2026-02-15 03:49:23 +08:00
Fodesu 6f5ee013e6 fix(models): models id change can not be save (#49) 2026-02-14 23:40:47 +08:00