Interface Healing

All Superinterfaces:
org.aeonbits.owner.Config, EngineProperties<Healing>, Serializable

@Sources({"system:properties","file:src/main/resources/properties/custom.properties","file:src/main/resources/properties/default/custom.properties","classpath:custom.properties"}) public interface Healing extends EngineProperties<Healing>
Configuration for optional SHAFT Heal element recovery.

Healing is disabled by default. The deterministic SHAFT Heal provider is supplied by the optional io.github.shafthq:shaft-heal artifact.

  • Method Details

    • strategy

      @Key("healing.strategy") @DefaultValue("disabled") String strategy()
      Returns:
      disabled, healenium, shaft-heal, or composite
    • minimumConfidence

      @Key("healing.minimumConfidence") @DefaultValue("0.75") double minimumConfidence()
      Returns:
      minimum accepted deterministic confidence
    • minimumTrustPercentage

      @Key("healing.minimumTrustPercentage") @DefaultValue("-1") int minimumTrustPercentage()
      Returns:
      preferred minimum accepted trust percentage, or -1 to use healing.minimumConfidence
    • ambiguityMargin

      @Key("healing.ambiguityMargin") @DefaultValue("0.10") double ambiguityMargin()
      Returns:
      required score separation from the next candidate
    • evidenceCategories

      @Key("healing.evidenceCategories") @DefaultValue("accessibility,label,test-id,stable-id-name,semantic,dom-fingerprint,native-state,ancestor-context,history") String evidenceCategories()
      Returns:
      comma-separated evidence categories permitted for deterministic recovery
    • testIdAttributes

      @Key("healing.testIdAttributes") @DefaultValue("data-testid,data-test,data-qa") String testIdAttributes()
      Returns:
      comma-separated attributes treated as configured test IDs
    • historyEnabled

      @Key("healing.history.enabled") @DefaultValue("true") boolean historyEnabled()
      Returns:
      whether bounded local history is enabled
    • historyPath

      @Key("healing.history.path") @DefaultValue("target/shaft-heal/history.json") String historyPath()
      Returns:
      local history file path
    • historyMaxEntries

      @Key("healing.history.maxEntries") @DefaultValue("500") int historyMaxEntries()
      Returns:
      maximum retained history records
    • historyRetentionDays

      @Key("healing.history.retentionDays") @DefaultValue("30") int historyRetentionDays()
      Returns:
      maximum history age in days
    • visualEnabled

      @Key("healing.visual.enabled") @DefaultValue("false") boolean visualEnabled()
      Returns:
      whether optional visual evidence may be evaluated
    • aiEnabled

      @Key("healing.ai.enabled") @DefaultValue("false") boolean aiEnabled()
      Returns:
      whether optional provider reranking may be requested
    • aiTrigger

      @Key("healing.ai.trigger") @DefaultValue("ambiguous") String aiTrigger()
      Returns:
      when optional provider reranking may run: never, ambiguous, below-threshold, or always
    • sourcePatchEnabled

      @Key("healing.sourcePatch.enabled") @DefaultValue("false") boolean sourcePatchEnabled()
      Returns:
      whether reviewed source-patch proposals may be emitted
    • ladderBudgetSeconds

      @Key("healing.ladder.budgetSeconds") @DefaultValue("0") int ladderBudgetSeconds()
      Returns:
      hard total budget in seconds across the whole deterministic re-suggestion ladder, not per attempt (issue #4027). 0 (the default) preserves today's one-shot resolve() behavior unchanged; only a positive value retries until the element is found or the budget is hit. Every existing healing user keeps today's single attempt unless this is explicitly raised (e.g. by SHAFT-Assistant-generated tests, which set it in their generated setUp()).
    • set

      default Healing.SetProperty set()
      Returns a fluent builder for current-thread overrides.
      Specified by:
      set in interface EngineProperties<Healing>
      Returns:
      current-thread property builder