The provider roster advertises supportsFork: true for acp-cursor, but cursor-agent does not advertise ACP session/fork support, so bb thread fork on a cursor thread births an errored thread (system/error: "does not advertise session/fork support"). The guard itself is correct; the roster capability is wrong for this agent. The ACP fork path works where the agent supports it (verified live on acp-opencode).
Found during the narrow-grammar cutover live QA (branch narrow-grammar-prototype); reproduced byte-identical on origin/main — pre-existing, not a cutover regression. Evidence: /tmp/narrow-grammar-gate.md (finding 2) from that run.
Likely fix direction: the ACP tier should project fork capability per-agent from the agent's advertised sessionCapabilities.fork at initialize time (the bridge already probes it), not from the tier-wide declaration.
AGENT GENERATED: by Claude Fable 5
The provider roster advertises
supportsFork: trueforacp-cursor, but cursor-agent does not advertise ACPsession/forksupport, sobb thread forkon a cursor thread births an errored thread (system/error: "does not advertise session/fork support"). The guard itself is correct; the roster capability is wrong for this agent. The ACP fork path works where the agent supports it (verified live on acp-opencode).Found during the narrow-grammar cutover live QA (branch
narrow-grammar-prototype); reproduced byte-identical on origin/main — pre-existing, not a cutover regression. Evidence: /tmp/narrow-grammar-gate.md (finding 2) from that run.Likely fix direction: the ACP tier should project fork capability per-agent from the agent's advertised
sessionCapabilities.forkat initialize time (the bridge already probes it), not from the tier-wide declaration.