mirror of
https://github.com/harivansh-afk/sandbox-agent.git
synced 2026-04-16 13:04:11 +00:00
feat(foundry): task owner git auth + manual owner change UI (#263)
* Add task owner git auth proposal and sandbox architecture docs - Add proposal for primary user per task with OAuth token injection for sandbox git operations (.context/proposal-task-owner-git-auth.md) - Document sandbox architecture constraints in CLAUDE.md: single sandbox per task assumption, OAuth token security implications, git auto-auth requirement, and git error surfacing rules Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Add proposals for reverting to queues and rivetkit sandbox resilience - proposal-revert-actions-to-queues.md: Detailed plan for reverting the actions-only pattern back to queues/workflows now that the RivetKit queue.iter() bug is fixed. Lists what to keep (lazy tasks, resolveTaskRepoId, sync override threading, E2B fixes, frontend fixes) vs what to revert (communication pattern only). - proposal-rivetkit-sandbox-resilience.md: Rivetkit sandbox actor changes for handling destroyed/paused sandboxes, keep-alive, and the UNIQUE constraint crash fix. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(foundry): add manual task owner change via UI dropdown Add an owner dropdown to the Overview tab that lets users reassign task ownership to any organization member. The owner's GitHub credentials are used for git operations in the sandbox. Full-stack implementation: - Backend: changeTaskOwnerManually action on task actor, routed through org actor's changeWorkspaceTaskOwner action, with primaryUser schema columns on both task and org index tables - Client: changeOwner method on workspace client (mock + remote) - Frontend: owner dropdown in right sidebar Overview tab showing org members, with avatar and role display - Shared: TaskWorkspaceChangeOwnerInput type and primaryUser fields on workspace snapshot types Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
167712ace7
commit
4111aebfce
22 changed files with 1114 additions and 11 deletions
|
|
@ -128,6 +128,10 @@ export interface WorkspaceTaskSummary {
|
|||
activeSessionId: string | null;
|
||||
/** Summary of sessions — no transcript content. */
|
||||
sessionsSummary: WorkspaceSessionSummary[];
|
||||
/** GitHub login of the current primary user (task owner). */
|
||||
primaryUserLogin: string | null;
|
||||
/** Avatar URL of the current primary user. */
|
||||
primaryUserAvatarUrl: string | null;
|
||||
}
|
||||
|
||||
/** Full task detail — only fetched when viewing a specific task. */
|
||||
|
|
@ -218,6 +222,10 @@ export interface WorkspaceTask {
|
|||
fileTree: WorkspaceFileTreeNode[];
|
||||
minutesUsed: number;
|
||||
activeSandboxId?: string | null;
|
||||
/** GitHub login of the current primary user (task owner). */
|
||||
primaryUserLogin?: string | null;
|
||||
/** Avatar URL of the current primary user. */
|
||||
primaryUserAvatarUrl?: string | null;
|
||||
}
|
||||
|
||||
export interface WorkspaceRepo {
|
||||
|
|
@ -295,6 +303,18 @@ export interface TaskWorkspaceSetSessionUnreadInput extends TaskWorkspaceSession
|
|||
unread: boolean;
|
||||
}
|
||||
|
||||
export interface TaskWorkspaceChangeOwnerInput {
|
||||
repoId: string;
|
||||
taskId: string;
|
||||
/** User ID of the target owner (from FoundryOrganizationMember.id). */
|
||||
targetUserId: string;
|
||||
/** Display name to use as fallback if GitHub login cannot be resolved. */
|
||||
targetUserName: string;
|
||||
/** Email to use as fallback if GitHub email cannot be resolved. */
|
||||
targetUserEmail: string;
|
||||
authSessionId?: string;
|
||||
}
|
||||
|
||||
export interface TaskWorkspaceDiffInput {
|
||||
repoId: string;
|
||||
taskId: string;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue