0859d5c9f6
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 1m3s
Test Suite / test (3.12) (push) Failing after 1m5s
Test Suite / test (3.13) (push) Failing after 1m2s
# Conflicts:
# nanobot/channels/telegram.py
2026-03-19 16:47:40 +08:00
395fdc16f9
feat(qq): serve public media via gateway
2026-03-19 16:27:29 +08:00
Xubin Ren
dd7e3e499f
fix: separate Telegram connection pools and add timeout retry to prevent pool exhaustion
...
The root cause of "Pool timeout" errors is that long-polling (getUpdates)
and outbound API calls (send_message, send_photo, etc.) shared the same
HTTPXRequest pool — polling holds connections indefinitely, starving sends
under concurrent load (e.g. cron jobs + user chat).
- Split into two independent pools: API calls (default 32) and polling (4)
- Expose connection_pool_size / pool_timeout in TelegramConfig for tuning
- Add _call_with_retry() with exponential backoff (3 attempts) on TimedOut
- Apply retry to _send_text and remote media URL sends
2026-03-19 16:15:41 +08:00
fd52973751
feat(config): hot reload agent runtime settings
Test Suite / test (3.11) (push) Failing after 1m7s
Test Suite / test (3.12) (push) Failing after 1m3s
Test Suite / test (3.13) (push) Failing after 1m14s
2026-03-19 14:01:18 +08:00
mamamiyear
d9cb729596
feat: support feishu code block
2026-03-19 13:59:31 +08:00
cfcfb35f81
feat(mcp): add slash command listing
2026-03-19 13:10:07 +08:00
49fbd5c15c
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 1m8s
Test Suite / test (3.12) (push) Failing after 1m8s
Test Suite / test (3.13) (push) Failing after 1m7s
# Conflicts:
# README.md
# nanobot/agent/context.py
# nanobot/agent/loop.py
# nanobot/channels/telegram.py
2026-03-19 00:42:43 +08:00
Xubin Ren
214bf66a29
docs(readme): clarify nanobot is unrelated to crypto
2026-03-18 15:18:38 +00:00
Xubin Ren
4b052287cb
fix(telegram): validate remote media URLs
2026-03-18 23:12:11 +08:00
h4nz4
a7bd0f2957
feat(telegram): support HTTP(S) URLs for media in TelegramChannel
...
Fixes #1792
2026-03-18 23:12:11 +08:00
Xubin Ren
728d4e88a9
fix(providers): lazy-load provider exports
2026-03-18 22:01:29 +08:00
Javis486
28127d5210
When using custom_provider, a prompt "LiteLLM:WARNING" will still appear during conversation
2026-03-18 22:01:29 +08:00
Xubin Ren
4e40f0aa03
docs: MiniMax gifts to the nanobot community
2026-03-18 05:09:03 +00:00
vivganes
e6910becb6
logo: transparent background
...
Also useful when we build the gateway. Dark and bright modes can use the same logo.
2026-03-18 12:41:38 +08:00
Xubin Ren
5bd1c9ab8f
fix(cron): preserve exact intervals in list output
2026-03-18 12:39:06 +08:00
PJ Hoberman
12aa7d7aca
test(cron): add unit tests for _format_timing and _format_state helpers
...
Tests the helpers directly without needing CronService, covering all
schedule kinds, edge cases (missing fields, unknown status), and
combined state output.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
PJ Hoberman
8d45fedce7
refactor(cron): extract _format_timing and _format_state helpers
...
Addresses review feedback: moves schedule formatting and state
formatting into dedicated static methods, removes duplicate
in-loop imports, and simplifies _list_jobs() to a clean loop.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
PJ Hoberman
228e1bb3de
style: apply ruff format to cron tool
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
PJ Hoberman
5d8c5d2d25
style(test): fix import sorting and remove unused imports
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
PJ Hoberman
787e667dc9
test(cron): add tests for _list_jobs() schedule and state formatting
...
Covers all three schedule kinds (cron/every/at), human-readable interval
formatting, run state display (last run, status, errors, next run),
and disabled job filtering.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
PJ Hoberman
eb83778f50
fix(cron): show schedule details and run state in _list_jobs() output
...
_list_jobs() only displayed job name, id, and schedule kind (e.g. "cron"),
omitting the actual timing and run state. The agent couldn't answer
"when does this run?" or "did it run?" even though CronSchedule and
CronJobState had all the data.
Now surfaces:
- Cron expression + timezone for cron jobs
- Human-readable interval for every jobs
- ISO timestamp for one-shot at jobs
- Enabled/disabled status
- Last run time + status (ok/error/skipped) + error message
- Next scheduled run time
Fixes #1496
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 12:39:06 +08:00
zhangxiaoyu.york
f72ceb7a3c
fix:set subagent result message role = assistant
2026-03-18 00:43:46 +08:00
angleyanalbedo
20e3eb8fce
docs(readme): fix broken link to Channel Plugin Guide
2026-03-17 23:09:35 +08:00
Xubin Ren
8cf11a0291
fix: preserve image paths in fallback and session history
2026-03-17 22:37:09 +08:00
61dcdffbbe
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 1m7s
Test Suite / test (3.12) (push) Failing after 1m5s
Test Suite / test (3.13) (push) Failing after 1m7s
# Conflicts:
# nanobot/channels/slack.py
# nanobot/config/schema.py
# tests/test_feishu_reply.py
2026-03-17 21:13:12 +08:00
Xubin Ren
7086f57d05
test(feishu): cover media msg_type mapping
2026-03-17 17:05:13 +08:00
weipeng0098
47e2a1e8d7
fix(feishu): use correct msg_type for audio/video files
2026-03-17 17:05:13 +08:00
Xubin Ren
41d59c3b89
test(feishu): cover heading and table markdown rendering
2026-03-17 16:51:02 +08:00
Your Name
9afbf386c4
fix(feishu): fix markdown rendering issues in headings and tables
...
- Fix double bold markers (****) when heading text already contains **
- Strip markdown formatting (**bold**, *italic*, ~~strike~~) from table cells
since Feishu table elements do not support markdown rendering
Fixes rendering issues where:
1. Headings like '**text**' were rendered as '****text****'
2. Table cells with '**bold**' showed raw markdown instead of plain text
2026-03-17 16:51:02 +08:00
Xubin Ren
91ca82035a
feat(slack): add default done reaction on completion
2026-03-17 16:19:08 +08:00
Sihyeon Jang
8aebe20cac
feat(slack): update reaction emoji on task completion
...
Remove the in-progress reaction (reactEmoji) and optionally add a
done reaction (doneEmoji) when the final response is sent, so users
get visual feedback that processing has finished.
Signed-off-by: Sihyeon Jang <sihyeon.jang@navercorp.com >
2026-03-17 16:19:08 +08:00
0126061d53
docs(skill): sync README and AGENTS guidance
Test Suite / test (3.11) (push) Failing after 1m23s
Test Suite / test (3.12) (push) Failing after 1m4s
Test Suite / test (3.13) (push) Failing after 1m4s
2026-03-17 16:00:59 +08:00
59b9b54cbc
fix(skill): improve clawhub command handling
2026-03-17 15:55:41 +08:00
d31d6cdbe6
refactor(channels): formalize default config onboarding
Test Suite / test (3.11) (push) Failing after 1m32s
Test Suite / test (3.12) (push) Failing after 1m19s
Test Suite / test (3.13) (push) Failing after 1m27s
2026-03-17 15:12:15 +08:00
bae0332af3
fix: uv.lock update
Test Suite / test (3.11) (push) Failing after 59s
Test Suite / test (3.12) (push) Failing after 57s
Test Suite / test (3.13) (push) Failing after 1m0s
2026-03-17 15:00:25 +08:00
06ee68d871
Merge remote-tracking branch 'origin/main'
Test Suite / test (3.11) (push) Failing after 1m2s
Test Suite / test (3.12) (push) Failing after 1m1s
Test Suite / test (3.13) (push) Failing after 59s
2026-03-17 14:47:40 +08:00
0613b2879f
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 59s
Test Suite / test (3.12) (push) Failing after 59s
Test Suite / test (3.13) (push) Failing after 58s
# Conflicts:
# tests/test_commands.py
2026-03-17 14:30:00 +08:00
Xubin Ren
49fc50b1e6
test(custom): cover empty choices response handling
2026-03-17 14:24:55 +08:00
Jiajun Xie
2eb0c283e9
fix(providers): handle empty choices in custom provider response
2026-03-17 14:24:55 +08:00
7a6d60e436
feat(skill): add clawhub slash commands
2026-03-17 14:19:36 +08:00
Xubin Ren
b939a916f0
Merge PR #1763 : align onboard with config and workspace overrides
...
align onboard with config and workspace overrides
2026-03-17 14:03:50 +08:00
Xubin Ren
499d0e1588
docs(readme): update multi-instance onboard examples
2026-03-17 05:58:13 +00:00
Xubin Ren
b2a550176e
feat(onboard): align setup with config and workspace flags
2026-03-17 05:42:49 +00:00
6cd8a9eac7
Merge remote-tracking branch 'origin/main'
...
Test Suite / test (3.11) (push) Failing after 1m14s
Test Suite / test (3.12) (push) Failing after 1m2s
Test Suite / test (3.13) (push) Failing after 1m0s
# Conflicts:
# nanobot/cli/commands.py
# tests/test_config_migration.py
2026-03-17 13:27:45 +08:00
Xubin Ren
a9621e109f
Merge PR #1136 : fix: workspace path in onboard command ignores config setting
...
fix: workspace path in onboard command ignores config setting
2026-03-17 13:10:32 +08:00
Xubin Ren
40a022afd9
fix(onboard): use configured workspace path on setup
2026-03-17 05:01:34 +00:00
Xubin Ren
c4cc2a9fb4
Merge remote-tracking branch 'origin/main' into pr-1136
2026-03-17 04:42:01 +00:00
Xubin Ren
db37ecbfd2
fix(custom): support extraHeaders for OpenAI-compatible endpoints
2026-03-17 04:28:24 +00:00
f65d1a9857
Merge remote-tracking branch 'origin/main'
Test Suite / test (3.11) (push) Failing after 3m2s
Test Suite / test (3.12) (push) Failing after 3m31s
Test Suite / test (3.13) (push) Failing after 3m56s
2026-03-17 09:34:49 +08:00
Xubin Ren
84565d702c
docs: update v0.1.4.post5 release news
2026-03-16 15:28:41 +00:00