feat(decisions): gate Decisions sidebar behind experimental flag (PAP-13481)

Add an `enableDecisions` instance experimental setting (default off), gate the
Decisions sidebar item on it, and move Decisions below Inbox in the sidebar.
Adds a toggle card on the Experimental settings page. Includes parity tests
for the validator default/patch, service normalization, the settings toggle,
and updates the full-object normalization assertion.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
DottaandClaude Opus 4.8 committed 2026-07-10 20:09:29 +00:00
1 parent 042bb231d9
commit 8db9fa6a14
8 files changed
+86 -7

No files matched your search

@@ -32,6 +32,7 @@ describe("instance settings service", () => {
enableTaskWatchdogs: true,
enableCloudSync: true,
enableBuiltInAgents: true,
enableDecisions: false,
enableGoalsSidebarLink: true,
enableServerInfoDebugView: true,
autoRestartDevServerWhenIdle: true,
@@ -76,6 +77,14 @@ describe("instance settings service", () => {
).toBe(false);
});
it("defaults enableDecisions to false for empty and legacy stored settings", () => {
expect(normalizeExperimentalSettings(undefined).enableDecisions).toBe(false);
expect(normalizeExperimentalSettings({}).enableDecisions).toBe(false);
expect(
normalizeExperimentalSettings({ enableStreamlinedLeftNavigation: true }).enableDecisions,
).toBe(false);
});
it("defaults workspace branch repair settings to true for empty and legacy stored settings", () => {
expect(normalizeExperimentalSettings(undefined).enableWorkspaceBranchReconcileForward).toBe(true);
expect(normalizeExperimentalSettings({}).enableWorkspaceBranchReconcileForward).toBe(true);
+2
View File
@@ -56,6 +56,7 @@ export function normalizeExperimentalSettings(raw: unknown): InstanceExperimenta
enableCloudSync: parsed.data.enableCloudSync ?? false,
enableExternalObjects: parsed.data.enableExternalObjects ?? false,
enableBuiltInAgents: parsed.data.enableBuiltInAgents ?? false,
enableDecisions: parsed.data.enableDecisions ?? false,
enableGoalsSidebarLink: parsed.data.enableGoalsSidebarLink ?? false,
enableServerInfoDebugView: parsed.data.enableServerInfoDebugView ?? false,
autoRestartDevServerWhenIdle: parsed.data.autoRestartDevServerWhenIdle ?? false,
@@ -81,6 +82,7 @@ export function normalizeExperimentalSettings(raw: unknown): InstanceExperimenta
enableCloudSync: false,
enableExternalObjects: false,
enableBuiltInAgents: false,
enableDecisions: false,
enableGoalsSidebarLink: false,
enableServerInfoDebugView: false,
autoRestartDevServerWhenIdle: false,