# Changelog v1.0.6

Record image-affecting changes to `manager/`, `worker/`, `openclaw-base/` here before the next release.

## What's New

- **MCP Server Management Skill Enhancement** — Manager now has a unified `setup-mcp-server.sh` script for runtime MCP server creation/update (GitHub as a special case with DNS service source). Manager can use mcporter CLI to list servers, view schemas, and call tools directly. Workers get an independent mcporter skill with MCP tool discovery and automatic SKILL generation — similar to the built-in github MCP tool, all calls are proxied through the AI gateway so Workers never see real credentials but can still use tools via SKILL. Config unified to `./config/mcporter.json` (mcporter default path, no `--config` flag needed).

- **Slash Command Cross-Scenario Control** — You can now `@claw /reset` in DM or group chat to reset context (fixes bugs or misconfig issues). `@claw /stop` interrupts long-running agent tasks — useful when a claw is stuck, allowing you to ask about progress and provide guidance. Manager can also use `/stop` to actively intervene Workers.

- Optimized file sync design principle — unified to "writer pushes and notifies, receiver pulls on demand", with 5-min periodic pull as fallback only. Manager adds on-demand `mc mirror` pull in task/project completion flows to ensure reading fresh Worker results.

- Added `--no-reasoning` flag to model-switch and worker-model-switch scripts to disable reasoning mode, patching the `reasoning` field in openclaw.json.

## Bug Fixes

- Fixed orphaned session write lock cleanup before OpenClaw startup — prevents "session file locked (timeout)" errors after SIGKILL or crash.

- Fixed Remote->Local sync logic — only pulls Manager-managed allowlist files to avoid overwriting Worker-generated content (e.g. .openclaw sessions, memory).

- Fixed Matrix room preset — switched back to `trusted_private_chat` so Workers auto-join without needing to accept invites; used `power_level_content_override` to keep Workers at power level 0.

- Fixed mcporter config path compatibility — new path `config/mcporter.json`, old path `mcporter-servers.json` preserved as symlink for backward compatibility; Worker entrypoint ensures `MCPORTER_CONFIG` env var is always set.

- Fixed CoPaw mcporter config sync — correctly pulls `config/mcporter.json` from MinIO, copies to `.copaw/config/mcporter.json` so mcporter finds it at default path; added backward-compat fallback (tries new path first, falls back to legacy path).

- Fixed `*.lock` file sync exclusion — Local->Remote sync excludes lock files to prevent stale session locks from being pushed to MinIO.

---

- feat(manager): add unified `setup-mcp-server.sh` script to mcp-server-management skill for runtime MCP server creation/update (GitHub as special case with DNS service source); simplify SKILL.md to script-first approach ([commit](https://github.com/alibaba/hiclaw/commit/))

- feat(manager): `setup-mcp-server.sh` now generates Manager's own mcporter-servers.json, creates Worker mcporter config if missing, reads Worker gateway key from creds file instead of registry; pushes to MinIO via `mc cp`

- feat(manager): extract mcporter into standalone skill for both Manager (`manager/agent/skills/mcporter/`) and Worker (`manager/agent/worker-skills/mcporter/`); Worker skill includes MCP tool discovery and skill generation workflow

- refactor(manager,worker): move mcporter config to `./config/mcporter.json` (mcporter default path, no `--config` needed); symlink at old `mcporter-servers.json` path for backward compatibility; remove `MCPORTER_CONFIG` env var dependency from all SKILL.md files

- feat(manager): add `mcporter` to default Worker skills in `create-worker.sh` so new Workers get mcporter skill automatically

- feat(manager): `upgrade-builtins.sh` now pushes all `worker-skills/` to every registered Worker on upgrade (auto-registers new skills in registry); use runtime-specific agent source for builtin skills (copaw vs openclaw)

- feat(manager): add mcporter SKILL.md to `worker-agent/skills/` (OpenClaw builtin) so upgrade-builtins pushes it to all OpenClaw workers; `copaw-worker-agent/skills/mcporter/` already present for CoPaw workers

- feat(openclaw-base): update OpenClaw to `685223f` — support sending slash commands with @mention in group rooms (e.g. `@Worker /compact`)

- fix(copaw): strip leading @mention prefix from message text in group rooms so slash commands (e.g. `@Worker /new`) are correctly detected

- feat(manager): add `--no-reasoning` flag to model-switch and worker-model-switch scripts to allow disabling reasoning; patch `reasoning` field in openclaw.json during model switch

- refactor(manager): remove Local->Remote background sync from start-mc-mirror.sh; all writes now push to MinIO explicitly via mc cp/mirror in skill scripts

- refactor(manager): add explicit `mc cp` push steps to task-management and project-management SKILL.md after writing task files locally

- refactor(manager): add on-demand `mc mirror` pull in task/project completion flows so Manager reads fresh Worker results from MinIO

- docs(manager,worker,copaw): unify file sync design principle comments — writer pushes and notifies via Matrix, receiver pulls on demand, 5-min periodic pull as fallback only

- docs(manager): add "Pulling Files from MinIO" section to TOOLS.md — pull task directory on Worker completion, mc cp fallback when local file missing

- docs(manager): add "Using MCP Tools via mcporter" section to mcp-server-management SKILL.md — document Manager's own mcporter usage (list servers, view schemas, call tools)

- fix(manager): clean orphaned session write locks before starting OpenClaw to prevent "session file locked (timeout)" after SIGKILL or crash

- fix(worker): Remote->Local sync pulls Manager-managed files only (allowlist) to avoid overwriting Worker-generated content (e.g. .openclaw sessions, memory)

- fix(copaw): align sync ownership with OpenClaw worker (AGENTS.md/SOUL.md Worker-managed, push but never pull; allowlist for Remote->Local)

- fix(manager): switch Matrix room preset from `private_chat` back to `trusted_private_chat` so Workers are auto-joined without needing to accept invites; use `power_level_content_override` to keep Workers at power level 0

- refactor(manager): remove `credential-key` positional arg from `setup-mcp-server.sh` — use unified `accessToken` key for all YAML configs

- fix(worker): always set MCPORTER_CONFIG env var in worker-entrypoint.sh (even if file not yet present) so mcporter works after file-sync pulls config

- fix(copaw): update FileSync to pull `config/mcporter.json` from MinIO (was still using old `mcporter-servers.json` path); exclude new path from push_local

- fix(copaw): copy mcporter config from workspace root into COPAW_WORKING_DIR (`.copaw/config/mcporter.json`) so mcporter finds it at default path; auto-update on file-sync pull

- fix(copaw): add backward-compat fallback in `pull_all` — try `config/mcporter.json` first, fall back to legacy `mcporter-servers.json` path in MinIO

- fix(worker): clean orphaned session write locks before starting OpenClaw to prevent "session file locked (timeout 10000ms)" after container restart or crash

- fix(worker): exclude `*.lock` files from Local->Remote sync to prevent stale session locks from being pushed to MinIO

- fix(copaw): exclude `.lock` files from `push_local` to prevent stale session locks from being pushed to MinIO
