Coverage for src / pipeline / issue_result.py: 100%
17 statements
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-04 04:43 +0000
« prev ^ index » next coverage.py v7.13.0, created at 2026-01-04 04:43 +0000
1"""Issue result dataclass for MalaOrchestrator.
3This module contains the IssueResult dataclass which holds the result
4of a single issue implementation.
5"""
7from __future__ import annotations
9from dataclasses import dataclass
10from typing import TYPE_CHECKING
12if TYPE_CHECKING:
13 from pathlib import Path
15 from src.core.models import IssueResolution
16 from src.core.protocols import ReviewIssueProtocol
19@dataclass
20class IssueResult:
21 """Result from a single issue implementation."""
23 issue_id: str
24 agent_id: str
25 success: bool
26 summary: str
27 duration_seconds: float = 0.0
28 session_id: str | None = None # Claude SDK session ID
29 gate_attempts: int = 1 # Number of gate retry attempts
30 review_attempts: int = 0 # Number of Codex review attempts
31 resolution: IssueResolution | None = None # Resolution outcome if using markers
32 low_priority_review_issues: list[ReviewIssueProtocol] | None = None # P2/P3 issues
33 session_log_path: Path | None = None # Path to session log file
34 review_log_path: str | None = None # Path to Cerberus review session log