Feature: Correction Service Coverage Boost
  Additional scenarios that exercise previously uncovered code paths
  in the correction_service module, specifically the event emission
  logic in _emit_correction_applied (lines 80-101).

  Background:
    Given the csboost correction service module is imported

  Scenario: Event bus receives CORRECTION_APPLIED event on successful revert
    Given a csboost correction service with a working event bus
    And a csboost REVERT correction request for plan "plan-1" targeting decision "dec-1"
    When I csboost execute the revert correction with a simple decision tree
    Then the csboost event bus should have received exactly 1 event
    And the csboost emitted event should have type CORRECTION_APPLIED
    And the csboost emitted event details should contain the correction id
    And the csboost emitted event details should contain mode "revert"
    And the csboost emitted event plan_id should be "plan-1"

  Scenario: Event bus receives CORRECTION_APPLIED event on successful append
    Given a csboost correction service with a working event bus
    And a csboost APPEND correction request for plan "plan-2" targeting decision "dec-2"
    When I csboost execute the append correction
    Then the csboost event bus should have received exactly 1 event
    And the csboost emitted event should have type CORRECTION_APPLIED
    And the csboost emitted event details should contain mode "append"

  Scenario: Event bus emit failure is caught and logged without raising
    Given a csboost correction service with a failing event bus
    And a csboost REVERT correction request for plan "plan-3" targeting decision "dec-3"
    When I csboost execute the revert correction with a simple decision tree
    Then the csboost correction result status should be APPLIED
    And the csboost failing event bus emit should have been called
    And csboost no exception should have propagated to the caller

  Scenario: Event bus emit failure is caught on append correction
    Given a csboost correction service with a failing event bus
    And a csboost APPEND correction request for plan "plan-4" targeting decision "dec-4"
    When I csboost execute the append correction
    Then the csboost correction result status should be APPLIED
    And the csboost failing event bus emit should have been called
    And csboost no exception should have propagated to the caller

  Scenario: Event is not emitted when correction is no longer executable
    Given a csboost correction service with a working event bus
    And a csboost REVERT correction request for plan "plan-5" targeting decision "dec-5"
    And the csboost correction has already been executed once
    When I csboost attempt to execute the revert correction again
    Then the csboost correction result status should be FAILED
    And the csboost event bus should have received exactly 0 new events since the second attempt

  Scenario: Emitted event details contain guidance text
    Given a csboost correction service with a working event bus
    And a csboost REVERT correction request for plan "plan-6" targeting decision "dec-6"
    And the csboost correction request has guidance "fix the regression"
    When I csboost execute the revert correction with a simple decision tree
    Then the csboost emitted event details should contain guidance "fix the regression"

  Scenario: Emitted event details contain target_decision_id
    Given a csboost correction service with a working event bus
    And a csboost APPEND correction request for plan "plan-7" targeting decision "dec-7"
    When I csboost execute the append correction
    Then the csboost emitted event details should contain target_decision_id "dec-7"

  Scenario: Event dispatched via execute_correction for revert mode with event bus
    Given a csboost correction service with a working event bus
    And a csboost REVERT correction request for plan "plan-8" targeting decision "dec-8"
    When I csboost execute the correction via the dispatch method with a simple tree
    Then the csboost event bus should have received exactly 1 event
    And the csboost emitted event should have type CORRECTION_APPLIED
