Xubin Ren
a0684978fb
feat(api): add fixed-session OpenAI-compatible endpoint
...
Expose OpenAI-compatible chat completions and models endpoints through a single persistent API session, keeping the integration simple without adding multi-session isolation yet.
2026-03-29 14:48:52 +00:00
Xubin Ren
c15f63a320
chore: bump version to 0.1.4.post6
2026-03-27 14:42:19 +00:00
chengyongru
5e9fa28ff2
feat(channel): add message send retry mechanism with exponential backoff
...
- Add send_max_retries config option (default: 3, range: 0-10)
- Implement _send_with_retry in ChannelManager with 1s/2s/4s backoff
- Propagate CancelledError for graceful shutdown
- Fix telegram send_delta to raise exceptions for Manager retry
- Add comprehensive tests for retry logic
- Document channel settings in README
2026-03-25 22:37:11 +08:00
Xubin Ren
3dfdab704e
refactor: replace litellm with native openai + anthropic SDKs
...
- Remove litellm dependency entirely (supply chain risk mitigation)
- Add AnthropicProvider (native SDK) and OpenAICompatProvider (unified)
- Merge CustomProvider into OpenAICompatProvider, delete custom_provider.py
- Add ProviderSpec.backend field for declarative provider routing
- Remove _resolve_model, find_gateway, find_by_model (dead heuristics)
- Pass resolved spec directly into provider — zero internal lookups
- Stub out litellm-dependent model database (cli/models.py)
- Add anthropic>=0.45.0 to dependencies, remove litellm
- 593 tests passed, net -1034 lines
2026-03-25 01:58:48 +08:00
Xubin Ren
38ce054b31
fix(security): pin litellm and add supply chain advisory note
2026-03-24 15:55:43 +00:00
chengyongru
72acba5d27
refactor(tests): optimize unit test structure
2026-03-24 15:12:22 +08:00
19emtuck
69f1dcdba7
proposal to adopt mypy some e.g. interfaces problems
2026-03-24 11:49:10 +08:00
ZhangYuanhan-AI
ebc4c2ec35
feat(weixin): add personal WeChat channel via ilinkai HTTP long-poll API
...
Add a new WeChat (微信) channel that connects to personal WeChat using
the ilinkai.weixin.qq.com HTTP long-poll API. Protocol reverse-engineered
from @tencent-weixin/openclaw-weixin v1.0.2.
Features:
- QR code login flow (nanobot weixin login)
- HTTP long-poll message receiving (getupdates)
- Text message sending with proper WeixinMessage format
- Media download with AES-128-ECB decryption (image/voice/file/video)
- Voice-to-text from WeChat + Groq Whisper fallback
- Quoted message (ref_msg) support
- Session expiry detection and auto-pause
- Server-suggested poll timeout adaptation
- Context token caching for replies
- Auto-discovery via channel registry
No WebSocket, no Node.js bridge, no local WeChat client needed — pure
HTTP with a bot token obtained via QR code scan.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 01:11:33 +08:00
chengyongru
f127af0481
feat: add interactive onboard wizard for LLM provider and channel configuration
2026-03-20 18:46:13 +08:00
Xubin Ren
df7ad91c57
docs: update to v0.1.4.post5 release
2026-03-16 15:27:40 +00:00
Xubin Ren
337c4600f3
bump version to 0.1.4.post5
2026-03-16 15:11:15 +00:00
Xubin Ren
58389766a7
Merge PR #1981 : chore: bump wecom-aibot-sdk-python to >=0.1.5
...
chore: bump wecom-aibot-sdk-python to >=0.1.5
2026-03-13 23:42:43 +08:00
chengyongru
1e163d615d
chore: bump wecom-aibot-sdk-python to >=0.1.5
...
- Includes bug fixes for duplicate recv loops
- Handles disconnected_event properly
- Fixes heartbeat timeout
2026-03-13 18:45:41 +08:00
Tink
f5cf0bfdee
Merge origin/main into feat/openai-compatible-session-isolation (resolve conflicts)
...
Resolved 6 conflicted files:
- loop.py: adopt MemoryConsolidator pattern from main, keep _isolated_memory_store
- web.py, base.py, helpers.py: merge both sides' imports
- pyproject.toml: keep both api and wecom optional deps
- test_consolidate_offset.py: adopt main's _make_loop helper and consolidate_messages signatures
- test_openai_api.py: remove tests for deleted _consolidate_memory method
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 17:29:44 +08:00
Xubin Ren
ca5047b602
feat(web): multi-provider web search + Jina Reader fetch
2026-03-13 05:44:16 +00:00
Xubin Ren
20b4fb3bff
fix: langsmith callback 防覆盖 + 加 optional dep
2026-03-13 04:54:22 +00:00
Xubin Ren
4f05e30331
Merge remote-tracking branch 'origin/main' into pr-1919
2026-03-13 03:02:17 +00:00
lvguangchuan001
8e412b9603
[紧急]修复we_chat在pyproject.toml配置的问题
2026-03-12 14:28:33 +08:00
chengyongru
64ab6309d5
fix: wecom-aibot-sdk-python should use pypi version
2026-03-12 00:38:28 +08:00
for13to1
2c5226550d
feat: allow direct references in hatch metadata for wecom dep
2026-03-11 20:35:04 +08:00
Re-bin
d0b4f0d70d
feat(wecom): add WeCom channel with SDK pinned to GitHub tag v0.1.2
2026-03-11 07:57:12 +00:00
Re-bin
eb6310c438
merge origin/main into pr-1327
...
Made-with: Cursor
2026-03-11 07:30:38 +00:00
Xubin Ren
4f7613d608
Merge PR #1855 : fix: bump litellm version to 1.82.1 for Moonshot provider support
...
fix: bump litellm version to 1.82.1 for Moonshot provider support
2026-03-11 11:31:14 +08:00
greyishsong
a44ee115d1
fix: bump litellm version to 1.82.1 for Moonshot provider support
...
see issue #1628
2026-03-11 09:02:28 +08:00
Re-bin
62ccda43b9
refactor(memory): switch consolidation to token-based context windows
...
Move consolidation policy into MemoryConsolidator, keep backward compatibility for legacy config, and compress history by token budget instead of message count.
2026-03-10 19:55:06 +00:00
chengyongru
a660a25504
feat(wecom): add wecom channel [wobsocket]
...
support text/audio[wecom support audio message by default]
2026-03-09 22:46:35 +08:00
Tink
37060dea0b
Merge origin/main into feat/openai-compatible-session-isolation (resolve conflicts)
...
# Conflicts:
# nanobot/agent/context.py
# nanobot/providers/litellm_provider.py
2026-03-09 10:06:51 +08:00
Re-bin
a0bb4320f4
chore: bump version to 0.1.4.post4
2026-03-08 16:44:47 +00:00
Tink
f958eb4cc9
Merge remote-tracking branch 'origin/main' into feat/openai-compatible-session-isolation
...
# Conflicts:
# nanobot/agent/context.py
# tests/test_consolidate_offset.py
2026-03-06 19:03:41 +08:00
Re-bin
d32c6f946c
fix(telegram): pin ptb>=22.6, fix double progress, clean up stale hatch config
2026-03-05 15:17:30 +00:00
Re-bin
b070ae5b2b
Merge remote-tracking branch 'origin/main' into pr-1522
2026-03-05 15:05:26 +00:00
Sergio Sánchez Vallés
d019ff06d2
Merge branch 'main' into fix/test-failures
2026-03-04 20:07:58 +01:00
Sergio Sánchez Vallés
e032faaeff
Merge branch 'main' of upstream/main into fix/test-failures
2026-03-04 20:04:00 +01:00
Sergio Sánchez Vallés
0209ad57d9
fix(tests): resolve RequestsDependencyWarning and lark-oapi asyncio/websockets DeprecationWarnings
2026-03-04 19:31:39 +01:00
Sergio Sánchez Vallés
c64fe0afd8
fix(tests): resolve failing tests on main branch
...
- Unskip matrix logic by adding missing deps (matrix-nio, nh3, mistune)
- Update matrix tests for 'allow_from' default deny security change
- Fix asyncio typing keepalive leak in matrix tests
- Update context prompt cache assert after runtime message merge
- Fix flaky cron service test with mtime sleep
- Remove obsolete test_cron_commands.py testing deleted CLI commands
2026-03-04 16:53:07 +01:00
Sergio Sánchez Vallés
ca1f41562c
Fix telegram stop typing if not final message
2026-03-04 13:19:35 +01:00
Sergio Sánchez Vallés
102b9716ed
feat: Implement Telegram draft/progress messages (streaming)
2026-03-03 17:16:08 +01:00
cocolato
5f7fb9c75a
add missed dependency
2026-03-03 23:40:56 +08:00
Tink
80219baf25
feat(api): add OpenAI-compatible endpoint with x-session-key isolation
2026-03-01 10:53:45 +08:00
Re-bin
4f0530dd61
release: v0.1.4.post3
2026-02-28 17:55:18 +00:00
Re-bin
988a85d8de
refactor: optimize matrix channel — optional deps, trim comments, simplify methods
2026-02-26 03:04:01 +00:00
Re-bin
84f2f3c316
Merge remote-tracking branch 'origin/main' into pr-420
2026-02-26 02:48:21 +00:00
Re-bin
17de3699ab
chore: bump version to 0.1.4.post2
2026-02-24 16:24:47 +00:00
Re-bin
577b3d104a
refactor: move workspace/ to nanobot/templates/ for packaging
2026-02-23 08:08:01 +00:00
Re-bin
af71ccf051
release: v0.1.4.post1
2026-02-21 13:05:14 +00:00
Alexander Minges
6be7368a38
fix(matrix): sanitize formatted html with nh3
2026-02-20 17:55:59 +01:00
Alexander Minges
e716c9caac
feat(matrix): send markdown as formatted html messages
2026-02-20 17:54:39 +01:00
djmaze
d3ddeb3067
fix: activate E2E and accept room invites in Matrix channels
2026-02-20 17:48:14 +01:00
Re-bin
d748e6eca3
fix: pin dependency version ranges
2026-02-19 17:28:13 +00:00
Re-bin
b14d4711c0
release: v0.1.4
2026-02-18 14:31:26 +00:00