FN-6126: enable workflow experimental flags by default

Turn on the workflow rollout flags by default and update docs/tests for the new opt-out behavior.

- default workflowColumns, workflowGraphExecutor, workflowInterpreterDualObserve, and workflowInterpreterAuthoritative to enabled in global settings
- update workflow docs and concepts to describe explicit flag-off overrides instead of default-off rollout gating
- remove redundant demo/test setup that manually enabled workflow columns and keep characterization coverage for both enabled and disabled states
- add a changeset for the published CLI package documenting the default-on workflow rollout

Files changed:
 .changeset/fn-6126-workflow-flags-default-on.md                |  5 +++++
 CONCEPTS.md                                                    |  4 ++--
 demo/seed.ts                                                   |  1 -
 docs/workflow-steps.md                                         | 10 +++++-----
 packages/core/src/__tests__/move-task-characterization.test.ts |  4 +---
 packages/core/src/settings-schema.ts                           |  7 ++++++-
 packages/core/src/types.ts                                     |  4 +++-
 packages/core/src/workflow-columns-settings.ts                 |  4 ++--
 8 files changed, 24 insertions(+), 15 deletions(-)

Fusion-Task-Id: FN-6126

Fusion-Task-Lineage: 334283a6-e80a-42d0-bf66-68f88a12e287
This commit is contained in:
gsxdsm
2026-06-09 14:10:01 -07:00
parent 19f8d86152
commit 0b7549a534
8 changed files with 24 additions and 15 deletions

View File

@@ -39,9 +39,7 @@ for (const flag of flagStates) {
beforeEach(async () => {
await harness.beforeEach();
store = harness.store();
if (flag.workflowColumns) {
await store.updateGlobalSettings({ experimentalFeatures: { workflowColumns: true } });
}
await store.updateGlobalSettings({ experimentalFeatures: { workflowColumns: flag.workflowColumns } });
});
afterEach(async () => {

View File

@@ -225,7 +225,12 @@ export const DEFAULT_GLOBAL_SETTINGS = {
onFailure: "fail",
},
owningNodeHandoffPolicy: "reassign-to-local",
experimentalFeatures: {},
experimentalFeatures: {
workflowColumns: true,
workflowGraphExecutor: true,
workflowInterpreterDualObserve: true,
workflowInterpreterAuthoritative: true,
},
cliAgents: {},
} satisfies CompleteSettings<GlobalSettings>;

View File

@@ -3077,7 +3077,9 @@ export interface GlobalSettings {
* "another-experiment": false
* }
*
* Default: {} (empty object — no experimental features enabled). */
* Default: workflow columns, graph executor, dual-observe, and authoritative
* interpreter flags enabled; operators may explicitly set individual flags
* false while rollout controls remain available. */
experimentalFeatures?: Record<string, boolean>;
/** Per-adapter CLI-agent launch configuration (CLI Agent Executor, U15).
* Keyed by adapter id (e.g. `"claude-code"`, `"codex"`, `"generic"`). Each

View File

@@ -4,8 +4,8 @@ import type { Settings } from "./types.js";
/**
* The `experimentalFeatures.workflowColumns` flag (KTD-8). OFF: the legacy
* enum/`VALID_TRANSITIONS` path runs untouched. ON: `moveTaskInternal` resolves
* each task's workflow column graph + trait guards. Default OFF until the
* transition-parity suite and field observations prove zero drift (U12).
* each task's workflow column graph + trait guards. The workflow-resolved path
* is now default-on while the explicit OFF override remains available.
*
* Mirrors `isSandboxExperimentalEnabled` / `isEvalsViewEnabled` — a thin,
* named accessor over the shared experimental-features map so the literal flag