Commit Graph

299 Commits

Author SHA1 Message Date
Acbox fc0ac96403 docs: add concepts 2026-02-15 21:45:24 +08:00
Acbox 299e9f2001 docs: update getting-started 2026-02-15 21:33:04 +08:00
Acbox d2646bbfa1 docs: update 2026-02-15 21:20:22 +08:00
Acbox 54fd07f445 refactor: cli 2026-02-15 20:59:44 +08:00
Acbox d97b4cb757 feat: support openai response api 2026-02-15 19:44:22 +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 4afabe8c2f feat(agent): allow agent use external url in attachment 2026-02-15 14:33:26 +08:00
Acbox 3d575e031e feat: run memory extraction in the background 2026-02-15 14:15:55 +08:00
Acbox 641a5c2d71 docs(fix): README 2026-02-15 14:06:30 +08:00
Yao Siqian 33d6079c99 chore(md): correct web port (#50) 2026-02-15 11:49:53 +08:00
Ran 399c6eb4f1 Merge branch 'pr/46' 2026-02-15 03:49:23 +08:00
Ran 0fffed1d1e fix(web): vite url config error
- golang server support for arm64 arg
2026-02-15 03:45:09 +08:00
Fodesu 6f5ee013e6 fix(models): models id change can not be save (#49) 2026-02-14 23:40:47 +08:00
Ran e6580d7837 fix(deploy): docker health check failure 2026-02-14 22:44:23 +08:00
Ran 5c46d41ebf fix(deploy): vite config lazy load 2026-02-14 22:16:55 +08:00
Acbox f964cbca69 fix (docker): missing web keys in docker config 2026-02-14 20:45:33 +08:00
Acbox 1c85e0106f fix(docker): Dockerfile.web 2026-02-14 20:43:08 +08:00
Acbox 94d1cea488 fix(docker): Dockerfile.agent 2026-02-14 20:39:49 +08:00
Acbox ac8f857e27 feat(agent): put time-now header to the end of system prompt to increase the cache rate 2026-02-14 20:22:18 +08:00
Acbox f967c07e0a fix(web): tsconfig 2026-02-14 19:56:44 +08:00
Acbox b771238576 chore: add required config key 2026-02-14 19:52:31 +08:00
Acbox 82e9f12b7f refactor(web): change old port (7003) and deploy port (80) to port 8082 2026-02-14 19:51:55 +08:00
Ran 7817ec8147 fix(web): channel switch failure
Also add webui memory page
2026-02-14 07:30:21 +08:00
Fodesu 5ffd672605 ci: fix typos version again 2026-02-13 22:21:20 +08:00
Fodesu 2c2a8da01b ci: fix typos version 2026-02-13 22:17:39 +08:00
Fodesu fc42e717a7 chore: fix typos 2026-02-13 22:06:56 +08:00
Fodesu 6bf56d4b6b ci: fix typos failed log 2026-02-13 22:05:23 +08:00
Fodesu 8a8c8eb2e4 ci: add typos ci support 2026-02-13 22:01:01 +08:00
BBQ f3ea18a2da feat(telegram): add processing reaction and fix reply-to-bot trigger
Add ProcessingStatusNotifier implementation: show 👀 reaction while
processing, remove on completion/failure. Fix isReplyToBot to match
only the current bot (bot.Self.ID) instead of any bot, preventing
multiple bots from responding to the same reply. Add rune-safe text
truncation for Telegram message length limit.
2026-02-13 20:45:14 +08:00
BBQ 14a1f9cad3 chore(db): remove obsolete text.go, text_test.go and uuid.go
These files were superseded by internal/db/utils.go.
2026-02-13 20:42:00 +08:00
BBQ b3c869f0ff fix(telegram): sanitize text to valid UTF-8 before sending to API
Strip invalid UTF-8 byte sequences in sendTelegramTextReturnMessage and
editTelegramMessageText to prevent "text must be encoded in UTF-8" errors
that abort the stream mid-response.
2026-02-13 20:26:27 +08:00
BBQ 670698090f fix(route): handle concurrent route creation race condition
Catch unique constraint violation (SQLSTATE 23505) during route creation
in ResolveConversation and fall back to Find, preventing duplicate key
errors when concurrent inbound messages hit the same chat simultaneously.
Add shared IsUniqueViolation helper to internal/db.
2026-02-13 20:26:22 +08:00
BBQ f1d53e1c2c fix(telegram): improve stream edit throttle and 429 rate limit handling
Increase edit throttle from 250ms to 1500ms to respect Telegram per-chat limits,
remove newline bypass that effectively disabled throttling, add dedicated
editStreamMessageFinal with retry for final message delivery, and simplify
editTelegramMessageText by removing blocking sleep in favor of caller-level retry.
2026-02-13 20:21:10 +08:00
BBQ c46f284556 fix(telegram): handle stream edit errors and 429 rate limit
- Treat 400 "message is not modified" as success to avoid user-facing error
- On 429: sleep retry_after and retry once in editTelegramMessageText;
  stream backs off lastEditedAt and returns nil
- Require error code 400 for message-not-modified check; add production
  error string to unit tests
- Lower base throttle to 250ms; add test hooks and tests for 429 retry
  and stream backoff
2026-02-13 19:52:22 +08:00
BBQ 33e10f3738 docs: align README_CN with EN, fix CONTRIBUTING links to .github/CONTRIBUTING.md 2026-02-13 18:41:38 +08:00
BBQ fbc2ab7593 docs: improve README, DEPLOYMENT and move CONTRIBUTING
- README: emphasize Docker requirement with get-started link, move silent
  install under one-click and de-emphasize
- DEPLOYMENT: clarify default config path and that only config file is mounted
- Move CONTRIBUTING.md to .github/CONTRIBUTING.md (git mv)
2026-02-13 18:38:51 +08:00
BBQ 33d7662798 Merge pull request #45 from memohai/feat/containerd-in-docker
feat: containerd-in-docker deployment with core refactoring and MCP management
2026-02-13 18:14:15 +08:00
BBQ 243ea6f034 feat(web): add all supported provider client types to model selector 2026-02-13 18:02:30 +08:00
BBQ b3775f57a2 merge: resolve conflicts with github/main
- Remove uppercase Sidebar/index.vue (keep lowercase sidebar/)
- Keep HEAD imports for user-chat and settings/user.vue
2026-02-13 17:51:48 +08:00
BBQ 7b6490ebcd chore: update install script and docs to reference main branch 2026-02-13 17:49:00 +08:00
BBQ c08e34cbcc fix(web): persist tool call messages across page refresh
Tool call messages disappeared after page refresh because messageToChat()
filtered out messages without text content. Added convertMessagesToChats()
to merge consecutive assistant(tool_calls) + tool(results) + assistant(text)
into a single ChatMessage with ToolCallBlocks.
2026-02-13 17:42:29 +08:00
killpanda 49fe355123 fix: correct store import path case (#42) 2026-02-13 17:04:58 +08:00
BBQ faaadf14c5 feat(channel): pass conversation type through to agent gateway and persist in route
Propagate conversation type (direct/group/thread) from channel adapters
all the way to the agent prompt. Store conversation_type on bot_channel_routes
so the bot knows whether a message originates from a p2p chat, group, or thread.

Schema changes are folded into the 0001 init migration (destructive update).
2026-02-13 06:22:24 +08:00
Ran 0406f42e86 feat: memory search/compact/rebuild api 2026-02-13 06:14:57 +08:00
BBQ 2614763547 feat(web): parallel health checks and MCP form UX improvements
- Bot overview: fetch check keys first, then parallel-request each key
  independently with per-item loading spinner
- Stable check ordering via key-indexed placeholder array
- MCP form: replace flat command/url fields with Stdio/Remote tab
  switcher for clear mode selection
- MCP type labels: "Stdio (Local)" / "Remote (HTTP/SSE)"
2026-02-13 02:43:31 +08:00
BBQ 76dbae2844 feat(bots): per-key parallel health checks with MCP connection probing
- Refactor RuntimeChecker interface: CheckKeys() + RunCheck() for
  individual check dispatch instead of batch-all
- Add GET /bots/:id/checks/keys to list all available check keys
- Add GET /bots/:id/checks/run/:key to evaluate a single check
- MCP ConnectionChecker probes each active connection independently
  via tools/list with 8s timeout
- Keep container checks (init/record/task/data_path) as fast builtins
- Graceful network setup failure in containerd handler (log warning
  instead of killing task) for containerd-in-docker compatibility
2026-02-13 02:43:23 +08:00
BBQ df142e8439 docs: add troubleshooting for MCP image update not taking effect 2026-02-13 02:15:09 +08:00
BBQ 1d1586186c feat(bots): add MCP connection runtime health checks
- Add RuntimeChecker interface for extensible bot health checks
- Implement MCP ConnectionChecker: probes active connections via tools/list
- Show MCP server status (healthy/unreachable/no tools) in bot checks
- Register checker in main.go alongside container lifecycle
2026-02-13 02:13:52 +08:00