#5170
refactor(session): separate persistence behind SessionStore
chengyongru
#5169
fix(tools): reject truncated JSON args and circuit-break retry loops
LB623
#5168
fix(cron): handle dataclass instances in CronJob.from_dict
santhreal
#5166
fix(agent): expire inherited goal permission outside scope
syphrpunk
#5112
WIP: feat(webui): expose Dream runs as read-only sessions
chengyongru
#5108
fix(channels): add per-sender message rate limiting
amplifierplus
#5018
WIP: feat(skills): support explicit context loading
bingqilinweimaotai
#4878
feat(hooks): add auto-discovery mechanism for agent hooks
KANG99
#4875
refactor: extract MCP tool provider lifecycle
Kokeip
#4853
feat(tools): add nano_timer core tool (time, timezone, calendar)
bill-kopp-ai-dev
#4838
fix(qq): exponential reconnect backoff
asif786ka
#4837
fix: guard .strip() on multimodal content and log prepare_call exceptions
Xingkai98
#4668
fix: enforce message outbound policy
hamb1y
#4667
fix: protect user skills from dream writes
hamb1y
#4664
fix: protect dream history during compaction
hamb1y
#4661
fix: separate file edit progress ids
hamb1y
#4581
WIP: optimization: reducing context usage and thus reducing costs
hamb1y
#4563
feat(whatsapp): restore activity cues and mentions on neonize
Re-bin
#4556
feat(dream): wire up model_override for Dream consolidation
dajiaohuang
#4550
fix(cron): use per-run session key to prevent context sharing across cron runs
dajiaohuang
#4223
fix(weixin): reload session state after pause expiry
DreamShepherd2006
#4207
Drop Python 3.11/3.12 support
clavedeluna
#4205
WIP: Add mailbox-backed subagent results
chengyongru