feat(FN-4153): complete Step 1 — add ephemeralAgentsEnabled project setting

Fusion-Task-Id: FN-4153
Fusion-Task-Lineage: 6ec09467-c7a0-4a9d-9a09-16d5ef6f7a86
This commit is contained in:
Fusion
2026-05-13 00:53:35 -07:00
committed by gsxdsm
parent dcbb76f75c
commit a5b665786a
3 changed files with 13 additions and 0 deletions

View File

@@ -79,6 +79,12 @@ describe("settings key parity", () => {
expect(isGlobalSettingsKey("executorAllowSiblingBranchRename")).toBe(false);
});
it("defaults ephemeralAgentsEnabled to true and keeps it project-scoped", () => {
expect(DEFAULT_PROJECT_SETTINGS.ephemeralAgentsEnabled).toBe(true);
expect(isProjectSettingsKey("ephemeralAgentsEnabled")).toBe(true);
expect(isGlobalSettingsKey("ephemeralAgentsEnabled")).toBe(false);
});
it("defaults completionDocumentationMode to off", () => {
expect(DEFAULT_PROJECT_SETTINGS.completionDocumentationMode).toBe("off");
});

View File

@@ -222,6 +222,7 @@ export const DEFAULT_PROJECT_SETTINGS = {
verificationFixRetries: 3,
buildTimeoutMs: 300_000,
requirePlanApproval: false,
ephemeralAgentsEnabled: true,
agentProvisioning: {},
specStalenessEnabled: false,
specStalenessMaxAgeMs: 6 * 60 * 60 * 1000,

View File

@@ -2248,6 +2248,12 @@ export interface ProjectSettings {
* remain in triage with status "awaiting-approval" until a user approves
* or rejects the plan. Default: false. */
requirePlanApproval?: boolean;
/** Controls task-worker execution mode.
* - true (default): spawn short-lived `executor-FN-XXXX` ephemeral workers per task
* - false: disable ephemeral workers; scheduler auto-assigns dispatchable tasks
* to permanent executor agents using the reporting chain heuristic.
* Tasks without an eligible permanent executor remain queued. */
ephemeralAgentsEnabled?: boolean;
/** Approval policy for agent provisioning tools (fn_agent_create/fn_agent_delete). */
agentProvisioning?: {
approvalMode?: AgentProvisioningApprovalMode;