You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
confirm_gate leaves the handler call outside _refusal_reaches_the_caller #371
confirm_gate closes its _refusal_reaches_the_caller() block before invoking the handler, so a domain refusal raised inside continuum_confirm would reach the client as the opaque Error executing tool continuum_confirm instead of its own message.
The difference
guard calls the handler inside the context manager:
continuum_confirm calls ctx.storage.append_event(run_id, ...), which raises RunNotFound for an unknown run. Under guard that becomes a ToolError carrying no such run: '<id>'. Here it stays a bare domain exception, which is the case _refusal_reaches_the_caller documents as needing conversion: "a run that does not exist. Each answer is only useful if the caller is told which one it was."
Severity
Latent. Not reproducible in the default configuration, because confirmation refuses every caller before the body runs when CONTINUUM_MCP_CONFIRM_TOKEN is unset. It becomes reachable as soon as an operator opts in, which is exactly when a confirm call against a mistyped run id is likely.
Found by inspection while auditing the MCP surface, not by observation. Flagging it rather than filing it as reproduced.
Suggested fix
Move return fn(*args, **kwargs) inside the with block, matching guard. The authenticate-before-authorize ordering that the surrounding comment protects is unaffected.
A test asserting that both decorators convert a domain exception raised by the handler body would keep the two from drifting again.
Reopened and assigned to @zynx-real, who claimed this at 09:40 UTC and opened #377 at 09:54. I merged a duplicate fix in #379 at 11:14 without checking, which was my error; #381 has reverted it so #377 is the live fix. Details and the one remaining changelog conflict are in #377.
Activity
zynx-real commentedon Aug 25, 2026
Hi! I’d like to work on this issue if it’s available.
revert: take back confirm_gate fix to credit #377 (#381)
Cyrax321 commentedon Aug 25, 2026
Reopened and assigned to @zynx-real, who claimed this at 09:40 UTC and opened #377 at 09:54. I merged a duplicate fix in #379 at 11:14 without checking, which was my error; #381 has reverted it so #377 is the live fix. Details and the one remaining changelog conflict are in #377.
fix(recovery): do not say nothing is wrong over an unresolved side ef…