diff --git a/docs/settings-reference.md b/docs/settings-reference.md index b06c501e29..45624befd3 100644 --- a/docs/settings-reference.md +++ b/docs/settings-reference.md @@ -21,7 +21,7 @@ At runtime, settings are merged. **Project settings override global settings** w | `PUT /api/settings` | Update project settings only. | | `GET /api/settings/global` | Get global settings only. | | `PUT /api/settings/global` | Update global settings only. | -| `GET /api/settings/scopes` | Get separated `{ global, project }` view. | +| `GET /api/settings/scopes` | Get separated `{ global, project, workflowSettings }` view. | --- diff --git a/packages/dashboard/src/__tests__/routes-settings.test.ts b/packages/dashboard/src/__tests__/routes-settings.test.ts index 24f9919be7..1e4b8aaeae 100644 --- a/packages/dashboard/src/__tests__/routes-settings.test.ts +++ b/packages/dashboard/src/__tests__/routes-settings.test.ts @@ -1376,6 +1376,10 @@ describe("GET /settings/scopes", () => { expect(res.body.global.persistAgentThinkingLog).toBe(false); expect(res.body.project.maxConcurrent).toBe(4); expect(res.body.project.autoMerge).toBe(false); + expect(res.body.workflowSettings).toEqual({}); + expect(res.body.workflowSettings).not.toBeNull(); + expect(typeof res.body.workflowSettings).toBe("object"); + expect(Array.isArray(res.body.workflowSettings)).toBe(false); expect(res.body.project.persistAgentToolOutput).toBeUndefined(); expect(res.body.project.persistAgentThinkingLogPermanent).toBeUndefined(); expect(res.body.project.persistAgentThinkingLogEphemeral).toBeUndefined(); @@ -1398,6 +1402,9 @@ describe("GET /settings/scopes", () => { expect(res.body).toHaveProperty("global"); expect(res.body).toHaveProperty("project"); expect(res.body).toHaveProperty("workflowSettings"); + expect(res.body.workflowSettings).not.toBeNull(); + expect(typeof res.body.workflowSettings).toBe("object"); + expect(Array.isArray(res.body.workflowSettings)).toBe(false); // No unexpected top-level keys const keys = Object.keys(res.body); expect(keys).toHaveLength(3); @@ -1587,6 +1594,10 @@ describe("GET /settings/scopes with projectId scoping", () => { expect(projectStoreResolver.getOrCreateProjectStore).toHaveBeenCalledWith(projectId); expect(scopedStore.getSettingsByScopeFast).toHaveBeenCalled(); expect(defaultStore.getSettingsByScopeFast).not.toHaveBeenCalled(); + expect(res.body.workflowSettings).toEqual({}); + expect(res.body.workflowSettings).not.toBeNull(); + expect(typeof res.body.workflowSettings).toBe("object"); + expect(Array.isArray(res.body.workflowSettings)).toBe(false); expect(res.body.project.maxConcurrent).toBe(8); expect(res.body.project.planningProvider).toBe("anthropic"); });