From 3d58bfc8af23d215d3fb878dea440d1e405d2b3c Mon Sep 17 00:00:00 2001 From: dtzp555-max Date: Sun, 5 Apr 2026 07:51:39 +1000 Subject: [PATCH] =?UTF-8?q?release:=20v1.0.0-rc1=20=E2=80=94=20feature=20f?= =?UTF-8?q?reeze=20for=20stable=20release?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: orphan agents now grouped under main in agent tree Agents without parentAgentId, own bot, or binding-based inference (e.g. dynamically created sub-agents like codex-worker) were incorrectly displayed as top-level roots. They now default to main's subtree. Bump version to 0.9.4. Co-Authored-By: Claude Opus 4.6 * cleanup: drop archived workflow skill defaults * release: v1.0.0-rc1 — feature freeze for stable release Co-Authored-By: Claude Sonnet 4.6 --------- Co-authored-by: Claude Opus 4.6 Co-authored-by: dtzp555 --- README.md | 6 +++--- docs/USAGE_GUIDE.en.md | 2 +- docs/USAGE_GUIDE.zh-CN.md | 2 +- openclaw-manager.js | 19 ++++++++++++------- package.json | 2 +- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 403e345..eab14a5 100644 --- a/README.md +++ b/README.md @@ -166,7 +166,7 @@ That is why OCM should be thought of as a **control panel for an existing OpenCl ## What's New (v0.9.x) -- **Skills & Tools auto-config (v0.9.4)**: new agents/sub-agents automatically get default Skills (memory-continuity, agent-workflow, execution-agent-dispatch, session-logs) and Tool Groups (fs, runtime, memory, sessions_spawn, subagents). A collapsible Skills & Tools picker in the creation form lets you customize per agent. +- **Skills & Tools auto-config**: new agents/sub-agents automatically get default Skills (`memory-continuity`, `session-logs`) and Tool Groups (`fs`, `runtime`, `memory`, `sessions_spawn`, `subagents`). A collapsible Skills & Tools picker in the creation form lets you customize per agent. - **Discord support (v0.9.x)**: add agent/sub-agent flows for Discord (main agent binds channel; sub-agent binds thread). - **README screenshots gallery**: screenshots grouped into a collapsible section so the homepage stays shorter. - **Built-in CLI terminal**: run OpenClaw commands from any page with streaming output, presets, favorites, and Tab completion. @@ -282,8 +282,8 @@ ocm/ ## Related Projects -- [clawkeeper](https://github.com/dtzp555-max/clawkeeper) — OpenClaw memory operations kit for doctor / provider switch / backup / restore workflows. -- [execution-agent-planner](https://github.com/dtzp555-max/execution-agent-planner) — skill for deciding when work should stay with one execution agent or split across specialized workers. +- [clawkeeper](https://github.com/dtzp555-max/clawkeeper) — OpenClaw memory operations kit for doctor / provider switch / backup / restore workflows. *(archived)* +- [execution-agent-planner](https://github.com/dtzp555-max/execution-agent-planner) — archived planning skill for deciding when work should stay with one execution agent or split across specialized workers. - [gh-pr-release-flow](https://github.com/dtzp555-max/gh-pr-release-flow) — skill for PR-first GitHub repos where release work should happen after merge. ## License diff --git a/docs/USAGE_GUIDE.en.md b/docs/USAGE_GUIDE.en.md index cdb1039..2488df8 100644 --- a/docs/USAGE_GUIDE.en.md +++ b/docs/USAGE_GUIDE.en.md @@ -138,7 +138,7 @@ Click `+ Add Agent` and fill: - workspace path (recommended: separate folder per agent) - model (dropdown is sourced from `openclaw models list`) - the BotFather token -- **Skills & Tools** (optional): expand the collapsible picker at the bottom to customize. By default, new agents get: `memory-continuity`, `agent-workflow`, `execution-agent-dispatch`, `session-logs` as Skills, and `group:fs`, `group:runtime`, `group:memory`, `sessions_spawn`, `subagents` as Tool Groups. Use the quick-action buttons (Default / All / None) to adjust. +- **Skills & Tools** (optional): expand the collapsible picker at the bottom to customize. By default, new agents get: `memory-continuity`, `session-logs` as Skills, and `group:fs`, `group:runtime`, `group:memory`, `sessions_spawn`, `subagents` as Tool Groups. Use the quick-action buttons (Default / All / None) to adjust. OCM writes the agent + Telegram account/binding + skills + tool groups into `openclaw.json`. diff --git a/docs/USAGE_GUIDE.zh-CN.md b/docs/USAGE_GUIDE.zh-CN.md index c1a024b..5285981 100644 --- a/docs/USAGE_GUIDE.zh-CN.md +++ b/docs/USAGE_GUIDE.zh-CN.md @@ -123,7 +123,7 @@ bash start.sh - workspace 路径(建议独立目录) - 选择模型(下拉来自 `openclaw models list`,更不容易选错) - 填入刚拿到的 bot token -- **Skills & Tools**(可选):展开表单底部的折叠面板可自定义。默认预设:Skills 包含 `memory-continuity`、`agent-workflow`、`execution-agent-dispatch`、`session-logs`;Tool Groups 包含 `group:fs`、`group:runtime`、`group:memory`、`sessions_spawn`、`subagents`。提供「仅默认 / 全选 / 清空」快捷按钮。 +- **Skills & Tools**(可选):展开表单底部的折叠面板可自定义。默认预设:Skills 包含 `memory-continuity`、`session-logs`;Tool Groups 包含 `group:fs`、`group:runtime`、`group:memory`、`sessions_spawn`、`subagents`。提供「仅默认 / 全选 / 清空」快捷按钮。 保存后,OCM 会把主 Agent + skills + tools 写进 `openclaw.json`,并把 bot token 绑定到对应 `accountId`。 diff --git a/openclaw-manager.js b/openclaw-manager.js index cb09178..73fd516 100644 --- a/openclaw-manager.js +++ b/openclaw-manager.js @@ -24,7 +24,7 @@ const SCRIPT_DIR = __dirname; const MANAGER_CONFIG = path.join(SCRIPT_DIR, 'manager-config.json'); let PORT = 3333; let HOST = '0.0.0.0'; -const APP_VERSION = '0.9.4'; +const APP_VERSION = '1.0.0-rc1'; // --port 参数 const portIdx = process.argv.indexOf('--port'); if (portIdx !== -1 && process.argv[portIdx + 1]) PORT = parseInt(process.argv[portIdx + 1]) || 3333; @@ -64,7 +64,7 @@ function refreshPaths() { } // ── Default Skills & Tool Groups for new agents ───────────── -const DEFAULT_SKILLS = ['memory-continuity', 'agent-workflow', 'execution-agent-dispatch', 'session-logs']; +const DEFAULT_SKILLS = ['memory-continuity', 'session-logs']; const DEFAULT_TOOL_GROUPS = ['group:fs', 'group:runtime', 'group:memory', 'sessions_spawn', 'subagents']; function applySkillsTools(agentEntry, skills, toolGroups) { @@ -3029,14 +3029,11 @@ function showAddForm(type) { // ── Skills / Tools picker helper ────────────────────────── const AVAILABLE_SKILLS = [ { id:'memory-continuity', label:'Memory Continuity', isDefault:true }, - { id:'agent-workflow', label:'Agent Workflow', isDefault:true }, - { id:'execution-agent-dispatch', label:'Execution Dispatch', isDefault:true }, { id:'session-logs', label:'Session Logs', isDefault:true }, { id:'browser-use', label:'Browser Use', isDefault:false }, { id:'github', label:'GitHub', isDefault:false }, { id:'gh-issues', label:'GitHub Issues', isDefault:false }, { id:'coding-agent', label:'Coding Agent', isDefault:false }, - { id:'execution-agent-planner', label:'Execution Planner', isDefault:false }, { id:'discord', label:'Discord', isDefault:false }, { id:'weather', label:'Weather', isDefault:false }, { id:'summarize', label:'Summarize', isDefault:false }, @@ -3360,12 +3357,20 @@ function renderAgents() { // Build grouping: prefer explicit parentAgentId; fallback to telegram bot-root grouping. const byId = {}; (S.agents||[]).forEach(a=>{ byId[a.id]=a; }); - // infer parentAgentId for legacy telegram sub-agents if missing + // infer parentAgentId for sub-agents if missing const accountToRootId = {}; (S.agents||[]).forEach(a=>{ if(a.hasOwnBot && a.accountId) accountToRootId[a.accountId]=a.id; }); (S.agents||[]).forEach(a=>{ - if(!a.parentAgentId && !a.hasOwnBot && a.parentAccountId && accountToRootId[a.parentAccountId]){ + if(a.parentAgentId || a.hasOwnBot || a.id === 'main') return; // already resolved or is a root + // Case 1: legacy telegram sub-agent with parentAccountId + if(a.parentAccountId && accountToRootId[a.parentAccountId]){ a._inferParentAgentId = accountToRootId[a.parentAccountId]; + return; + } + // Case 2: orphan agent (no own bot, no parentAgentId, no binding-based inference) + // These are likely dynamically created sub-agents — default to 'main' + if(byId['main']){ + a._inferParentAgentId = 'main'; } }); diff --git a/package.json b/package.json index fc12c02..9cd589d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "openclaw-manager", - "version": "0.9.3", + "version": "1.0.0-rc1", "description": "A local web UI for managing OpenClaw AI agents \u2014 no npm install required", "main": "openclaw-manager.js", "scripts": {