chengyongru
9895c23cb5
refactor(providers): define typed usage contract
2026-08-25 01:04:25 +08:00
Xubin Ren
12029f8812
feat(runtime): add user-controlled turn recovery
2026-08-24 00:58:04 +08:00
Xubin Ren
4391bbf4da
feat(tui): add agent interaction workflows
2026-08-17 20:56:10 +08:00
chengyongru
19997d20bb
refactor: move MCP lifecycle out of AgentLoop ( #5343 )
2026-08-12 17:51:04 +08:00
chengyongru
cdb2a474f9
refactor(webui): remove legacy session messages route
2026-08-07 15:16:57 +08:00
chengyongru
f45436b61d
fix(commands): reject invalid slash commands
2026-08-04 17:11:44 +08:00
chengyongru
6a1a45d07a
feat: preserve Responses reasoning state and compact context ( #5172 )
2026-07-30 22:39:43 +08:00
chengyongru
e2563e2e74
refactor(cli): split commands into focused modules ( #5175 )
2026-07-30 15:01:35 +08:00
chengyongru
12f828ea3d
fix(agent): read document attachments on demand ( #5122 )
2026-07-28 13:33:06 +08:00
chengyongru
ef9e687f19
refactor(core): remove redundant runtime scaffolding ( #5127 )
2026-07-28 11:07:58 +08:00
chengyongru
39348dfafe
refactor(agent): remove dead lifecycle scaffolding
2026-07-27 12:00:06 +08:00
Xubin Ren
5d8046deef
test(heartbeat): cover ignored unified routes
2026-07-27 00:12:44 +08:00
yu-xin-c
a7a6c26eab
fix(heartbeat): route unified sessions to last channel
2026-07-27 00:12:44 +08:00
chengyongru
66690fdb0c
fix(webui): deliver late subagent results as new turns ( #4992 )
2026-07-22 23:04:36 +08:00
hamb1y
a9867a5a4e
fix: quarantine invalid tool results
2026-07-22 01:59:09 +08:00
chengyongru
9db0d9f3c9
refactor(agent): unify internal turn lifecycle ( #4993 )
2026-07-21 00:14:27 +08:00
chengyongru
d349b65713
test(agent): remove obsolete runtime context assertions
2026-07-12 00:35:17 +08:00
chengyongru
f75d3519db
feat(agent): add persistent runtime context providers
2026-07-12 00:35:17 +08:00
chengyongru
7f8c3453e1
refactor(agent): gate sustained goals behind explicit /goal
...
Replace the legacy long-goal skill contract with command-scoped goal tools and runtime guidance. Keep goal state durable across continuations while restricting create and replace mutations to explicit user /goal turns.
2026-07-12 00:35:17 +08:00
chengyongru
21f58cbabf
refactor(agent): make resolver sole runtime owner
2026-07-10 17:54:34 +08:00
chengyongru
c9d3e74342
refactor(agent): require runtime for consolidation
2026-07-10 17:54:34 +08:00
chengyongru
af85c356b8
refactor(agent): capture subagent runtime before spawn
2026-07-10 17:54:34 +08:00
chengyongru
198fd9f869
refactor(agent): capture runtime at turn admission
2026-07-10 17:54:34 +08:00
chengyongru
42d7ad34a4
refactor(agent): unify request context routing
2026-07-10 17:54:34 +08:00
chengyongru
acb0e853ff
refactor(trigger): share automation turn delivery
2026-07-02 13:32:46 +08:00
chengyongru
2ebf5c4972
refactor(trigger): name CLI trigger source as local
...
maintainer edit: cron is also a trigger source, so keep the new CLI-delivered source explicitly named as local trigger across backend, WebUI, docs, and tests.
2026-07-02 13:32:46 +08:00
chengyongru
55b550ee01
fix(trigger): hide external trigger inputs
2026-07-02 13:32:46 +08:00
chengyongru
5f4cfbcb16
refactor(bus): type outbound runtime events
2026-07-01 20:17:00 +08:00
chengyongru
9b45fc1172
fix(session): remove message time replay prefixes
2026-06-27 11:04:36 +08:00
Xubin Ren
7bec0f6e01
fix(api): honor skip-user persist through save boundary
2026-06-16 21:31:26 +08:00
chengyongru
27d869d3cc
fix(agent): refresh goal continuation context
2026-06-16 11:19:24 +08:00
Xubin Ren
dac4e39bcf
Merge PR #4299 : feat(cron): bind scheduled automations to sessions
...
feat(cron): bind scheduled automations to sessions
2026-06-13 00:07:55 +08:00
chengyongru
d72d0102d9
style: trim orphan toolcall comments
...
maintainer edit: keep the invariant comments in production code but remove repeated issue background from tests.
2026-06-13 00:05:03 +08:00
chengyongru
33e6da14d8
fix: drop tool results missing call ids
...
maintainer edit: treat tool messages without tool_call_id as orphaned during session persistence so malformed results cannot survive into history.
2026-06-13 00:05:03 +08:00
tangtaizhong666
eb25df9b49
fix(session): never persist tool results without a declared tool call
2026-06-13 00:05:03 +08:00
tangtaizhong666
2ebf7e2eef
fix(session): keep placeholder for tool results filtered to empty
2026-06-13 00:05:03 +08:00
tangtaizhong666
df832a37e9
test(session): reproduce orphaned tool results from save-boundary overshoot ( #4006 )
2026-06-13 00:05:03 +08:00
chengyongru
32d8a1dd7b
fix: hide internal cron prompts from webui
2026-06-12 18:17:28 +08:00
chengyongru
80524e9e88
refactor: bind cron jobs to origin sessions
2026-06-12 14:00:53 +08:00
chengyongru
271b3651d7
refactor: use cron turn naming internally
2026-06-12 11:57:35 +08:00
chengyongru
d9d481bc15
refactor: centralize cron session metadata keys
2026-06-12 11:43:23 +08:00
chengyongru
a326ba40f4
feat(cron): bind scheduled automations to sessions
2026-06-11 19:48:07 +08:00
Xubin Ren and chengyongru
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 4c4661da120a3c7283e0768412bae48604e7390b.
* 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
chengyongru
628b250e9a
refactor: decouple webui runtime state via events
2026-06-01 23:00:53 +08:00
Xubin Ren
be2e0172d1
fix(agent): extend sustained goal iteration budget
2026-06-01 04:00:15 +08:00
Xubin Ren
3dcf511c84
feat(webui): refine output timeline and model controls ( #4108 )
...
* feat(webui): refine output timeline and composer queue
* feat(webui): add provider model picker
* fix(webui): polish model settings and heartbeat checks
* chore: keep heartbeat changes out of webui pr
* refactor(webui): isolate settings routes
* fix(providers): align minimax anthropic test
* fix(providers): keep minimax anthropic base sdk-compatible
* fix(providers): normalize anthropic base urls
2026-05-30 23:45:26 +08:00
chengyongru
fe2af64e04
refactor(heartbeat): migrate heartbeat service to cron-based auto-registration
...
Remove standalone nanobot/heartbeat/ service and replace it with an
auto-registered system cron job on gateway startup. Key behaviors preserved:
- HeartbeatConfig (enabled, interval_s, keep_recent_messages) remains in
GatewayConfig for backward compatibility.
- On startup, if enabled, a system cron job "heartbeat" is registered with
schedule derived from interval_s.
- HEARTBEAT.md is checked on each tick; empty/template-identical files skip
to avoid wasting LLM calls.
- Post-run evaluate_response and session history truncation
(keep_recent_messages) are retained.
- Delivery target selection, deliverable filtering, and preamble guidance
are preserved.
Files removed:
- nanobot/heartbeat/__init__.py
- nanobot/heartbeat/service.py
- tests/heartbeat/*
- tests/agent/test_heartbeat_service.py
Templates and docs updated to reflect cron-based usage.
2026-05-28 20:20:28 +08:00
Xubin Ren
57d5276da1
feat(webui): upgrade settings and sidebar controls ( #3906 )
...
* feat(settings): expand settings api payload
* feat(webui): build app-style settings center
* feat(webui): add centered chat search dialog
* fix(webui): shorten chat search label
* fix(webui): center dialog entrance animation
* fix(webui): simplify chat search results
* fix(webui): tighten mobile settings navigation
* feat(webui): persist sidebar state
* feat(webui): add sidebar organization controls
* refactor(webui): organize backend helpers
* refactor(webui): remove utils compatibility shims
* refactor(session): move shared webui helpers out of webui package
* feat(webui): add image generation settings
* style(webui): refine settings overview layout
* fix(webui): localize settings zh-CN copy
* style(webui): add settings status indicators
* feat(webui): show sidebar run indicators
* fix(webui): persist sidebar run indicators
* fix(webui): highlight settings pending status
* fix(webui): align settings test with provider update
* fix(utils): preserve legacy webui helper imports
2026-05-19 22:42:38 +08:00
Xubin Ren
112f40ad67
fix(agent): refresh llm runtime for background tasks
2026-05-18 00:35:12 +08:00
Xubin Ren
c8bb04a8fe
feat(webui): persist agent activity events
2026-05-17 23:51:52 +08:00