272 Commits

Author SHA1 Message Date
qiupinhua
1ae47058d9 fix: refactor code structure for improved readability and maintainability 2026-02-13 18:51:30 +08:00
qiupinhua
09c7e7aded feat: change OAuth login command for providers 2026-02-13 18:37:21 +08:00
Xubin Ren
3f59a8e234
Merge pull request #593 from C-Li/feishu_fix
Optimize the display of Markdown titles in Lark card information.
2026-02-13 17:02:27 +08:00
chengyongru
98a762452a fix: useasyncio.create_task to avoid block 2026-02-13 15:36:04 +08:00
Ahwei
ccf9a6c146 fix(feishu): convert markdown headings to div elements in card messages
Markdown heading syntax (#) is not properly rendered in Feishu interactive
cards. Convert headings to div elements with lark_md format (bold text) for
proper display.

- Add _HEADING_RE regex to match markdown headings (h1-h6)
- Add _split_headings() method to parse and convert headings to div elements
- Update _build_card_elements() to process headings before markdown content
2026-02-13 15:31:30 +08:00
chengyongru
740294fd74 fix: history messages should not be change[kvcache] 2026-02-13 15:10:07 +08:00
Xubin Ren
92191ad2a9
Merge pull request #587 from HKUDS/fix/whatsapp-bridge-security
fix(security): bind WhatsApp bridge to localhost + optional token auth
2026-02-13 13:41:27 +08:00
Re-bin
fd7e477b18 fix(security): bind WhatsApp bridge to localhost + optional token auth 2026-02-13 05:37:56 +00:00
wymcmh
3e9f6d0b6b
Merge branch 'main' into fix/config-temperature 2026-02-13 13:07:37 +08:00
Xubin Ren
5c398c5faf
Merge pull request #567 from 3927o/feature/better-fallback-message
Add max iterations info to fallback message
2026-02-13 12:55:14 +08:00
Re-bin
32c9431191 fix: align CLI session_id default to "cli:direct" for backward compatibility 2026-02-13 04:13:16 +00:00
Re-bin
903caaa642 feat: unified slash commands (/new, /help) across all channels 2026-02-13 03:30:21 +00:00
Luke Milby
f016025f63 add feature to onboarding that will ask to generate missing workspace files 2026-02-12 22:20:56 -05:00
worenidewen
24a90af6d3 feat: add /new command 2026-02-13 01:24:48 +08:00
3927o
dbbbecb25c feat: improve fallback message when max iterations reached 2026-02-12 23:57:34 +08:00
Re-bin
94c21fc235 feat: redesign memory system — two-layer architecture with grep-based retrieval 2026-02-12 15:02:52 +00:00
lemon
a3599b97b9 fix: bug #370, support temperature configuration 2026-02-12 19:12:38 +08:00
Sergio Sánchez Vallés
d30523f460
fix(mcp): clean up connections on exit in interactive and gateway modes 2026-02-12 10:44:25 +01:00
Sergio Sánchez Vallés
61e9f7f58a
chore: revert unrelated changes, keep only MCP support 2026-02-12 10:17:44 +01:00
Sergio Sánchez Vallés
cb5964c201
feat(tools): add mcp support 2026-02-12 10:01:30 +01:00
Re-bin
de3324807f fix(subagent): add edit_file tool and time context to sub agent 2026-02-12 07:49:36 +00:00
Re-bin
7087947e0e feat(cron): add one-time 'at' schedule to skill docs and show timezone in system prompt 2026-02-12 06:50:44 +00:00
Re-bin
73935da95f Merge branch 'main' into pr-533 2026-02-12 06:36:49 +00:00
Re-bin
d335494212 feat: add interleaved chain-of-thought to agent loop 2026-02-12 06:25:25 +00:00
3927o
a66fa650a1 feat(cron): add 'at' parameter for one-time scheduled tasks 2026-02-12 11:06:57 +08:00
Re-bin
b429bf9381 fix: improve long-running stability for various channels 2026-02-12 01:20:57 +00:00
Sergio Sánchez Vallés
cbab72ab72 fix: pydantic deprecation configdict 2026-02-11 13:01:29 +01:00
Re-bin
9d304d8a41 refactor: remove Panel border from CLI output for cleaner copy-paste 2026-02-11 09:37:49 +00:00
张涔熙
33930d1265 feat(cli): revert panel removal (keep frame), preserve input rewrite 2026-02-11 11:44:37 +08:00
张涔熙
3561b6a63d feat(cli): rewrite input layer with prompt_toolkit and polish UI
- Replaces fragile input() hacks with robust prompt_toolkit.PromptSession
- Native support for multiline paste, history, and clean display
- Restores animated spinner in _thinking_ctx (now safe)
- Replaces boxed Panel with clean header for easier copying
- Adds prompt-toolkit dependency
- Adds new unit tests for input layer
2026-02-11 11:44:37 +08:00
Re-bin
39dd7feb28 resolve conflicts with main and adapt MiniMax 2026-02-10 16:27:10 +00:00
Re-bin
ef1b062be5 fix: create skills dir on onboard 2026-02-10 07:42:39 +00:00
Re-bin
8626caff74 fix: prevent safety guard from blocking relative paths in exec tool 2026-02-10 07:39:15 +00:00
Re-bin
ba2bdb080d refactor: streamline mochat channel 2026-02-10 07:06:04 +00:00
Re-bin
d1f0615282 resolve conflicts with main; remove test_mochat_channel.py 2026-02-10 06:52:52 +00:00
Re-bin
fba5345d20 fix: pass api_key directly to litellm for more robust auth 2026-02-10 02:09:31 +00:00
Re-bin
ec4340d0d8 feat: add App Home step to Slack guide, default groupPolicy to mention 2026-02-09 16:49:13 +00:00
pinhua33
c6915d27e9 Merge remote-tracking branch 'upstream/main' into feature/codex-oauth 2026-02-10 00:44:03 +08:00
Re-bin
4f928e9d2a feat: improve QQ channel setup guide and fix botpy intent flags 2026-02-09 16:17:35 +00:00
Re-bin
a63a44fa79 fix: align QQ channel with BaseChannel conventions, simplify implementation 2026-02-09 12:04:34 +00:00
Re-bin
2c45657b14 resolve merge conflicts: keep all channels and add QQ 2026-02-09 11:58:38 +00:00
Re-bin
f3ab8066a7 fix: use websockets backend, simplify subtype check, add Slack docs 2026-02-09 11:39:13 +00:00
Re-bin
74e3c411a1 resolve merge conflicts: keep all channels and add slack 2026-02-09 11:17:07 +00:00
tjb-tech
866942eedd fix: update agentUserId in README and change base_url to HTTPS in configuration 2026-02-09 09:12:53 +00:00
tjb-tech
ef7972b6d3 Merge origin/main into feat/mochat-channel 2026-02-09 09:01:25 +00:00
tjb-tech
3779225917 refactor(channels): rename moltchat integration to mochat 2026-02-09 08:50:17 +00:00
tjb-tech
20b8a2fc58 feat(channels): add Moltchat websocket channel with polling fallback 2026-02-09 08:46:47 +00:00
pinhua33
51f97efcb8 refactor: simplify Codex URL handling by removing unnecessary function 2026-02-09 16:04:04 +08:00
yinwm
34dc933fce feat: add QQ channel integration with botpy SDK
Add official QQ platform support using botpy SDK with WebSocket connection.

Features:
- C2C (private message) support via QQ Open Platform
- WebSocket-based bot connection (no public IP required)
- Message deduplication with efficient deque-based LRU cache
- User whitelist support via allow_from configuration
- Clean async architecture using single event loop

Changes:
- Add QQChannel implementation in nanobot/channels/qq.py
- Add QQConfig schema with appId and secret fields
- Register QQ channel in ChannelManager
- Update README with QQ setup instructions
- Add qq-botpy dependency to pyproject.toml
- Add botpy.log to .gitignore

Setup:
1. Get AppID and Secret from q.qq.com
2. Configure in ~/.nanobot/config.json:
   {
     "channels": {
       "qq": {
         "enabled": true,
         "appId": "YOUR_APP_ID",
         "secret": "YOUR_APP_SECRET",
         "allowFrom": []
       }
     }
   }
3. Run: nanobot gateway

Note: Group chat support will be added in future updates.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-09 15:54:14 +08:00
pinhua33
fc67d11da9 feat: add OAuth login command for OpenAI Codex 2026-02-09 15:39:30 +08:00