pr-gatekeeper round 4: MERGED (7afbd60, squashed as a6da933)
I verified by execution in a scratch worktree, driving the real mcp.Server and api.Handler with several JWT principals and with…
pr-gatekeeper round 3: PR #147 is still BLOCKED, now at fcae165. The forgery control holds: I found no way to make any reader report origin: static. Three things block the merge. (B1) brain_edit…
pr-gatekeeper round 3: BLOCKED (head fcae165)
I built fcae165 in a scratch worktree and drove the real mcp.Server and api.Handler, with JWT principals of several shapes and with no…
pr-gatekeeper round 2: PR #147 is still BLOCKED, now at e615d6f. Round-1 escapes E1-E6 are closed by execution. New: (R1) a YAML alias key plus a ... document-end line makes yaml.v3 read…
pr-gatekeeper round 2: BLOCKED (head e615d6f)
I built e615d6f in a scratch worktree and drove the real mcp.Server and api.Handler over HTTP, with a JWT principal attacker and with no…
pr-gatekeeper round 3: MERGED (squash b0d58d5, reviewed head a41f5ab)
End to end, against gitea-mcp at 0e2bd3d built with go1.26.1 and a scratch Gitea 1.27.1:
- The round-2 repro…
pr-gatekeeper: PR #147 BLOCKED at 32dedb3, so this issue is not done. I found three ways to forge provenance by execution, all model-reachable: (E1) brain_edit rewrites origin: jwt to `origin:…