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 <noreply@anthropic.com>
Root agents with their own bot (hasOwnBot) now sort to the top of the
agent tree alongside main. Agents listed in a parent's
subagents.allowAgents are automatically inferred as children even
without an explicit parentAgentId or Telegram binding.
Co-authored-by: Tao <dtzp555@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The Skills & Tools picker added in v0.9.4 only had Chinese i18n
strings, so the panel showed Chinese text even in English mode.
Add English translations for wiz.skillsTools, wiz.skillsHint,
wiz.skillsSection, wiz.toolsSection, and the quick-action buttons.
Co-authored-by: Tao <dtzp555@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Add a Skills & Tools picker to the Agent/Sub-Agent creation forms so
new agents automatically get useful defaults (memory-continuity,
agent-workflow, execution-agent-dispatch, session-logs + fs/runtime/
memory/sessions_spawn/subagents tool groups). Users can expand the
collapsible panel to customize, or leave it closed to accept defaults.
- Frontend: checkbox grid with quick-action buttons (Default/All/None)
- Backend: all 4 creation endpoints accept and persist skills/toolGroups
- Bump version to v0.9.4; update DEVLOG, CHANGELOG, README, guides
Co-authored-by: Tao <dtzp555@gmail.com>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* docs: rewrite README around first-run value and support positioning
* docs: add screenshot refresh brief and trim README repetition
* docs: refresh README hero screenshots
---------
Co-authored-by: Tao <dtzp555@gmail.com>
* Fix localized startup status text
* Improve startup UX and docs positioning
* Clean up guide section numbering
* Docs: merge remaining channel support notes
---------
Co-authored-by: Tao <dtzp555@gmail.com>
main agent in OpenClaw has no explicit binding - it's the default catch-all.
Previous code required explicit binding with accountId && !peer to detect
root agents, causing main and its sub-agents to appear as orphan independents.
Now main is always treated as root, with accountId inferred from first
unclaimed telegram account in channels.telegram.accounts.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>