Coverage report: 46%

Files Functions Classes

coverage.py v7.13.0, created at 2026-01-04 04:43 +0000

File function   statements missing excluded   coverage
src / __init__.py __getattr__   4 2 0   50%
src / __init__.py (no function)   4 0 2   100%
src / cli / __init__.py (no function)   0 0 0   100%
src / cli / cli.py _lazy   1 1 0   0%
src / cli / cli.py bootstrap   13 7 0   46%
src / cli / cli.py is_braintrust_enabled   1 1 0   0%
src / cli / cli.py display_dry_run_tasks   35 35 0   0%
src / cli / cli.py _print_task_line   13 13 0   0%
src / cli / cli.py ConfigOverrideResult.is_error   1 1 0   0%
src / cli / cli.py _build_cli_args_metadata   1 1 0   0%
src / cli / cli.py _apply_config_overrides   8 8 0   0%
src / cli / cli.py _handle_dry_run   3 3 0   0%
src / cli / cli.py _handle_dry_run._dry_run   3 3 0   0%
src / cli / cli.py _validate_run_args   32 32 0   0%
src / cli / cli.py run   22 22 0   0%
src / cli / cli.py epic_verify   31 31 0   0%
src / cli / cli.py clean   13 13 0   0%
src / cli / cli.py status   56 56 0   0%
src / cli / cli.py _display_instance   34 34 0   0%
src / cli / cli.py __getattr__   32 30 0   6%
src / cli / cli.py (no function)   48 0 2   100%
src / cli / main.py (no function)   5 5 0   0%
src / core / __init__.py (no function)   0 0 0   100%
src / core / log_events.py LogParseError.__init__   4 4 0   0%
src / core / log_events.py _parse_content_block   27 27 0   0%
src / core / log_events.py _parse_content_block_strict   39 39 0   0%
src / core / log_events.py parse_log_entry   23 23 0   0%
src / core / log_events.py parse_log_entry_strict   26 26 1   0%
src / core / log_events.py (no function)   37 0 0   100%
src / core / models.py (no function)   56 0 2   100%
src / core / protocols.py ValidationEvidenceProtocol.has_any_evidence   0 0 1   100%
src / core / protocols.py ValidationEvidenceProtocol.to_evidence_dict   0 0 1   100%
src / core / protocols.py DeadlockMonitorProtocol.handle_event   0 0 1   100%
src / core / protocols.py LogProvider.get_log_path   0 0 1   100%
src / core / protocols.py LogProvider.iter_events   0 0 1   100%
src / core / protocols.py LogProvider.get_end_offset   0 0 1   100%
src / core / protocols.py LogProvider.extract_bash_commands   0 0 1   100%
src / core / protocols.py LogProvider.extract_tool_results   0 0 1   100%
src / core / protocols.py LogProvider.extract_assistant_text_blocks   0 0 1   100%
src / core / protocols.py IssueProvider.get_ready_async   0 0 1   100%
src / core / protocols.py IssueProvider.claim_async   0 0 1   100%
src / core / protocols.py IssueProvider.close_async   0 0 1   100%
src / core / protocols.py IssueProvider.mark_needs_followup_async   0 0 1   100%
src / core / protocols.py IssueProvider.add_dependency_async   0 0 1   100%
src / core / protocols.py IssueProvider.get_issue_description_async   0 0 1   100%
src / core / protocols.py IssueProvider.close_eligible_epics_async   0 0 1   100%
src / core / protocols.py IssueProvider.commit_issues_async   0 0 1   100%
src / core / protocols.py IssueProvider.reset_async   0 0 1   100%
src / core / protocols.py IssueProvider.get_epic_children_async   0 0 1   100%
src / core / protocols.py IssueProvider.get_parent_epic_async   0 0 1   100%
src / core / protocols.py IssueProvider.create_issue_async   0 0 1   100%
src / core / protocols.py IssueProvider.find_issue_by_tag_async   0 0 1   100%
src / core / protocols.py IssueProvider.update_issue_description_async   0 0 1   100%
src / core / protocols.py IssueProvider.update_issue_async   0 0 1   100%
src / core / protocols.py CodeReviewer.__call__   0 0 1   100%
src / core / protocols.py GateChecker.check_with_resolution   0 0 1   100%
src / core / protocols.py GateChecker.get_log_end_offset   0 0 1   100%
src / core / protocols.py GateChecker.check_no_progress   0 0 1   100%
src / core / protocols.py GateChecker.parse_validation_evidence_with_spec   0 0 1   100%
src / core / protocols.py GateChecker.check_commit_exists   0 0 1   100%
src / core / protocols.py EpicVerificationModel.verify   0 0 1   100%
src / core / protocols.py SDKClientProtocol.__aenter__   0 0 1   100%
src / core / protocols.py SDKClientProtocol.__aexit__   0 0 1   100%
src / core / protocols.py SDKClientProtocol.query   0 0 1   100%
src / core / protocols.py SDKClientProtocol.receive_response   0 0 1   100%
src / core / protocols.py SDKClientProtocol.disconnect   0 0 1   100%
src / core / protocols.py SDKClientFactoryProtocol.create   0 0 1   100%
src / core / protocols.py SDKClientFactoryProtocol.create_options   0 0 1   100%
src / core / protocols.py SDKClientFactoryProtocol.create_hook_matcher   0 0 1   100%
src / core / protocols.py CommandResultProtocol.stdout_tail   0 0 1   100%
src / core / protocols.py CommandResultProtocol.stderr_tail   0 0 1   100%
src / core / protocols.py CommandRunnerPort.run   0 0 1   100%
src / core / protocols.py CommandRunnerPort.run_async   0 0 1   100%
src / core / protocols.py EnvConfigPort.scripts_dir   0 0 1   100%
src / core / protocols.py EnvConfigPort.cache_dir   0 0 1   100%
src / core / protocols.py EnvConfigPort.lock_dir   0 0 1   100%
src / core / protocols.py EnvConfigPort.find_cerberus_bin_path   0 0 1   100%
src / core / protocols.py LockManagerPort.lock_path   0 0 1   100%
src / core / protocols.py LockManagerPort.try_lock   0 0 1   100%
src / core / protocols.py LockManagerPort.wait_for_lock   0 0 1   100%
src / core / protocols.py LockManagerPort.release_lock   0 0 1   100%
src / core / protocols.py LoggerPort.log   0 0 1   100%
src / core / protocols.py MalaEventSink.on_run_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_run_completed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_ready_issues   0 0 1   100%
src / core / protocols.py MalaEventSink.on_waiting_for_agents   0 0 1   100%
src / core / protocols.py MalaEventSink.on_no_more_issues   0 0 1   100%
src / core / protocols.py MalaEventSink.on_agent_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_agent_completed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_claim_failed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_tool_use   0 0 1   100%
src / core / protocols.py MalaEventSink.on_agent_text   0 0 1   100%
src / core / protocols.py MalaEventSink.on_gate_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_gate_passed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_gate_failed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_gate_retry   0 0 1   100%
src / core / protocols.py MalaEventSink.on_gate_result   0 0 1   100%
src / core / protocols.py MalaEventSink.on_review_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_review_passed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_review_retry   0 0 1   100%
src / core / protocols.py MalaEventSink.on_review_warning   0 0 1   100%
src / core / protocols.py MalaEventSink.on_fixer_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_fixer_completed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_fixer_failed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_issue_closed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_issue_completed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_epic_closed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_result   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_step_running   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_step_skipped   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_step_passed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_validation_step_failed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_warning   0 0 1   100%
src / core / protocols.py MalaEventSink.on_log_timeout   0 0 1   100%
src / core / protocols.py MalaEventSink.on_locks_cleaned   0 0 1   100%
src / core / protocols.py MalaEventSink.on_locks_released   0 0 1   100%
src / core / protocols.py MalaEventSink.on_issues_committed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_run_metadata_saved   0 0 1   100%
src / core / protocols.py MalaEventSink.on_run_level_validation_disabled   0 0 1   100%
src / core / protocols.py MalaEventSink.on_abort_requested   0 0 1   100%
src / core / protocols.py MalaEventSink.on_tasks_aborting   0 0 1   100%
src / core / protocols.py MalaEventSink.on_epic_verification_started   0 0 1   100%
src / core / protocols.py MalaEventSink.on_epic_verification_passed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_epic_verification_failed   0 0 1   100%
src / core / protocols.py MalaEventSink.on_epic_remediation_created   0 0 1   100%
src / core / protocols.py MalaEventSink.on_lifecycle_state   0 0 1   100%
src / core / protocols.py MalaEventSink.on_log_waiting   0 0 1   100%
src / core / protocols.py MalaEventSink.on_log_ready   0 0 1   100%
src / core / protocols.py MalaEventSink.on_review_skipped_no_progress   0 0 1   100%
src / core / protocols.py MalaEventSink.on_fixer_text   0 0 1   100%
src / core / protocols.py MalaEventSink.on_fixer_tool_use   0 0 1   100%
src / core / protocols.py MalaEventSink.on_deadlock_detected   0 0 1   100%
src / core / protocols.py (no function)   282 0 133   100%
src / core / tool_name_extractor.py _is_env_assignment   6 1 0   83%
src / core / tool_name_extractor.py _strip_path_prefix   3 0 0   100%
src / core / tool_name_extractor.py _parse_command   5 0 0   100%
src / core / tool_name_extractor.py _skip_builtin_arguments   6 0 0   100%
src / core / tool_name_extractor.py _skip_wrapper_flags   10 0 0   100%
src / core / tool_name_extractor.py _extract_from_tokens   50 5 0   90%
src / core / tool_name_extractor.py _is_meaningful_tool   10 1 0   90%
src / core / tool_name_extractor.py extract_tool_name   24 0 0   100%
src / core / tool_name_extractor.py (no function)   20 0 0   100%
src / domain / __init__.py (no function)   0 0 0   100%
src / domain / deadlock.py WaitForGraph.__init__   2 0 0   100%
src / domain / deadlock.py WaitForGraph.add_hold   7 1 0   86%
src / domain / deadlock.py WaitForGraph.add_wait   7 2 0   71%
src / domain / deadlock.py WaitForGraph.remove_hold   6 1 0   83%
src / domain / deadlock.py WaitForGraph.remove_agent   5 0 0   100%
src / domain / deadlock.py WaitForGraph.get_holder   1 0 0   100%
src / domain / deadlock.py WaitForGraph.get_waited_lock   1 0 0   100%
src / domain / deadlock.py WaitForGraph.detect_cycle   8 0 0   100%
src / domain / deadlock.py WaitForGraph._find_cycle_from   21 2 0   90%
src / domain / deadlock.py DeadlockMonitor.__init__   3 0 0   100%
src / domain / deadlock.py DeadlockMonitor.register_agent   2 0 0   100%
src / domain / deadlock.py DeadlockMonitor.unregister_agent   4 0 0   100%
src / domain / deadlock.py DeadlockMonitor.handle_event   18 1 0   94%
src / domain / deadlock.py DeadlockMonitor._check_for_deadlock   14 1 0   93%
src / domain / deadlock.py DeadlockMonitor._select_victim   6 1 0   83%
src / domain / deadlock.py (no function)   40 0 3   100%
src / domain / lifecycle.py GateOutcome.passed   0 0 1   100%
src / domain / lifecycle.py GateOutcome.failure_reasons   0 0 1   100%
src / domain / lifecycle.py GateOutcome.commit_hash   0 0 1   100%
src / domain / lifecycle.py GateOutcome.no_progress   0 0 1   100%
src / domain / lifecycle.py GateOutcome.resolution   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.file   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.line_start   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.line_end   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.priority   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.title   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.body   0 0 1   100%
src / domain / lifecycle.py ReviewIssue.reviewer   0 0 1   100%
src / domain / lifecycle.py ReviewOutcome.passed   0 0 1   100%
src / domain / lifecycle.py ReviewOutcome.parse_error   0 0 1   100%
src / domain / lifecycle.py ReviewOutcome.fatal_error   0 0 1   100%
src / domain / lifecycle.py ReviewOutcome.issues   0 0 1   100%
src / domain / lifecycle.py ContextUsage.tracking_disabled   1 0 0   100%
src / domain / lifecycle.py ContextUsage.disable_tracking   1 0 0   100%
src / domain / lifecycle.py ContextUsage.pressure_ratio   3 1 0   67%
src / domain / lifecycle.py ImplementerLifecycle.__init__   2 0 0   100%
src / domain / lifecycle.py ImplementerLifecycle.state   1 0 0   100%
src / domain / lifecycle.py ImplementerLifecycle.is_terminal   1 0 0   100%
src / domain / lifecycle.py ImplementerLifecycle.start   5 1 0   80%
src / domain / lifecycle.py ImplementerLifecycle.on_messages_complete   10 1 0   90%
src / domain / lifecycle.py ImplementerLifecycle.on_log_ready   4 1 0   75%
src / domain / lifecycle.py ImplementerLifecycle.on_log_timeout   6 6 0   0%
src / domain / lifecycle.py ImplementerLifecycle.on_gate_result   28 10 0   64%
src / domain / lifecycle.py ImplementerLifecycle.on_review_result   49 26 0   47%
src / domain / lifecycle.py ImplementerLifecycle.on_timeout   6 1 0   83%
src / domain / lifecycle.py ImplementerLifecycle.on_error   6 1 0   83%
src / domain / lifecycle.py (no function)   114 0 21   100%
src / domain / prompts.py load_prompts   1 0 0   100%
src / domain / prompts.py format_implementer_prompt   1 1 0   0%
src / domain / prompts.py get_default_validation_commands   2 0 0   100%
src / domain / prompts.py _default_prompt_dir   1 1 0   0%
src / domain / prompts.py load_prompt   3 3 0   0%
src / domain / prompts.py extract_checkpoint   21 5 0   76%
src / domain / prompts.py build_continuation_prompt   1 0 0   100%
src / domain / prompts.py build_prompt_validation_commands   14 14 0   0%
src / domain / prompts.py (no function)   22 0 2   100%
src / domain / quality_gate.py ValidationEvidence.pytest_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.pytest_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ruff_check_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ruff_check_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ruff_format_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ruff_format_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ty_check_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.ty_check_ran   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.has_any_evidence   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.has_minimum_validation   1 1 0   0%
src / domain / quality_gate.py ValidationEvidence.missing_commands   10 10 0   0%
src / domain / quality_gate.py ValidationEvidence.to_evidence_dict   1 1 0   0%
src / domain / quality_gate.py get_required_evidence_kinds   1 1 0   0%
src / domain / quality_gate.py check_evidence_against_spec   11 11 0   0%
src / domain / quality_gate.py QualityGate.__init__   3 3 0   0%
src / domain / quality_gate.py QualityGate._match_resolution_pattern   5 5 0   0%
src / domain / quality_gate.py QualityGate._match_spec_pattern_with_kinds   8 8 0   0%
src / domain / quality_gate.py QualityGate._build_spec_patterns   7 7 0   0%
src / domain / quality_gate.py QualityGate._iter_jsonl_entries   1 1 0   0%
src / domain / quality_gate.py QualityGate.parse_issue_resolution   2 2 0   0%
src / domain / quality_gate.py QualityGate.parse_issue_resolution_from_offset   11 11 0   0%
src / domain / quality_gate.py QualityGate.check_working_tree_clean   6 6 0   0%
src / domain / quality_gate.py QualityGate.parse_validation_evidence_with_spec   18 18 0   0%
src / domain / quality_gate.py QualityGate.get_log_end_offset   1 1 0   0%
src / domain / quality_gate.py QualityGate.check_no_progress   15 15 0   0%
src / domain / quality_gate.py QualityGate._has_working_tree_changes   4 4 0   0%
src / domain / quality_gate.py QualityGate.extract_issue_from_rationale   4 4 0   0%
src / domain / quality_gate.py QualityGate.check_commit_exists   25 25 0   0%
src / domain / quality_gate.py QualityGate.check_with_resolution   37 37 0   0%
src / domain / quality_gate.py (no function)   66 0 5   100%
src / domain / validation / __init__.py (no function)   9 0 0   100%
src / domain / validation / code_pattern_matcher.py glob_to_regex   34 34 0   0%
src / domain / validation / code_pattern_matcher.py matches_pattern   7 7 0   0%
src / domain / validation / code_pattern_matcher.py filter_matching_files   3 3 0   0%
src / domain / validation / code_pattern_matcher.py (no function)   8 0 0   100%
src / domain / validation / config.py PresetNotFoundError.__init__   7 1 0   86%
src / domain / validation / config.py CommandConfig.from_value   16 13 0   19%
src / domain / validation / config.py YamlCoverageConfig.__post_init__   7 7 0   0%
src / domain / validation / config.py YamlCoverageConfig.from_dict   25 25 0   0%
src / domain / validation / config.py CommandsConfig.from_dict   9 1 0   89%
src / domain / validation / config.py CommandsConfig.from_dict.parse_command   8 1 0   88%
src / domain / validation / config.py ValidationConfig.__post_init__   6 3 0   50%
src / domain / validation / config.py ValidationConfig.from_dict   31 9 0   71%
src / domain / validation / config.py ValidationConfig.from_dict.parse_string_list   13 2 0   85%
src / domain / validation / config.py ValidationConfig.has_any_command   1 1 0   0%
src / domain / validation / config.py PromptValidationCommands.from_validation_config   2 2 0   0%
src / domain / validation / config.py (no function)   57 0 0   100%
src / domain / validation / config_loader.py ConfigMissingError.__init__   3 3 0   0%
src / domain / validation / config_loader.py load_config   9 9 0   0%
src / domain / validation / config_loader.py _parse_yaml   10 10 0   0%
src / domain / validation / config_loader.py _validate_schema   5 5 0   0%
src / domain / validation / config_loader.py _build_config   1 0 0   100%
src / domain / validation / config_loader.py _validate_config   2 2 0   0%
src / domain / validation / config_loader.py (no function)   13 0 2   100%
src / domain / validation / config_merger.py _is_field_explicitly_set   3 3 0   0%
src / domain / validation / config_merger.py merge_configs   15 15 0   0%
src / domain / validation / config_merger.py _merge_commands   3 3 0   0%
src / domain / validation / config_merger.py _merge_command_field   4 4 0   0%
src / domain / validation / config_merger.py _merge_coverage   3 3 0   0%
src / domain / validation / config_merger.py (no function)   8 0 2   100%
src / domain / validation / coverage.py _infer_coverage_base_command   5 5 0   0%
src / domain / validation / coverage.py CoverageResult.short_summary   7 7 0   0%
src / domain / validation / coverage.py parse_coverage_xml   27 27 0   0%
src / domain / validation / coverage.py check_coverage_threshold   9 9 0   0%
src / domain / validation / coverage.py parse_and_check_coverage   2 2 0   0%
src / domain / validation / coverage.py check_coverage_from_config   8 8 0   0%
src / domain / validation / coverage.py get_baseline_coverage   6 6 0   0%
src / domain / validation / coverage.py is_baseline_stale   20 20 0   0%
src / domain / validation / coverage.py baseline_worktree   15 15 0   0%
src / domain / validation / coverage.py BaselineRefreshResult.ok   1 1 0   0%
src / domain / validation / coverage.py BaselineRefreshResult.fail   1 1 0   0%
src / domain / validation / coverage.py BaselineCoverageService.__init__   6 6 0   0%
src / domain / validation / coverage.py BaselineCoverageService.refresh_if_stale   32 32 0   0%
src / domain / validation / coverage.py BaselineCoverageService._run_coverage_with_fallback   32 32 0   0%
src / domain / validation / coverage.py BaselineCoverageService._run_refresh   31 31 0   0%
src / domain / validation / coverage.py (no function)   57 0 4   100%
src / domain / validation / coverage_args.py strip_xdist_flags   13 13 0   0%
src / domain / validation / coverage_args.py strip_cov_fail_under   13 13 0   0%
src / domain / validation / coverage_args.py extract_marker_expr   16 16 0   0%
src / domain / validation / coverage_args.py normalize_marker_expr   4 4 0   0%
src / domain / validation / coverage_args.py strip_cov_report_xml   1 1 0   0%
src / domain / validation / coverage_args.py rewrite_coverage_command   10 10 0   0%
src / domain / validation / coverage_args.py (no function)   8 0 0   100%
src / domain / validation / e2e.py E2EPrereqResult.failure_reason   5 5 0   0%
src / domain / validation / e2e.py E2EResult.short_summary   5 5 0   0%
src / domain / validation / e2e.py E2ERunner.__init__   3 0 0   100%
src / domain / validation / e2e.py E2ERunner.check_prereqs   16 5 0   69%
src / domain / validation / e2e.py E2ERunner.run   24 24 0   0%
src / domain / validation / e2e.py E2ERunner._setup_fixture   2 2 0   0%
src / domain / validation / e2e.py E2ERunner._run_mala   15 15 0   0%
src / domain / validation / e2e.py check_e2e_prereqs   3 3 0   0%
src / domain / validation / e2e.py (no function)   46 0 3   100%
src / domain / validation / helpers.py tail   9 9 0   0%
src / domain / validation / helpers.py decode_timeout_output   5 5 0   0%
src / domain / validation / helpers.py format_step_output   6 6 0   0%
src / domain / validation / helpers.py check_e2e_prereqs   5 5 0   0%
src / domain / validation / helpers.py _generate_fixture_programmatically   8 8 0   0%
src / domain / validation / helpers.py write_fixture_repo   4 4 0   0%
src / domain / validation / helpers.py init_fixture_repo   10 10 0   0%
src / domain / validation / helpers.py get_ready_issue_id   13 13 0   0%
src / domain / validation / helpers.py annotate_issue   3 3 0   0%
src / domain / validation / helpers.py (no function)   14 0 2   100%
src / domain / validation / lint_cache.py _run_git_command   4 4 0   0%
src / domain / validation / lint_cache.py LintCacheKey.to_dict   1 1 0   0%
src / domain / validation / lint_cache.py LintCacheKey.from_dict   1 1 0   0%
src / domain / validation / lint_cache.py LintCacheEntry.to_dict   1 1 0   0%
src / domain / validation / lint_cache.py LintCacheEntry.from_dict   1 1 0   0%
src / domain / validation / lint_cache.py LintCache.__init__   7 7 0   0%
src / domain / validation / lint_cache.py LintCache._load   5 5 0   0%
src / domain / validation / lint_cache.py LintCache._save   5 5 0   0%
src / domain / validation / lint_cache.py LintCache._get_key_str   2 2 0   0%
src / domain / validation / lint_cache.py LintCache._get_current_state   17 17 0   0%
src / domain / validation / lint_cache.py LintCache._hash_uncommitted   25 25 0   0%
src / domain / validation / lint_cache.py LintCache.should_skip   8 8 0   0%
src / domain / validation / lint_cache.py LintCache.mark_passed   6 6 0   0%
src / domain / validation / lint_cache.py LintCache.invalidate   4 4 0   0%
src / domain / validation / lint_cache.py LintCache.invalidate_all   5 5 0   0%
src / domain / validation / lint_cache.py LintCache.clear   3 3 0   0%
src / domain / validation / lint_cache.py (no function)   34 0 3   100%
src / domain / validation / preset_registry.py PresetRegistry.get   4 0 0   100%
src / domain / validation / preset_registry.py PresetRegistry.list_presets   1 0 0   100%
src / domain / validation / preset_registry.py PresetRegistry._load_preset_yaml   9 0 0   100%
src / domain / validation / preset_registry.py (no function)   12 0 2   100%
src / domain / validation / presets / __init__.py (no function)   0 0 0   100%
src / domain / validation / result.py ValidationResult.short_summary   5 5 0   0%
src / domain / validation / result.py (no function)   22 0 4   100%
src / domain / validation / runner.py (no function)   4 0 0   100%
src / domain / validation / spec.py ValidationSpec.commands_by_kind   1 1 0   0%
src / domain / validation / spec.py ValidationSpec.extract_lint_tools   8 8 0   0%
src / domain / validation / spec.py classify_change   15 15 0   0%
src / domain / validation / spec.py build_validation_spec   36 36 0   0%
src / domain / validation / spec.py _apply_command_overrides   3 3 0   0%
src / domain / validation / spec.py _apply_command_overrides.is_explicit   3 3 0   0%
src / domain / validation / spec.py _apply_command_overrides.pick   1 1 0   0%
src / domain / validation / spec.py _build_commands_from_config   14 14 0   0%
src / domain / validation / spec.py _tool_name_to_pattern   4 4 0   0%
src / domain / validation / spec.py extract_lint_tools_from_spec   4 4 0   0%
src / domain / validation / spec.py (no function)   74 0 3   100%
src / domain / validation / spec_executor.py SpecCommandExecutor.__init__   1 1 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor.execute   21 21 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._create_lint_cache   6 6 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._should_skip_cached   5 5 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._create_skipped_step   3 3 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._write_start_marker   2 2 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._run_command   12 12 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._wrap_with_mutex   2 2 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._write_file_flushed   4 4 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._write_step_logs   7 7 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._log_success   4 4 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._log_failure   2 2 0   0%
src / domain / validation / spec_executor.py SpecCommandExecutor._format_failure_reason   5 5 0   0%
src / domain / validation / spec_executor.py (no function)   43 0 5   100%
src / domain / validation / spec_result_builder.py SpecResultBuilder.build   9 9 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._check_coverage_if_enabled   14 14 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._run_coverage_command_if_configured   17 17 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._check_coverage   9 9 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._run_e2e_if_enabled   7 7 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._run_e2e   3 3 0   0%
src / domain / validation / spec_result_builder.py SpecResultBuilder._build_failure_result   1 1 0   0%
src / domain / validation / spec_result_builder.py (no function)   29 0 7   100%
src / domain / validation / spec_runner.py CommandFailure.__init__   3 3 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner.__init__   7 7 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner.run_spec   1 1 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._run_spec_sync   17 17 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._invalidate_lint_cache_for_config_change   8 8 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._run_validation_pipeline   14 14 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._write_file_flushed   4 4 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._write_initial_manifest   2 2 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._run_commands   7 7 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._write_completion_manifest   4 4 0   0%
src / domain / validation / spec_runner.py SpecValidationRunner._build_spec_env   2 2 0   0%
src / domain / validation / spec_runner.py (no function)   25 0 5   100%
src / domain / validation / spec_workspace.py SetupError.__init__   3 3 0   0%
src / domain / validation / spec_workspace.py setup_workspace   23 23 0   0%
src / domain / validation / spec_workspace.py cleanup_workspace   7 7 0   0%
src / domain / validation / spec_workspace.py workspace_context   6 6 0   0%
src / domain / validation / spec_workspace.py (no function)   24 0 5   100%
src / domain / validation / validation_gating.py should_trigger_validation   11 11 0   0%
src / domain / validation / validation_gating.py get_matching_code_files   3 3 0   0%
src / domain / validation / validation_gating.py should_invalidate_lint_cache   8 8 0   0%
src / domain / validation / validation_gating.py should_invalidate_setup_cache   4 4 0   0%
src / domain / validation / validation_gating.py get_config_files_changed   7 7 0   0%
src / domain / validation / validation_gating.py get_setup_files_changed   3 3 0   0%
src / domain / validation / validation_gating.py _is_mala_config   1 1 0   0%
src / domain / validation / validation_gating.py (no function)   16 0 0   100%
src / domain / validation / worktree.py WorktreeContext._validate_path_components   9 9 0   0%
src / domain / validation / worktree.py WorktreeContext.path   9 9 0   0%
src / domain / validation / worktree.py WorktreeContext.to_result   1 1 0   0%
src / domain / validation / worktree.py create_worktree   28 28 0   0%
src / domain / validation / worktree.py remove_worktree   29 29 0   0%
src / domain / validation / worktree.py cleanup_stale_worktrees   13 13 0   0%
src / domain / validation / worktree.py _cleanup_run_dir   23 23 0   0%
src / domain / validation / worktree.py _format_git_error   7 7 0   0%
src / domain / validation / worktree.py (no function)   49 0 3   100%
src / infra / __init__.py (no function)   0 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.__init__   10 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.with_hooks   4 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.with_env   4 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.with_mcp   5 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.with_disallowed_tools   5 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.with_lint_tools   2 0 0   100%
src / infra / agent_runtime.py AgentRuntimeBuilder.build   29 0 0   100%
src / infra / agent_runtime.py (no function)   24 0 4   100%
src / infra / clients / __init__.py (no function)   6 0 0   100%
src / infra / clients / anthropic_client.py create_anthropic_client   18 18 0   0%
src / infra / clients / anthropic_client.py (no function)   3 0 0   100%
src / infra / clients / beads_client.py BeadsClient.__init__   8 8 0   0%
src / infra / clients / beads_client.py BeadsClient._run_subprocess_async   8 8 0   0%
src / infra / clients / beads_client.py BeadsClient.get_epic_children_async   9 9 0   0%
src / infra / clients / beads_client.py BeadsClient._sort_by_epic_groups   6 6 0   0%
src / infra / clients / beads_client.py BeadsClient._negate_timestamp   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient.fetch_ready_issues_async   9 9 0   0%
src / infra / clients / beads_client.py BeadsClient.fetch_wip_issues_async   10 10 0   0%
src / infra / clients / beads_client.py BeadsClient.enrich_with_epics_async   5 5 0   0%
src / infra / clients / beads_client.py BeadsClient._fetch_base_issues   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._merge_wip_issues   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._apply_filters   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._enrich_with_epics   6 6 0   0%
src / infra / clients / beads_client.py BeadsClient._sort_issues   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._sort_by_epic_groups_sync   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._fetch_wip_issues   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient._warn_missing_ids   3 3 0   0%
src / infra / clients / beads_client.py BeadsClient._resolve_epic_children   6 6 0   0%
src / infra / clients / beads_client.py BeadsClient._fetch_and_filter_issues   17 17 0   0%
src / infra / clients / beads_client.py BeadsClient.get_ready_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.get_ready_issues_async   1 1 0   0%
src / infra / clients / beads_client.py BeadsClient.claim_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.reset_async   9 9 0   0%
src / infra / clients / beads_client.py BeadsClient.get_issue_status_async   12 12 0   0%
src / infra / clients / beads_client.py BeadsClient.get_issue_description_async   19 19 0   0%
src / infra / clients / beads_client.py BeadsClient.commit_issues_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.close_eligible_epics_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.mark_needs_followup_async   5 5 0   0%
src / infra / clients / beads_client.py BeadsClient.close_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.add_dependency_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.create_issue_async   22 22 0   0%
src / infra / clients / beads_client.py BeadsClient.find_issue_by_tag_async   10 10 0   0%
src / infra / clients / beads_client.py BeadsClient.update_issue_description_async   2 2 0   0%
src / infra / clients / beads_client.py BeadsClient.update_issue_async   9 9 0   0%
src / infra / clients / beads_client.py BeadsClient.get_parent_epic_async   25 25 0   0%
src / infra / clients / beads_client.py BeadsClient.get_parent_epics_async   5 5 0   0%
src / infra / clients / beads_client.py BeadsClient.get_epic_blockers_async   18 18 0   0%
src / infra / clients / beads_client.py BeadsClient._is_epic_blocked_async   26 26 0   0%
src / infra / clients / beads_client.py BeadsClient._get_blocked_epics_async   6 6 0   0%
src / infra / clients / beads_client.py (no function)   49 0 3   100%
src / infra / clients / braintrust_integration.py is_braintrust_enabled   1 1 0   0%
src / infra / clients / braintrust_integration.py flush_braintrust   5 5 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.__init__   9 9 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.__enter__   13 13 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.__exit__   12 12 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.log_input   1 1 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.log_message   8 8 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution._handle_assistant_message   11 11 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution._handle_result_message   1 1 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.set_success   1 1 0   0%
src / infra / clients / braintrust_integration.py TracedAgentExecution.set_error   2 2 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.__init__   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.__enter__   2 2 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.__exit__   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.log_input   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.log_message   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.set_success   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustSpan.set_error   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustProvider.is_enabled   1 1 0   0%
src / infra / clients / braintrust_integration.py BraintrustProvider.create_span   3 3 0   0%
src / infra / clients / braintrust_integration.py BraintrustProvider.flush   1 1 0   0%
src / infra / clients / braintrust_integration.py (no function)   41 2 5   95%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI._review_gate_bin   3 3 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.validate_binary   12 12 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.build_env   5 5 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.spawn_code_review   22 22 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.wait_for_review   17 17 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.resolve_gate   10 10 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.check_diff_empty   7 7 0   0%
src / infra / clients / cerberus_gate_cli.py CerberusGateCLI.extract_wait_timeout   15 15 0   0%
src / infra / clients / cerberus_gate_cli.py (no function)   38 0 3   100%
src / infra / clients / cerberus_review.py DefaultReviewer._get_cli   1 1 0   0%
src / infra / clients / cerberus_review.py DefaultReviewer._validate_review_gate_bin   1 1 0   0%
src / infra / clients / cerberus_review.py DefaultReviewer._extract_wait_timeout   1 1 0   0%
src / infra / clients / cerberus_review.py DefaultReviewer.__call__   39 39 0   0%
src / infra / clients / cerberus_review.py _to_relative_path   10 8 0   20%
src / infra / clients / cerberus_review.py format_review_issues   18 1 0   94%
src / infra / clients / cerberus_review.py (no function)   24 0 3   100%
src / infra / clients / review_output_parser.py ReviewOutputParser.parse_json   48 48 0   0%
src / infra / clients / review_output_parser.py ReviewOutputParser.map_exit_code_to_result   30 30 0   0%
src / infra / clients / review_output_parser.py parse_cerberus_json   1 1 0   0%
src / infra / clients / review_output_parser.py map_exit_code_to_result   1 1 0   0%
src / infra / clients / review_output_parser.py (no function)   28 0 2   100%
src / infra / epic_scope.py EpicScopeAnalyzer.__init__   1 1 0   0%
src / infra / epic_scope.py EpicScopeAnalyzer.compute_scoped_commits   4 4 0   0%
src / infra / epic_scope.py EpicScopeAnalyzer._compute_commit_list   15 15 0   0%
src / infra / epic_scope.py EpicScopeAnalyzer._summarize_commit_range   22 22 0   0%
src / infra / epic_scope.py EpicScopeAnalyzer._format_commit_summary   15 15 0   0%
src / infra / epic_scope.py (no function)   11 0 0   100%
src / infra / epic_verifier.py epic_verify_lock   10 10 0   0%
src / infra / epic_verifier.py _compute_criterion_hash   1 1 0   0%
src / infra / epic_verifier.py extract_spec_paths   11 11 0   0%
src / infra / epic_verifier.py _load_prompt_template   6 6 0   0%
src / infra / epic_verifier.py _extract_json_from_code_blocks   7 7 0   0%
src / infra / epic_verifier.py ClaudeEpicVerificationModel.__init__   5 5 0   0%
src / infra / epic_verifier.py ClaudeEpicVerificationModel.verify   3 3 0   0%
src / infra / epic_verifier.py ClaudeEpicVerificationModel._verify_with_agent_sdk   15 15 0   0%
src / infra / epic_verifier.py ClaudeEpicVerificationModel._parse_verdict   21 21 0   0%
src / infra / epic_verifier.py EpicVerifier.__init__   8 8 0   0%
src / infra / epic_verifier.py EpicVerifier.verify_and_close_eligible   16 16 0   0%
src / infra / epic_verifier.py EpicVerifier.verify_epic   2 2 0   0%
src / infra / epic_verifier.py EpicVerifier._verify_epic_with_context   27 27 0   0%
src / infra / epic_verifier.py EpicVerifier._get_eligible_epics   21 21 0   0%
src / infra / epic_verifier.py EpicVerifier._is_epic_eligible   2 2 0   0%
src / infra / epic_verifier.py EpicVerifier.verify_and_close_epic   1 1 0   0%
src / infra / epic_verifier.py EpicVerifier.verify_epic_with_options   54 54 0   0%
src / infra / epic_verifier.py EpicVerifier._truncate_text   3 3 0   0%
src / infra / epic_verifier.py EpicVerifier._format_remediation_context   16 16 0   0%
src / infra / epic_verifier.py EpicVerifier.create_remediation_issues   30 30 0   0%
src / infra / epic_verifier.py EpicVerifier.add_epic_blockers   2 2 0   0%
src / infra / epic_verifier.py (no function)   48 0 5   100%
src / infra / git_utils.py get_git_commit_async   4 4 0   0%
src / infra / git_utils.py get_git_branch_async   4 4 0   0%
src / infra / git_utils.py get_baseline_for_issue   13 13 0   0%
src / infra / git_utils.py get_issue_commits_async   9 9 0   0%
src / infra / git_utils.py (no function)   10 0 0   100%
src / infra / hooks / __init__.py (no function)   7 0 0   100%
src / infra / hooks / dangerous_commands.py block_dangerous_commands   20 20 0   0%
src / infra / hooks / dangerous_commands.py block_mala_disallowed_tools   4 4 0   0%
src / infra / hooks / dangerous_commands.py (no function)   12 0 0   100%
src / infra / hooks / deadlock.py _strip_quotes   5 0 0   100%
src / infra / hooks / deadlock.py _is_safe_batch_command   26 0 0   100%
src / infra / hooks / deadlock.py _extract_all_lock_paths   9 0 0   100%
src / infra / hooks / deadlock.py _extract_lock_path   2 0 0   100%
src / infra / hooks / deadlock.py _get_exit_code   5 0 0   100%
src / infra / hooks / deadlock.py make_lock_event_hook   4 0 0   100%
src / infra / hooks / deadlock.py make_lock_event_hook.lock_event_hook   48 1 0   98%
src / infra / hooks / deadlock.py make_lock_wait_hook   4 0 0   100%
src / infra / hooks / deadlock.py make_lock_wait_hook.lock_wait_hook   22 22 0   0%
src / infra / hooks / deadlock.py (no function)   18 0 3   100%
src / infra / hooks / file_cache.py FileReadCache.__init__   2 0 0   100%
src / infra / hooks / file_cache.py FileReadCache.check_and_update   25 25 0   0%
src / infra / hooks / file_cache.py FileReadCache._compute_hash   5 5 0   0%
src / infra / hooks / file_cache.py FileReadCache.invalidate   7 7 0   0%
src / infra / hooks / file_cache.py FileReadCache.blocked_count   1 1 0   0%
src / infra / hooks / file_cache.py FileReadCache.cache_size   1 1 0   0%
src / infra / hooks / file_cache.py make_file_read_cache_hook   2 0 0   100%
src / infra / hooks / file_cache.py make_file_read_cache_hook.file_read_cache_hook   17 17 0   0%
src / infra / hooks / file_cache.py (no function)   23 0 2   100%
src / infra / hooks / lint_cache.py _get_git_state   14 14 0   0%
src / infra / hooks / lint_cache.py _detect_lint_command   10 3 0   70%
src / infra / hooks / lint_cache.py LintCache.__init__   5 0 0   100%
src / infra / hooks / lint_cache.py LintCache._make_cache_key   2 2 0   0%
src / infra / hooks / lint_cache.py LintCache.check_and_update   11 11 0   0%
src / infra / hooks / lint_cache.py LintCache.mark_success   4 4 0   0%
src / infra / hooks / lint_cache.py LintCache.invalidate   6 6 0   0%
src / infra / hooks / lint_cache.py LintCache.skipped_count   1 1 0   0%
src / infra / hooks / lint_cache.py LintCache.cache_size   1 1 0   0%
src / infra / hooks / lint_cache.py LintCache.lint_tools   1 0 0   100%
src / infra / hooks / lint_cache.py LintCache.detect_lint_command   1 0 0   100%
src / infra / hooks / lint_cache.py make_lint_cache_hook   2 0 0   100%
src / infra / hooks / lint_cache.py make_lint_cache_hook.lint_cache_hook   14 14 0   0%
src / infra / hooks / lint_cache.py (no function)   32 0 3   100%
src / infra / hooks / locking.py make_lock_enforcement_hook   2 0 0   100%
src / infra / hooks / locking.py make_lock_enforcement_hook.enforce_lock_ownership   15 15 0   0%
src / infra / hooks / locking.py make_stop_hook   2 0 0   100%
src / infra / hooks / locking.py make_stop_hook.cleanup_locks_on_stop   6 2 0   67%
src / infra / hooks / locking.py (no function)   11 0 2   100%
src / infra / io / __init__.py (no function)   6 0 0   100%
src / infra / io / base_sink.py BaseEventSink.on_run_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_run_completed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_ready_issues   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_waiting_for_agents   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_no_more_issues   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_agent_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_agent_completed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_claim_failed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_tool_use   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_agent_text   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_gate_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_gate_passed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_gate_failed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_gate_retry   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_gate_result   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_review_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_review_passed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_review_retry   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_review_warning   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_fixer_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_fixer_completed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_fixer_failed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_issue_closed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_issue_completed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_epic_closed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_result   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_step_running   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_step_skipped   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_step_passed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_validation_step_failed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_warning   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_log_timeout   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_locks_cleaned   1 0 0   100%
src / infra / io / base_sink.py BaseEventSink.on_locks_released   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_issues_committed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_run_metadata_saved   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_run_level_validation_disabled   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_abort_requested   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_tasks_aborting   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_epic_verification_started   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_epic_verification_passed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_epic_verification_failed   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_epic_remediation_created   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_lifecycle_state   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_log_waiting   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_log_ready   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_review_skipped_no_progress   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_fixer_text   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_fixer_tool_use   1 1 0   0%
src / infra / io / base_sink.py BaseEventSink.on_deadlock_detected   1 1 0   0%
src / infra / io / base_sink.py (no function)   58 0 0   100%
src / infra / io / config.py parse_cerberus_args   6 4 0   33%
src / infra / io / config.py parse_cerberus_env   21 19 0   10%
src / infra / io / config.py _normalize_cerberus_env   1 0 0   100%
src / infra / io / config.py _find_cerberus_bin_path   29 20 0   31%
src / infra / io / config.py _find_cerberus_bin_path._iter_plugin_entries   5 5 0   0%
src / infra / io / config.py _safe_int   6 4 0   33%
src / infra / io / config.py ConfigurationError.__init__   3 3 0   0%
src / infra / io / config.py MalaConfig.__post_init__   10 5 0   50%
src / infra / io / config.py MalaConfig.from_env   43 19 0   56%
src / infra / io / config.py MalaConfig.validate   12 12 0   0%
src / infra / io / config.py MalaConfig.ensure_directories   2 2 0   0%
src / infra / io / config.py build_resolved_config   22 22 0   0%
src / infra / io / config.py (no function)   65 0 0   100%
src / infra / io / console_sink.py ConsoleEventSink.on_run_started   15 15 0   0%
src / infra / io / console_sink.py ConsoleEventSink._log_limits   7 7 0   0%
src / infra / io / console_sink.py ConsoleEventSink._log_review_config   3 3 0   0%
src / infra / io / console_sink.py ConsoleEventSink._log_braintrust_config   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink._log_cli_args   4 4 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_run_completed   8 8 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_ready_issues   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_waiting_for_agents   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_no_more_issues   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_agent_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_agent_completed   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_claim_failed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_tool_use   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_agent_text   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_gate_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_gate_passed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_gate_failed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_gate_retry   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_gate_result   6 6 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_review_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_review_passed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_review_retry   6 6 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_review_warning   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_fixer_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_fixer_completed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_fixer_failed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_issue_closed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_issue_completed   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_epic_closed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_result   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_step_running   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_step_skipped   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_step_passed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_validation_step_failed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_warning   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_log_timeout   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_locks_cleaned   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_locks_released   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_issues_committed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_run_metadata_saved   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_run_level_validation_disabled   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_abort_requested   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_tasks_aborting   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_epic_verification_started   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_epic_verification_passed   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_epic_verification_failed   3 3 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_epic_remediation_created   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_lifecycle_state   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_log_waiting   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_log_ready   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_review_skipped_no_progress   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_fixer_text   2 2 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_fixer_tool_use   1 1 0   0%
src / infra / io / console_sink.py ConsoleEventSink.on_deadlock_detected   4 4 0   0%
src / infra / io / console_sink.py (no function)   62 0 0   100%
src / infra / io / event_sink.py (no function)   0 0 0   100%
src / infra / io / log_output / __init__.py (no function)   0 0 0   100%
src / infra / io / log_output / console.py set_verbose   1 1 0   0%
src / infra / io / log_output / console.py is_verbose_enabled   1 1 0   0%
src / infra / io / log_output / console.py truncate_text   5 5 0   0%
src / infra / io / log_output / console.py get_agent_color   4 4 0   0%
src / infra / io / log_output / console.py log   9 9 0   0%
src / infra / io / log_output / console.py log_verbose   2 2 0   0%
src / infra / io / log_output / console.py _format_arguments   41 41 0   0%
src / infra / io / log_output / console.py log_tool   21 21 0   0%
src / infra / io / log_output / console.py _get_quiet_summary   17 17 0   0%
src / infra / io / log_output / console.py log_agent_text   3 3 0   0%
src / infra / io / log_output / console.py ConsoleLoggerAdapter.log   7 7 0   0%
src / infra / io / log_output / console.py (no function)   36 0 0   100%
src / infra / io / log_output / run_metadata.py configure_debug_logging   22 22 0   0%
src / infra / io / log_output / run_metadata.py cleanup_debug_logging   8 8 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.__init__   9 9 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.record_issue   1 1 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.record_run_validation   1 1 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._serialize_validation_artifacts   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._serialize_validation_result   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._serialize_issue_resolution   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._to_dict   1 1 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._deserialize_validation_artifacts   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._deserialize_validation_result   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata._deserialize_issue_resolution   3 3 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.load   25 25 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.cleanup   2 2 0   0%
src / infra / io / log_output / run_metadata.py RunMetadata.save   12 12 0   0%
src / infra / io / log_output / run_metadata.py _get_marker_path   1 1 0   0%
src / infra / io / log_output / run_metadata.py write_run_marker   9 9 0   0%
src / infra / io / log_output / run_metadata.py remove_run_marker   5 5 0   0%
src / infra / io / log_output / run_metadata.py get_running_instances   23 23 0   0%
src / infra / io / log_output / run_metadata.py get_running_instances_for_dir   2 2 0   0%
src / infra / io / log_output / run_metadata.py _is_process_running   5 5 0   0%
src / infra / io / log_output / run_metadata.py (no function)   69 0 0   100%
src / infra / io / session_log_parser.py SessionLogParser.iter_jsonl_entries   21 21 0   0%
src / infra / io / session_log_parser.py SessionLogParser.get_log_end_offset   8 8 0   0%
src / infra / io / session_log_parser.py SessionLogParser.extract_bash_commands   10 10 0   0%
src / infra / io / session_log_parser.py SessionLogParser._extract_bash_commands_from_data   12 12 0   0%
src / infra / io / session_log_parser.py SessionLogParser.extract_tool_results   9 9 0   0%
src / infra / io / session_log_parser.py SessionLogParser._extract_tool_results_from_data   10 10 0   0%
src / infra / io / session_log_parser.py SessionLogParser.extract_assistant_text_blocks   9 9 0   0%
src / infra / io / session_log_parser.py SessionLogParser._extract_assistant_text_blocks_from_data   10 10 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.__init__   1 1 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.get_log_path   2 2 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.iter_events   1 1 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.get_end_offset   1 1 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.extract_bash_commands   1 1 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.extract_tool_results   1 1 0   0%
src / infra / io / session_log_parser.py FileSystemLogProvider.extract_assistant_text_blocks   1 1 0   0%
src / infra / io / session_log_parser.py (no function)   29 0 6   100%
src / infra / issue_manager.py IssueManager.merge_wip_issues   2 2 0   0%
src / infra / issue_manager.py IssueManager.filter_blocked_wip   1 1 0   0%
src / infra / issue_manager.py IssueManager.filter_blocked_epics   3 3 0   0%
src / infra / issue_manager.py IssueManager.apply_filters   1 1 0   0%
src / infra / issue_manager.py IssueManager.negate_timestamp   3 3 0   0%
src / infra / issue_manager.py IssueManager.sort_by_epic_groups   13 13 0   0%
src / infra / issue_manager.py IssueManager.sort_by_epic_groups.get_priority   4 4 0   0%
src / infra / issue_manager.py IssueManager.sort_by_epic_groups.get_updated_at   2 2 0   0%
src / infra / issue_manager.py IssueManager.sort_by_epic_groups.group_sort_key   4 4 0   0%
src / infra / issue_manager.py IssueManager.sort_issues   6 6 0   0%
src / infra / issue_manager.py IssueManager.find_missing_ids   3 3 0   0%
src / infra / issue_manager.py IssueManager.filter_orphans_only   1 1 0   0%
src / infra / issue_manager.py (no function)   20 0 0   100%
src / infra / mcp.py get_mcp_servers   1 0 0   100%
src / infra / mcp.py get_disallowed_tools   1 0 0   100%
src / infra / mcp.py (no function)   5 0 2   100%
src / infra / sdk_adapter.py SDKClientFactory.create   2 2 0   0%
src / infra / sdk_adapter.py SDKClientFactory.create_options   2 2 0   0%
src / infra / sdk_adapter.py SDKClientFactory.create_hook_matcher   2 2 0   0%
src / infra / sdk_adapter.py (no function)   6 0 3   100%
src / infra / telemetry.py TelemetrySpan.__enter__   0 0 1   100%
src / infra / telemetry.py TelemetrySpan.__exit__   0 0 1   100%
src / infra / telemetry.py TelemetrySpan.log_input   0 0 1   100%
src / infra / telemetry.py TelemetrySpan.log_message   0 0 1   100%
src / infra / telemetry.py TelemetrySpan.set_success   0 0 1   100%
src / infra / telemetry.py TelemetrySpan.set_error   0 0 1   100%
src / infra / telemetry.py TelemetryProvider.is_enabled   0 0 1   100%
src / infra / telemetry.py TelemetryProvider.create_span   0 0 1   100%
src / infra / telemetry.py TelemetryProvider.flush   0 0 1   100%
src / infra / telemetry.py NullSpan.__enter__   1 1 0   0%
src / infra / telemetry.py NullSpan.__exit__   1 1 0   0%
src / infra / telemetry.py NullSpan.log_input   1 1 0   0%
src / infra / telemetry.py NullSpan.log_message   1 1 0   0%
src / infra / telemetry.py NullSpan.set_success   1 1 0   0%
src / infra / telemetry.py NullSpan.set_error   1 1 0   0%
src / infra / telemetry.py NullTelemetryProvider.is_enabled   1 1 0   0%
src / infra / telemetry.py NullTelemetryProvider.create_span   1 1 0   0%
src / infra / telemetry.py NullTelemetryProvider.flush   1 1 0   0%
src / infra / telemetry.py (no function)   24 0 13   100%
src / infra / tools / __init__.py (no function)   4 0 0   100%
src / infra / tools / command_runner.py _tail   9 1 0   89%
src / infra / tools / command_runner.py CommandResult.ok   1 0 0   100%
src / infra / tools / command_runner.py CommandResult.stdout_tail   1 0 0   100%
src / infra / tools / command_runner.py CommandResult.stderr_tail   1 0 0   100%
src / infra / tools / command_runner.py CommandRunner.__init__   3 0 0   100%
src / infra / tools / command_runner.py CommandRunner.run   14 0 0   100%
src / infra / tools / command_runner.py CommandRunner._terminate_process_sync   28 4 0   86%
src / infra / tools / command_runner.py CommandRunner.run_async   24 5 0   79%
src / infra / tools / command_runner.py CommandRunner._terminate_process   25 6 0   76%
src / infra / tools / command_runner.py CommandRunner._merge_env   3 0 0   100%
src / infra / tools / command_runner.py CommandRunner._decode_output   5 5 0   0%
src / infra / tools / command_runner.py run_command   2 0 0   100%
src / infra / tools / command_runner.py run_command_async   2 0 0   100%
src / infra / tools / command_runner.py (no function)   35 0 3   100%
src / infra / tools / env.py _get_xdg_config_home   1 0 0   100%
src / infra / tools / env.py get_cache_dir   3 3 0   0%
src / infra / tools / env.py get_runs_dir   1 1 0   0%
src / infra / tools / env.py get_repo_runs_dir   2 2 0   0%
src / infra / tools / env.py get_lock_dir   1 0 0   100%
src / infra / tools / env.py load_user_env   1 0 0   100%
src / infra / tools / env.py load_env   3 3 0   0%
src / infra / tools / env.py encode_repo_path   3 3 0   0%
src / infra / tools / env.py get_claude_config_dir   1 1 0   0%
src / infra / tools / env.py get_claude_log_path   2 2 0   0%
src / infra / tools / env.py EnvConfig.scripts_dir   1 1 0   0%
src / infra / tools / env.py EnvConfig.cache_dir   1 1 0   0%
src / infra / tools / env.py EnvConfig.lock_dir   1 1 0   0%
src / infra / tools / env.py EnvConfig.find_cerberus_bin_path   2 2 0   0%
src / infra / tools / env.py (no function)   24 0 0   100%
src / infra / tools / locking.py canonicalize_path   1 1 0   0%
src / infra / tools / locking.py _get_lock_dir   1 0 0   100%
src / infra / tools / locking.py _is_literal_key   1 0 0   100%
src / infra / tools / locking.py _resolve_with_parents   21 5 0   76%
src / infra / tools / locking.py _canonicalize_path   17 8 0   53%
src / infra / tools / locking.py _lock_key   6 1 0   83%
src / infra / tools / locking.py lock_path   3 0 0   100%
src / infra / tools / locking.py release_all_locks   5 5 0   0%
src / infra / tools / locking.py release_run_locks   14 2 0   86%
src / infra / tools / locking.py try_lock   31 9 0   71%
src / infra / tools / locking.py wait_for_lock   10 10 0   0%
src / infra / tools / locking.py is_locked   1 1 0   0%
src / infra / tools / locking.py release_lock   8 8 0   0%
src / infra / tools / locking.py get_lock_holder   7 2 0   71%
src / infra / tools / locking.py parse_lock_file   9 9 0   0%
src / infra / tools / locking.py get_all_locks   18 18 0   0%
src / infra / tools / locking.py cleanup_agent_locks   13 3 0   77%
src / infra / tools / locking.py LockManager.lock_path   1 1 0   0%
src / infra / tools / locking.py LockManager.try_lock   1 1 0   0%
src / infra / tools / locking.py LockManager.wait_for_lock   1 1 0   0%
src / infra / tools / locking.py LockManager.release_lock   1 1 0   0%
src / infra / tools / locking.py _cmd_try   3 0 0   100%
src / infra / tools / locking.py _cmd_wait   3 3 0   0%
src / infra / tools / locking.py _cmd_check   4 0 0   100%
src / infra / tools / locking.py _cmd_holder   4 0 0   100%
src / infra / tools / locking.py _cmd_release   6 0 0   100%
src / infra / tools / locking.py _cmd_release_all   2 0 0   100%
src / infra / tools / locking.py _cli_main   39 12 0   69%
src / infra / tools / locking.py (no function)   44 1 0   98%
src / orchestration / __init__.py (no function)   1 0 0   100%
src / orchestration / cli_support.py (no function)   7 0 0   100%
src / orchestration / factory.py _derive_config   15 15 0   0%
src / orchestration / factory.py _check_review_availability   25 25 0   0%
src / orchestration / factory.py _build_dependencies   41 41 0   0%
src / orchestration / factory.py create_orchestrator   12 12 0   0%
src / orchestration / factory.py (no function)   13 13 7   0%
src / orchestration / orchestration_wiring.py build_gate_runner   4 4 0   0%
src / orchestration / orchestration_wiring.py build_review_runner   2 2 0   0%
src / orchestration / orchestration_wiring.py build_run_coordinator   2 2 0   0%
src / orchestration / orchestration_wiring.py build_issue_coordinator   2 2 0   0%
src / orchestration / orchestration_wiring.py build_finalizer_callbacks   1 1 0   0%
src / orchestration / orchestration_wiring.py build_epic_callbacks   1 1 0   0%
src / orchestration / orchestration_wiring.py build_session_callback_factory   1 1 0   0%
src / orchestration / orchestration_wiring.py build_session_config   2 2 0   0%
src / orchestration / orchestration_wiring.py (no function)   70 0 11   100%
src / orchestration / orchestrator.py MalaOrchestrator.__init__   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._init_from_factory   32 32 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._init_runtime_state   13 13 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._init_pipeline_runners   11 11 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._build_wiring_dependencies   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._build_issue_finalizer   4 4 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._build_epic_verification_coordinator   4 4 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._create_review_tracking_issues   2 2 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.active_tasks   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.failed_issues   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.max_issues   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.max_issues   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.abort_run   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.abort_reason   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._cleanup_agent_locks   6 1 0   83%
src / orchestration / orchestrator.py MalaOrchestrator._handle_deadlock   30 30 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._resolve_deadlock   11 11 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._request_abort   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._is_review_enabled   5 5 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._on_session_log_path   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._on_review_log_path   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._cleanup_active_session_path   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._finalize_issue_result   11 11 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._abort_active_tasks   18 18 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._build_session_callbacks   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.run_implementer   26 26 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.spawn_agent   7 7 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._run_main_loop   3 3 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._run_main_loop.finalize_callback   8 8 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._run_main_loop.abort_callback   1 1 0   0%
src / orchestration / orchestrator.py MalaOrchestrator._finalize_run   16 16 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.run   25 25 0   0%
src / orchestration / orchestrator.py MalaOrchestrator.run_sync   7 7 0   0%
src / orchestration / orchestrator.py (no function)   67 0 14   100%
src / orchestration / review_tracking.py _get_finding_fingerprint   2 2 0   0%
src / orchestration / review_tracking.py _build_findings_section   27 27 0   0%
src / orchestration / review_tracking.py _extract_existing_fingerprints   6 6 0   0%
src / orchestration / review_tracking.py _update_header_count   4 4 0   0%
src / orchestration / review_tracking.py create_review_tracking_issues   52 52 0   0%
src / orchestration / review_tracking.py (no function)   9 0 2   100%
src / orchestration / run_config.py build_event_run_config   1 1 0   0%
src / orchestration / run_config.py build_run_metadata   2 2 0   0%
src / orchestration / run_config.py (no function)   6 0 2   100%
src / orchestration / types.py (no function)   40 40 3   0%
src / pipeline / __init__.py (no function)   8 0 0   100%
src / pipeline / agent_session_runner.py _emit_review_result_events   12 0 0   100%
src / pipeline / agent_session_runner.py _emit_gate_passed_events   4 0 0   100%
src / pipeline / agent_session_runner.py _count_blocking_issues   3 0 0   100%
src / pipeline / agent_session_runner.py _make_review_effect_result   2 0 0   100%
src / pipeline / agent_session_runner.py _build_review_retry_prompt   2 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner.__post_init__   1 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._initialize_session   16 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._run_lifecycle_loop   47 18 0   62%
src / pipeline / agent_session_runner.py AgentSessionRunner._handle_gate_check   16 2 0   88%
src / pipeline / agent_session_runner.py AgentSessionRunner._handle_review_check   12 3 0   75%
src / pipeline / agent_session_runner.py AgentSessionRunner._build_session_output   1 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._handle_log_waiting   25 11 0   56%
src / pipeline / agent_session_runner.py AgentSessionRunner._handle_gate_effect   20 6 0   70%
src / pipeline / agent_session_runner.py AgentSessionRunner._check_review_no_progress   12 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._handle_review_effect   28 3 0   89%
src / pipeline / agent_session_runner.py AgentSessionRunner._apply_retry_backoff   7 1 0   86%
src / pipeline / agent_session_runner.py AgentSessionRunner._disconnect_client_safely   6 4 0   33%
src / pipeline / agent_session_runner.py AgentSessionRunner._prepare_idle_retry   19 2 0   89%
src / pipeline / agent_session_runner.py AgentSessionRunner._get_stream_processor   3 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._process_message_stream   2 0 0   100%
src / pipeline / agent_session_runner.py AgentSessionRunner._run_message_iteration   29 1 0   97%
src / pipeline / agent_session_runner.py AgentSessionRunner.run_session   34 7 0   79%
src / pipeline / agent_session_runner.py (no function)   132 0 10   100%
src / pipeline / context_pressure_handler.py ContextPressureHandler.__init__   2 0 0   100%
src / pipeline / context_pressure_handler.py ContextPressureHandler.fetch_checkpoint   28 0 0   100%
src / pipeline / context_pressure_handler.py ContextPressureHandler.build_continuation_prompt   4 0 0   100%
src / pipeline / context_pressure_handler.py ContextPressureHandler.handle_pressure_error   6 0 0   100%
src / pipeline / context_pressure_handler.py (no function)   24 0 2   100%
src / pipeline / epic_verification_coordinator.py EpicVerificationCoordinator.check_epic_closure   12 12 0   0%
src / pipeline / epic_verification_coordinator.py EpicVerificationCoordinator._verify_epic_with_retries   18 18 0   0%
src / pipeline / epic_verification_coordinator.py EpicVerificationCoordinator._execute_remediation_issues   22 22 0   0%
src / pipeline / epic_verification_coordinator.py EpicVerificationCoordinator._extract_task_result   7 7 0   0%
src / pipeline / epic_verification_coordinator.py (no function)   31 0 5   100%
src / pipeline / gate_metadata.py build_gate_metadata   14 14 0   0%
src / pipeline / gate_metadata.py build_gate_metadata_from_logs   13 13 0   0%
src / pipeline / gate_metadata.py (no function)   10 0 5   100%
src / pipeline / gate_runner.py GateRunner._get_or_build_spec   5 5 0   0%
src / pipeline / gate_runner.py GateRunner.run_per_issue_gate   12 12 0   0%
src / pipeline / gate_runner.py GateRunner.get_cached_spec   1 1 0   0%
src / pipeline / gate_runner.py GateRunner.set_cached_spec   2 2 0   0%
src / pipeline / gate_runner.py AsyncGateRunner._run_gate_sync   8 8 0   0%
src / pipeline / gate_runner.py AsyncGateRunner.run_gate_async   1 1 0   0%
src / pipeline / gate_runner.py AsyncGateRunner.get_last_gate_result   1 1 0   0%
src / pipeline / gate_runner.py AsyncGateRunner.clear_gate_result   1 1 0   0%
src / pipeline / gate_runner.py (no function)   42 0 5   100%
src / pipeline / issue_execution_coordinator.py SpawnCallback.__call__   0 0 1   100%
src / pipeline / issue_execution_coordinator.py FinalizeCallback.__call__   0 0 1   100%
src / pipeline / issue_execution_coordinator.py AbortCallback.__call__   0 0 1   100%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.__init__   8 8 0   0%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.request_abort   6 6 0   0%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.run_loop   39 39 0   0%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.register_task   2 2 0   0%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.mark_failed   2 2 0   0%
src / pipeline / issue_execution_coordinator.py IssueExecutionCoordinator.mark_completed   3 3 0   0%
src / pipeline / issue_execution_coordinator.py (no function)   28 0 8   100%
src / pipeline / issue_finalizer.py IssueFinalizer.finalize   13 13 0   0%
src / pipeline / issue_finalizer.py IssueFinalizer._build_gate_metadata   8 8 0   0%
src / pipeline / issue_finalizer.py IssueFinalizer._record_issue_run   4 4 0   0%
src / pipeline / issue_finalizer.py IssueFinalizer._emit_completion   6 6 0   0%
src / pipeline / issue_finalizer.py (no function)   40 0 8   100%
src / pipeline / issue_result.py (no function)   17 0 4   100%
src / pipeline / message_stream_processor.py LintCacheProtocol.detect_lint_command   0 0 1   100%
src / pipeline / message_stream_processor.py LintCacheProtocol.mark_success   0 0 1   100%
src / pipeline / message_stream_processor.py ContextPressureError.__init__   6 0 0   100%
src / pipeline / message_stream_processor.py IdleTimeoutStream.__init__   3 0 0   100%
src / pipeline / message_stream_processor.py IdleTimeoutStream.__aiter__   1 0 0   100%
src / pipeline / message_stream_processor.py IdleTimeoutStream.__anext__   7 0 0   100%
src / pipeline / message_stream_processor.py MessageStreamProcessor.__init__   2 0 0   100%
src / pipeline / message_stream_processor.py MessageStreamProcessor.process_stream   15 1 0   93%
src / pipeline / message_stream_processor.py MessageStreamProcessor._process_assistant_message   28 13 0   54%
src / pipeline / message_stream_processor.py MessageStreamProcessor._process_result_message   20 3 0   85%
src / pipeline / message_stream_processor.py (no function)   50 0 8   100%
src / pipeline / review_runner.py ReviewRunner.run_review   21 21 0   0%
src / pipeline / review_runner.py ReviewRunner.check_no_progress   3 3 0   0%
src / pipeline / review_runner.py (no function)   39 0 4   100%
src / pipeline / run_coordinator.py _FixerPromptNotSet.format   1 1 0   0%
src / pipeline / run_coordinator.py SpecResultBuilder.derive_e2e_passed   5 5 0   0%
src / pipeline / run_coordinator.py SpecResultBuilder.build_meta_result   4 4 0   0%
src / pipeline / run_coordinator.py RunCoordinator.run_validation   48 48 0   0%
src / pipeline / run_coordinator.py RunCoordinator._build_validation_failure_output   22 22 0   0%
src / pipeline / run_coordinator.py RunCoordinator._run_fixer_agent   54 54 0   0%
src / pipeline / run_coordinator.py RunCoordinator.cleanup_fixer_locks   3 3 0   0%
src / pipeline / run_coordinator.py (no function)   48 0 7   100%
src / pipeline / session_callback_factory.py GateAsyncRunner.run_gate_async   0 0 1   100%
src / pipeline / session_callback_factory.py SessionCallbackFactory.__init__   10 10 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build   10 10 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.on_gate_check   1 1 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.on_review_check   8 8 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.on_review_no_progress   2 2 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.get_log_path   3 3 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.get_log_offset   1 1 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.on_tool_use   1 1 0   0%
src / pipeline / session_callback_factory.py SessionCallbackFactory.build.on_agent_text   1 1 0   0%
src / pipeline / session_callback_factory.py GetPerIssueSpec.__call__   0 0 1   100%
src / pipeline / session_callback_factory.py IsVerboseCheck.__call__   0 0 1   100%
src / pipeline / session_callback_factory.py GateChecker.get_log_end_offset   0 0 1   100%
src / pipeline / session_callback_factory.py (no function)   14 0 18   100%
Total     8748 4759 543   46%

No items found using the specified filter.