Skip to content

ACP workflow: spawned run not observable from parent + chrome relay profile mismatch #33369

@kesslerio

Description

@kesslerio

Summary

ACP workflow in OpenClaw could start runs, but I could not reliably observe/completion-check them from the parent session due visibility restrictions. In the same flow, Chrome relay profile expectations also mismatched available browser profiles.

Impact

  • ACP task execution can be launched, but parent session cannot verify completion/details.
  • User-facing status updates become ambiguous ("run launched" but no readable result stream).
  • Browser relay instructions expecting profile=chrome failed in this environment.

Environment

  • Runtime: OpenClaw (Telegram group session)
  • Model: codex (openai-codex/gpt-5.3-codex)
  • Browser profiles reported: niemand, mac, openclaw

Reproduction

  1. Spawn ACP run:
{"runtime":"acp","agentId":"codex","mode":"run","task":"..."}
  1. Attempt to read child session output/history from parent session.
  2. Attempt browser relay tab attach with profile="chrome" per policy guidance.

Actual behavior

A) ACP session output visibility blocked

session_spawn accepted the run:

{
  "status": "accepted",
  "childSessionKey": "agent:codex:acp:8dd69e20-35ca-4daf-8a19-5c4b696b1f78",
  "runId": "012bbedf-018c-436c-8e2e-afdd2d7c6e44",
  "mode": "run",
  "note": "initial ACP task queued in isolated session; follow-ups continue in the bound thread."
}

But reading history failed:

{
  "status": "forbidden",
  "error": "Session history visibility is restricted. Set tools.sessions.visibility=all to allow cross-agent access."
}

B) Browser relay profile mismatch

Attempt with profile="chrome" failed:

{
  "status": "error",
  "error": "Error: Profile \"chrome\" not found. Available profiles: niemand, mac, openclaw"
}

Expected behavior

  • Parent session should have a supported/consistent way to observe ACP run completion + result payload (or an explicit completion callback channel) without requiring global visibility escalation.
  • Browser relay guidance should map to available profile names or provide aliasing/clear fallback when chrome is unavailable.

Suggested fixes

  1. ACP observability
    • Add a first-class sessions_wait / sessions_result for spawned ACP runs that does not require global sessions.visibility=all.
    • Or emit completion payload to parent session automatically for mode=run.
  2. Profile aliasing
    • Support chrome alias if relay is connected to a non-default profile, or expose "relay-attached profile" in browser status.
  3. Error UX
    • On forbidden history read, provide actionable alternative call path for parent-safe completion checks.

Notes

As a workaround, I switched to direct coding-agent workflow (Codex PTY) for implementation work, but that bypasses intended ACP orchestration visibility.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions