This repository was archived by the owner on Jun 8, 2026. It is now read-only.
Conversation
Code Review SummaryStatus: Changes Requested Reviewers: Bug Hunter A, Bug Hunter B, Unified Auditor, Premise Reviewer, cloud-command-executor-specialist Findings
BLOCKING Issues (must fix)
HIGH Issues (should fix)
MEDIUM Issues (consider)
Validation Stats
Recommendation: Address the SSRF security issue and cancel handler bug before merging. The duplicate handler DRY violations are significant tech debt but not blocking. |
shafty023
added a commit
that referenced
this pull request
Mar 19, 2026
- Remove duplicate isProcessRunning/isTerminalStatus from job-snapshot - Extract shared handlePrepare/handleConfirm to deduplicate routes - Remove debug console.log from prepare handler - Cancel handler: treat 404 as success for DB step (loop already gone) - Confirm handler: don't overwrite RUNNING with QUEUED (add existing guard) - Fix list-running-jobs: exclude terminal snapshots from running list - Fix refreshJobs: add symmetric listCompletedJobs guard - Fix renderJobCard: null-safe job.command fallback
Gateway-side changes for the Engineer Start Planning integration with the platform Loop system. - Replace single gateway plan-loop operation with prepare/confirm pattern - Confirm handler computes loop-style worktree from artifactSlug - Cancel handler uses JobStore for correct worktree PID lookup - Allow localhost in SSRF guard for local dev loop callbacks - Forward DELETE request bodies through CloudRelay executor - Add JobStore with active/terminal migration and staleness expiry - Add job snapshot enrichment with ghost QUEUED job expiry (60s) - Status handler falls back to JobStore worktree path - Persist loopId/artifactId in gateway session schema - Add running/completed job IPC handlers with reconciliation
Stop trusting body.apiBaseUrl from relay payloads. The loop handler now derives the callback URL from the gateway's configured API origin (getApiOrigin) instead of the caller-supplied value. This eliminates the SSRF primitive where a relay command could redirect loop event callbacks to arbitrary endpoints. - Derive apiBaseUrl from getApiOrigin() at request start, return 503 if not configured - Thread trusted origin through all callback paths: started event, error events, completion handler, artifact upload - Mark body.apiBaseUrl as deprecated/optional in LoopRequestBody - Delete validateApiBaseUrl, extractIPv4, isPrivateIPv4 (no callers) - Add SSRF tests proving all outbound requests use configured origin regardless of body.apiBaseUrl content
- Remove duplicate isProcessRunning/isTerminalStatus from job-snapshot - Extract shared handlePrepare/handleConfirm to deduplicate routes - Remove debug console.log from prepare handler - Cancel handler: treat 404 as success for DB step (loop already gone) - Confirm handler: don't overwrite RUNNING with QUEUED (add existing guard) - Fix list-running-jobs: exclude terminal snapshots from running list - Fix refreshJobs: add symmetric listCompletedJobs guard - Fix renderJobCard: null-safe job.command fallback
- Remove unused `expandHome` import in symphony-plan-loop.ts - Update readLaunchMetadata / writeLaunchMetadata test expectations to include new LaunchMetadata fields (artifactId, issueId, loopId, ticketTitle) added on main Testing: `just desktop-lint`, `just desktop-typecheck`, `just desktop-test` all pass Risks: None -- test-only + trivial lint fix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Gateway-side changes for the Engineer Start Planning integration with the platform Loop system.