Xubin Ren
ab7351be63
fix(cli): skip process title dependency on Windows
2026-08-23 21:13:14 +08:00
Xubin Ren
cfc1fae8b5
feat(cli): expose nanobot process identities
2026-08-23 21:13:14 +08:00
chengyongru and chengyongru
961b1fdd7d
refactor: remove remaining dead code
2026-08-23 19:08:00 +08:00
chengyongru and chengyongru
7dd5feb456
fix(deps): support standard socks5 proxies
2026-08-20 15:27:13 +08:00
chengyongru and chengyongru
df14259717
perf(tui): reduce cold-start latency
2026-08-18 16:28:46 +08:00
chengyongru and chengyongru
43511decc9
fix(weixin): install QR code dependency
2026-08-10 13:48:49 +08:00
chengyongru and GitHub
9098ffd38f
refactor(webui): improve visual consistency ( #5249 )
2026-08-05 13:24:45 +08:00
chengyongru and GitHub
4e8702a47b
fix(anthropic): support Opus 5 effort controls ( #5236 )
2026-08-04 13:38:54 +08:00
shixi-li and chengyongru
dda9b61b1e
fix(config): install timezone data on all platforms
2026-07-31 19:55:22 +08:00
chengyongru and GitHub
757ad9c764
refactor: enforce BasedPyright strict type checking ( #5158 )
2026-07-29 21:37:11 +08:00
chengyongru and GitHub
393d429e0a
fix(ci): stabilize and speed up CI ( #5145 )
2026-07-28 22:55:59 +08:00
Xubin Ren
5328a95add
chore(release): prepare v0.3.0
2026-07-25 15:46:46 +08:00
chengyongru and GitHub
3748f664b2
feat(config): watch runtime configuration changes ( #5026 )
2026-07-22 13:08:39 +08:00
chengyongru and GitHub
462a0dfb0f
refactor(channels): make built-in channels self-contained ( #4908 )
...
* refactor(channels): own setup and instance contracts
* refactor(channels): isolate management contracts
* refactor(channels): normalize activation contracts
* fix(channels): enforce management contracts
* refactor(channels): finish setup ownership migration
* fix(channels): harden management contracts
* fix(channels): enforce lazy loading and runtime ownership
* fix(feishu): make multi-instance startup idempotent
* fix(webui): render channel setup contracts cleanly
* fix(feishu): stop websocket clients cleanly
* fix(channels): enforce persistence and activation gates
* fix(channels): preserve global feature action scope
* fix(channels): apply defaults for single plugins
* fix(channels): enforce management contract boundaries
* refactor(feishu): remove identity helper indirection
* fix(channels): preserve management setup contracts
* refactor(channels): generalize instance settings UI
* refactor(channels): package channel plugins with web UI metadata
* refactor(channels): make built-ins self-contained packages
* test(channels): colocate tests with channel packages
* fix(dingtalk): use official brand icon
* feat(channels): colocate webui translations
* docs(channels): clarify plugin ownership
* test(exec): remove output wait race
* refactor(channels): unify plugin descriptors
* fix(channels): enforce descriptor-owned contracts
* refactor(channels): finish package-owned plugin setup
* refactor(channels): use repository-owned packages only
* fix(channels): self-describe dependencies and runtime state
* fix(channels): warn about legacy entry points
2026-07-19 23:30:49 +08:00
chengyongru and chengyongru
1a1e666625
fix: install timezone data on Windows
2026-07-14 17:30:16 +08:00
chengyongru and GitHub
e864fba522
fix: align optional dependency contracts ( #4907 )
...
* fix: align optional dependency contracts
* ci: avoid duplicate test suite
* test: drop removed langsmith assertions
* test: rely on generic extra coverage
* test: restore existing plugin coverage
2026-07-13 16:58:19 +08:00
Xubin Ren and GitHub
fe0717b385
feat(webui): add guided setup flows
...
* feat(channels): add guided setup flows
* test(channels): preserve setup config values
* fix(channels): reflect saved setup state
* refactor(channels): simplify setup state metadata
* fix(channels): harden setup lifecycle
* refactor(channels): centralize setup contracts
* fix(channels): route setup actions through webui shim
* fix(channels): adapt settings for compact screens
* fix(models): preserve default preset display
* feat(models): add curated Codex catalog
* fix(webui): stop attached gateway on interrupt
* fix(webui): simplify apps catalog
* docs(webui): clarify apps and runtime features
* feat(settings): add guided capability setup
* fix(webui): harden setup and managed services
* test: keep managed runtime checks portable
* test: scope POSIX runtime coverage
* fix(webui): simplify file settings
* feat(files): bundle document reading
* fix(webui): harden setup request boundaries
* fix(webui): prevent channel setup status squeeze
* fix(settings): group provider compatibility aliases
* refactor(settings): remove redundant setup surfaces
* fix(webui): harden guided setup lifecycle
* fix(webui): preserve channel setup compatibility
2026-07-13 13:11:46 +08:00
Aleksander W. Oleszkiewicz (auticon) and Xubin Ren
379785d365
Fix missing aiohttp slack dependency in pyproject.toml
...
Added `"aiohttp>=3.9.0,<4.0.0"` to the dependencies for **slack**
2026-07-08 12:16:30 +08:00
5283ceae85
Add optional Nanobot plugin controls ( #4396 )
...
* feat: add optional nanobot features
* test: update azure install hint expectation
* fix: validate optional feature extras
maintainer edit: verify requested dependency extras before treating optional features as installed, propagate restart state from feature enablement, and align docs with the new plugins enable command.
* fix: bound optional feature installs
maintainer edit: make optional feature installs time out as a normal install failure instead of leaving the WebUI or CLI action waiting indefinitely.
* feat: slim optional channel dependencies
* fix: log optional install commands
* fix(webui): gate remote feature installs
* docs: clarify webhook plugin example
* fix(webui): harden optional feature installs
* fix: install optional deps without package fallback
* fix(cli): refine plugin feature controls
* fix(webui): count enabled nanobot features
* fix(webui): allow slow feature install routes
* fix(webui): allow disabling websocket channel
* fix(plugins): simplify optional feature controls
* fix(webui): polish apps catalog states
* fix(webui): confirm nanobot support installs
* fix(webui): polish nanobot install dialog
* fix(webui): suppress empty websocket handshakes
* fix(webui): clarify apps plugin summary
* fix(webui): localize workspace access copy
* fix(plugins): polish optional feature controls (#4691 )
---------
Co-authored-by: Xubin Ren <52506698+Re-bin@users.noreply.github.com >
2026-07-03 18:17:52 +08:00
chengyongru and Xubin Ren
44a5ed1bc0
feat(providers): support provider-scoped proxy config
2026-06-30 17:33:36 +08:00
chengyongru and Xubin Ren
2a9e288dfe
refactor(whatsapp): replace bridge with neonize
2026-06-27 11:05:03 +08:00
chengyongru and Xubin Ren
64901be67f
test: harden webui and gateway checks
2026-06-27 11:04:11 +08:00
Xubin Ren
83c29292d3
chore(release): prepare v0.2.2
2026-06-22 20:53:28 +08:00
ab9f49970d
feat(desktop): polish desktop shell and shared WebUI surfaces ( #4195 )
...
* feat(desktop): add native host scaffold
* feat(webui): track turns and usage in gateway
* feat(webui): polish desktop chat experience
* feat(apps): add ArcGIS and Joplin logos
* feat(desktop): polish shell and shared surfaces
* fix(webui): avoid preview chips for glob references
* test: align CI expectations for token fallback
* feat(webui): preview prompt rail entries
* feat(webui): add prompt navigator drawer
* style(webui): refine prompt navigator placement
* style(webui): align prompt navigator with header actions
* style(webui): simplify prompt navigator header
* refactor(webui): clean thread resource refresh
* feat(desktop): add native reply notifications
* fix(webui): preserve desktop restart and replay state
* fix(desktop): harden gateway proxy startup
* fix(web): fall back when readability is unavailable
* fix(desktop): hide window instead of closing on macos
* fix(webui): unify desktop header actions
* fix(webui): simplify prompt history rows
* fix(desktop): log notification delivery failures
* chore(desktop): clean source package artifacts
* fix(cron): support one-time relative reminders
* fix(webui): reveal scroll button in place
* Revert "fix(cron): support one-time relative reminders"
This reverts commit 4c4661da12 .
* refactor(webui): extract token usage heatmap
* docs(desktop): clarify contributor guides
---------
Co-authored-by: chengyongru <2755839590@qq.com >
2026-06-06 19:49:33 +08:00
Kunal Karmakar and Xubin Ren
ba3fa38e97
Add support for Azure AAD based Auth
2026-06-05 01:17:34 +08:00
Xubin Ren
f309982bb0
chore(release): update version to 0.2.1
2026-06-01 16:51:24 +08:00
hinotoi-agent and Xubin Ren
4dd89f4c46
fix(matrix): bound inbound media downloads
2026-05-30 15:34:19 +08:00
outlook84 and Xubin Ren
a4a2c55120
feat(telegram): add webhook support and ordered message queue
...
Introduce webhook mode for the Telegram channel and implement a session-based message reordering mechanism.
Key changes:
- Update `python-telegram-bot` dependency to include the `webhooks` extra.
- Add `TelegramConfig` fields for webhook configuration, with validation rules for public HTTPS URLs and Telegram's secret token.
- Implement `_enqueue_ordered_update` and `_drain_ordered_updates` in `TelegramChannel` to stage incoming messages and commands behind a short per-session reorder
window, ensuring sequential delivery based on message and update IDs.
- Configure `start_webhook` in `TelegramChannel.start()` when webhook mode is enabled.
- Add unit tests for webhook config validations, webhook startup, and message reordering.
- Document webhook configuration and reverse proxy details in `docs/chat-apps.md`.
2026-05-26 16:14:51 +08:00
Xubin Ren
c018c3fb6a
chore(release): bundle webui into wheel and prep 0.2.0
2026-05-16 13:38:11 +00:00
chengyongru and Xubin Ren
043f0e67f7
feat(tools): introduce plugin-based tool discovery and runtime context protocol
...
This commit implements a progressive refactoring of the tool system to support
plugin discovery, scoped loading, and protocol-driven runtime context injection.
Key changes:
- Add Tool ABC metadata (tool_name, _scopes) and ToolContext dataclass for
dependency injection.
- Introduce ToolLoader with pkgutil-based builtin discovery and
entry_points-based third-party plugin loading.
- Add scope filtering (core/subagent/memory) so different contexts load
appropriate tool sets.
- Introduce ContextAware protocol and RequestContext dataclass to replace
hardcoded per-tool context injection in AgentLoop.
- Add RuntimeState / MutableRuntimeState protocols to decouple MyTool from
AgentLoop.
- Migrate all built-in tools to declare scopes and implement create()/enabled()
hooks.
- Migrate MessageTool, SpawnTool, CronTool, and MyTool to ContextAware.
- Refactor AgentLoop to use ToolLoader and protocol-driven context injection.
- Refactor SubagentManager to use ToolLoader(scope="subagent") with per-run
FileStates isolation.
- Register all built-in tools via pyproject.toml entry_points.
- Add comprehensive tests for loader scopes, entry_points, ContextAware,
subagent tools, and runtime state sync.
2026-05-12 11:28:20 +08:00
Xubin Ren and Xubin Ren
306958d6e6
add native Bedrock Converse provider
...
Made-with: Cursor
2026-05-01 18:52:03 +08:00
Xubin Ren
0b1631f33d
chore: bump version to 0.1.5.post3 and update README news
...
- pyproject.toml + __init__.py: 0.1.5.post2 → 0.1.5.post3
- README: add daily news entries for 2026-04-22 through 2026-04-28
Made-with: Cursor
2026-04-29 10:50:57 +00:00
Xubin Ren
67b4d113c9
chore: update pyproject.toml
2026-04-29 08:25:09 +00:00
28f9bbff31
feat(web_search): add olostep provider
...
Adds Olostep (https://www.olostep.com ) as an optional web_search backend
using the official olostep Python SDK (client.answers.create()).
Changes:
- pyproject.toml: adds olostep>=0.1.0 optional dependency
- schema.py: adds olostep to provider comment in WebSearchConfig
- web.py: adds _search_olostep() with lazy import and provider branching
- docs/configuration.md: documents Olostep setup under web search config
- tests: unit tests for the new provider
Backward compatible: existing users see no behavior change unless they
opt into provider: "olostep". No hard dependency at runtime path.
Co-authored-by: umerkay <umerkk164@gmail.com >
2026-04-28 19:09:38 +08:00
Xubin Ren
950dddec49
chore: bump version to 0.1.5.post2
2026-04-21 17:25:08 +00:00
Xubin Ren
558aa98491
chore: temporary keep WebUI source-only
2026-04-21 14:33:44 +00:00
Xubin Ren
26fd2c099a
build: ship THIRD_PARTY_NOTICES and fix webui packaging in wheel
2026-04-20 08:22:10 +00:00
Xubin Ren
9ed3031a42
feat(webui): add initial webui with websocket chat flow
2026-04-18 18:51:53 +00:00
Jiajun Xie and Xubin Ren
3db2eb66e4
ci: add Windows and Python 3.14 support
2026-04-17 16:11:37 +08:00
Xubin Ren and GitHub
92a5125108
Merge PR #3141 : fix(skills): use yaml.safe_load for frontmatter parsing to handle multiline descriptions
...
fix(skills): use yaml.safe_load for frontmatter parsing to handle multiline descriptions
2026-04-16 20:07:15 +08:00
chengyongru and Xubin Ren
49223e639e
fix(msteams): add auth warning and restore unrelated pyproject change
...
Warn when validate_inbound_auth is disabled (default) so operators are
aware the webhook accepts unverified requests. Restore pymupdf to the
dev optional-dependencies group — its removal in the original PR was
unrelated to the Teams channel feature.
2026-04-16 13:22:07 +08:00
chengyongru and Xubin Ren
63753dbfea
fix(msteams): remove optional deps from dev extras and gate tests
...
PyJWT and cryptography are optional msteams deps; they should not be
bundled into the generic dev install. Tests now skip the entire file
when the deps are missing, following the dingtalk pattern.
2026-04-16 13:22:07 +08:00
Bob Johnson and Xubin Ren
4d795f74d5
Fix MSTeams PR review follow-ups
2026-04-16 13:22:07 +08:00
chengyongru and GitHub
015833e34b
Merge branch 'main' into fix/skills-yaml-frontmatter
2026-04-15 16:56:23 +08:00
Xubin Ren
6483071485
chore: update version to 0.1.5.post1
2026-04-14 18:51:04 +00:00
Xubin Ren
2502fc616b
Merge origin/main into feat/api-file-upload
...
Keep the API file upload branch current with main, enforce the documented JSON base64 per-file limit, and avoid leaking document extraction error strings into user prompts.
Made-with: Cursor
2026-04-14 12:29:43 +00:00
yanghan-cyber
a1b544fd23
fix(skills): use yaml.safe_load for frontmatter parsing to handle multiline descriptions
...
The hand-rolled line-by-line YAML parser treated each line independently,
so YAML multiline scalars (folded `>` and literal `|`) were captured as
the literal characters ">" or "|" instead of the actual text content.
2026-04-14 15:29:59 +08:00
Xubin Ren
651aeae656
improve file editing and add notebook tool
...
Enhance file tools with read tracking, PDF support, safer path handling,
smarter edit matching/diagnostics, and introduce notebook_edit with tests.
2026-04-10 15:44:50 +00:00
xinnan.hou and Xubin Ren
0f1e3aa151
fix
2026-04-08 23:34:47 +08:00
dengjingren
a068df5a79
feat(api): support file uploads via JSON base64 and multipart/form-data
2026-04-08 15:58:52 +08:00