55 Commits

Author SHA1 Message Date
4f35b4364d feat: deactivate broken sub-agent definitions instead of blocking startup
- AgentCatalog now records per-definition load errors (bad YAML, unknown
  provider/profile/model/tool/skill, or explicit delegate edge to an absent
  target) and excludes only the failing definition, never failing gateway
  startup or reload; config- and directory-trust-level errors stay fatal
- Explicit delegation to an absent target cascades to deactivate the
  delegating agent; `*` and implicit general-purpose delegation do not
- GET /api/agents lists broken definitions with parse/load errors so they
  can be fixed and re-enabled from the WebUI instead of disappearing
- WebUI shows an error banner on broken definitions, hides the enable switch,
  pre-fills the editor via lenient parsing, and re-enables on save
- Bump version to 1.16.0
2026-08-14 17:50:55 +08:00
38d92d5883 feat: move default db to config dir, add skill/mcp enable toggles
- Store default SQLite database at <config_dir>/data/picobot.db instead of
  the workspace, keeping session data independent of the workspace; the
  reload equivalence check and docs follow the new default
- Add per-skill enable/disable persisted in <config_dir>/skills_state.json;
  skills default to enabled, disabled skills are excluded from prompts,
  listings, and get_skill at load time
- Add mcp.servers[].enabled (default true); disabled servers are skipped
  at activation and by health checks
- WebUI Tools page: switches for Skills and MCP servers, plus a concrete
  MCP tool list with connection status and errors
- Add PUT /api/skills/{name} API and expose enabled/tool details in the
  skills/status APIs
- Bump version to 1.15.0
2026-08-13 21:58:20 +08:00
7de7a40de7 feat: add sub-agent hot reload to settings, polish definition editor
- rename settings tab and editor labels (子代理定义 → 子代理, 可继续委托给 → 递归委托)
- show available sub-agents as selectable tags when delegation is a list
- fix edit button text wrapping next to the enable switch
- add hot reload button + phase status polling to the sub-agent pane
2026-08-13 18:26:23 +08:00
b558a0a99b feat: make sub-agent orchestration always-on, consolidate design docs
Remove the agent_orchestration enabled feature switch and root_delegates config; delegation edges now derive from the catalog's delegate_targets. Replace the four orchestration design/review docs with a single SUB_AGENT_DESIGN.md. Bump version to 1.13.0.
2026-08-13 18:07:32 +08:00
5501c539fc feat: remove agent run groups, add WebUI agent definition management
- drop agent_run_groups table and group_id/scope_kind/scope_id columns (schema v8)
- remove group_id from AgentExecutionContext and recovery group counters
- flatten TasksPage background tab into a per-run list
- add WebUI Agents page with definition CRUD and inline provider/model
- bump version to 1.11.0
2026-08-13 14:03:01 +08:00
554d4b15ac feat: wire run quota and signal delivery persistence; remove redundant compat code
- RunQuota now enforced: background admission acquires the run permit
  (global→session) and the runner holds it until terminal commit;
  foreground never takes run permits so nested limit=1 cannot deadlock
- RuntimeAdmission activity guard held by background runners for the
  whole run; admission checked before any durable write
- signal_contract_json/signal_delivery persisted at run admission so
  definition-level steer delivery actually takes effect (was silently
  falling back to queue)
- terminal completion payload carries the run's emitted signal IDs
  (design §12.3) so the main Agent can recognise duplicates
- ROOT caller_scope_id is the literal "ROOT" (design §9.6)
- legacy general delegation returns a deprecation/migration hint

Cleanup:
- remove unused AgentCaller enum and run_parallel wrapper
- remove unreachable http_get_only prompt machinery (http_request is
  RootOnly and never enters sub-agent registries)
- drop never-read EmittedSignal fields; derive WakeupSource from
  TurnInputSource instead of duplicating match arms
- replace the /stop oneshot compatibility bridge with a plain turn_busy
  flag; the worker's forced-cancel path now selects on the cancellation
  token (implementation doc §11.1)

Version 1.8.0
2026-08-11 15:24:49 +08:00
ac201a3949 feat: durable agent orchestration with run persistence, inbox continuation, and signal/steer
- AgentCatalog/definitions with strict Markdown frontmatter, delegation graph,
  fail-closed tool scoping, and signal contracts
- structured cancellation (AgentError::Cancelled/TimedOut) across provider
  streams, tool batches, and sleep; /stop drives the same terminal state
- schema v6 run/group/inbox persistence with execution-ID conditional
  transitions and completion-slot reservations
- ExecutionGate separating run quota from provider/tool step permits
- background completion inbox with hidden-trigger continuation turns,
  fairness scheduling, lease release, dead-lettering, and activation recovery
- typed TurnMailbox with two-phase steer admission and atomic consumption at
  turn commit; /stop releases admitted steer events back to pending
- emit_signal tool with contract-enforced rate/dedupe/severity/size limits
- WS run/event projection (GetAgentRuns, AgentRunUpdated, AgentEventUpdated),
  /api/agent-runs* management endpoints, /api/tasks union, WebUI run tree
  and signal cards
- ChannelContext.durable_private persisted for continuation delivery reuse

Version 1.7.0
2026-08-11 11:51:20 +08:00
ac0a0c42ad feat(webui): Fluent 2 mica/acrylic materials, acrylic topbar overlay, token consistency
- Restore official light neutral background ramp; add danger hover/pressed and warning-border tokens; drop dead --edge
- Mica ambient brand-tinted backdrop; acrylic sidebar/topbar/flyouts with reduced-transparency fallback
- Content and session rail scroll under the acrylic topbar (--topbar-h driven offsets)
- Global .danger-solid, shared .chip/.dot, card hover lift, radius/type ramp normalization; bump to 1.5.1
2026-08-06 14:05:13 +08:00
c02993ae2c feat: add same-turn steering and queued input 2026-08-06 11:41:37 +08:00
e45980a282 feat: add cancellable sleep tool 2026-08-06 08:38:43 +08:00
da5ee05311 feat: add session token and context statistics 2026-08-05 16:45:56 +08:00
b1b8e2d923 feat: migrate browser tooling to agent-browser 2026-07-27 23:53:55 +08:00
751de27e45 升级组件 2026-07-27 22:40:28 +08:00
1c1b96f5d4 前端设计语言改成fluent2风格。增加主题色设置。 2026-07-27 22:25:59 +08:00
3263fac7a3 chore: set version to 1.3.0 2026-07-26 22:39:55 +08:00
80fbc7fd25 chore(release): P3 configuration 2026-07-26 22:27:23 +08:00
c6a3814530 chore(release): P2 logs and data 2026-07-26 22:18:58 +08:00
bee11c7735 feat(logging): tracing broadcast layer for real-time log streaming 2026-07-26 21:50:03 +08:00
038854afa1 chore(release): P1 observability 2026-07-26 21:43:33 +08:00
54ad4617c7 chore(release): P0 webui foundation 2026-07-24 10:51:35 +08:00
0d61354ba1 feat: add gateway configuration hot reload 2026-07-21 12:59:46 +08:00
e7ed95d7b2 chore(release): bump version to 1.2.2 2026-07-20 00:12:25 +08:00
07b09ca486 版本号变更 2026-07-19 12:50:31 +08:00
f4172fea38 实现tui和webui的附件收发,优化文件在消息中的处理 2026-07-16 17:49:51 +08:00
e37581c909 增加tui和web的配对码要求。 2026-07-16 15:18:21 +08:00
27d126cf73 tui客户端增强。 2026-07-14 14:31:16 +08:00
c2d4fc5f09 refactor: remove dead code and unused state 2026-07-14 11:41:07 +08:00
63d20d1eb8 refactor: eliminate build warnings and legacy evaluator
Resolve strict Clippy findings across all targets, preserve public API compatibility with scoped lint exceptions, and fix sourced messages retaining media references. Replace meval and its future-incompatible nom dependency with a bounded internal expression parser and regression tests.
2026-07-14 11:00:39 +08:00
fe2bc3dfd3 更新版本号至1.1.2,优化Dockerfile中的himalaya安装方式,调整内容块构建逻辑以保留文本,增强Feishu通道的媒体处理,新增交互式消息设计文档 2026-06-17 22:22:41 +08:00
2a69021e27 chore: add portable-pty dependency 2026-05-29 16:59:16 +08:00
b89dce013c 修改版本号。 2026-05-25 23:25:58 +08:00
41b4895ff0 增加sub-agent机制。 2026-05-25 23:23:10 +08:00
b85578a7d2 新增浏览器调用能力。 2026-05-21 17:11:53 +08:00
2f11aed44a feat(skills): add built-in skill packaging mechanism and about-picobot documentation
- Add build.rs: scan resources/skills/, compress each with tar+zstd, embed via include_bytes!
- Add src/skills/builtin.rs: runtime auto-install built-in skills to ~/.picobot/skills/
- Add about-picobot built-in skill: SKILL.md index + references/ (config, db-schema, architecture, faq, commands) + assets/config.example.json
- Update skill loading: reverse priority (agents < picobot < workspace), deduplicate by name
- Update skills prompt: re-query get_skill when user asks about installed skills
- Change max_tool_iterations default from 20 to 99
2026-05-15 12:00:18 +08:00
c92b07f2c6 fix(dependencies): update reqwest, regex, tokio, uuid, cron, ratatui, crossterm, hostname, and which versions; improve input area cursor positioning 2026-05-13 22:51:16 +08:00
db24d42076 feat(file_read): enhance file reading with encoding detection and support for binary files 2026-05-13 22:43:03 +08:00
52925fcd73 增加MCP适配 2026-05-13 16:43:38 +08:00
a479b92cdf feat(tools): add ContentSearchTool and FileSearchTool for enhanced file and content searching capabilities 2026-05-10 18:32:35 +08:00
5d62141658 1、修复和提升记忆系统 2、简化消息标记 2026-05-08 15:09:27 +08:00
46527edb7b deps: add cron and chrono-tz for scheduled tasks 2026-05-05 00:06:00 +08:00
98eb7bea3d 新增跨session消息发送能力 2026-05-04 00:32:24 +08:00
c17e286db1 test(storage): 编写 Storage 单元测试 2026-04-28 22:17:02 +08:00
3ed7ac7cbd deps: 添加 sqlx + sqlite 依赖 2026-04-28 22:07:55 +08:00
6c50f433d1 删除旧的session持久化机制 2026-04-28 20:34:44 +08:00
75a3bf9df4 增加系统提示词框架 2026-04-27 17:07:01 +08:00
cf6d57c568 重构: 添加 TUI 组件以支持聊天界面和输入处理 2026-04-26 21:00:17 +08:00
8bb32fa066 feat: enhance WebSocket session management and storage
- Added SessionSummary struct for session metadata.
- Updated ws_handler to create and manage CLI sessions more robustly.
- Implemented session creation, loading, renaming, archiving, and deletion via WebSocket messages.
- Introduced SessionStore for persistent session storage using SQLite.
- Enhanced error handling and logging for session operations.
- Updated protocol definitions for new session-related WebSocket messages.
- Refactored tests to cover new session functionalities and ensure proper serialization.
2026-04-18 13:09:14 +08:00
c971bc3639 feat: 添加上下文压缩功能,优化消息历史管理和工具调用日志记录 2026-04-12 18:38:38 +08:00
a9e7aabed4 feat(tools): add file_read tool with pagination support
- Read file contents with offset/limit pagination
- Returns numbered lines for easy reference
- Handles binary files as base64 encoded
- Supports directory restriction for security
- Includes 4 unit tests
2026-04-07 23:43:47 +08:00
2dada36bc6 feat: introduce multimodal content handling with media support
- Added ContentBlock enum for multimodal content representation (text, image).
- Enhanced ChatMessage struct to include media references.
- Updated InboundMessage and OutboundMessage to use MediaItem for media handling.
- Implemented media download and upload functionality in FeishuChannel.
- Modified message processing in the gateway to handle media items.
- Improved logging for message processing and media handling in debug mode.
- Refactored message serialization for LLM providers to support content blocks.
2026-04-07 23:09:31 +08:00