/**
 * Feature flags — compile-time UI/feature visibility toggles.
 *
 * Single source of truth for "temporary" flags that hide in-flight features,
 * gate partially-built panels, or carry a known rollback. Each entry carries
 * the metadata needed to answer "why is this off and when can it go?" so
 * flags don't rot into undiscoverable tombstones.
 *
 * This is intentionally NOT a runtime feature-flag system — no user
 * segmentation, no A/B, no env-var overrides. Just a typed map of booleans
 * with audit metadata. Flipping a flag is a code change.
 *
 * Adding a flag:
 *   1. Add an entry below with every metadata field populated.
 *   2. Import `FEATURE_FLAGS` at the call site and read `.enabled`.
 *   3. When the re-enable condition is met, remove the entry and the gate.
 *
 * See docs/guides/feature-flags.md for the full lifecycle.
 */
/**
 * Registry of all active feature flags across AILF packages.
 *
 * Consumers read values directly:
 *   if (FEATURE_FLAGS.showFailureModes.enabled) { ... }
 *
 * Adding a key here extends the `FeatureFlagKey` union automatically; typos
 * at call sites fail at compile time.
 */
export const FEATURE_FLAGS = {
    showFailureModes: {
        enabled: false,
        rationale: 'Current classification is too broad (majority "Unclassified") to be actionable in the diagnostics view.',
        reEnableWhen: "Failure taxonomy is refined so non-Unclassified buckets carry meaningful signal.",
        relatedWorkItem: "W0037-detect-model-output-failures",
        addedAt: "2026-04-22",
    },
    showRegressedSinceLastRun: {
        enabled: false,
        rationale: "Bare list of regressed area names lacks explanatory context for why each regressed.",
        reEnableWhen: "Per-area regression attribution can be surfaced alongside the list.",
        relatedWorkItem: null,
        addedAt: "2026-04-22",
    },
};
