sela-core 0.1.0-alpha.46 → 0.1.0-alpha.47

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 (87) hide show
  1. package/dist/config/ConfigLoader.d.ts +3 -4
  2. package/dist/config/ConfigLoader.d.ts.map +1 -1
  3. package/dist/config/ConfigLoader.js +35 -30
  4. package/dist/config/HealingGovernance.d.ts.map +1 -1
  5. package/dist/config/HealingGovernance.js +46 -7
  6. package/dist/config/SelaConfig.d.ts +0 -28
  7. package/dist/config/SelaConfig.d.ts.map +1 -1
  8. package/dist/config/SelaConfig.js +0 -4
  9. package/dist/engine/HealingRegistry.d.ts +8 -2
  10. package/dist/engine/HealingRegistry.d.ts.map +1 -1
  11. package/dist/engine/HealingRegistry.js +20 -7
  12. package/dist/engine/SelaEngine.d.ts.map +1 -1
  13. package/dist/engine/SelaEngine.js +34 -60
  14. package/dist/engine/lifecycle/SelaLifecycleStateManager.d.ts +10 -0
  15. package/dist/engine/lifecycle/SelaLifecycleStateManager.d.ts.map +1 -1
  16. package/dist/engine/lifecycle/SelaLifecycleStateManager.js +26 -8
  17. package/dist/errors/FailureClassifier.d.ts.map +1 -1
  18. package/dist/errors/FailureClassifier.js +46 -10
  19. package/dist/errors/SelectorForensics.d.ts +13 -2
  20. package/dist/errors/SelectorForensics.d.ts.map +1 -1
  21. package/dist/errors/SelectorForensics.js +33 -3
  22. package/dist/fixtures/expectProxy.d.ts.map +1 -1
  23. package/dist/fixtures/expectProxy.js +19 -5
  24. package/dist/fixtures/index.d.ts +15 -0
  25. package/dist/fixtures/index.d.ts.map +1 -1
  26. package/dist/fixtures/index.js +157 -70
  27. package/dist/forensics/SelectorForensics.d.ts +3 -0
  28. package/dist/forensics/SelectorForensics.d.ts.map +1 -0
  29. package/dist/forensics/SelectorForensics.js +25 -0
  30. package/dist/heuristics/AnnotationScanner.d.ts +26 -0
  31. package/dist/heuristics/AnnotationScanner.d.ts.map +1 -0
  32. package/dist/heuristics/AnnotationScanner.js +180 -0
  33. package/dist/heuristics/VetoEngine.d.ts +64 -0
  34. package/dist/heuristics/VetoEngine.d.ts.map +1 -0
  35. package/dist/heuristics/VetoEngine.js +132 -0
  36. package/dist/reporter/SelaReporter.d.ts +4 -50
  37. package/dist/reporter/SelaReporter.d.ts.map +1 -1
  38. package/dist/reporter/SelaReporter.js +38 -262
  39. package/dist/services/ASTSourceUpdater.d.ts +7 -0
  40. package/dist/services/ASTSourceUpdater.d.ts.map +1 -1
  41. package/dist/services/ASTSourceUpdater.js +43 -93
  42. package/dist/services/AggregatorCRDT.d.ts +57 -0
  43. package/dist/services/AggregatorCRDT.d.ts.map +1 -0
  44. package/dist/services/AggregatorCRDT.js +0 -0
  45. package/dist/services/AnchorResolver.d.ts +10 -0
  46. package/dist/services/AnchorResolver.d.ts.map +1 -1
  47. package/dist/services/AnchorResolver.js +22 -7
  48. package/dist/services/ArtifactAggregator.d.ts.map +1 -1
  49. package/dist/services/ArtifactAggregator.js +11 -0
  50. package/dist/services/ArtifactNaming.d.ts +0 -31
  51. package/dist/services/ArtifactNaming.d.ts.map +1 -1
  52. package/dist/services/ArtifactNaming.js +0 -55
  53. package/dist/services/AtomicChainMutator.d.ts +73 -0
  54. package/dist/services/AtomicChainMutator.d.ts.map +1 -0
  55. package/dist/services/AtomicChainMutator.js +205 -0
  56. package/dist/services/DnaSyncService.d.ts.map +1 -1
  57. package/dist/services/DnaSyncService.js +46 -11
  58. package/dist/services/HealBudget.d.ts.map +1 -1
  59. package/dist/services/HealBudget.js +15 -1
  60. package/dist/services/HealCircuitBreaker.d.ts.map +1 -1
  61. package/dist/services/HealCircuitBreaker.js +16 -2
  62. package/dist/services/HealingCacheService.d.ts.map +1 -1
  63. package/dist/services/HealingCacheService.js +17 -2
  64. package/dist/services/LedgerAnchor.js +1 -1
  65. package/dist/services/MutationApplier.d.ts.map +1 -1
  66. package/dist/services/MutationApplier.js +26 -13
  67. package/dist/services/PRAutomationService.d.ts.map +1 -1
  68. package/dist/services/PRAutomationService.js +27 -9
  69. package/dist/services/ReportMergeService.d.ts.map +1 -1
  70. package/dist/services/ReportMergeService.js +25 -12
  71. package/dist/services/SafetyGuard.d.ts +1 -0
  72. package/dist/services/SafetyGuard.d.ts.map +1 -1
  73. package/dist/services/SafetyGuard.js +29 -0
  74. package/dist/services/SessionContext.d.ts +53 -0
  75. package/dist/services/SessionContext.d.ts.map +1 -0
  76. package/dist/services/SessionContext.js +147 -0
  77. package/dist/services/TestDeadline.d.ts +0 -1
  78. package/dist/services/TestDeadline.d.ts.map +1 -1
  79. package/dist/services/TestDeadline.js +11 -2
  80. package/dist/services/TraceBackEngine.d.ts +1 -1
  81. package/dist/services/TraceBackEngine.d.ts.map +1 -1
  82. package/dist/services/TraceBackEngine.js +78 -34
  83. package/dist/services/vcs/VCSProviderFactory.js +3 -3
  84. package/dist/utils/SourceNormalizer.d.ts +67 -0
  85. package/dist/utils/SourceNormalizer.d.ts.map +1 -0
  86. package/dist/utils/SourceNormalizer.js +125 -0
  87. package/package.json +33 -1
@@ -1,8 +1,7 @@
1
1
  import { SelaConfig, ResolvedConfig } from "./SelaConfig";
2
2
  export declare class ConfigLoader {
3
- private static resolved;
4
- private static branch;
5
- private static rawUserConfig;
3
+ private static readonly SESSION_SLOT;
4
+ private static cache;
6
5
  /**
7
6
  * Returns the fully resolved config. First call does all I/O; subsequent
8
7
  * calls return the cached result at zero cost.
@@ -22,7 +21,7 @@ export declare class ConfigLoader {
22
21
  private static logEnvBanners;
23
22
  /** Returns the detected Git branch name, or null if detection failed. */
24
23
  static getBranch(): string | null;
25
- /** Clears the singleton cache - useful for testing. */
24
+ /** Clears the session's config cache - useful for testing. */
26
25
  static reset(): void;
27
26
  }
28
27
  //# sourceMappingURL=ConfigLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AAiSzE,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA+B;IACtD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAuB;IAK5C,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2B;IAEvD;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAqCpC;;;;OAIG;IACH,MAAM,CAAC,YAAY,IAAI,UAAU;IAKjC,OAAO,CAAC,MAAM,CAAC,aAAa;IAsB5B,yEAAyE;IACzE,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI;IAKjC,uDAAuD;IACvD,MAAM,CAAC,KAAK,IAAI,IAAI;CAKrB"}
1
+ {"version":3,"file":"ConfigLoader.d.ts","sourceRoot":"","sources":["../../src/config/ConfigLoader.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAiB,MAAM,cAAc,CAAC;AA2SzE,qBAAa,YAAY;IAMvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAA0C;IAE9E,OAAO,CAAC,MAAM,CAAC,KAAK;IAQpB;;;;;;;;OAQG;IACH,MAAM,CAAC,WAAW,IAAI,cAAc;IAsCpC;;;;OAIG;IACH,MAAM,CAAC,YAAY,IAAI,UAAU;IAKjC,OAAO,CAAC,MAAM,CAAC,aAAa;IAsB5B,yEAAyE;IACzE,MAAM,CAAC,SAAS,IAAI,MAAM,GAAG,IAAI;IAKjC,8DAA8D;IAC9D,MAAM,CAAC,KAAK,IAAI,IAAI;CAMrB"}
@@ -43,6 +43,7 @@ const path = __importStar(require("path"));
43
43
  const child_process_1 = require("child_process");
44
44
  const SelaConfig_1 = require("./SelaConfig");
45
45
  const logger_1 = require("../utils/logger");
46
+ const SessionContext_1 = require("../services/SessionContext");
46
47
  // All public top-level keys of SelaConfig — used to catch typos at load time.
47
48
  const KNOWN_CONFIG_KEYS = new Set([
48
49
  "healingPolicy",
@@ -63,7 +64,6 @@ const KNOWN_CONFIG_KEYS = new Set([
63
64
  "branchOverrides",
64
65
  "llm",
65
66
  "healing",
66
- "reporting",
67
67
  ]);
68
68
  // ─────────────────────────────────────────────────────────────────
69
69
  // FILE DISCOVERY
@@ -277,17 +277,20 @@ function deepMerge(base, override) {
277
277
  }
278
278
  return result;
279
279
  }
280
- // ─────────────────────────────────────────────────────────────────
281
- // SINGLETON LOADER
282
- // ─────────────────────────────────────────────────────────────────
283
280
  class ConfigLoader {
284
- static resolved = null;
285
- static branch = null;
286
- // Raw, pre-resolution user config (after branch merge). Needed by consumers
287
- // that must distinguish a USER-authored field from an engine default — e.g.
288
- // the conventions injector, where defaulted playwrightRules must NOT clobber
289
- // a discovered `.sela/conventions.json`.
290
- static rawUserConfig = null;
281
+ // Session-scoped resolution cache. Under a plain worker (no `runInSession`)
282
+ // this is the process-default session's single bundle — identical to the
283
+ // historical process-lifetime singleton. Under Chronos, each session resolves
284
+ // config against its OWN cwd/branch without a second session's resolution
285
+ // clobbering the first's cached bundle.
286
+ static SESSION_SLOT = Symbol.for("sela.session.configCache");
287
+ static cache() {
288
+ return (0, SessionContext_1.sessionSlot)(ConfigLoader.SESSION_SLOT, () => ({
289
+ resolved: null,
290
+ branch: null,
291
+ rawUserConfig: null,
292
+ }));
293
+ }
291
294
  /**
292
295
  * Returns the fully resolved config. First call does all I/O; subsequent
293
296
  * calls return the cached result at zero cost.
@@ -298,19 +301,20 @@ class ConfigLoader {
298
301
  * - `SELA_DRY_RUN` / `SELA_NO_CACHE` contain an unrecognised value.
299
302
  */
300
303
  static getInstance() {
301
- if (ConfigLoader.resolved)
302
- return ConfigLoader.resolved;
304
+ const cache = ConfigLoader.cache();
305
+ if (cache.resolved)
306
+ return cache.resolved;
303
307
  const configPath = findConfigFile(process.cwd());
304
308
  if (!configPath) {
305
- ConfigLoader.rawUserConfig = {};
306
- ConfigLoader.resolved = (0, SelaConfig_1.resolveConfig)({});
307
- ConfigLoader.logEnvBanners(ConfigLoader.resolved);
308
- return ConfigLoader.resolved;
309
+ cache.rawUserConfig = {};
310
+ cache.resolved = (0, SelaConfig_1.resolveConfig)({});
311
+ ConfigLoader.logEnvBanners(cache.resolved);
312
+ return cache.resolved;
309
313
  }
310
314
  logger_1.logger.debug(`Loaded config from: ${path.relative(process.cwd(), configPath)}`);
311
315
  let rawConfig = loadRawConfig(configPath);
312
316
  const detectedBranch = getCurrentBranch();
313
- ConfigLoader.branch = detectedBranch;
317
+ cache.branch = detectedBranch;
314
318
  if (rawConfig.branchOverrides && detectedBranch) {
315
319
  const override = rawConfig.branchOverrides[detectedBranch];
316
320
  if (override) {
@@ -318,10 +322,10 @@ class ConfigLoader {
318
322
  rawConfig = deepMerge(rawConfig, override);
319
323
  }
320
324
  }
321
- ConfigLoader.rawUserConfig = rawConfig;
322
- ConfigLoader.resolved = (0, SelaConfig_1.resolveConfig)(rawConfig);
323
- ConfigLoader.logEnvBanners(ConfigLoader.resolved);
324
- return ConfigLoader.resolved;
325
+ cache.rawUserConfig = rawConfig;
326
+ cache.resolved = (0, SelaConfig_1.resolveConfig)(rawConfig);
327
+ ConfigLoader.logEnvBanners(cache.resolved);
328
+ return cache.resolved;
325
329
  }
326
330
  /**
327
331
  * Returns the raw, pre-resolution user config (after branch-override merge).
@@ -329,9 +333,9 @@ class ConfigLoader {
329
333
  * for normal reads use {@link getInstance} (resolved + defaulted).
330
334
  */
331
335
  static getRawConfig() {
332
- if (!ConfigLoader.resolved)
336
+ if (!ConfigLoader.cache().resolved)
333
337
  ConfigLoader.getInstance();
334
- return ConfigLoader.rawUserConfig ?? {};
338
+ return ConfigLoader.cache().rawUserConfig ?? {};
335
339
  }
336
340
  static logEnvBanners(resolved) {
337
341
  if (resolved.bypass) {
@@ -350,15 +354,16 @@ class ConfigLoader {
350
354
  }
351
355
  /** Returns the detected Git branch name, or null if detection failed. */
352
356
  static getBranch() {
353
- if (!ConfigLoader.resolved)
357
+ if (!ConfigLoader.cache().resolved)
354
358
  ConfigLoader.getInstance();
355
- return ConfigLoader.branch;
359
+ return ConfigLoader.cache().branch;
356
360
  }
357
- /** Clears the singleton cache - useful for testing. */
361
+ /** Clears the session's config cache - useful for testing. */
358
362
  static reset() {
359
- ConfigLoader.resolved = null;
360
- ConfigLoader.branch = null;
361
- ConfigLoader.rawUserConfig = null;
363
+ const cache = ConfigLoader.cache();
364
+ cache.resolved = null;
365
+ cache.branch = null;
366
+ cache.rawUserConfig = null;
362
367
  }
363
368
  }
364
369
  exports.ConfigLoader = ConfigLoader;
@@ -1 +1 @@
1
- {"version":3,"file":"HealingGovernance.d.ts","sourceRoot":"","sources":["../../src/config/HealingGovernance.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAE1D,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,0BAA0B,GAC1B,+BAA+B,GAC/B,gCAAgC,GAChC,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAQD,qBAAa,iBAAiB;IAM1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,GAAG;IANtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;gBAG7C,GAAG,EAAE,qBAAqB,EAC1B,GAAG,GAAE,MAAsB;IAiB9C,cAAc,IAAI,OAAO;IAIzB,yDAAyD;IACzD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUzC,2EAA2E;IAC3E,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAoCrD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAanE,gFAAgF;IAChF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI;CAsB1D;AAWD,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAQ3D;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
1
+ {"version":3,"file":"HealingGovernance.d.ts","sourceRoot":"","sources":["../../src/config/HealingGovernance.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,0BAA0B,GAC1B,+BAA+B,GAC/B,gCAAgC,GAChC,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qEAAqE;AACrE,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5D,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAsCD,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAwB;IAC5C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;gBAEpD,GAAG,EAAE,qBAAqB,EAAE,GAAG,GAAE,MAAsB;IA8BnE,cAAc,IAAI,OAAO;IAIzB,yDAAyD;IACzD,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAUzC,2EAA2E;IAC3E,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAoCrD,oFAAoF;IACpF,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAanE,gFAAgF;IAChF,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,GAAG,IAAI;CAyB1D;AAWD,wBAAgB,gBAAgB,IAAI,iBAAiB,GAAG,IAAI,CAQ3D;AAED,2EAA2E;AAC3E,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -55,10 +55,37 @@ const path = __importStar(require("path"));
55
55
  const minimatch_1 = require("minimatch");
56
56
  const ConfigLoader_1 = require("./ConfigLoader");
57
57
  const PathScopeGuard_1 = require("./PathScopeGuard");
58
+ const logger_1 = require("../utils/logger");
58
59
  const REGEX_LITERAL = /^\/(.+)\/$/;
59
60
  function escapeRegExp(s) {
60
61
  return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
61
62
  }
63
+ function sanitizeStringArray(value) {
64
+ return Array.isArray(value)
65
+ ? value.filter((v) => typeof v === "string")
66
+ : [];
67
+ }
68
+ /**
69
+ * Defense-in-depth (CLAUDE.md Zero-Crash Policy): production always feeds
70
+ * this class a `resolveHealing()`-validated config, but the class is also
71
+ * constructed directly (tests, future call sites) — a missing/malformed
72
+ * field here must degrade gracefully, never crash the constructor. A single
73
+ * bad field crashing construction would otherwise take out ALL governance
74
+ * for that instance (see `sharedGovernance()`'s catch-to-null below), not
75
+ * just the one bad entry.
76
+ */
77
+ function sanitizeHealingConfig(cfg) {
78
+ const c = (cfg ?? {});
79
+ return {
80
+ enabled: c.enabled ?? true,
81
+ exclude: sanitizeStringArray(c.exclude),
82
+ protectedSelectors: sanitizeStringArray(c.protectedSelectors),
83
+ protectedAttributes: sanitizeStringArray(c.protectedAttributes),
84
+ triggers: c.triggers ?? { interactionBlocked: "refuse" },
85
+ criticality: c.criticality ?? {},
86
+ annotations: c.annotations ?? true,
87
+ };
88
+ }
62
89
  class HealingGovernance {
63
90
  cfg;
64
91
  cwd;
@@ -66,16 +93,25 @@ class HealingGovernance {
66
93
  selectorRegexes;
67
94
  attrLocks;
68
95
  constructor(cfg, cwd = process.cwd()) {
69
- this.cfg = cfg;
96
+ this.cfg = sanitizeHealingConfig(cfg);
70
97
  this.cwd = cwd;
71
- this.exactSelectors = new Set(cfg.protectedSelectors.filter((s) => !REGEX_LITERAL.test(s)));
72
- this.selectorRegexes = cfg.protectedSelectors
98
+ this.exactSelectors = new Set(this.cfg.protectedSelectors.filter((s) => !REGEX_LITERAL.test(s)));
99
+ this.selectorRegexes = this.cfg.protectedSelectors
73
100
  .map((s) => REGEX_LITERAL.exec(s))
74
101
  .filter((m) => m !== null)
75
- .map((m) => ({ source: m[0], re: new RegExp(m[1]) }));
102
+ .map((m) => {
103
+ try {
104
+ return { source: m[0], re: new RegExp(m[1]) };
105
+ }
106
+ catch (e) {
107
+ logger_1.logger.warn(`[Sela Warning]: Skipping gracefully — invalid protectedSelectors regex literal ${m[0]} (${e instanceof Error ? e.message : String(e)})`);
108
+ return null;
109
+ }
110
+ })
111
+ .filter((entry) => entry !== null);
76
112
  // Matches `[attr=`, `[attr~=`, `[attr^=` … — the CSS attribute anchor
77
113
  // forms, including the getByTestId → [data-testid="…"] fixture mapping.
78
- this.attrLocks = cfg.protectedAttributes.map((attr) => ({
114
+ this.attrLocks = this.cfg.protectedAttributes.map((attr) => ({
79
115
  attr,
80
116
  re: new RegExp(`\\[\\s*${escapeRegExp(attr)}\\s*[*^$~|]?=`, "i"),
81
117
  }));
@@ -144,7 +180,10 @@ class HealingGovernance {
144
180
  testOptedOut(info) {
145
181
  if (!this.cfg.annotations)
146
182
  return null;
147
- const annotated = (info.annotations ?? []).some((a) => a?.type === "sela" &&
183
+ const safeInfo = info ?? {};
184
+ const annotations = Array.isArray(safeInfo.annotations) ? safeInfo.annotations : [];
185
+ const tags = Array.isArray(safeInfo.tags) ? safeInfo.tags : [];
186
+ const annotated = annotations.some((a) => a?.type === "sela" &&
148
187
  typeof a.description === "string" &&
149
188
  /\bno-?heal\b/i.test(a.description));
150
189
  if (annotated) {
@@ -153,7 +192,7 @@ class HealingGovernance {
153
192
  reason: "test carries annotation { type: 'sela', description: 'no-heal' }",
154
193
  };
155
194
  }
156
- if ((info.tags ?? []).includes("@sela-no-heal")) {
195
+ if (tags.includes("@sela-no-heal")) {
157
196
  return {
158
197
  kind: "GOVERNANCE_ANNOTATION",
159
198
  reason: "test is tagged @sela-no-heal",
@@ -1,4 +1,3 @@
1
- import { type ReportMode } from "../services/ArtifactNaming";
2
1
  export type PRStrategy = "directCommit" | "pr" | "draftPR" | "readOnly";
3
2
  export type BugAction = "failCI" | "createIssue" | "labelOnly";
4
3
  export interface SelaPRAutomationConfig {
@@ -155,27 +154,9 @@ export interface SelaHealingConfig {
155
154
  /** Honor `@sela-no-heal` tags / `{ type:'sela' }` annotations. Default true. */
156
155
  annotations?: boolean;
157
156
  }
158
- /**
159
- * Two-Phase Reporting (RFC: docs/rfc-two-phase-reporting.md).
160
- * Controls WHEN the HTML report + git/PR flow execute.
161
- */
162
- export interface SelaReportingConfig {
163
- /**
164
- * - 'auto' (default): local runs and single-machine CI stay eager
165
- * (report + PR flow in the reporter's onEnd); CI runs with a shard
166
- * signal (`--shard=N/M` or `SELA_SHARD_ID`) defer to the fan-in job.
167
- * - 'eager': always finalize in onEnd (legacy behavior).
168
- * - 'deferred': onEnd only emits raw JSON artifacts under `.sela/artifacts/`;
169
- * `sela report generate` + `sela pr generate` own the fan-in.
170
- * Env `SELA_REPORT_MODE` overrides this value.
171
- */
172
- mode?: ReportMode;
173
- }
174
157
  export interface SelaConfig {
175
158
  /** Shorthand preset that expands to concrete threshold values. */
176
159
  healingPolicy?: "conservative" | "balanced" | "aggressive";
177
- /** Two-phase reporting mode (Allure pattern). Default: { mode: 'auto' }. */
178
- reporting?: SelaReportingConfig;
179
160
  /** Fine-grained threshold overrides. Explicit values always win over preset expansion. */
180
161
  thresholds?: {
181
162
  /** Minimum AI confidence to attempt a heal. Default: 85. Maps to CONFIDENCE_HARD_STOP. */
@@ -402,17 +383,8 @@ export interface ResolvedPlaywrightRules {
402
383
  testIdAttribute: string;
403
384
  preferGetByRoleOverCss: boolean;
404
385
  }
405
- export interface ResolvedReporting {
406
- /**
407
- * The CONFIGURED mode after the `SELA_REPORT_MODE` env override. `auto` is
408
- * collapsed into eager/deferred at the reporter layer, where the Playwright
409
- * shard signal is known (see ArtifactNaming.resolveEffectiveReportMode).
410
- */
411
- mode: ReportMode;
412
- }
413
386
  export interface ResolvedConfig {
414
387
  thresholds: ResolvedThresholds;
415
- reporting: ResolvedReporting;
416
388
  updateStrategy: "inPlace" | "commentOnly" | "branch";
417
389
  autoCommit: boolean;
418
390
  dnaStoragePath: string;
@@ -1 +1 @@
1
- {"version":3,"file":"SelaConfig.d.ts","sourceRoot":"","sources":["../../src/config/SelaConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelaConfig.d.ts","sourceRoot":"","sources":["../../src/config/SelaConfig.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,6 @@ exports.resolveLargeDomNodeThreshold = resolveLargeDomNodeThreshold;
10
10
  exports.resolveTiming = resolveTiming;
11
11
  exports.resolveHealing = resolveHealing;
12
12
  exports.resolveConfig = resolveConfig;
13
- const ArtifactNaming_1 = require("../services/ArtifactNaming");
14
13
  const PRESET_MAP = {
15
14
  conservative: {
16
15
  minHealerConfidence: 92,
@@ -317,9 +316,6 @@ function resolveConfig(config, env = process.env) {
317
316
  const largeDomNodeThreshold = resolveLargeDomNodeThreshold(config.largeDomNodeThreshold);
318
317
  return {
319
318
  thresholds: resolveThresholds(config),
320
- reporting: {
321
- mode: (0, ArtifactNaming_1.resolveConfiguredReportMode)(config.reporting?.mode, env),
322
- },
323
319
  updateStrategy: config.updateStrategy ?? "inPlace",
324
320
  autoCommit,
325
321
  dnaStoragePath: config.dnaStoragePath ?? ".sela/snapshots",
@@ -6,7 +6,13 @@ export interface SelectorContext {
6
6
  parentChain?: string[];
7
7
  }
8
8
  export declare class HealingRegistry {
9
- private static instance;
9
+ /**
10
+ * Session-scoped slot key. `getInstance()` resolves the registry from the
11
+ * ACTIVE session (process-default when no `runInSession` is active), so a
12
+ * heal broadcast in one Chronos session never reaches a concurrent session's
13
+ * listeners or overwrites its call-site map.
14
+ */
15
+ private static readonly SESSION_SLOT;
10
16
  private readonly listeners;
11
17
  /**
12
18
  * Two-level store:
@@ -19,7 +25,7 @@ export declare class HealingRegistry {
19
25
  private readonly healMap;
20
26
  private constructor();
21
27
  static getInstance(): HealingRegistry;
22
- static fingerprint(ctx: SelectorContext): string;
28
+ static fingerprint(ctx: SelectorContext | null | undefined): string;
23
29
  broadcast(ctx: SelectorContext, oldSelector: string, newSelector: string): void;
24
30
  broadcastCascade(ctx: SelectorContext, pairs: Array<{
25
31
  oldSelector: string;
@@ -1 +1 @@
1
- {"version":3,"file":"HealingRegistry.d.ts","sourceRoot":"","sources":["../../src/engine/HealingRegistry.ts"],"names":[],"mappings":"AAKA,KAAK,YAAY,GAAG,CAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAkB;IAEzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,eAAe;IASrC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,MAAM;IAUhD,SAAS,CACP,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IAqBP,gBAAgB,CACd,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;IAMP;;;;;;;OAOG;IACH,IAAI,CACF,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,eAAe,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,GACD,IAAI;IAcP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,MAAM;IAYhE,OAAO,CAAC,SAAS;IAWjB,YAAY,IAAI,IAAI;IAMpB,QAAQ,IAAI,IAAI;CAIjB"}
1
+ {"version":3,"file":"HealingRegistry.d.ts","sourceRoot":"","sources":["../../src/engine/HealingRegistry.ts"],"names":[],"mappings":"AAMA,KAAK,YAAY,GAAG,CAClB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,KAChB,IAAI,CAAC;AAEV,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,eAAe;IAC1B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAElC;IAEF,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA2B;IAErD;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA0C;IAElE,OAAO;IAEP,MAAM,CAAC,WAAW,IAAI,eAAe;IASrC,MAAM,CAAC,WAAW,CAAC,GAAG,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM;IAmBnE,SAAS,CACP,GAAG,EAAE,eAAe,EACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI;IAqBP,gBAAgB,CACd,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,KAAK,CAAC;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,GACzD,IAAI;IAMP;;;;;;;OAOG;IACH,IAAI,CACF,OAAO,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,eAAe,CAAC;QACrB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,GACD,IAAI;IAcP,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,MAAM,IAAI;IAK7C;;;;OAIG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,eAAe,GAAG,MAAM;IAYhE,OAAO,CAAC,SAAS;IAWjB,YAAY,IAAI,IAAI;IAMpB,QAAQ,IAAI,IAAI;CAIjB"}
@@ -4,8 +4,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.HealingRegistry = void 0;
5
5
  const crypto_1 = require("crypto");
6
6
  const logger_1 = require("../utils/logger");
7
+ const SessionContext_1 = require("../services/SessionContext");
7
8
  class HealingRegistry {
8
- static instance;
9
+ /**
10
+ * Session-scoped slot key. `getInstance()` resolves the registry from the
11
+ * ACTIVE session (process-default when no `runInSession` is active), so a
12
+ * heal broadcast in one Chronos session never reaches a concurrent session's
13
+ * listeners or overwrites its call-site map.
14
+ */
15
+ static SESSION_SLOT = Symbol.for("sela.session.healingRegistry");
9
16
  listeners = new Set();
10
17
  /**
11
18
  * Two-level store:
@@ -18,16 +25,22 @@ class HealingRegistry {
18
25
  healMap = new Map();
19
26
  constructor() { }
20
27
  static getInstance() {
21
- if (!HealingRegistry.instance) {
22
- HealingRegistry.instance = new HealingRegistry();
23
- }
24
- return HealingRegistry.instance;
28
+ return (0, SessionContext_1.sessionSlot)(HealingRegistry.SESSION_SLOT, () => new HealingRegistry());
25
29
  }
26
30
  // ── Fingerprint generation ───────────────────────────────────
27
31
  static fingerprint(ctx) {
28
- const chain = (ctx.parentChain ?? []).join("||");
32
+ // Single shared funnel: broadcast/broadcastCascade/seed/resolveSelector
33
+ // all call this method to derive their map key, so sanitizing HERE
34
+ // (rather than at each call site) closes totality for all four at once.
35
+ // A malformed ctx (null/undefined, or a parentChain that isn't actually
36
+ // an array — e.g. a corrupted/version-skewed ledger record) must never
37
+ // crash the host suite (CLAUDE.md Zero-Crash / Safe Backoff).
38
+ const safeCtx = ctx ?? {};
39
+ const chain = Array.isArray(safeCtx.parentChain)
40
+ ? safeCtx.parentChain.join("||")
41
+ : "";
29
42
  return (0, crypto_1.createHash)("sha1")
30
- .update(`${ctx.filePath}:${ctx.line}:${chain}`)
43
+ .update(`${safeCtx.filePath}:${safeCtx.line}:${chain}`)
31
44
  .digest("hex")
32
45
  .slice(0, 16);
33
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SelaEngine.d.ts","sourceRoot":"","sources":["../../src/engine/SelaEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelaEngine.d.ts","sourceRoot":"","sources":["../../src/engine/SelaEngine.ts"],"names":[],"mappings":"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"}
@@ -66,7 +66,6 @@ const HealBudget_1 = require("../services/HealBudget");
66
66
  const HealCircuitBreaker_1 = require("../services/HealCircuitBreaker");
67
67
  const HealReportService_1 = require("../services/HealReportService");
68
68
  const SharedLocatorGuard_1 = require("../services/SharedLocatorGuard");
69
- const RegressionManifestService_1 = require("../services/RegressionManifestService");
70
69
  const PendingPromptLedger_1 = require("../services/PendingPromptLedger");
71
70
  const InboundArgumentGate_1 = require("../services/InboundArgumentGate");
72
71
  const SelaError_1 = require("../errors/SelaError");
@@ -405,15 +404,20 @@ CRITICAL: Do NOT return a CSS selector like "#my-select". Return plain text only
405
404
  // Surfaces WHY the call failed in the LLM prompt and the report.
406
405
  failure) {
407
406
  logger_1.logger.stage("HEALING", stableId);
408
- // ── Shadow-regression gate (Job 2) ─────────────────────────────
407
+ // ── Shadow-regression / global bypass gate (Job 2, F-7) ─────────
409
408
  // In regression mode the engine NEVER heals. The fixture has already
410
409
  // hot-swapped the manifest's proposed selector at pre-flight; if the call
411
410
  // still failed, that is a genuine downstream side-effect and MUST surface.
411
+ // SELA_BYPASS mirrors this exact short-circuit (F-7 Global Dormancy):
412
+ // Sela must never touch the failure, so heal() returns "" before any
413
+ // LLM/AST/cache work regardless of any other config combination.
412
414
  // Return "" → the caller throws the original error. Zero LLM, zero cache,
413
415
  // zero disk — the "refuse to heal / absolute transparency" contract
414
416
  // (CLAUDE.md §4 & §6).
415
- if (this.config.regressionActive) {
416
- logger_1.logger.debug("Shadow-regression active — heal suppressed, failing naturally.");
417
+ if (this.config.regressionActive || this.config.bypass) {
418
+ logger_1.logger.debug(this.config.bypass
419
+ ? "Bypass active — heal suppressed, failing naturally."
420
+ : "Shadow-regression active — heal suppressed, failing naturally.");
417
421
  return "";
418
422
  }
419
423
  // ── Bypass selector cache ──────────────────────────────────────────────
@@ -1971,21 +1975,27 @@ Decision rule (overrides any typo/Levenshtein-distance heuristic):
1971
1975
  this.snapshotService.remove(stableId);
1972
1976
  }
1973
1977
  async commitUpdates() {
1974
- // ── Shadow-regression: pure execution, ZERO write layers (Job 2) ────
1978
+ // ── Shadow-regression / global bypass: ZERO write layers (Job 2, F-7) ──
1975
1979
  // Golden rule #1 — no disk/git pollution during the regression phase.
1976
1980
  // Skip every persistence side-effect (DNA snapshots, the insights report,
1977
1981
  // the worker ledger, and the regression manifest itself). The run exists
1978
1982
  // only to verify the injected selectors; the CLI merges results into the
1979
1983
  // pristine base report afterward. Buffers are dropped so a long-lived
1980
1984
  // worker process carries nothing into a later run.
1981
- if (this.config.regressionActive) {
1985
+ // SELA_BYPASS (F-7 Global Dormancy) demands the same zero-write outcome —
1986
+ // "zero DNA operations" — as a defense-in-depth mirror of the fixture
1987
+ // layer already handing out native, unproxied objects (so these buffers
1988
+ // should already be empty; this clears them regardless of call path).
1989
+ if (this.config.regressionActive || this.config.bypass) {
1982
1990
  this.dnaBuffer.clear();
1983
1991
  this.healMetaBuffer.clear();
1984
1992
  this.testTitleBuffer.clear();
1985
1993
  this.aliasBuffer.clear();
1986
1994
  HealReportService_1.sharedHealReport.clear();
1987
1995
  WorkspaceSnapshotService_1.sharedWorkspaceSnapshot.clear();
1988
- logger_1.logger.debug("Shadow-regression: commitUpdates skipped (no disk writes).");
1996
+ logger_1.logger.debug(this.config.bypass
1997
+ ? "Bypass: commitUpdates skipped (no disk writes, zero DNA ops)."
1998
+ : "Shadow-regression: commitUpdates skipped (no disk writes).");
1989
1999
  return;
1990
2000
  }
1991
2001
  if (this.dnaBuffer.size > 0) {
@@ -2077,64 +2087,28 @@ Decision rule (overrides any typo/Levenshtein-distance heuristic):
2077
2087
  }
2078
2088
  // Ledger flushed — this worker's WAL intents are all durable now.
2079
2089
  HealJournal_1.sharedHealJournal.clearOwn();
2080
- // ── Sela Insights - render the transparent healing report ───────
2081
- let reportHtmlPath = null;
2090
+ // ── Phase 1 (two-phase pipeline) — emit the raw JSON artifact ONLY ──
2091
+ // End of run NEVER renders sela-report.html, NEVER writes the unified
2092
+ // shadow-regression manifest, and NEVER opens a PR. EVERY process —
2093
+ // worker AND single/main — writes only its namespaced raw report
2094
+ // artifact into <cwd>/.sela/artifacts/ (JSON, `.sela`-scoped). The HTML
2095
+ // report + unified manifest are produced exclusively by the explicit
2096
+ // `sela report generate` fan-in; the PR by `sela pr generate`.
2097
+ //
2098
+ // This is the single-writer invariant taken to its conclusion: since the
2099
+ // run phase never renders a shared file, concurrent workers (or shards on
2100
+ // separate machines) can never race a `sela-report.html` / `.json`.
2082
2101
  const healedEvents = HealReportService_1.sharedHealReport.getHealedEvents();
2083
2102
  const protectedEvents = HealReportService_1.sharedHealReport.getProtectedEvents();
2084
2103
  if (HealReportService_1.sharedHealReport.hasContent()) {
2085
- // SELA-5 single-writer invariant: the write path is decided by PROCESS
2086
- // ROLE, never by environment. A worker process shares one cwd with its
2087
- // peers, so a direct flushToDisk is a last-writer-wins race on
2088
- // sela-report.json (and the regression manifest) — locally AND in CI:
2089
- // real CI runners execute `--workers=N` inside every shard. Workers
2090
- // therefore ALWAYS write a private shard; the single main-process
2091
- // reporter fans them in at onEnd (or `sela merge` across sharded
2092
- // machines). Only a non-worker process may flush the shared files.
2093
- const inWorkerProcess = process.env["TEST_WORKER_INDEX"] !== undefined;
2094
- if (inWorkerProcess) {
2095
- try {
2096
- const shard = HealReportService_1.sharedHealReport.flushShard(process.cwd());
2097
- if (shard) {
2098
- logger_1.logger.debug(`Heal shard written: ${path.relative(process.cwd(), shard)}`);
2099
- }
2100
- }
2101
- catch (err) {
2102
- logger_1.logger.warn(`Failed to write heal shard: ${err.message}`);
2104
+ try {
2105
+ const shard = HealReportService_1.sharedHealReport.flushShard(process.cwd());
2106
+ if (shard) {
2107
+ logger_1.logger.debug(`Heal report artifact written: ${path.relative(process.cwd(), shard)}`);
2103
2108
  }
2104
2109
  }
2105
- else {
2106
- try {
2107
- logger_1.logger.stage("GENERATING REPORT");
2108
- reportHtmlPath = HealReportService_1.sharedHealReport.flushToDisk(process.cwd());
2109
- if (reportHtmlPath) {
2110
- logger_1.logger.success(`Insights report written: ${path.relative(process.cwd(), reportHtmlPath)}`);
2111
- logger_1.logger.info(" Open with: npx sela show-report");
2112
- }
2113
- }
2114
- catch (err) {
2115
- logger_1.logger.warn(`Failed to write insights report: ${err.message}`);
2116
- }
2117
- // ── Shadow-regression manifest (Job 1 → Job 2 handoff) ──────────
2118
- // Emit alongside the report whenever blast-radius protection bypassed
2119
- // a shared locator: the proposed in-memory heal that was NOT written to
2120
- // disk now needs downstream verification. Never re-emit during a
2121
- // regression run, and only on this CI / single-worker path (the same
2122
- // condition that gates flushToDisk) so concurrent local workers do not
2123
- // race-write the manifest.
2124
- if (!this.config.regressionActive) {
2125
- try {
2126
- const records = RegressionManifestService_1.RegressionManifestService.buildRecords(HealReportService_1.sharedHealReport.getBypassedEvents());
2127
- const manifestPath = RegressionManifestService_1.RegressionManifestService.writeManifest(path.join(process.cwd(), ".sela"), records);
2128
- if (manifestPath) {
2129
- logger_1.logger.info(` Shadow-regression manifest: ${path.relative(process.cwd(), manifestPath)} ` +
2130
- `(${records.length} bypass${records.length !== 1 ? "es" : ""})`);
2131
- logger_1.logger.info(" Verify with: npx sela shadow-regression --manifest sela-regression-manifest.json");
2132
- }
2133
- }
2134
- catch (err) {
2135
- logger_1.logger.warn(`Failed to write regression manifest: ${err.message}`);
2136
- }
2137
- }
2110
+ catch (err) {
2111
+ logger_1.logger.warn(`Failed to write heal report artifact: ${err.message}`);
2138
2112
  }
2139
2113
  }
2140
2114
  // ── Cross-process worker ledger ──────────────────────────────────────
@@ -120,5 +120,15 @@ export declare class SelaLifecycleStateManager {
120
120
  /** Read a no-heal lock only if it belongs to the CURRENT session. */
121
121
  private liveLock;
122
122
  private setState;
123
+ /**
124
+ * Defend against a malformed SelectorContext — a null/undefined ctx, or a
125
+ * `parentChain` that isn't actually an array — so a corrupted call-site
126
+ * shape can never crash the host suite (CLAUDE.md F-2 Zero-Crash Policy).
127
+ * Every ctx-consuming public method funnels through here (including the
128
+ * one that forwards ctx into `this.registry`) before it reaches
129
+ * `HealingRegistry.fingerprint`, which assumes a well-formed shape.
130
+ */
131
+ private sanitizeCtx;
132
+ private fp;
123
133
  }
124
134
  //# sourceMappingURL=SelaLifecycleStateManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SelaLifecycleStateManager.d.ts","sourceRoot":"","sources":["../../../src/engine/lifecycle/SelaLifecycleStateManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelaLifecycleStateManager.d.ts","sourceRoot":"","sources":["../../../src/engine/lifecycle/SelaLifecycleStateManager.ts"],"names":[],"mappings":"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"}