Skip to content

compat(agent): re-verify Codex Room approvals on current codex-acp #426

Description

@madawei2699

Why

Free4Chat #297 classified Codex Room approval as an upstream limitation based on older codex-acp versions.

Free4Chat currently pins @agentclientprotocol/codex-acp@1.6.2. Upstream changed materially after that: codex-acp 1.7.0 added ACP v1 permission presentation (agentclientprotocol/codex-acp#405). Current latest is 1.12.0, and current main contains explicit mappings for item/commandExecution/requestApproval, item/fileChange/requestApproval, item/permissions/requestApproval → ACP session/request_permission.

The old Free4Chat compatibility result therefore has to be re-verified against current upstream.

Remaining upstream uncertainty

Permission presentation support does NOT imply every Codex approval path is correct. Still-open upstream evidence:

Goal

Determine current real behavior, not design a new Free4Chat permission system. Classify the current Codex bridge as one of:

  • ROOM APPROVAL VERIFIED
  • PARTIAL
  • UPSTREAM APP-SERVER LIMITATION
  • UPSTREAM BRIDGE LIMITATION

Acceptance

  • probe current codex-acp 1.12.0 against the current Free4Chat pin 1.6.2 in a disposable workspace;
  • choose the narrowest mode/policy that is supposed to produce manual approval (do not assume old INITIAL_AGENT_MODE semantics; do not permanently widen Free4Chat's read-only policy — an isolated alternate mode/config is acceptable for the probe);
  • trigger real command/file approval and trace the exact layer:
    Codex app-server requestApproval
    → codex-acp session/request_permission
    → Free4Chat Room approval card
    → exact native option
    → same turn continues (allow) / action prevented (deny);
  • if PASS: run the Codex serial regression on 1.12.0 (ordinary Task, >2 min turn, Task B queued, interrupt, follow-up, session behavior, permission allow/reject) and only then decide whether Free4Chat should bump its launcher pin — Codex stays serial, no concurrency, TaskSessionContinuation unchanged;
  • if FAIL: identify the exact upstream repo (bridge vs app-server) and add sanitized evidence there with a concise reproduction — no duplicate issues, no credentials/private paths;
  • update compat(agent): track built-in Harness Room-approval behavior after #286 #297's historical matrix by comment/link only after re-verification;
  • no Free4Chat fake permission policy.

Refs

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions