@principles/core 1.270.0 → 1.270.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (167) hide show
  1. package/dist/runtime-v2/__tests__/architecture-regression.test.js +12 -2
  2. package/dist/runtime-v2/__tests__/architecture-regression.test.js.map +1 -1
  3. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js +1 -1
  4. package/dist/runtime-v2/__tests__/attack-e2e-pipeline-smoke.test.js.map +1 -1
  5. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts +2 -0
  6. package/dist/runtime-v2/__tests__/owner-identity.test.d.ts.map +1 -0
  7. package/dist/runtime-v2/__tests__/owner-identity.test.js +147 -0
  8. package/dist/runtime-v2/__tests__/owner-identity.test.js.map +1 -0
  9. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts +18 -0
  10. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.d.ts.map +1 -0
  11. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js +303 -0
  12. package/dist/runtime-v2/__tests__/product-telemetry-contract.test.js.map +1 -0
  13. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js +40 -0
  14. package/dist/runtime-v2/__tests__/recovery-actions-log.test.js.map +1 -1
  15. package/dist/runtime-v2/__tests__/status-contract.test.d.ts +2 -0
  16. package/dist/runtime-v2/__tests__/status-contract.test.d.ts.map +1 -0
  17. package/dist/runtime-v2/__tests__/status-contract.test.js +107 -0
  18. package/dist/runtime-v2/__tests__/status-contract.test.js.map +1 -0
  19. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js +1 -1
  20. package/dist/runtime-v2/adapter/__tests__/chaos-json-repair.test.js.map +1 -1
  21. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js +91 -1
  22. package/dist/runtime-v2/adapter/__tests__/json-extractor.test.js.map +1 -1
  23. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js +59 -12
  24. package/dist/runtime-v2/adapter/__tests__/pi-ai-runtime-adapter.test.js.map +1 -1
  25. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js +10 -9
  26. package/dist/runtime-v2/adapter/__tests__/runtime-config-contract.test.js.map +1 -1
  27. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js +42 -1
  28. package/dist/runtime-v2/adapter/__tests__/structured-output-repair.test.js.map +1 -1
  29. package/dist/runtime-v2/adapter/json-extractor.d.ts +25 -0
  30. package/dist/runtime-v2/adapter/json-extractor.d.ts.map +1 -1
  31. package/dist/runtime-v2/adapter/json-extractor.js +126 -0
  32. package/dist/runtime-v2/adapter/json-extractor.js.map +1 -1
  33. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts +9 -4
  34. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.d.ts.map +1 -1
  35. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js +9 -4
  36. package/dist/runtime-v2/adapter/l2-agent-loop-adapter.js.map +1 -1
  37. package/dist/runtime-v2/adapter/output-repair-contract.d.ts +5 -1
  38. package/dist/runtime-v2/adapter/output-repair-contract.d.ts.map +1 -1
  39. package/dist/runtime-v2/adapter/output-repair-contract.js +4 -1
  40. package/dist/runtime-v2/adapter/output-repair-contract.js.map +1 -1
  41. package/dist/runtime-v2/adapter/pi-ai-catalog.d.ts +7 -0
  42. package/dist/runtime-v2/adapter/pi-ai-catalog.d.ts.map +1 -0
  43. package/dist/runtime-v2/adapter/pi-ai-catalog.js +19 -0
  44. package/dist/runtime-v2/adapter/pi-ai-catalog.js.map +1 -0
  45. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts +13 -15
  46. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.d.ts.map +1 -1
  47. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js +104 -37
  48. package/dist/runtime-v2/adapter/pi-ai-runtime-adapter.js.map +1 -1
  49. package/dist/runtime-v2/adapter/structured-output-repair.d.ts +16 -1
  50. package/dist/runtime-v2/adapter/structured-output-repair.d.ts.map +1 -1
  51. package/dist/runtime-v2/adapter/structured-output-repair.js +38 -6
  52. package/dist/runtime-v2/adapter/structured-output-repair.js.map +1 -1
  53. package/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts +1 -1
  54. package/dist/runtime-v2/adapter/tools/diagnostician-tool.d.ts.map +1 -1
  55. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js +8 -9
  56. package/dist/runtime-v2/config/__tests__/pd-config-agent-binding.test.js.map +1 -1
  57. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js +27 -3
  58. package/dist/runtime-v2/config/__tests__/pd-config-contract.test.js.map +1 -1
  59. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts +11 -0
  60. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.d.ts.map +1 -0
  61. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js +93 -0
  62. package/dist/runtime-v2/config/__tests__/pd-config-principles.test.js.map +1 -0
  63. package/dist/runtime-v2/config/pd-config-agent-binding.d.ts.map +1 -1
  64. package/dist/runtime-v2/config/pd-config-agent-binding.js +4 -13
  65. package/dist/runtime-v2/config/pd-config-agent-binding.js.map +1 -1
  66. package/dist/runtime-v2/config/pd-config-effective.d.ts.map +1 -1
  67. package/dist/runtime-v2/config/pd-config-effective.js +14 -7
  68. package/dist/runtime-v2/config/pd-config-effective.js.map +1 -1
  69. package/dist/runtime-v2/config/pd-config-feature-flags.d.ts.map +1 -1
  70. package/dist/runtime-v2/config/pd-config-feature-flags.js +5 -12
  71. package/dist/runtime-v2/config/pd-config-feature-flags.js.map +1 -1
  72. package/dist/runtime-v2/config/pd-config-validate.d.ts.map +1 -1
  73. package/dist/runtime-v2/config/pd-config-validate.js +25 -0
  74. package/dist/runtime-v2/config/pd-config-validate.js.map +1 -1
  75. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js +36 -8
  76. package/dist/runtime-v2/core-principles/__tests__/core-axiom-block.test.js.map +1 -1
  77. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js +36 -12
  78. package/dist/runtime-v2/core-principles/__tests__/core-principle-registry.test.js.map +1 -1
  79. package/dist/runtime-v2/core-principles/core-axiom-block.d.ts +22 -8
  80. package/dist/runtime-v2/core-principles/core-axiom-block.d.ts.map +1 -1
  81. package/dist/runtime-v2/core-principles/core-axiom-block.js +28 -13
  82. package/dist/runtime-v2/core-principles/core-axiom-block.js.map +1 -1
  83. package/dist/runtime-v2/core-principles/core-principle-registry.d.ts +29 -4
  84. package/dist/runtime-v2/core-principles/core-principle-registry.d.ts.map +1 -1
  85. package/dist/runtime-v2/core-principles/core-principle-registry.js +68 -33
  86. package/dist/runtime-v2/core-principles/core-principle-registry.js.map +1 -1
  87. package/dist/runtime-v2/core-principles/index.d.ts +3 -3
  88. package/dist/runtime-v2/core-principles/index.d.ts.map +1 -1
  89. package/dist/runtime-v2/core-principles/index.js +1 -1
  90. package/dist/runtime-v2/core-principles/index.js.map +1 -1
  91. package/dist/runtime-v2/evolution/evolution-types.d.ts +2 -1
  92. package/dist/runtime-v2/evolution/evolution-types.d.ts.map +1 -1
  93. package/dist/runtime-v2/evolution/evolution-types.js.map +1 -1
  94. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts +2 -0
  95. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.d.ts.map +1 -0
  96. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js +48 -0
  97. package/dist/runtime-v2/feature-flags/__tests__/anonymous-product-telemetry-flag.test.js.map +1 -0
  98. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js +66 -35
  99. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-contract.test.js.map +1 -1
  100. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts +2 -0
  101. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.d.ts.map +1 -0
  102. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js +83 -0
  103. package/dist/runtime-v2/feature-flags/__tests__/feature-flag-lifecycle.test.js.map +1 -0
  104. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts +19 -1
  105. package/dist/runtime-v2/feature-flags/feature-flag-contract.d.ts.map +1 -1
  106. package/dist/runtime-v2/feature-flags/feature-flag-contract.js +115 -13
  107. package/dist/runtime-v2/feature-flags/feature-flag-contract.js.map +1 -1
  108. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts +37 -0
  109. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.d.ts.map +1 -0
  110. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js +296 -0
  111. package/dist/runtime-v2/feature-flags/feature-flag-lifecycle.js.map +1 -0
  112. package/dist/runtime-v2/feature-flags/index.d.ts +4 -2
  113. package/dist/runtime-v2/feature-flags/index.d.ts.map +1 -1
  114. package/dist/runtime-v2/feature-flags/index.js +3 -1
  115. package/dist/runtime-v2/feature-flags/index.js.map +1 -1
  116. package/dist/runtime-v2/index.d.ts +13 -6
  117. package/dist/runtime-v2/index.d.ts.map +1 -1
  118. package/dist/runtime-v2/index.js +15 -5
  119. package/dist/runtime-v2/index.js.map +1 -1
  120. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js +29 -10
  121. package/dist/runtime-v2/internalization/__tests__/artificer-output-retry-flag.test.js.map +1 -1
  122. package/dist/runtime-v2/owner-identity.d.ts +69 -0
  123. package/dist/runtime-v2/owner-identity.d.ts.map +1 -0
  124. package/dist/runtime-v2/owner-identity.js +179 -0
  125. package/dist/runtime-v2/owner-identity.js.map +1 -0
  126. package/dist/runtime-v2/pain-signal-runtime-factory.d.ts.map +1 -1
  127. package/dist/runtime-v2/pain-signal-runtime-factory.js +2 -3
  128. package/dist/runtime-v2/pain-signal-runtime-factory.js.map +1 -1
  129. package/dist/runtime-v2/product-telemetry/daily-identity.d.ts +70 -0
  130. package/dist/runtime-v2/product-telemetry/daily-identity.d.ts.map +1 -0
  131. package/dist/runtime-v2/product-telemetry/daily-identity.js +89 -0
  132. package/dist/runtime-v2/product-telemetry/daily-identity.js.map +1 -0
  133. package/dist/runtime-v2/product-telemetry/snapshot-contract.d.ts +110 -0
  134. package/dist/runtime-v2/product-telemetry/snapshot-contract.d.ts.map +1 -0
  135. package/dist/runtime-v2/product-telemetry/snapshot-contract.js +250 -0
  136. package/dist/runtime-v2/product-telemetry/snapshot-contract.js.map +1 -0
  137. package/dist/runtime-v2/pruning-read-model.d.ts +2 -1
  138. package/dist/runtime-v2/pruning-read-model.d.ts.map +1 -1
  139. package/dist/runtime-v2/pruning-read-model.js.map +1 -1
  140. package/dist/runtime-v2/recovery-actions-log.d.ts +7 -0
  141. package/dist/runtime-v2/recovery-actions-log.d.ts.map +1 -1
  142. package/dist/runtime-v2/recovery-actions-log.js +6 -0
  143. package/dist/runtime-v2/recovery-actions-log.js.map +1 -1
  144. package/dist/runtime-v2/runtime-protocol.js +1 -1
  145. package/dist/runtime-v2/runtime-protocol.js.map +1 -1
  146. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js +17 -1
  147. package/dist/runtime-v2/store/task/__tests__/sqlite-task-store.failed-tasks.test.js.map +1 -1
  148. package/dist/runtime-v2/store/task/sqlite-task-store.d.ts.map +1 -1
  149. package/dist/runtime-v2/store/task/sqlite-task-store.js +10 -0
  150. package/dist/runtime-v2/store/task/sqlite-task-store.js.map +1 -1
  151. package/dist/runtime-v2/store/task/task-types.d.ts +2 -0
  152. package/dist/runtime-v2/store/task/task-types.d.ts.map +1 -1
  153. package/dist/runtime-v2/task-status.d.ts +9 -5
  154. package/dist/runtime-v2/task-status.d.ts.map +1 -1
  155. package/dist/runtime-v2/task-status.js +15 -7
  156. package/dist/runtime-v2/task-status.js.map +1 -1
  157. package/dist/runtime-v2/types/index.d.ts +1 -1
  158. package/dist/runtime-v2/types/index.d.ts.map +1 -1
  159. package/dist/runtime-v2/types/index.js +1 -1
  160. package/dist/runtime-v2/types/index.js.map +1 -1
  161. package/dist/runtime-v2/types/principle-enums.d.ts +3 -2
  162. package/dist/runtime-v2/types/principle-enums.d.ts.map +1 -1
  163. package/dist/runtime-v2/types/principle-enums.js +11 -5
  164. package/dist/runtime-v2/types/principle-enums.js.map +1 -1
  165. package/dist/runtime-v2/types/principle-schema.d.ts +1 -1
  166. package/dist/runtime-v2/types/principle-tree-store.d.ts +1 -1
  167. package/package.json +2 -3
@@ -6,6 +6,85 @@
6
6
  */
7
7
  export const VALID_CATEGORIES = ['core', 'quiet', 'gone', 'legacy_retire'];
8
8
  const DANGEROUS_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
9
+ // ── Flag identity aliases (PRI-609) ─────────────────────────────────────────
10
+ //
11
+ // One canonical runtime identity per behavior. Snake_case IDs that were
12
+ // historically registered as independent flags are now compatibility aliases
13
+ // only: they normalize onto the canonical camelCase ID BEFORE effective-flag
14
+ // computation, so a config key can never look valid while the production
15
+ // consumer (which reads the canonical ID) ignores it.
16
+ //
17
+ // Alias keys MUST NOT appear in DEFAULT_FEATURE_FLAGS — an alias is not a
18
+ // capability. Adding an entry here requires the canonical ID to be registered.
19
+ export const FEATURE_FLAG_ALIASES = {
20
+ pain_evidence_admission: 'painEvidenceAdmission',
21
+ pain_evidence_admission_default: 'painEvidenceAdmissionDefault',
22
+ };
23
+ function enabledOfOverride(value) {
24
+ if (value !== null
25
+ && typeof value === 'object'
26
+ && !Array.isArray(value)
27
+ && Object.hasOwn(value, 'enabled')) {
28
+ const { enabled } = value;
29
+ if (typeof enabled === 'boolean')
30
+ return enabled;
31
+ }
32
+ return undefined;
33
+ }
34
+ /**
35
+ * Normalize user flag overrides onto canonical IDs (PRI-609).
36
+ *
37
+ * - Alias keys are re-keyed to their canonical ID.
38
+ * - When both the canonical ID and an alias are configured with DIFFERENT
39
+ * enabled values, the conflict is reported as a warning and the canonical
40
+ * entry wins — the outcome is deterministic and observable, never silent.
41
+ * - Dangerous keys are dropped here so every downstream consumer inherits the
42
+ * same rejection.
43
+ */
44
+ export function normalizeFeatureFlagOverrides(userFlags) {
45
+ const normalized = {};
46
+ const warnings = [];
47
+ // Dangerous keys are rejected observably (same warning text the legacy
48
+ // computeEffectiveFlags filter emitted) and never reach the normalized map.
49
+ for (const key of Object.keys(userFlags)) {
50
+ if (DANGEROUS_KEYS.has(key)) {
51
+ warnings.push(`flag '${key}': dangerous key rejected`);
52
+ }
53
+ }
54
+ // Pass 1: canonical keys occupy their slot first so an alias can never
55
+ // override them, regardless of key iteration order.
56
+ for (const key of Object.keys(userFlags)) {
57
+ if (DANGEROUS_KEYS.has(key))
58
+ continue;
59
+ if (!Object.hasOwn(FEATURE_FLAG_ALIASES, key)) {
60
+ normalized[key] = userFlags[key];
61
+ }
62
+ }
63
+ // Pass 2: alias keys fill the canonical slot only when the raw canonical
64
+ // key is absent.
65
+ for (const key of Object.keys(userFlags)) {
66
+ if (DANGEROUS_KEYS.has(key))
67
+ continue;
68
+ const aliasTarget = Object.hasOwn(FEATURE_FLAG_ALIASES, key)
69
+ ? FEATURE_FLAG_ALIASES[key]
70
+ : undefined;
71
+ if (aliasTarget !== undefined && !Object.hasOwn(userFlags, aliasTarget)) {
72
+ normalized[aliasTarget] = userFlags[key];
73
+ }
74
+ }
75
+ // Pass 3: canonical + alias both configured → differing enabled values are
76
+ // an explicit conflict (canonical wins, observably).
77
+ for (const [alias, canonical] of Object.entries(FEATURE_FLAG_ALIASES)) {
78
+ if (Object.hasOwn(userFlags, alias) && Object.hasOwn(userFlags, canonical)) {
79
+ const aliasEnabled = enabledOfOverride(userFlags[alias]);
80
+ const canonicalEnabled = enabledOfOverride(userFlags[canonical]);
81
+ if (aliasEnabled !== canonicalEnabled) {
82
+ warnings.push(`feature '${canonical}': conflicting values for canonical ID and alias '${alias}' — canonical value used (enabled=${String(canonicalEnabled)})`);
83
+ }
84
+ }
85
+ }
86
+ return { normalized, warnings };
87
+ }
9
88
  export function validateFeatureFlagRaw(raw, source) {
10
89
  const errors = [];
11
90
  if (raw === null || raw === undefined || typeof raw !== 'object' || Array.isArray(raw)) {
@@ -77,20 +156,24 @@ export const DEFAULT_FEATURE_FLAGS = [
77
156
  // MVP-Quiet — opt-in or opt-out via config; enabled value varies per flag
78
157
  // Only flags with real consumption paths are registered (PRI-239 constraint)
79
158
  { id: 'feedback_channel', category: 'quiet', enabled: true, since: '2026-06-01', description: 'MVP seed feedback channel — privacy-preserving report drafts. PRI-543: flag scope extended to also cover the feedback SUBMIT ladder (ingest relay / gh CLI / mailto / export-file channels + submit endpoints). Flag-off = submit endpoints 403 + submit UI hidden; config `feedback:` segment and channel parameters still available.' },
159
+ // Commercial update system Phase 3 (SPEC 2026-08-25): ReleaseManager shadow
160
+ // mode. Read-only inspect/check with legacy-updater decision comparison;
161
+ // apply/rollback refuse regardless of this flag (activation arrives with
162
+ // the Phase 4 transaction rollout). Quiet per AGENTS: default off, not
163
+ // surfaced until Phase 6 cutover.
164
+ { id: 'release_manager_shadow', category: 'quiet', enabled: false, since: '2026-08-25', description: 'ReleaseManager shadow mode — read-only signed-metadata update checks with legacy-updater comparison diagnostics; no activation' },
80
165
  { id: 'gfi', category: 'quiet', enabled: false, since: '2026-05-24', description: 'Global Friction Index session scoring' },
81
166
  { id: 'evolution_worker', category: 'quiet', enabled: false, since: '2026-06-01', description: 'Legacy evolution worker heartbeat (MVP-Quiet per ADR-0014 §2.5)' },
82
167
  { id: 'empathy_observer', category: 'quiet', enabled: false, since: '2026-06-02', description: 'Empathy observer service for sentiment checking (MVP-Quiet)' },
83
168
  // PRI-454: painEvidenceAdmission flipped to default-on. Gate B (TriggerController)
84
169
  // is now the primary admission gate. Roll back = set painEvidenceAdmissionDefault to false.
85
170
  { id: 'painEvidenceAdmission', category: 'quiet', enabled: true, since: '2026-06-06', description: 'Pre-diagnosis evidence triage for pain signals (PEAT-B1). PRI-454: default-on, Gate B is primary gate.' },
86
- // PRI-404: snake_case alias for painEvidenceAdmission — config.yaml uses snake_case convention;
87
- // registering both avoids "unknown flag accepted" warning while production code references camelCase key
88
- { id: 'pain_evidence_admission', category: 'quiet', enabled: true, since: '2026-06-15', description: 'Snake-case alias for painEvidenceAdmission same functionality, matches config.yaml key convention. PRI-454: default-on.' },
171
+ // PRI-404/PRI-609: the snake_case IDs `pain_evidence_admission` and
172
+ // `pain_evidence_admission_default` are no longer registered as independent
173
+ // capabilitiessee FEATURE_FLAG_ALIASES above.
89
174
  // PRI-454: Global kill switch for Gate B migration. When ON (default), Gate B owns admission.
90
175
  // When OFF (rollback), Gate A (PainDiagnosticGate) is re-activated on all paths.
91
176
  { id: 'painEvidenceAdmissionDefault', category: 'quiet', enabled: true, since: '2026-06-24', description: 'PRI-454: Global kill switch for Gate B migration. When ON (default), Gate B (TriggerController) owns admission. When OFF (rollback), Gate A (PainDiagnosticGate) is re-activated.' },
92
- // PRI-454: snake_case alias for painEvidenceAdmissionDefault
93
- { id: 'pain_evidence_admission_default', category: 'quiet', enabled: true, since: '2026-06-24', description: 'PRI-454: Snake-case alias for painEvidenceAdmissionDefault — global kill switch, matches config.yaml key convention' },
94
177
  { id: 'diagnostician_async_cli', category: 'quiet', enabled: false, since: '2026-06-11', description: 'Async pain-record CLI — submit and return immediately, diagnosis runs in background. Default: false until orchestrator exists.' },
95
178
  { id: 'diagnostician_core_grounding', category: 'quiet', enabled: true, since: '2026-06-11', description: 'Core principle grounding in diagnostician prompt (Arm 2)' },
96
179
  { id: 'internalization_core_grounding', category: 'quiet', enabled: true, since: '2026-06-16', description: 'Core principle grounding in internalization prompt builders (dreamer, philosopher, scribe)' },
@@ -142,11 +225,15 @@ export const DEFAULT_FEATURE_FLAGS = [
142
225
  // Issue 2 (Codex E2E): artificer pipeline fails with `output_invalid` when the
143
226
  // LLM returns malformed output instead of calling submit_rulecode. `output_invalid`
144
227
  // is in ArtificerRunner.permanentErrorCategories → immediate permanent failure,
145
- // no fallback. This quiet flag (default off) moves `output_invalid` OUT of
228
+ // no fallback. This quiet flag moves `output_invalid` OUT of
146
229
  // permanentErrorCategories so the base runner's retry policy (bounded by
147
- // task.maxAttempts) retries it instead of failing permanently. Flag-off =
148
- // legacy behavior: output_invalid is permanent. Roll back = set enabled: false.
149
- { id: 'artificer_output_retry', category: 'quiet', enabled: false, since: '2026-08-20', description: 'Issue 2: retry Artificer `output_invalid` (malformed LLM output, e.g. missed submit_rulecode) via the base retry policy (max 3 attempts) instead of permanent failure. Default off; flag-off = output_invalid permanent (legacy).' },
230
+ // task.maxAttempts) retries it instead of failing permanently.
231
+ // GRADUATED default-on 2026-08-29 (PRI-621): every other peer runner already
232
+ // retries output_invalid; artificer was the sole permanent-failure outlier,
233
+ // dead-ending 5/6 internalization chains on one malformed LLM response.
234
+ // Flag-off = legacy behavior: output_invalid is permanent. Roll back = set
235
+ // enabled: false in .pd/config.yaml (quiet category keeps the override path).
236
+ { id: 'artificer_output_retry', category: 'quiet', enabled: true, since: '2026-08-20', description: 'Issue 2/PRI-621: retry Artificer `output_invalid` (malformed LLM output, e.g. missed submit_rulecode) via the base retry policy (max 3 attempts) instead of permanent failure. Graduated default-on 2026-08-29 — aligns artificer with every other peer runner; flag-off reverts output_invalid to permanent (legacy).' },
150
237
  // Internalization progressive disclosure — Layer 0 (design §6.1, §8, PR 1).
151
238
  // Writer-side ArtifactSummary + PredecessorSummaryRef envelope, merged into
152
239
  // contentJson for all 8 SummaryRunnerKind stages. Default off; flag-off =
@@ -215,9 +302,19 @@ export const DEFAULT_FEATURE_FLAGS = [
215
302
  // governance experience: batch collector reuses the existing projection
216
303
  // (deriveOwnerGovernanceView) once per workspace; GET /api/v1/governance/experience
217
304
  // serves one snapshot; Console Focus consumes it when enabled. Explains only —
218
- // never authorizes (ERR-102). Default off; flag-off = endpoint 403 before any
219
- // DB access and Console keeps the legacy Focus experience unchanged.
220
- { id: 'governance_experience_v1', category: 'quiet', enabled: false, since: '2026-08-24', description: 'Governance Experience Snapshot v1.5.1 — read-only workspace governance experience (batch projection + GET /api/v1/governance/experience + Console Focus integration). Default off; flag-off = endpoint 403 (no DB access) and legacy Focus behavior preserved.' },
305
+ // never authorizes (ERR-102). Default on (graduated 2026-08-29 after live-workspace
306
+ // validation); disable via .pd/config.yaml features.governance_experience_v1.enabled: false
307
+ // (flag-off = endpoint 403 before any DB access, legacy Focus experience unchanged).
308
+ { id: 'governance_experience_v1', category: 'quiet', enabled: true, since: '2026-08-24', description: 'Governance Experience Snapshot v1.5.1 — read-only workspace governance experience (batch projection + GET /api/v1/governance/experience + Console Focus integration). Default on (graduated 2026-08-29); flag-off via config = endpoint 403 (no DB access) and legacy Focus behavior preserved.' },
309
+ // Anonymous Product Telemetry v1 (PRI-595~603, "Collect signals, not users").
310
+ // Maintainer release gate — INDEPENDENT of user consent (which lives in
311
+ // ~/.pd/product-telemetry.json and must ALSO be 'granted'). Export requires
312
+ // flag ON AND consent granted AND environment eligibility (host-runtime
313
+ // product-telemetry/eligibility). One boolean-milestone snapshot per
314
+ // installation/day over daily unlinkable IDs; zero content collection.
315
+ // Flag-off = zero export attempts from any surface. Roll back = set
316
+ // enabled: false in .pd/config.yaml.
317
+ { id: 'anonymous_product_telemetry', category: 'quiet', enabled: false, since: '2026-08-26', description: 'Anonymous Product Telemetry v1 — opt-in daily boolean-milestone snapshot (initialized/pain/principle/activation/receipt presence+effect), daily unlinkable IDs, zero content collection. Default off; export also requires explicit consent (pd telemetry enable) + production eligibility.' },
221
318
  // MVP-Gone — permanently disabled, cannot be re-enabled
222
319
  { id: 'nocturnal', category: 'gone', enabled: false, since: '2026-05-24', description: 'Nocturnal trinity pipeline (retired)' },
223
320
  { id: 'idle_trigger', category: 'gone', enabled: false, since: '2026-05-24', description: 'Idle trigger for background processing (retired)' },
@@ -229,9 +326,14 @@ export const DEFAULT_FEATURE_FLAGS = [
229
326
  // (see computeEffectiveFlags core-flag branch, mirrors PRI-435 code_rule_capability).
230
327
  { id: 'new_user_onboarding', category: 'core', enabled: true, since: '2026-07-01', description: 'New user onboarding wizard — first-visit redirect to /welcome + demo story-a trigger endpoint. Maintainer-approved MVP-Core (2026-07-01): default-on; emergency disable via .pd/config.yaml: new_user_onboarding: { enabled: false }.' },
231
328
  ];
232
- export function computeEffectiveFlags(userFlags, defaults, configPath) {
329
+ export function computeEffectiveFlags(userFlagsInput, defaults, configPath) {
233
330
  const warnings = [];
234
331
  const flags = {};
332
+ // PRI-609: normalize alias IDs onto canonical IDs before any computation so
333
+ // a snake_case config key controls the same runtime flag its camelCase
334
+ // production consumer reads.
335
+ const { normalized: userFlags, warnings: aliasWarnings } = normalizeFeatureFlagOverrides(userFlagsInput);
336
+ warnings.push(...aliasWarnings);
235
337
  const safeKeys = Object.keys(userFlags).filter(key => {
236
338
  if (DANGEROUS_KEYS.has(key)) {
237
339
  warnings.push(`flag '${key}': dangerous key rejected`);
@@ -1 +1 @@
1
- {"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-flag-contract.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Feature Flag Lifecycle Registry — PRI-610
3
+ *
4
+ * Evidence-backed lifecycle decision for every quiet flag in
5
+ * DEFAULT_FEATURE_FLAGS. This is the machine-checked census: the contract
6
+ * test in __tests__/feature-flag-lifecycle.test.ts enforces that no quiet
7
+ * flag exists without a lifecycle decision ("feature purgatory = 0").
8
+ *
9
+ * Decisions:
10
+ * - KEEP_QUIET — real production consumer; stays quiet with explicit
11
+ * graduation + retirement criteria.
12
+ * - GRADUATE — default-on after validation (PRI-571 pattern); category
13
+ * stays quiet so config rollback remains available.
14
+ * - RETIRE — removal decided; carries the removal condition.
15
+ * - STAGED — registered ahead of an approved roadmap phase; activation
16
+ * wiring arrives with that phase (e.g. PRI-614 update convergence).
17
+ *
18
+ * Adding a new quiet flag REQUIRES a lifecycle entry here stating:
19
+ * Purpose / Default / Rollback / Graduation criteria / Retirement criteria /
20
+ * Exit path (see docs/governance/feature-flag-lifecycle-census.md §New-flag rule).
21
+ */
22
+ export type QuietFlagLifecycleDecision = 'KEEP_QUIET' | 'GRADUATE' | 'RETIRE' | 'STAGED';
23
+ export interface QuietFlagLifecycleEntry {
24
+ decision: QuietFlagLifecycleDecision;
25
+ /** Where the flag is consumed in production ('staged — none yet' for STAGED). */
26
+ consumers: readonly string[];
27
+ /** What evidence proves this decision (validation run, owner decision, roadmap issue). */
28
+ evidence: string;
29
+ /** YYYY-MM-DD decision date. */
30
+ decided: string;
31
+ /** REQUIRED for KEEP_QUIET/STAGED: what proves promotion to default-on/GATE B wiring. */
32
+ graduationCriteria: string;
33
+ /** REQUIRED for all: the condition under which the flag (and its code) disappears. */
34
+ retirementCriteria: string;
35
+ }
36
+ export declare const QUIET_FLAG_LIFECYCLE: Readonly<Record<string, QuietFlagLifecycleEntry>>;
37
+ //# sourceMappingURL=feature-flag-lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flag-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,MAAM,0BAA0B,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEzF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,0BAA0B,CAAC;IACrC,iFAAiF;IACjF,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7B,0FAA0F;IAC1F,QAAQ,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,yFAAyF;IACzF,kBAAkB,EAAE,MAAM,CAAC;IAC3B,sFAAsF;IACtF,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAiRlF,CAAC"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Feature Flag Lifecycle Registry — PRI-610
3
+ *
4
+ * Evidence-backed lifecycle decision for every quiet flag in
5
+ * DEFAULT_FEATURE_FLAGS. This is the machine-checked census: the contract
6
+ * test in __tests__/feature-flag-lifecycle.test.ts enforces that no quiet
7
+ * flag exists without a lifecycle decision ("feature purgatory = 0").
8
+ *
9
+ * Decisions:
10
+ * - KEEP_QUIET — real production consumer; stays quiet with explicit
11
+ * graduation + retirement criteria.
12
+ * - GRADUATE — default-on after validation (PRI-571 pattern); category
13
+ * stays quiet so config rollback remains available.
14
+ * - RETIRE — removal decided; carries the removal condition.
15
+ * - STAGED — registered ahead of an approved roadmap phase; activation
16
+ * wiring arrives with that phase (e.g. PRI-614 update convergence).
17
+ *
18
+ * Adding a new quiet flag REQUIRES a lifecycle entry here stating:
19
+ * Purpose / Default / Rollback / Graduation criteria / Retirement criteria /
20
+ * Exit path (see docs/governance/feature-flag-lifecycle-census.md §New-flag rule).
21
+ */
22
+ export const QUIET_FLAG_LIFECYCLE = {
23
+ correction_observer: {
24
+ decision: 'KEEP_QUIET',
25
+ consumers: ['openclaw-plugin/src/service/correction-observer*', 'openclaw-plugin/src/index.ts'],
26
+ evidence: 'Dogfood LLM keyword optimization; synchronous detection runs independently (since 2026-06-02)',
27
+ decided: '2026-08-27',
28
+ graduationCriteria: 'Dogfood evidence that LLM keyword optimization beats synchronous detection on precision',
29
+ retirementCriteria: 'No dogfood activation for 6 months (ADR-0014 §2.5) or owner abandons LLM optimization path',
30
+ },
31
+ signal_collector: {
32
+ decision: 'KEEP_QUIET',
33
+ consumers: ['openclaw-plugin/src/core/signal-collect*'],
34
+ evidence: 'LLM deep-judgment path for ambiguous correction/empathy terms; keyword path runs regardless (since 2026-06-30)',
35
+ decided: '2026-08-27',
36
+ graduationCriteria: 'Dogfood evidence that LLM deep judgment catches missed signals without false positives',
37
+ retirementCriteria: 'No dogfood activation for 6 months or signal merge design replaced',
38
+ },
39
+ internalization_auto_consumer: {
40
+ decision: 'KEEP_QUIET',
41
+ consumers: ['openclaw-plugin/src/service/internalization-auto-consumer*', 'pd-cli runtime-internalization commands'],
42
+ evidence: 'MVP core-loop liveness — advances ready internalization tasks (PRI-381; default-on since 2026-06-13)',
43
+ decided: '2026-08-27',
44
+ graduationCriteria: 'Core-loop closure validated (PR #1358, merged 2026-08-20) — promotion to core optional once stability window passes',
45
+ retirementCriteria: 'Consumer removed from production auto-consumer wiring (would break INV-07 liveness — retire only with replacement)',
46
+ },
47
+ story_a_approval_completion: {
48
+ decision: 'KEEP_QUIET',
49
+ consumers: ['pd-console/src/server/models/ApprovalsConsoleModel*'],
50
+ evidence: 'PRI-408 approval-completion orchestrator; default-on, disableable (since 2026-06-18)',
51
+ decided: '2026-08-27',
52
+ graduationCriteria: 'Approval queue operates through orchestrator without manual dispatch fallback for a stability window',
53
+ retirementCriteria: 'Direct-writer activation path permanently removed from approvals surface',
54
+ },
55
+ feedback_channel: {
56
+ decision: 'KEEP_QUIET',
57
+ consumers: ['pd-console/src/server/routes/feedback-report*', 'openclaw-plugin feedback skill surface'],
58
+ evidence: 'MVP seed feedback channel incl. submit ladder (PRI-543); default-on (since 2026-06-01)',
59
+ decided: '2026-08-27',
60
+ graduationCriteria: 'Channel is part of the default product experience already; category stays quiet for per-workspace disable',
61
+ retirementCriteria: 'Owner removes the feedback product surface',
62
+ },
63
+ release_manager_shadow: {
64
+ decision: 'STAGED',
65
+ consumers: ['staged — none yet; wiring arrives with PRI-614 Gate B'],
66
+ evidence: 'Commercial update system Phase 3 (SPEC 2026-08-25): ReleaseManager shadow mode, read-only inspect/check with legacy comparison. Explicitly NOT dead — activation is gated on the PRI-614 update-convergence roadmap.',
67
+ decided: '2026-08-27',
68
+ graduationCriteria: 'PRI-614 Gate B wires a live update surface through ReleaseManager with parity evidence',
69
+ retirementCriteria: 'PRI-614 update roadmap cancelled, or shadow comparison retired once ReleaseManager is the sole authority',
70
+ },
71
+ gfi: {
72
+ decision: 'KEEP_QUIET',
73
+ consumers: ['openclaw-plugin/src/commands/evolution-status*', 'host-runtime/src/production-pain-evidence*'],
74
+ evidence: 'Global Friction Index session scoring surfaced in console/plugin (38 src references)',
75
+ decided: '2026-08-27',
76
+ graduationCriteria: 'GFI validated as an Owner-facing signal worth default-on surfacing',
77
+ retirementCriteria: 'Friction scoring superseded by telemetry milestones (anonymous_product_telemetry) with owner decision',
78
+ },
79
+ evolution_worker: {
80
+ decision: 'KEEP_QUIET',
81
+ consumers: ['openclaw-plugin/src/index.ts (heartbeat registration, quarantined)', 'openclaw-plugin tests: evolution-worker-quarantine/slimming'],
82
+ evidence: 'Legacy heartbeat quarantined behind flag (ADR-0014 §2.5; quarantine tests enforce off-by-default)',
83
+ decided: '2026-08-27',
84
+ graduationCriteria: 'None — will not graduate',
85
+ retirementCriteria: 'Quarantine validated stable → delete worker + flag (MVP-Gone) once 6-month no-activation window closes (2026-12-01)',
86
+ },
87
+ empathy_observer: {
88
+ decision: 'KEEP_QUIET',
89
+ consumers: ['pd-console/src/ui/pages/control-center/EmpathyObserver*', 'openclaw-plugin observer wiring'],
90
+ evidence: 'Empathy observer service for sentiment checking (since 2026-06-02); default-off',
91
+ decided: '2026-08-27',
92
+ graduationCriteria: 'Dogfood evidence that sentiment checking changes owner-visible behavior positively',
93
+ retirementCriteria: 'No dogfood activation for 6 months (2026-12-02) or signal_collector merge removes the standalone observer',
94
+ },
95
+ painEvidenceAdmission: {
96
+ decision: 'KEEP_QUIET',
97
+ consumers: ['openclaw-plugin/src/hooks/pain.ts', 'openclaw-plugin/src/hooks/llm.ts', 'openclaw-plugin/src/hooks/gate-block-helper.ts'],
98
+ evidence: 'PEAT-B1 admission gate; PRI-454 default-on, Gate B (TriggerController) primary (since 2026-06-06)',
99
+ decided: '2026-08-27',
100
+ graduationCriteria: 'Already default-on; promotion to core optional — quiet retained so Gate A rollback stays config-only',
101
+ retirementCriteria: 'Gate A/B duality resolved (Gate A deleted) — flag collapses into Gate B default behavior',
102
+ },
103
+ painEvidenceAdmissionDefault: {
104
+ decision: 'KEEP_QUIET',
105
+ consumers: ['openclaw-plugin/src/hooks/pain.ts', 'openclaw-plugin/src/hooks/llm.ts', 'openclaw-plugin/src/hooks/gate-block-helper.ts'],
106
+ evidence: 'PRI-454 Gate B migration kill switch; default-on, OFF re-activates Gate A (since 2026-06-24)',
107
+ decided: '2026-08-27',
108
+ graduationCriteria: 'Kill-switch semantics — will not graduate',
109
+ retirementCriteria: 'Gate A (PainDiagnosticGate) deleted after Gate B stability window; kill switch then meaningless',
110
+ },
111
+ diagnostician_async_cli: {
112
+ decision: 'KEEP_QUIET',
113
+ consumers: ['pd-cli/src/commands/pain-record.ts', 'principles-core pain-sign* async path'],
114
+ evidence: 'Async pain-record submission (since 2026-06-11); default-off until orchestrator exists',
115
+ decided: '2026-08-27',
116
+ graduationCriteria: 'Background orchestrator shipped and validated',
117
+ retirementCriteria: 'Async path abandoned (orchestrator descoped) — delete CLI path + flag',
118
+ },
119
+ diagnostician_core_grounding: {
120
+ decision: 'KEEP_QUIET',
121
+ consumers: ['principles-core/src/runtime-v2/internaliz*/diagnostician prompt builders'],
122
+ evidence: 'Core principle grounding in diagnostician prompt (Arm 2, since 2026-06-11); default-on',
123
+ decided: '2026-08-27',
124
+ graduationCriteria: 'Stable prompt feature; promotion to core optional',
125
+ retirementCriteria: 'Prompt design drops grounding block',
126
+ },
127
+ internalization_core_grounding: {
128
+ decision: 'KEEP_QUIET',
129
+ consumers: ['principles-core/src/runtime-v2/internaliz*', 'principles-core/src/runtime-v2/runner/pe*'],
130
+ evidence: 'Core principle grounding in internalization prompt builders (since 2026-06-16); default-on',
131
+ decided: '2026-08-27',
132
+ graduationCriteria: 'Stable prompt feature; promotion to core optional',
133
+ retirementCriteria: 'Prompt design drops grounding block',
134
+ },
135
+ diagnostician_split_pipeline: {
136
+ decision: 'KEEP_QUIET',
137
+ consumers: ['pd-cli/src/commands/diagnose.ts', 'pd-cli/src/commands/pain-retry.ts'],
138
+ evidence: '3-stage split diagnostician (RootCause→Distiller→Router, since 2026-06-11); default-on',
139
+ decided: '2026-08-27',
140
+ graduationCriteria: 'Split pipeline is the operating default; promotion to core optional',
141
+ retirementCriteria: 'Pipeline re-merged or diagnostician redesigned',
142
+ },
143
+ diagnostician_llm_degradation: {
144
+ decision: 'GRADUATE',
145
+ consumers: ['pd-cli/src/commands/diagnose.ts', 'principles-core diagnostician retry policy'],
146
+ evidence: 'ADR-0019 graceful rate-limit degradation; graduated default-on PRI-571 (2026-08-24) after validation',
147
+ decided: '2026-08-24',
148
+ graduationCriteria: 'MET — PRI-571 graduation executed 2026-08-24',
149
+ retirementCriteria: 'Flag-off legacy hard-fail branch deleted after stability window; flag then collapses to always-on',
150
+ },
151
+ l2_dreamer: {
152
+ decision: 'KEEP_QUIET',
153
+ consumers: ['openclaw-plugin/src/service/internaliz* dreamer runner', 'pd-cli runtime-adapter resolution'],
154
+ evidence: 'PRI-419 L2 multi-turn agent loop for dreamer (since 2026-06-16); default-off, zero-migration rollback',
155
+ decided: '2026-08-27',
156
+ graduationCriteria: 'L2 loop quality validated over one-shot baseline on dogfood artifacts',
157
+ retirementCriteria: 'Agent-loop direction abandoned for dreamer runner',
158
+ },
159
+ intent_engineering: {
160
+ decision: 'KEEP_QUIET',
161
+ consumers: ['openclaw-plugin/src/core/intent-doc-read*', 'openclaw-plugin/src/hooks/pain.ts (intent tension)'],
162
+ evidence: 'PRI-465 INTENT.md-grounded constructive friction (since 2026-06-25); default-off',
163
+ decided: '2026-08-27',
164
+ graduationCriteria: 'Intent friction validated as owner-valued in dogfood workspace',
165
+ retirementCriteria: 'INTENT.md direction descoped by owner',
166
+ },
167
+ rulecode_context_v2: {
168
+ decision: 'KEEP_QUIET',
169
+ consumers: ['openclaw-plugin/src/core/rule-host.ts', 'openclaw-plugin/src/hooks/gate.ts'],
170
+ evidence: 'PRI-479 RuleContext v2 foundation flag (since 2026-06-27); default-off, v1 behavior unchanged while off',
171
+ decided: '2026-08-27',
172
+ graduationCriteria: 'RuleContext v2 phases land and context vision validated (docs/superpowers/specs/2026-06-27-rulecode-context-vision-design.md)',
173
+ retirementCriteria: 'RuleCode context vision descoped',
174
+ },
175
+ failed_tasks_observability: {
176
+ decision: 'KEEP_QUIET',
177
+ consumers: ['pd-console/src/server/routes/failed-task*', 'pd-console Failed Tasks page'],
178
+ evidence: 'Task 7 failed-task list/view (since 2026-07-04); default-on for out-of-box operator value',
179
+ decided: '2026-08-27',
180
+ graduationCriteria: 'Already the default experience; promotion to core optional',
181
+ retirementCriteria: 'Failed-task surface redesigned (flag collapses into new surface)',
182
+ },
183
+ evaluator_artificer_repair_loop: {
184
+ decision: 'KEEP_QUIET',
185
+ consumers: ['openclaw-plugin/src/service/auto-consume*', 'pd-cli rulehost-pipeline runner'],
186
+ evidence: 'PRI-509/P0-D repair loop; MVP_CORE_LOOP_CONTRACT INV-02 (needs_revision out-edge); production-wired since 2026-08-18; default-on',
187
+ decided: '2026-08-27',
188
+ graduationCriteria: 'INV-02 liveness depends on it — promotion to core warranted',
189
+ retirementCriteria: 'Repair loop becomes unconditional part of the consumer contract',
190
+ },
191
+ artificer_output_retry: {
192
+ decision: 'GRADUATE',
193
+ consumers: ['openclaw-plugin internaliz* artificer runner', 'pd-cli rulehost-pipeline runner'],
194
+ evidence: 'Flag graduated to default-on 2026-08-29 (PRI-621). Live 2026-08-28 evidence: 5/6 internalization chains dead-ended at artificer output_invalid (permanent, no retry) while dreamer recovered from the SAME error category via the base retry policy (task 48371236 dreamer: attempt 1 output_invalid → attempt 2 succeeded); Codex E2E Issue 2 (2026-08-20) originally validated the retry semantics. Retry is bounded by task.maxAttempts=3, so real failures still surface.',
195
+ decided: '2026-08-29',
196
+ graduationCriteria: 'Executed: retry improves completion without masking real failures — dreamer same-category self-heal observed live; artificer chains recover instead of dead-ending (PRI-621 recovery plan)',
197
+ retirementCriteria: 'Codex host output contract fixed upstream (submit_rulecode reliable) — retry unnecessary',
198
+ },
199
+ artifact_summary_redundancy: {
200
+ decision: 'KEEP_QUIET',
201
+ consumers: ['principles-core internaliz* summary writers', 'pd-cli rulehost-pipeline runner'],
202
+ evidence: 'Progressive disclosure Layer 0 writer-side envelope (since 2026-07-26); default-off, byte-identical off',
203
+ decided: '2026-08-27',
204
+ graduationCriteria: 'Layer 0+1+2 validated together as the progressive-disclosure design (§6, §8)',
205
+ retirementCriteria: 'Progressive disclosure design descoped',
206
+ },
207
+ context_manifest_budget: {
208
+ decision: 'KEEP_QUIET',
209
+ consumers: ['principles-core internaliz* context builders', 'principles-core/src/runtime-v2/runner/ba*'],
210
+ evidence: 'Progressive disclosure Layer 1 manifest+budget injection (since 2026-07-26); default-off, byte-identical off',
211
+ decided: '2026-08-27',
212
+ graduationCriteria: 'Layer 1 information-floor fallback validated against full-predecessor baseline',
213
+ retirementCriteria: 'Progressive disclosure design descoped',
214
+ },
215
+ progressive_evaluator: {
216
+ decision: 'KEEP_QUIET',
217
+ consumers: ['principles-core internaliz* evaluator', 'principles-core/src/runtime-v2/runner/ba*'],
218
+ evidence: 'Progressive disclosure Layer 2 two-stage evaluation (since 2026-07-26); default-off',
219
+ decided: '2026-08-27',
220
+ graduationCriteria: 'Two-stage evaluation quality validated over single-stage',
221
+ retirementCriteria: 'Progressive disclosure design descoped',
222
+ },
223
+ abstraction_layer_v1: {
224
+ decision: 'KEEP_QUIET',
225
+ consumers: ['openclaw-plugin/src/index.ts (host-runtime cutover gate)'],
226
+ evidence: 'PRI-523 shared host-runtime cutover for OpenClaw (since 2026-08-13); default-off for controlled parity validation',
227
+ decided: '2026-08-27',
228
+ graduationCriteria: 'Host-runtime parity validation passes on live install (parity contract tests green)',
229
+ retirementCriteria: 'Cutover completed (legacy route deleted) or cutover abandoned (shared host-runtime reverted)',
230
+ },
231
+ principle_receipt_block_copy: {
232
+ decision: 'GRADUATE',
233
+ consumers: ['openclaw-plugin/src/hooks/gate-block-helper.ts (block copy)'],
234
+ evidence: 'PRI-530 enriched block copy; graduated default-on PRI-571 (2026-08-24)',
235
+ decided: '2026-08-24',
236
+ graduationCriteria: 'MET — PRI-571 graduation executed 2026-08-24',
237
+ retirementCriteria: 'Generic-template branch deleted after stability window; flag collapses to enriched copy',
238
+ },
239
+ principle_receipt_ledger: {
240
+ decision: 'GRADUATE',
241
+ consumers: ['openclaw-plugin ledger writers', 'host-runtime product-telemetry milestone readers'],
242
+ evidence: 'PRI-531 durable application history; graduated default-on PRI-571 (2026-08-24)',
243
+ decided: '2026-08-24',
244
+ graduationCriteria: 'MET — PRI-571 graduation executed 2026-08-24',
245
+ retirementCriteria: 'Ledger becomes unconditional durability contract; flag-off branch removed',
246
+ },
247
+ principle_receipt_self_report: {
248
+ decision: 'KEEP_QUIET',
249
+ consumers: ['openclaw-plugin/src/core/principle-applica* (self-report capture)', 'host-runtime active-principle-prompt*'],
250
+ evidence: 'PRI-532 P1-a agent self-report 📌 line (since 2026-08-16); default-off pending agent-compliance validation',
251
+ decided: '2026-08-27',
252
+ graduationCriteria: 'Self-report line proven reliable across hosts (agents actually append 📌 when behavior changes)',
253
+ retirementCriteria: 'Self-report mechanism abandoned (ledger covers evidence need)',
254
+ },
255
+ principle_governance_projection_v2: {
256
+ decision: 'GRADUATE',
257
+ consumers: ['pd-console/src/server/routes/principles* (per-principle projection)'],
258
+ evidence: 'PRI-549 read-only governance projection; graduated default-on PRI-571 (2026-08-24)',
259
+ decided: '2026-08-24',
260
+ graduationCriteria: 'MET — PRI-571 graduation executed 2026-08-24',
261
+ retirementCriteria: 'Pre-projection detail view branch deleted; projection becomes the only view',
262
+ },
263
+ failed_task_recovery_console: {
264
+ decision: 'KEEP_QUIET',
265
+ consumers: ['pd-console/src/server/routes/failed-task* recover endpoint', 'pd-console Failed Tasks recovery button'],
266
+ evidence: 'Governance Recovery Actions v1; owner decision default-on (2026-08-24); flag-off = read-only console',
267
+ decided: '2026-08-24',
268
+ graduationCriteria: 'Recovery actions validated without misuse on live workspace',
269
+ retirementCriteria: 'Recovery becomes core console capability (flag collapses)',
270
+ },
271
+ pain_diagnosis_persistence: {
272
+ decision: 'KEEP_QUIET',
273
+ consumers: ['principles-core diagnostician stage-A prompt', 'PainSignalBridge persistence'],
274
+ evidence: 'Pain diagnosis persistence (since 2026-08-23, PR #1389); default-off pending review merge + validation',
275
+ decided: '2026-08-27',
276
+ graduationCriteria: 'Root-cause attribution proven accurate in dogfood pain diagnoses',
277
+ retirementCriteria: 'Attribution persistence direction descoped',
278
+ },
279
+ governance_experience_v1: {
280
+ decision: 'GRADUATE',
281
+ consumers: ['pd-console/src/server/routes/governance* experience endpoint', 'pd-console Focus page'],
282
+ evidence: 'Governance Experience Snapshot v1.5.1 (PRI-584~587, PR #1409 merged); validated on live workspace 2026-08-29 (action-0): flag probe true with user_config, endpoint 200 returning real snapshot (ownerIdentityConfiguration=missing, rulecode_owner_decision=blocked/owner_identity_missing with nextAction configure_owner); explains-only design (ERR-102 guard)',
283
+ decided: '2026-08-29',
284
+ graduationCriteria: 'MET — graduated default-on 2026-08-29 after live-workspace validation (flag probe true, endpoint 200 + real snapshot)',
285
+ retirementCriteria: 'Legacy Focus view deleted (snapshot becomes the only experience) or feature descoped',
286
+ },
287
+ anonymous_product_telemetry: {
288
+ decision: 'KEEP_QUIET',
289
+ consumers: ['host-runtime/src/product-telemetry/service*', 'pd-cli/src/commands/telemetry.ts'],
290
+ evidence: 'Anonymous Product Telemetry v1 (PRI-595~603, PR #1419 merged); maintainer release gate, default-off; export also requires explicit consent',
291
+ decided: '2026-08-27',
292
+ graduationCriteria: 'Maintainer flips release gate after dogfood period (consent UX + data quality validated)',
293
+ retirementCriteria: 'Telemetry program cancelled — delete exporter + flag',
294
+ },
295
+ };
296
+ //# sourceMappingURL=feature-flag-lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-flag-lifecycle.js","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/feature-flag-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
- export { VALID_CATEGORIES, validateFeatureFlagRaw, computeEffectiveFlags, DEFAULT_FEATURE_FLAGS, } from './feature-flag-contract.js';
2
- export type { FeatureFlagCategory, FeatureFlagDefinition, EffectiveFeatureFlags, ValidationResult, ValidationResultOk, ValidationResultErr, } from './feature-flag-contract.js';
1
+ export { VALID_CATEGORIES, validateFeatureFlagRaw, computeEffectiveFlags, DEFAULT_FEATURE_FLAGS, FEATURE_FLAG_ALIASES, normalizeFeatureFlagOverrides, } from './feature-flag-contract.js';
2
+ export type { FeatureFlagCategory, FeatureFlagDefinition, EffectiveFeatureFlags, ValidationResult, ValidationResultOk, ValidationResultErr, FeatureFlagOverrideNormalization, } from './feature-flag-contract.js';
3
+ export { QUIET_FLAG_LIFECYCLE, } from './feature-flag-lifecycle.js';
4
+ export type { QuietFlagLifecycleDecision, QuietFlagLifecycleEntry, } from './feature-flag-lifecycle.js';
3
5
  export { VALID_SURFACE_KINDS, VALID_MVP_CATEGORIES, PLUGIN_SURFACE_REGISTRY, validateSurfaceRegistry, getEnabledSurfaces, getSurfacesByCategory, getSurfacesByKind, findUnclassifiedSurfaces, } from './plugin-surface-registry.js';
4
6
  export type { SurfaceKind, MvpCategory, PluginSurfaceEntry, SurfaceRegistryValidationResult, } from './plugin-surface-registry.js';
5
7
  export { checkSurfaceGuard, getSurfaceIdForHook, getSurfaceIdForService, isSurfaceEnabled, guardHook, guardService, __resetSurfaceGuardSkipLogStateForTests, } from './surface-guard-policy.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,uCAAuC,GACxC,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/runtime-v2/feature-flags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,6BAA6B,GAC9B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,gCAAgC,GACjC,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EACL,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,uCAAuC,GACxC,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,kBAAkB,EAClB,WAAW,GACZ,MAAM,2BAA2B,CAAC"}