Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions changelog/current.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ Record image-affecting changes to `manager/`, `worker/`, `copaw/`, `openclaw-bas
- **modelProvider authorization boundary**: Controller reconcilers now own provider-specific AI route authorization, while provisioning keeps using the default gateway authorization path to avoid duplicate provider coupling.
- **Matrix AppService mode**: The controller can register as a Matrix Application Service and provision/log in users with the `as_token` instead of per-user passwords (legacy password auth is preserved when disabled). Enabled by default via `HICLAW_MATRIX_APPSERVICE_ENABLED`; the install script and the Helm `runtime-env` Secret generate and persist `HICLAW_MATRIX_APPSERVICE_AS_TOKEN` / `HICLAW_MATRIX_APPSERVICE_HS_TOKEN`. Set `HICLAW_MATRIX_APPSERVICE_USER_NAMESPACE_REGEX` to narrow the exclusive user namespace when running against a shared / pre-existing homeserver.

**Copaw → QwenPaw Migration**

- feat(copaw): switch worker runtime entrypoint from `copaw.app._app:app` to `qwenpaw.app._app:app`, adding `QWENPAW_WORKING_DIR` env alongside `COPAW_WORKING_DIR` for proper working directory resolution.
- feat(copaw): add `qwenpaw` CLI symlink to PATH for TeamHarness adapter compatibility.
- fix(copaw): change `agents.profiles` injection from shallow `setdefault` to nested merge, ensuring `active_agent`, `profiles.default.id`, and `workspace_dir` are present even when `config.json` already has an `agents` section.
- fix(copaw): add copaw `BaseChannel` fallback in `channel.py` so Manager (copaw-only) can load the Matrix channel without qwenpaw installed.
- fix(copaw): restore `agentscope_runtime` imports in copaw fallback path to prevent empty Manager replies.

**Bug Fixes**

- **CoPaw worker runtime environment**: CoPaw workers now prefer AgentTeams storage/runtime environment variables while preserving legacy HiClaw fallbacks, and Qwen-style model health preflights disable thinking for lightweight readiness checks.
Expand Down
9 changes: 8 additions & 1 deletion copaw/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,11 @@ RUN python -m venv /opt/venv/standard \
&& /opt/venv/standard/bin/pip install --no-cache-dir \
--index-url "${PIP_INDEX_URL}" \
--trusted-host "$(echo ${PIP_INDEX_URL} | sed 's|https\?://||;s|/.*||')" \
/tmp/copaw-worker/
/tmp/copaw-worker/ \
&& /opt/venv/standard/bin/pip install --no-cache-dir \
--index-url "${PIP_INDEX_URL}" \
--trusted-host "$(echo ${PIP_INDEX_URL} | sed 's|https\?://||;s|/.*||')" \
qwenpaw

# --- Patch CoPaw 1.0.2 Matrix channel indentation bug ---
# _sync_loop method def is indented one level too deep inside
Expand Down Expand Up @@ -144,6 +148,9 @@ RUN STANDARD_SITE=/opt/venv/standard/lib/python3.11/site-packages/copaw_worker \
# copaw-sync wrapper
RUN printf '#!/bin/bash\nexec python3 "/root/.copaw-worker/${HICLAW_WORKER_NAME}/skills/file-sync/scripts/copaw-sync.py" "$@"\n' \
> /usr/local/bin/copaw-sync && chmod +x /usr/local/bin/copaw-sync
# CoPaw runtime CLI (make it available in PATH for skills)
RUN ln -sf /opt/venv/standard/bin/copaw /usr/local/bin/copaw \
&& ln -sf /opt/venv/standard/bin/qwenpaw /usr/local/bin/qwenpaw

# Entrypoint script
COPY --chmod=755 scripts/copaw-worker-entrypoint.sh /opt/hiclaw/scripts/copaw-worker-entrypoint.sh
Expand Down
1 change: 1 addition & 0 deletions copaw/scripts/copaw-worker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ source /opt/hiclaw/scripts/lib/hiclaw-env.sh
WORKER_NAME="${AGENTTEAMS_WORKER_NAME:-${HICLAW_WORKER_NAME:-}}"
[ -n "${WORKER_NAME}" ] || { echo "AGENTTEAMS_WORKER_NAME is required" >&2; exit 1; }
INSTALL_DIR="/root/.copaw-worker"
export QWENPAW_WORKING_DIR="${INSTALL_DIR}/${WORKER_NAME}"
CONSOLE_PORT="${AGENTTEAMS_CONSOLE_PORT:-${HICLAW_CONSOLE_PORT:-}}"

log() {
Expand Down
Loading
Loading