Skip to content

feat(seer): Block coding-agent handoff for non-GitHub projects in the table#118588

Draft
billyvg wants to merge 1 commit into
masterfrom
feat/seer-table-gitlab-handoff-guard
Draft

feat(seer): Block coding-agent handoff for non-GitHub projects in the table#118588
billyvg wants to merge 1 commit into
masterfrom
feat/seer-table-gitlab-handoff-guard

Conversation

@billyvg

@billyvg billyvg commented Jun 26, 2026

Copy link
Copy Markdown
Member

Summary

Coding-agent handoff (Cursor, Claude Code, …) only works for GitHub repositories. In the Seer projects table (settings/seer/projects/), each row's Handoff to Agent dropdown previously let a user pick a coding agent regardless of the project's repos — which can't work for GitLab/Bitbucket/etc.

The table can't cheaply know every project's repo providers up front: the list endpoint only returns reposCount, and per-project lookups would be N queries. So this checks lazily on change: when a user picks a non-Seer agent for a row, it fetches that one project's repos and, if any is non-GitHub, shows an error toast and leaves the value on Seer — nothing is persisted. GitHub-only projects are unaffected.

Screen.Recording.2026-06-26.at.15.44.17.mov

Notes / trade-offs

  • UI guard only: a direct API caller could still set a coding agent for a non-GitHub project. a backend enforcement could be layered on later if desired.
  • Tiny first-selection latency before the cache warms, mitigated by the onMenuOpen prefetch + 60s cache.

🤖 Generated with Claude Code

… table

Coding-agent handoff only works for GitHub repositories. In the Seer projects
table each row's Handoff dropdown previously let a user pick a coding agent
regardless of the project's repos, which cannot work for GitLab/Bitbucket/etc.

The table can't cheaply know every project's repo providers up front (the list
endpoint only returns reposCount, and per-project lookups would be N queries), so
check lazily: when a non-Seer agent is selected, fetch that one project's repos
(prefetched on dropdown-open, cached) and, if any is non-GitHub, show an error
toast and leave the value on Seer without persisting. GitHub-only projects are
unaffected. This is a UI guard only; no backend change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jun 26, 2026
Comment on lines +33 to +35
export function isGithubRepoProvider(provider: string | undefined | null): boolean {
return Boolean(provider?.toLowerCase().includes('github'));
}

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We'll want to re-use the util from #118465

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant