fix: repair local approval resolution#87131
Conversation
13784d3 to
bb5ed5e
Compare
|
Codex review: needs maintainer review before merge. Reviewed May 26, 2026, 11:10 PM ET / 03:10 UTC. Summary PR surface: Source +6, Tests +217. Total +223 across 3 files. Reproducibility: yes. current main's source path sends the runtime token based on loopback URL shape, and the PR's real Gateway E2E gives a concrete before/after scenario for generated local versus configured loopback remote approval resolution. I did not rerun the E2E locally because this was a read-only review. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge Security Review detailsBest possible solution: Land the source-based approval-runtime boundary after maintainer review accepts the fail-closed behavior for explicit, env, and configured loopback gateway URLs. Do we have a high-confidence way to reproduce the issue? Yes; current main's source path sends the runtime token based on loopback URL shape, and the PR's real Gateway E2E gives a concrete before/after scenario for generated local versus configured loopback remote approval resolution. I did not rerun the E2E locally because this was a read-only review. Is this the best way to solve the issue? Yes; using the bootstrap urlSource is narrower and more maintainable than inferring authority from loopback hostnames. A typed urlSource union would make future edits harder to drift, but the current patch and tests are sufficient for this PR. AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against e7f644c7b137. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Source +6, Tests +217. Total +223 across 3 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
ClawSweeper PR egg ✨ Hatched: 💎 rare Neon Patch Peep Hatch commandComment Hatchability rules:
Rarity: 💎 rare. What is this egg doing here?
|
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>
Co-authored-by: fuller-stack-dev <263060202+fuller-stack-dev@users.noreply.github.com>
bb5ed5e to
cad41b1
Compare
|
Landed via squash merge.
Thanks @fuller-stack-dev for the original report and patch. |
Summary
Verification
Behavior addressed: approval resolution from local channel/plugin surfaces keeps same-process runtime authority, while configured or override loopback gateway URLs are treated as remote/tunnel targets and do not receive the process-local approval runtime token.
Real environment tested: Crabbox AWS Linux c7a.8xlarge, Node v24.16.0, pnpm 11.2.2, real loopback Gateway server in src/gateway/operator-approvals-client.e2e.test.ts.
Exact steps or command run after this patch: node scripts/run-vitest.mjs run src/gateway/operator-approvals-client.test.ts src/gateway/operator-approvals-client.e2e.test.ts src/agents/tools/gateway.test.ts extensions/discord/src/monitor/exec-approvals.test.ts --reporter=dot --pool=forks --no-file-parallelism --testTimeout=120000
Evidence after fix: 5 test files passed, 68 tests passed; formatter check passed on all touched files.
Observed result after fix: default generated local gateway resolution succeeds with runtime authority; configured loopback remote URL resolution is rejected as approval not found without runtime authority.
What was not tested: full repository check suite and live Discord click against Discord API.
Keeps contributor credit from @fuller-stack-dev.