Skip to content

Salvage bot's post-merge orphan 17ec640: login-callback response flush + workspace-seeder test mock fix #248

@kjgbot

Description

@kjgbot

Context

agent-relay-code[bot] pushes pr-reviewer fixes to PR branches ~5 minutes after merge (observed on #244 → salvaged as #247, and now on #246). This issue parks the second orphan, 17ec640 ("chore: apply pr-reviewer fixes for #246" on the dead fix/245-ws-flake-hardening branch), per in-run triage: both changes are real but neither blocked the #244+#246+#247 release cut, and the run had converged to operator handoff.

Diff refs: git diff 26e838c 17ec640 (drop the .trajectories/* bookkeeping).

The two changes

(a) runCloudLogin callback: flush HTTP responses before signaling — operational caveat

cmd/relayfile-cli/main.go: the login callback handler writes its HTTP response (success page or error) and then signals tokenCh/errCh — the process can proceed/exit before the response is flushed, leaving the browser tab hanging or blank. The orphan adds an explicit http.NewResponseController(w).Flush() after every write.

⚠️ If relayfile login hangs a browser tab during a credential unblock, this fix is the first suspect/remedy. The login path demonstrably works today (#212), so this is a robustness fix, not a known active failure — but it touches the exact path operators walk to mint workspace credentials (e.g. for the staged rw_7ccfea89 residue sweep), so review it carefully rather than rubber-stamping. Per claude-1's ruling: this change must NOT ride into the imminent #244+#246+#247 release cut — it waits for normal review on its own schedule.

(b) workspace-seeder-tar.test.ts: mock ./client.js instead of @relayfile/sdk

Mocking the package self-import requires the SDK's own dist to exist (vitest fails collection with "Failed to resolve entry for package @relayfile/sdk" on a fresh checkout until npm run build has run — reproduced in-run on the #244 branch). Mocking the relative module removes the build-order dependency. Pure DX fix.

Process note

The bot's ~5-min post-merge push cadence means every merge in this pipeline should EXPECT an orphan push and triage it (stale vs actionable), not be surprised by it. The bot's in-run record: 4-for-4 real catches pre-merge plus two orphan encores, all substantive.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions