Fix canvas navigation URL handling#711
Conversation
|
Codex review: found issues before merge. Reviewed June 11, 2026, 8:29 AM ET / 12:29 UTC. Summary Reproducibility: yes. from source rather than a Windows run: approve a localhost/private canvas.navigate request and NodeService will call _canvasWindow.Navigate, where CanvasWindow still rejects that URL class via DangerousUrlPattern. 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:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Align the approval result with CanvasWindow navigation so approved high-risk http(s) destinations can load only after explicit consent, denied destinations return false, gateway rewrites stay scoped, and maintainers explicitly accept the WebView-vs-browser boundary. Do we have a high-confidence way to reproduce the issue? Yes, from source rather than a Windows run: approve a localhost/private canvas.navigate request and NodeService will call _canvasWindow.Navigate, where CanvasWindow still rejects that URL class via DangerousUrlPattern. Is this the best way to solve the issue? No. The direction is plausible, but the current patch does not align the approval gate with CanvasWindow's private-host block and changes prompt-disclosure semantics without clear maintainer signoff. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 913ba4e8f504. Label changesLabel changes:
Label justifications:
Evidence reviewedSecurity concerns:
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
|
48685d4 to
091d7aa
Compare
|
@clawsweeper re-review Updated after review: preserved configured-gateway-to-effective-tunnel rewrites, added behavior tests for external/tunnel/relative URL rewriting, and added live Windows/WebView MCP proof to the PR body. |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review Retrying because the previous ClawSweeper run failed during target repository checkout before reviewing the updated PR. |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
|
@clawsweeper re-review Retrying now that the previous ClawSweeper runs failed before reviewing the updated commit. The PR body includes the review fix, behavior tests, validation, and live Windows/WebView proof. |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
091d7aa to
a6fa10a
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
a6fa10a to
764265d
Compare
|
@clawsweeper re-review |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review |
Summary
navigated: falsewhen the approval prompt denies navigationWhy
Review Fix
navigated: false, opener: denied.Proof
Live Windows/WebView proof via local MCP against this branch, using the source-dev profile:
Redacted app log proof:
Tunnel/gateway rewrite proof is covered by
CanvasGatewayUrlRewriterTests:Validation
Results: