feat(dashboard): pending-merge card + OK-to-resync (av-raf.4)#1508
Merged
Conversation
…sync Phase 3 of conflict-free results sync (av-raf.4). When a results push hits a genuine conflict, Layer 2 now pushes local work to a temp branch and returns a `pending_merge` block. The Dashboard surfaces this as a "Pending merge" card with an "Open merge on GitHub" link (the PR is the conflict surface — no merge UI in AgentV) and an "I merged it — resync" button that calls the confirm-merge endpoint to resume canonical sync. - types.ts: add snake_case `pending_merge` block to RemoteStatusResponse - project-sync-status.ts: translate to camelCase PendingMergeView; tailor the needs_human_merge view (warn tone, "Pending merge", GitHub merge guidance) - api.ts: confirmRemoteResultsMergeApi client (scoped + unscoped) - RunSourceToolbar.tsx: pending-merge card with GitHub link + resync button - routes: wire confirm-merge handlers in both index and project views - tests: pending-merge view (GitHub + non-GitHub remotes) Deferred: "Merged remote (auto)" toast needs a precise core wire signal; the pull+push heuristic is ambiguous, so it is left out of this PR. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Deploying agentv with
|
| Latest commit: |
39cb80d
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://35156818.agentv.pages.dev |
| Branch Preview URL: | https://feat-av-raf-dashboard-pendin.agentv.pages.dev |
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Phase 3 — Dashboard pending-merge UX (av-raf.4)
Final phase of the conflict-free results sync without force push epic (av-raf). Builds the Dashboard surface for the Layer 2 human-merge fallback that Phase 2 (#1507) added to core.
What this does
When a results push hits a genuine, non-auto-mergeable conflict, core pushes the local work to a timestamped temp branch (never canonical, never force) and returns a
pending_mergeblock. The Dashboard now:compare_url) — GitHub's PR/compare is the conflict surface; AgentV builds no merge/diff/accept UI.Changes
lib/types.ts: snake_casepending_mergeblock onRemoteStatusResponse.lib/project-sync-status.ts:PendingMergeView(camelCase, translated at boundary);needs_human_mergeview gains the pending-merge card content; no "force" wording.lib/api.ts:confirmRemoteResultsMergeApi(scoped + unscoped).components/RunSourceToolbar.tsx: the card + GitHub link + resync button.routes/index.tsx,routes/projects/$projectId.tsx: confirm-merge handlers wired.Verification
bun test apps/dashboard/→ 125 pass / 0 failbunx tsc -b(after core build) → 0 errorsbun run lint→ clean.agents/verification.md(evidence to agentv-private).Deferred (non-goal here)
The "Merged remote (auto)" toast needs a precise core wire signal — the available pull+push flags don't reliably distinguish an auto-merge from a normal sync, so it is intentionally left out rather than shipping a misleading label.
Closes av-raf.4.