Files
stack/apps/coordinator/coverage.json
Jason Woltje b836940b89 feat(#309): Add LLM usage tracking and analytics
Implements comprehensive LLM usage tracking with analytics endpoints.

Implementation:
- Added LlmUsageLog model to Prisma schema
- Created llm-usage module with service, controller, and DTOs
- Added tracking for token usage, costs, and durations
- Implemented analytics aggregation by provider, model, and task type
- Added filtering by workspace, provider, model, user, and date range

Testing:
- 20 unit tests with 90.8% coverage (exceeds 85% requirement)
- Tests for service and controller with full error handling
- Tests use Vitest following project conventions

API Endpoints:
- GET /api/llm-usage/analytics - Aggregated usage analytics
- GET /api/llm-usage/by-workspace/:workspaceId - Workspace usage logs
- GET /api/llm-usage/by-workspace/:workspaceId/provider/:provider - Provider logs
- GET /api/llm-usage/by-workspace/:workspaceId/model/:model - Model logs

Database:
- LlmUsageLog table with indexes for efficient queries
- Relations to User, Workspace, and LlmProviderInstance
- Ready for migration with: pnpm prisma migrate dev

Refs #309

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-04 13:41:45 -06:00

3362 lines
111 KiB
JSON

{
"meta": {
"format": 3,
"version": "7.13.3",
"timestamp": "2026-02-04T11:35:08.447905",
"branch_coverage": false,
"show_contexts": false
},
"files": {
"src/__init__.py": {
"executed_lines": [3],
"summary": {
"covered_lines": 1,
"num_statements": 1,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"": {
"executed_lines": [3],
"summary": {
"covered_lines": 1,
"num_statements": 1,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"": {
"executed_lines": [3],
"summary": {
"covered_lines": 1,
"num_statements": 1,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/agent_assignment.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 36,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 36,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
10, 12, 15, 18, 25, 30, 31, 34, 46, 47, 55, 56, 61, 64, 77, 78, 81, 91, 94, 107, 109, 111,
113, 115, 118, 131, 134, 158, 159, 164, 167, 170, 171, 174, 175, 177
],
"excluded_lines": [],
"functions": {
"NoCapableAgentError.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [25, 30, 31],
"excluded_lines": [],
"start_line": 18
},
"_map_difficulty_to_capability": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [46, 47, 55, 56, 61],
"excluded_lines": [],
"start_line": 34
},
"_can_handle_context": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [77, 78],
"excluded_lines": [],
"start_line": 64
},
"_can_handle_difficulty": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [91],
"excluded_lines": [],
"start_line": 81
},
"_filter_qualified_agents": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [107, 109, 111, 113, 115],
"excluded_lines": [],
"start_line": 94
},
"_sort_by_cost": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [131],
"excluded_lines": [],
"start_line": 118
},
"assign_agent": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 9,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 9,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [158, 159, 164, 167, 170, 171, 174, 175, 177],
"excluded_lines": [],
"start_line": 134
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 10,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 10,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [10, 12, 15, 18, 34, 64, 81, 94, 118, 134],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"NoCapableAgentError": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [25, 30, 31],
"excluded_lines": [],
"start_line": 15
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 33,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 33,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
10, 12, 15, 18, 34, 46, 47, 55, 56, 61, 64, 77, 78, 81, 91, 94, 107, 109, 111, 113, 115,
118, 131, 134, 158, 159, 164, 167, 170, 171, 174, 175, 177
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/config.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 6, 9, 17, 18, 21, 24, 25, 28, 31, 32, 33, 36, 38, 42],
"excluded_lines": [],
"functions": {
"get_settings": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [38],
"excluded_lines": [],
"start_line": 36
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 14,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 14,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 6, 9, 17, 18, 21, 24, 25, 28, 31, 32, 33, 36, 42],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"Settings": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 6
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 6, 9, 17, 18, 21, 24, 25, 28, 31, 32, 33, 36, 38, 42],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/context_compaction.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 62,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 62,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
11, 12, 13, 15, 18, 19, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 46, 47, 54, 55, 69, 70, 71,
72, 73, 74, 75, 76, 78, 80, 81, 89, 97, 107, 113, 115, 127, 129, 130, 132, 133, 135, 144,
146, 148, 149, 150, 151, 153, 159, 162, 165, 166, 167, 168, 171, 172, 176, 182, 193, 194,
195
],
"excluded_lines": [],
"functions": {
"CompactionResult.__repr__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [46, 47],
"excluded_lines": [],
"start_line": 44
},
"SessionRotation.__repr__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [80, 81],
"excluded_lines": [],
"start_line": 78
},
"ContextCompactor.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [113],
"excluded_lines": [],
"start_line": 107
},
"ContextCompactor.request_summary": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [127, 129, 130, 132, 133],
"excluded_lines": [],
"start_line": 115
},
"ContextCompactor.compact": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 20,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 20,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
144, 146, 148, 149, 150, 151, 153, 159, 162, 165, 166, 167, 168, 171, 172, 176, 182,
193, 194, 195
],
"excluded_lines": [],
"start_line": 135
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 32,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 32,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
11, 12, 13, 15, 18, 19, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 54, 55, 69, 70, 71, 72,
73, 74, 75, 76, 78, 89, 97, 107, 115, 135
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"CompactionResult": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [46, 47],
"excluded_lines": [],
"start_line": 19
},
"SessionRotation": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [80, 81],
"excluded_lines": [],
"start_line": 55
},
"ContextCompactor": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 26,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 26,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
113, 127, 129, 130, 132, 133, 144, 146, 148, 149, 150, 151, 153, 159, 162, 165, 166,
167, 168, 171, 172, 176, 182, 193, 194, 195
],
"excluded_lines": [],
"start_line": 89
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 32,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 32,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
11, 12, 13, 15, 18, 19, 34, 35, 36, 37, 38, 39, 40, 41, 42, 44, 54, 55, 69, 70, 71, 72,
73, 74, 75, 76, 78, 89, 97, 107, 115, 135
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/context_monitor.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 75,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 75,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 10, 12, 15, 24, 25, 27, 34, 35, 36, 37, 38, 40, 52, 53, 60, 61, 63, 65,
74, 76, 77, 80, 81, 82, 85, 87, 88, 90, 99, 101, 113, 114, 118, 119, 120, 121, 122, 123,
127, 128, 129, 130, 132, 134, 140, 141, 143, 155, 156, 158, 159, 164, 166, 168, 193, 198,
200, 201, 202, 204, 210, 211, 214, 218, 220, 225, 235, 236, 237
],
"excluded_lines": [],
"functions": {
"ContextMonitor.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [34, 35, 36, 37, 38],
"excluded_lines": [],
"start_line": 27
},
"ContextMonitor.get_context_usage": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [52, 53, 60, 61, 63],
"excluded_lines": [],
"start_line": 40
},
"ContextMonitor.determine_action": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 9,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 9,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [74, 76, 77, 80, 81, 82, 85, 87, 88],
"excluded_lines": [],
"start_line": 65
},
"ContextMonitor.get_usage_history": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [99],
"excluded_lines": [],
"start_line": 90
},
"ContextMonitor.start_monitoring": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 13,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 13,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [113, 114, 118, 119, 120, 121, 122, 123, 127, 128, 129, 130, 132],
"excluded_lines": [],
"start_line": 101
},
"ContextMonitor.stop_monitoring": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [140, 141],
"excluded_lines": [],
"start_line": 134
},
"ContextMonitor.trigger_compaction": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 6,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 6,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [155, 156, 158, 159, 164, 166],
"excluded_lines": [],
"start_line": 143
},
"ContextMonitor.trigger_rotation": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
193, 198, 200, 201, 202, 204, 210, 211, 214, 218, 220, 225, 235, 236, 237
],
"excluded_lines": [],
"start_line": 168
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 19,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 19,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 10, 12, 15, 24, 25, 27, 40, 65, 90, 101, 134, 143, 168
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"ContextMonitor": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 56,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 56,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
34, 35, 36, 37, 38, 52, 53, 60, 61, 63, 74, 76, 77, 80, 81, 82, 85, 87, 88, 99, 113,
114, 118, 119, 120, 121, 122, 123, 127, 128, 129, 130, 132, 140, 141, 155, 156, 158,
159, 164, 166, 193, 198, 200, 201, 202, 204, 210, 211, 214, 218, 220, 225, 235, 236, 237
],
"excluded_lines": [],
"start_line": 15
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 19,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 19,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 10, 12, 15, 24, 25, 27, 40, 65, 90, 101, 134, 143, 168
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/coordinator.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 183,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 183,
"excluded_lines": 2,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 7, 8, 9, 10, 11, 16, 19, 30, 41, 42, 43, 44, 45, 47, 48, 54, 56, 57, 63, 65, 71,
73, 78, 79, 80, 82, 83, 84, 85, 86, 87, 91, 92, 97, 98, 100, 103, 104, 106, 112, 113, 114,
115, 117, 127, 129, 130, 131, 133, 140, 143, 144, 146, 148, 149, 151, 153, 154, 157, 159,
171, 178, 186, 188, 191, 202, 219, 220, 221, 222, 223, 224, 225, 226, 229, 230, 231, 233,
234, 240, 242, 243, 249, 251, 252, 258, 260, 261, 267, 269, 270, 276, 278, 284, 286, 291,
292, 293, 295, 296, 297, 298, 299, 300, 304, 305, 310, 311, 313, 316, 317, 319, 325, 326,
327, 328, 330, 344, 346, 347, 348, 350, 358, 359, 362, 363, 370, 372, 374, 375, 376, 379,
382, 384, 386, 387, 388, 393, 394, 396, 397, 400, 402, 414, 421, 423, 425, 434, 435, 437,
438, 439, 440, 442, 443, 444, 445, 447, 456, 458, 459, 461, 462, 464, 467, 471, 473, 474,
476, 477, 488, 497, 499, 500, 501, 507, 508, 509, 511, 512
],
"excluded_lines": [13, 14],
"functions": {
"Coordinator.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 5,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 5,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [41, 42, 43, 44, 45],
"excluded_lines": [],
"start_line": 30
},
"Coordinator.is_running": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [54],
"excluded_lines": [],
"start_line": 48
},
"Coordinator.active_agents": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [63],
"excluded_lines": [],
"start_line": 57
},
"Coordinator.get_active_agent_count": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [71],
"excluded_lines": [],
"start_line": 65
},
"Coordinator.start": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 16,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 16,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [78, 79, 80, 82, 83, 84, 85, 86, 87, 91, 92, 97, 98, 100, 103, 104],
"excluded_lines": [],
"start_line": 73
},
"Coordinator.stop": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [112, 113, 114, 115],
"excluded_lines": [],
"start_line": 106
},
"Coordinator.process_queue": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
127, 129, 130, 131, 133, 140, 143, 144, 146, 148, 149, 151, 153, 154, 157
],
"excluded_lines": [],
"start_line": 117
},
"Coordinator.spawn_agent": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [171, 178, 186, 188],
"excluded_lines": [],
"start_line": 159
},
"OrchestrationLoop.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 11,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 11,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [219, 220, 221, 222, 223, 224, 225, 226, 229, 230, 231],
"excluded_lines": [],
"start_line": 202
},
"OrchestrationLoop.is_running": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [240],
"excluded_lines": [],
"start_line": 234
},
"OrchestrationLoop.active_agents": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [249],
"excluded_lines": [],
"start_line": 243
},
"OrchestrationLoop.processed_count": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [258],
"excluded_lines": [],
"start_line": 252
},
"OrchestrationLoop.success_count": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [267],
"excluded_lines": [],
"start_line": 261
},
"OrchestrationLoop.rejection_count": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [276],
"excluded_lines": [],
"start_line": 270
},
"OrchestrationLoop.get_active_agent_count": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [284],
"excluded_lines": [],
"start_line": 278
},
"OrchestrationLoop.start": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 16,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 16,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
291, 292, 293, 295, 296, 297, 298, 299, 300, 304, 305, 310, 311, 313, 316, 317
],
"excluded_lines": [],
"start_line": 286
},
"OrchestrationLoop.stop": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [325, 326, 327, 328],
"excluded_lines": [],
"start_line": 319
},
"OrchestrationLoop.process_next_issue": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 25,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 25,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
344, 346, 347, 348, 350, 358, 359, 362, 363, 370, 372, 374, 375, 376, 379, 382, 384,
386, 387, 388, 393, 394, 396, 397, 400
],
"excluded_lines": [],
"start_line": 330
},
"OrchestrationLoop._spawn_agent": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [414, 421, 423],
"excluded_lines": [],
"start_line": 402
},
"OrchestrationLoop._check_context": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 10,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 10,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [434, 435, 437, 438, 439, 440, 442, 443, 444, 445],
"excluded_lines": [],
"start_line": 425
},
"OrchestrationLoop._verify_quality": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 12,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 12,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [456, 458, 459, 461, 462, 464, 467, 471, 473, 474, 476, 477],
"excluded_lines": [],
"start_line": 447
},
"OrchestrationLoop._handle_rejection": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 9,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 9,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [497, 499, 500, 501, 507, 508, 509, 511, 512],
"excluded_lines": [],
"start_line": 488
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 40,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 40,
"excluded_lines": 2,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 7, 8, 9, 10, 11, 16, 19, 30, 47, 48, 56, 57, 65, 73, 106, 117, 159, 191, 202,
233, 234, 242, 243, 251, 252, 260, 261, 269, 270, 278, 286, 319, 330, 402, 425, 447, 488
],
"excluded_lines": [13, 14],
"start_line": 1
}
},
"classes": {
"Coordinator": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 47,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 47,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
41, 42, 43, 44, 45, 54, 63, 71, 78, 79, 80, 82, 83, 84, 85, 86, 87, 91, 92, 97, 98, 100,
103, 104, 112, 113, 114, 115, 127, 129, 130, 131, 133, 140, 143, 144, 146, 148, 149,
151, 153, 154, 157, 171, 178, 186, 188
],
"excluded_lines": [],
"start_line": 19
},
"OrchestrationLoop": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 96,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 96,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
219, 220, 221, 222, 223, 224, 225, 226, 229, 230, 231, 240, 249, 258, 267, 276, 284,
291, 292, 293, 295, 296, 297, 298, 299, 300, 304, 305, 310, 311, 313, 316, 317, 325,
326, 327, 328, 344, 346, 347, 348, 350, 358, 359, 362, 363, 370, 372, 374, 375, 376,
379, 382, 384, 386, 387, 388, 393, 394, 396, 397, 400, 414, 421, 423, 434, 435, 437,
438, 439, 440, 442, 443, 444, 445, 456, 458, 459, 461, 462, 464, 467, 471, 473, 474,
476, 477, 497, 499, 500, 501, 507, 508, 509, 511, 512
],
"excluded_lines": [],
"start_line": 191
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 40,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 40,
"excluded_lines": 2,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 7, 8, 9, 10, 11, 16, 19, 30, 47, 48, 56, 57, 65, 73, 106, 117, 159, 191, 202,
233, 234, 242, 243, 251, 252, 260, 261, 269, 270, 278, 286, 319, 330, 402, 425, 447, 488
],
"excluded_lines": [13, 14],
"start_line": 1
}
}
},
"src/forced_continuation.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 39,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 39,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 6, 17, 29, 30, 36, 43, 51, 52, 53, 56, 57, 58, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71,
72, 74, 77, 85, 86, 96, 97, 107, 108, 118, 119, 120, 121, 123, 135, 144
],
"excluded_lines": [],
"functions": {
"ForcedContinuationService.generate_prompt": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 36,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 36,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
29, 30, 36, 43, 51, 52, 53, 56, 57, 58, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 74,
77, 85, 86, 96, 97, 107, 108, 118, 119, 120, 121, 123, 135, 144
],
"excluded_lines": [],
"start_line": 17
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 6, 17],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"ForcedContinuationService": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 36,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 36,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
29, 30, 36, 43, 51, 52, 53, 56, 57, 58, 60, 61, 62, 63, 66, 67, 68, 69, 70, 71, 72, 74,
77, 85, 86, 96, 97, 107, 108, 118, 119, 120, 121, 123, 135, 144
],
"excluded_lines": [],
"start_line": 6
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 6, 17],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/__init__.py": {
"executed_lines": [3, 4, 5, 6, 7, 9],
"summary": {
"covered_lines": 6,
"num_statements": 6,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"": {
"executed_lines": [3, 4, 5, 6, 7, 9],
"summary": {
"covered_lines": 6,
"num_statements": 6,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"": {
"executed_lines": [3, 4, 5, 6, 7, 9],
"summary": {
"covered_lines": 6,
"num_statements": 6,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/build_gate.py": {
"executed_lines": [3, 5, 8, 15, 21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 15,
"num_statements": 15,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"BuildGate.check": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 15
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"BuildGate": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 8
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/coverage_gate.py": {
"executed_lines": [
3, 4, 5, 7, 10, 16, 18, 24, 26, 41, 42, 44, 46, 47, 59, 60, 75, 90, 91, 97, 98, 104, 105,
111, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 129, 140, 141, 142, 143, 144,
145, 146, 147, 148, 149
],
"summary": {
"covered_lines": 46,
"num_statements": 46,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"CoverageGate.check": {
"executed_lines": [24, 26, 41, 42, 44, 46, 47, 59, 60, 75, 90, 91, 97, 98, 104, 105],
"summary": {
"covered_lines": 16,
"num_statements": 16,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 18
},
"CoverageGate._extract_coverage_from_json": {
"executed_lines": [117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 111
},
"CoverageGate._extract_coverage_from_output": {
"executed_lines": [140, 141, 142, 143, 144, 145, 146, 147, 148, 149],
"summary": {
"covered_lines": 10,
"num_statements": 10,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 129
},
"": {
"executed_lines": [3, 4, 5, 7, 10, 16, 18, 111, 129],
"summary": {
"covered_lines": 9,
"num_statements": 9,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"CoverageGate": {
"executed_lines": [
24, 26, 41, 42, 44, 46, 47, 59, 60, 75, 90, 91, 97, 98, 104, 105, 117, 118, 119, 120,
121, 122, 123, 124, 125, 126, 127, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149
],
"summary": {
"covered_lines": 37,
"num_statements": 37,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 10
},
"": {
"executed_lines": [3, 4, 5, 7, 10, 16, 18, 111, 129],
"summary": {
"covered_lines": 9,
"num_statements": 9,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/lint_gate.py": {
"executed_lines": [3, 5, 8, 15, 21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 15,
"num_statements": 15,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"LintGate.check": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 15
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"LintGate": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 8
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/quality_gate.py": {
"executed_lines": [3, 5, 8, 17, 18, 19, 24, 30],
"summary": {
"covered_lines": 8,
"num_statements": 8,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 2,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [36, 37],
"functions": {
"QualityGate.check": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 1,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [36],
"start_line": 30
},
"": {
"executed_lines": [3, 5, 8, 17, 18, 19, 24, 30],
"summary": {
"covered_lines": 8,
"num_statements": 8,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"GateResult": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 8
},
"QualityGate": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 1,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [36],
"start_line": 24
},
"": {
"executed_lines": [3, 5, 8, 17, 18, 19, 24, 30],
"summary": {
"covered_lines": 8,
"num_statements": 8,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/gates/test_gate.py": {
"executed_lines": [3, 5, 8, 15, 21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 15,
"num_statements": 15,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"functions": {
"TestGate.check": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 15
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"TestGate": {
"executed_lines": [21, 22, 29, 30, 40, 50, 51, 57, 58, 64, 65],
"summary": {
"covered_lines": 11,
"num_statements": 11,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 8
},
"": {
"executed_lines": [3, 5, 8, 15],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/main.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 67,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 67,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16, 20, 22, 23, 31, 32, 35, 36, 39, 45, 48, 49, 60,
61, 62, 63, 66, 67, 68, 71, 72, 76, 82, 83, 85, 87, 90, 93, 94, 95, 96, 97, 98, 99, 100,
101, 102, 104, 108, 116, 119, 120, 121, 122, 125, 126, 132, 133, 135, 136, 137, 139, 148,
151, 152, 154
],
"excluded_lines": [],
"functions": {
"setup_logging": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [22, 23],
"excluded_lines": [],
"start_line": 20
},
"get_coordinator": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [45],
"excluded_lines": [],
"start_line": 39
},
"lifespan": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 26,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 26,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
60, 61, 62, 63, 66, 67, 68, 71, 72, 76, 82, 83, 85, 87, 90, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 104
],
"excluded_lines": [],
"start_line": 49
},
"health_check": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 6,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 6,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [132, 133, 135, 136, 137, 139],
"excluded_lines": [],
"start_line": 126
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 32,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 32,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16, 20, 31, 32, 35, 36, 39, 48, 49, 108, 116, 119,
120, 121, 122, 125, 126, 148, 151, 152, 154
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"HealthResponse": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 116
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 67,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 67,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 8, 10, 11, 13, 14, 15, 16, 20, 22, 23, 31, 32, 35, 36, 39, 45, 48, 49,
60, 61, 62, 63, 66, 67, 68, 71, 72, 76, 82, 83, 85, 87, 90, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 104, 108, 116, 119, 120, 121, 122, 125, 126, 132, 133, 135, 136, 137,
139, 148, 151, 152, 154
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/metrics.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 49,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 49,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
12, 13, 15, 16, 19, 20, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 51, 63, 69, 77, 83, 85, 114,
115, 116, 118, 119, 121, 123, 126, 139, 140, 141, 144, 145, 148, 149, 150, 151, 152, 154,
155, 156, 157, 158, 159, 160, 162, 166
],
"excluded_lines": [],
"functions": {
"SuccessMetrics.to_dict": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [51],
"excluded_lines": [],
"start_line": 45
},
"SuccessMetrics.validate_targets": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [69],
"excluded_lines": [],
"start_line": 63
},
"SuccessMetrics.format_report": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 9,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 9,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [83, 85, 114, 115, 116, 118, 119, 121, 123],
"excluded_lines": [],
"start_line": 77
},
"generate_metrics_from_orchestrator": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 19,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 19,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
139, 140, 141, 144, 145, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160,
162, 166
],
"excluded_lines": [],
"start_line": 126
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 19,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 19,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
12, 13, 15, 16, 19, 20, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 63, 77, 126
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"SuccessMetrics": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 11,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 11,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [51, 69, 83, 85, 114, 115, 116, 118, 119, 121, 123],
"excluded_lines": [],
"start_line": 20
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 38,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 38,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
12, 13, 15, 16, 19, 20, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 63, 77, 126, 139, 140,
141, 144, 145, 148, 149, 150, 151, 152, 154, 155, 156, 157, 158, 159, 160, 162, 166
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/models.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 73,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 73,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 9, 12, 13, 14, 17, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 46, 47, 48, 50, 51,
57, 58, 59, 61, 62, 68, 70, 72, 79, 82, 87, 91, 95, 99, 104, 105, 106, 108, 109, 110, 111,
113, 114, 115, 117, 118, 119, 120, 122, 123, 124, 126, 127, 128, 131, 134, 135, 139, 143,
147, 152, 153, 154, 156, 157, 158, 162, 201, 213
],
"excluded_lines": [],
"functions": {
"ContextUsage.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [46, 47, 48],
"excluded_lines": [],
"start_line": 38
},
"ContextUsage.usage_ratio": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [57, 58, 59],
"excluded_lines": [],
"start_line": 51
},
"ContextUsage.usage_percent": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [68],
"excluded_lines": [],
"start_line": 62
},
"ContextUsage.__repr__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [72],
"excluded_lines": [],
"start_line": 70
},
"IssueMetadata.validate_difficulty": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [108, 109, 110, 111],
"excluded_lines": [],
"start_line": 106
},
"IssueMetadata.validate_agent": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [117, 118, 119, 120],
"excluded_lines": [],
"start_line": 115
},
"IssueMetadata.validate_issue_lists": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [126, 127, 128],
"excluded_lines": [],
"start_line": 124
},
"AgentProfile.validate_best_for_not_empty": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [156, 157, 158],
"excluded_lines": [],
"start_line": 154
},
"get_agent_profile": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [213],
"excluded_lines": [],
"start_line": 201
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 50,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 50,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 9, 12, 13, 14, 17, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 50, 51, 61, 62,
70, 79, 82, 87, 91, 95, 99, 104, 105, 106, 113, 114, 115, 122, 123, 124, 131, 134, 135,
139, 143, 147, 152, 153, 154, 162, 201
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"Capability": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 9
},
"AgentName": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 17
},
"ContextAction": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 27
},
"ContextUsage": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 8,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 8,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [46, 47, 48, 57, 58, 59, 68, 72],
"excluded_lines": [],
"start_line": 35
},
"IssueMetadata": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 11,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 11,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [108, 109, 110, 111, 117, 118, 119, 120, 126, 127, 128],
"excluded_lines": [],
"start_line": 79
},
"AgentProfile": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [156, 157, 158],
"excluded_lines": [],
"start_line": 131
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 51,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 51,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 9, 12, 13, 14, 17, 20, 21, 22, 23, 24, 27, 30, 31, 32, 35, 38, 50, 51, 61, 62,
70, 79, 82, 87, 91, 95, 99, 104, 105, 106, 113, 114, 115, 122, 123, 124, 131, 134, 135,
139, 143, 147, 152, 153, 154, 162, 201, 213
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/parser.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 35,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 35,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 7, 8, 10, 12, 15, 18, 20, 23, 40, 41, 42, 45, 46, 48, 50, 52, 65, 66, 67, 68, 69,
72, 82, 85, 87, 89, 90, 96, 99, 109, 139, 149
],
"excluded_lines": [],
"functions": {
"clear_cache": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [20],
"excluded_lines": [],
"start_line": 18
},
"parse_issue_metadata": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 20,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 20,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
40, 41, 42, 45, 46, 48, 50, 52, 65, 66, 67, 68, 69, 72, 82, 85, 87, 89, 90, 96
],
"excluded_lines": [],
"start_line": 23
},
"_build_parse_prompt": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [109],
"excluded_lines": [],
"start_line": 99
},
"_create_metadata_from_parsed": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [149],
"excluded_lines": [],
"start_line": 139
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 12,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 12,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 4, 5, 7, 8, 10, 12, 15, 18, 23, 99, 139],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 35,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 35,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 7, 8, 10, 12, 15, 18, 20, 23, 40, 41, 42, 45, 46, 48, 50, 52, 65, 66, 67, 68,
69, 72, 82, 85, 87, 89, 90, 96, 99, 109, 139, 149
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/quality_orchestrator.py": {
"executed_lines": [
3, 4, 6, 8, 9, 10, 11, 12, 15, 23, 24, 29, 38, 55, 56, 57, 58, 60, 74, 75, 76, 77, 80, 89,
90, 92, 93, 95, 100, 101, 111, 113, 115, 130, 131, 132, 135, 139, 140, 142, 143, 145, 153,
161, 162, 163
],
"summary": {
"covered_lines": 46,
"num_statements": 53,
"percent_covered": 86.79245283018868,
"percent_covered_display": "87",
"missing_lines": 7,
"excluded_lines": 0,
"percent_statements_covered": 86.79245283018868,
"percent_statements_covered_display": "87"
},
"missing_lines": [104, 136, 144, 155, 156, 158, 164],
"excluded_lines": [],
"functions": {
"QualityOrchestrator.__init__": {
"executed_lines": [55, 56, 57, 58],
"summary": {
"covered_lines": 4,
"num_statements": 4,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 38
},
"QualityOrchestrator.verify_completion": {
"executed_lines": [74, 75, 76, 77, 80, 89, 90, 92, 93, 95, 100, 101, 111, 113],
"summary": {
"covered_lines": 14,
"num_statements": 15,
"percent_covered": 93.33333333333333,
"percent_covered_display": "93",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 93.33333333333333,
"percent_statements_covered_display": "93"
},
"missing_lines": [104],
"excluded_lines": [],
"start_line": 60
},
"QualityOrchestrator._run_gate_async": {
"executed_lines": [130, 131, 132, 135, 139, 140, 142, 143, 145, 153, 161, 162, 163],
"summary": {
"covered_lines": 13,
"num_statements": 19,
"percent_covered": 68.42105263157895,
"percent_covered_display": "68",
"missing_lines": 6,
"excluded_lines": 0,
"percent_statements_covered": 68.42105263157895,
"percent_statements_covered_display": "68"
},
"missing_lines": [136, 144, 155, 156, 158, 164],
"excluded_lines": [],
"start_line": 115
},
"": {
"executed_lines": [3, 4, 6, 8, 9, 10, 11, 12, 15, 23, 24, 29, 38, 60, 115],
"summary": {
"covered_lines": 15,
"num_statements": 15,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"VerificationResult": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 15
},
"QualityOrchestrator": {
"executed_lines": [
55, 56, 57, 58, 74, 75, 76, 77, 80, 89, 90, 92, 93, 95, 100, 101, 111, 113, 130, 131,
132, 135, 139, 140, 142, 143, 145, 153, 161, 162, 163
],
"summary": {
"covered_lines": 31,
"num_statements": 38,
"percent_covered": 81.57894736842105,
"percent_covered_display": "82",
"missing_lines": 7,
"excluded_lines": 0,
"percent_statements_covered": 81.57894736842105,
"percent_statements_covered_display": "82"
},
"missing_lines": [104, 136, 144, 155, 156, 158, 164],
"excluded_lines": [],
"start_line": 29
},
"": {
"executed_lines": [3, 4, 6, 8, 9, 10, 11, 12, 15, 23, 24, 29, 38, 60, 115],
"summary": {
"covered_lines": 15,
"num_statements": 15,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/queue.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 87,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 87,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 20, 21, 24, 25, 26, 27, 29, 32, 34, 40, 47, 48, 57, 65,
68, 74, 75, 76, 78, 85, 89, 90, 91, 93, 99, 100, 101, 102, 104, 110, 116, 119, 122, 123,
124, 127, 128, 130, 136, 137, 138, 139, 141, 147, 148, 149, 151, 160, 162, 168, 170, 176,
178, 184, 186, 192, 199, 201, 202, 205, 208, 210, 212, 214, 215, 217, 219, 220, 222, 223,
224, 226, 227, 228, 231, 232, 234
],
"excluded_lines": [],
"functions": {
"QueueItem.__post_init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [32],
"excluded_lines": [],
"start_line": 29
},
"QueueItem.to_dict": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [40],
"excluded_lines": [],
"start_line": 34
},
"QueueItem.from_dict": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [57],
"excluded_lines": [],
"start_line": 48
},
"QueueManager.__init__": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [74, 75, 76],
"excluded_lines": [],
"start_line": 68
},
"QueueManager.enqueue": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [85, 89, 90, 91],
"excluded_lines": [],
"start_line": 78
},
"QueueManager.dequeue": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [99, 100, 101, 102],
"excluded_lines": [],
"start_line": 93
},
"QueueManager.get_next_ready": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 8,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 8,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [110, 116, 119, 122, 123, 124, 127, 128],
"excluded_lines": [],
"start_line": 104
},
"QueueManager.mark_complete": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [136, 137, 138, 139],
"excluded_lines": [],
"start_line": 130
},
"QueueManager.mark_in_progress": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [147, 148, 149],
"excluded_lines": [],
"start_line": 141
},
"QueueManager.get_item": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [160],
"excluded_lines": [],
"start_line": 151
},
"QueueManager.list_all": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [168],
"excluded_lines": [],
"start_line": 162
},
"QueueManager.list_ready": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [176],
"excluded_lines": [],
"start_line": 170
},
"QueueManager.size": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 1,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 1,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [184],
"excluded_lines": [],
"start_line": 178
},
"QueueManager._update_ready_status": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 6,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 6,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [192, 199, 201, 202, 205, 208],
"excluded_lines": [],
"start_line": 186
},
"QueueManager.save": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [212, 214, 215],
"excluded_lines": [],
"start_line": 210
},
"QueueManager._load": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 11,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 11,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [219, 220, 222, 223, 224, 226, 227, 228, 231, 232, 234],
"excluded_lines": [],
"start_line": 217
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 34,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 34,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 20, 21, 24, 25, 26, 27, 29, 34, 47, 48, 65, 68, 78,
93, 104, 130, 141, 151, 162, 170, 178, 186, 210, 217
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"QueueItemStatus": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 12
},
"QueueItem": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [32, 40, 57],
"excluded_lines": [],
"start_line": 21
},
"QueueManager": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 50,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 50,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
74, 75, 76, 85, 89, 90, 91, 99, 100, 101, 102, 110, 116, 119, 122, 123, 124, 127, 128,
136, 137, 138, 139, 147, 148, 149, 160, 168, 176, 184, 192, 199, 201, 202, 205, 208,
212, 214, 215, 219, 220, 222, 223, 224, 226, 227, 228, 231, 232, 234
],
"excluded_lines": [],
"start_line": 65
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 34,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 34,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 5, 6, 7, 9, 12, 15, 16, 17, 20, 21, 24, 25, 26, 27, 29, 34, 47, 48, 65, 68, 78,
93, 104, 130, 141, 151, 162, 170, 178, 186, 210, 217
],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/security.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 7,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 7,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 4, 7, 26, 27, 30, 35],
"excluded_lines": [],
"functions": {
"verify_signature": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 4,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 4,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [26, 27, 30, 35],
"excluded_lines": [],
"start_line": 7
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 3,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 3,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 4, 7],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 7,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 7,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [3, 4, 7, 26, 27, 30, 35],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/validation.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [7, 9, 13, 22, 23, 31, 32, 35, 54, 55, 58, 61, 64, 65, 74],
"excluded_lines": [],
"functions": {
"validate_fifty_percent_rule": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 7,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 7,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [54, 55, 58, 61, 64, 65, 74],
"excluded_lines": [],
"start_line": 35
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 8,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 8,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [7, 9, 13, 22, 23, 31, 32, 35],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"ValidationResult": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 23
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 15,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 15,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [7, 9, 13, 22, 23, 31, 32, 35, 54, 55, 58, 61, 64, 65, 74],
"excluded_lines": [],
"start_line": 1
}
}
},
"src/webhook.py": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 43,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 43,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 7, 9, 10, 12, 14, 17, 20, 21, 22, 23, 26, 29, 30, 31, 32, 33, 36, 37, 59, 62, 65,
69, 72, 82, 83, 84, 85, 86, 87, 90, 91, 99, 109, 120, 128, 138, 146, 154, 164, 172
],
"excluded_lines": [],
"functions": {
"handle_gitea_webhook": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 13,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 13,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [59, 62, 65, 69, 72, 82, 83, 84, 85, 86, 87, 90, 91],
"excluded_lines": [],
"start_line": 37
},
"handle_assigned_event": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [109, 120],
"excluded_lines": [],
"start_line": 99
},
"handle_unassigned_event": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [138, 146],
"excluded_lines": [],
"start_line": 128
},
"handle_closed_event": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 2,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 2,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [164, 172],
"excluded_lines": [],
"start_line": 154
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 24,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 24,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 7, 9, 10, 12, 14, 17, 20, 21, 22, 23, 26, 29, 30, 31, 32, 33, 36, 37, 99, 128,
154
],
"excluded_lines": [],
"start_line": 1
}
},
"classes": {
"WebhookResponse": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 17
},
"GiteaWebhookPayload": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 0,
"percent_covered": 100.0,
"percent_covered_display": "100",
"missing_lines": 0,
"excluded_lines": 0,
"percent_statements_covered": 100.0,
"percent_statements_covered_display": "100"
},
"missing_lines": [],
"excluded_lines": [],
"start_line": 26
},
"": {
"executed_lines": [],
"summary": {
"covered_lines": 0,
"num_statements": 43,
"percent_covered": 0.0,
"percent_covered_display": "0",
"missing_lines": 43,
"excluded_lines": 0,
"percent_statements_covered": 0.0,
"percent_statements_covered_display": "0"
},
"missing_lines": [
3, 4, 6, 7, 9, 10, 12, 14, 17, 20, 21, 22, 23, 26, 29, 30, 31, 32, 33, 36, 37, 59, 62,
65, 69, 72, 82, 83, 84, 85, 86, 87, 90, 91, 99, 109, 120, 128, 138, 146, 154, 164, 172
],
"excluded_lines": [],
"start_line": 1
}
}
}
},
"totals": {
"covered_lines": 152,
"num_statements": 945,
"percent_covered": 16.084656084656086,
"percent_covered_display": "16",
"missing_lines": 793,
"excluded_lines": 4,
"percent_statements_covered": 16.084656084656086,
"percent_statements_covered_display": "16"
}
}