feat(lanes): auto-setup (profile/agents/mcp) after Add Lane (F5)
This commit is contained in:
@@ -41,6 +41,11 @@ export function AddLaneModal({
|
||||
const [branchesError, setBranchesError] = useState<string | null>(null);
|
||||
const [busy, setBusy] = useState(false);
|
||||
const [error, setError] = useState<string | null>(null);
|
||||
const [setupResult, setSetupResult] = useState<{
|
||||
profile: "scaffolded" | "skipped" | "failed";
|
||||
agents: "ok" | "failed";
|
||||
mcp: "ok" | "failed";
|
||||
} | null>(null);
|
||||
|
||||
const reset = () => {
|
||||
setSourceRepo("");
|
||||
@@ -50,6 +55,7 @@ export function AddLaneModal({
|
||||
setBranchesError(null);
|
||||
setError(null);
|
||||
setBusy(false);
|
||||
setSetupResult(null);
|
||||
};
|
||||
|
||||
// Look up the repo's branches once the path settles - debounced so every
|
||||
@@ -96,6 +102,32 @@ export function AddLaneModal({
|
||||
title: name,
|
||||
base: base || undefined,
|
||||
});
|
||||
|
||||
const [profileOutcome, agentsOutcome, mcpOutcome] = await Promise.allSettled([
|
||||
api.lanes.profileInit(result.lane.id),
|
||||
api.lanes.agentsInstall(result.lane.id),
|
||||
api.lanes.mcpSync(result.lane.id),
|
||||
]);
|
||||
setSetupResult({
|
||||
profile:
|
||||
profileOutcome.status === "fulfilled"
|
||||
? profileOutcome.value.scaffolded
|
||||
? "scaffolded"
|
||||
: "skipped"
|
||||
: "failed",
|
||||
agents: agentsOutcome.status === "fulfilled" ? "ok" : "failed",
|
||||
mcp: mcpOutcome.status === "fulfilled" ? "ok" : "failed",
|
||||
});
|
||||
|
||||
if (import.meta.env.DEV) {
|
||||
console.info("[add-lane] auto-setup result:", {
|
||||
profile:
|
||||
profileOutcome.status === "fulfilled" ? profileOutcome.value : profileOutcome.reason,
|
||||
agents: agentsOutcome.status === "fulfilled" ? agentsOutcome.value : agentsOutcome.reason,
|
||||
mcp: mcpOutcome.status === "fulfilled" ? mcpOutcome.value : mcpOutcome.reason,
|
||||
});
|
||||
}
|
||||
|
||||
reset();
|
||||
onAdded(result.lane);
|
||||
onClose();
|
||||
|
||||
Reference in New Issue
Block a user