feat(FN-3875): add GitHub tracking auth resolver and forced client auth mod

Implements a tracking auth resolver with forced GitHub client authentication mode, wiring it across the GitHub tracking lifecycle and settings UI. The feature spans six steps: adding the resolver, forced auth mode, routing tracking issue creation through the resolver, and wiring into lifecycle and s

Fusion-Task-Id: FN-3875
This commit is contained in:
Fusion
2026-05-10 05:20:26 -07:00
committed by gsxdsm
parent 752222c438
commit 860d18382d
33 changed files with 1402 additions and 242 deletions

View File

@@ -1,5 +1,7 @@
import type { GlobalSettings, ProjectSettings, Task } from "./types.js";
export const REPO_OVERRIDE_RE = /^[A-Za-z0-9._-]+\/[A-Za-z0-9._-]+$/;
export interface RepoSlug {
owner: string;
repo: string;
@@ -32,7 +34,7 @@ export function parseRepoSlug(input: string | undefined | null): RepoSlug | null
}
export function isValidRepoSlug(input: string): boolean {
return parseRepoSlug(input) !== null;
return REPO_OVERRIDE_RE.test(input.trim());
}
export function resolveTaskGithubTracking(

View File

@@ -1374,6 +1374,8 @@ export interface TaskCreateInput {
nodeId?: string;
/** Optional explicit user assignment for this task (used during review handoff) */
assigneeUserId?: string;
/** Per-task GitHub issue tracking overrides for Fusion-created linked issues. */
githubTracking?: Pick<TaskGithubTracking, "enabled" | "repoOverride">;
/** Review level for task execution — controls review rigor: 0=None, 1=Plan Only, 2=Plan and Code, 3=Full */
reviewLevel?: number;
/** Execution mode for task implementation.