| little_loops / cli / action.py |
_now_iso |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
_emit |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
_find_plugin_root |
|
2 |
2 |
0 |
|
0% |
| little_loops / cli / action.py |
_read_skill_description |
|
14 |
1 |
0 |
|
93% |
| little_loops / cli / action.py |
_load_skills |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
cmd_invoke |
|
37 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
cmd_invoke._stream_cb |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
cmd_capabilities |
|
14 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
cmd_list |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / action.py |
main_action |
|
21 |
2 |
0 |
|
90% |
| little_loops / cli / action.py |
(no function) |
|
18 |
0 |
0 |
|
100% |
| little_loops / cli / adapt_agents_for_codex.py |
_find_plugin_root |
|
2 |
2 |
0 |
|
0% |
| little_loops / cli / adapt_agents_for_codex.py |
_extract_agent_frontmatter |
|
10 |
2 |
0 |
|
80% |
| little_loops / cli / adapt_agents_for_codex.py |
_extract_short_desc |
|
11 |
1 |
0 |
|
91% |
| little_loops / cli / adapt_agents_for_codex.py |
_extract_body |
|
9 |
2 |
0 |
|
78% |
| little_loops / cli / adapt_agents_for_codex.py |
_emit_agent_toml |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / adapt_agents_for_codex.py |
_process_agents |
|
50 |
10 |
0 |
|
80% |
| little_loops / cli / adapt_agents_for_codex.py |
main_adapt_agents_for_codex |
|
22 |
6 |
0 |
|
73% |
| little_loops / cli / adapt_agents_for_codex.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| little_loops / cli / adapt_skills_for_codex.py |
_find_plugin_root |
|
2 |
2 |
0 |
|
0% |
| little_loops / cli / adapt_skills_for_codex.py |
_extract_short_desc |
|
18 |
4 |
0 |
|
78% |
| little_loops / cli / adapt_skills_for_codex.py |
_insert_fields |
|
17 |
2 |
0 |
|
88% |
| little_loops / cli / adapt_skills_for_codex.py |
_title_case |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / adapt_skills_for_codex.py |
_make_openai_yaml |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / adapt_skills_for_codex.py |
_process_skills |
|
37 |
5 |
0 |
|
86% |
| little_loops / cli / adapt_skills_for_codex.py |
_read_command_frontmatter |
|
12 |
5 |
0 |
|
58% |
| little_loops / cli / adapt_skills_for_codex.py |
_synthesized_skill_md |
|
11 |
2 |
0 |
|
82% |
| little_loops / cli / adapt_skills_for_codex.py |
_process_commands |
|
62 |
19 |
0 |
|
69% |
| little_loops / cli / adapt_skills_for_codex.py |
main_adapt_skills_for_codex |
|
23 |
4 |
0 |
|
83% |
| little_loops / cli / adapt_skills_for_codex.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| little_loops / cli / auto.py |
main_auto |
|
25 |
7 |
0 |
|
72% |
| little_loops / cli / auto.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_to_pkg_name |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_to_class_name |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_get_cwd |
|
1 |
1 |
0 |
|
0% |
| little_loops / cli / create_extension.py |
_target_exists |
|
1 |
1 |
0 |
|
0% |
| little_loops / cli / create_extension.py |
_write_scaffold |
|
3 |
3 |
0 |
|
0% |
| little_loops / cli / create_extension.py |
_render_pyproject |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_render_init |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_render_extension |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
_render_test |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
main_create_extension |
|
29 |
0 |
0 |
|
100% |
| little_loops / cli / create_extension.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| little_loops / cli / deps.py |
_load_issues |
|
26 |
4 |
0 |
|
85% |
| little_loops / cli / deps.py |
main_deps |
|
208 |
42 |
0 |
|
80% |
| little_loops / cli / deps.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / docs.py |
main_verify_docs |
|
21 |
0 |
0 |
|
100% |
| little_loops / cli / docs.py |
main_verify_skill_budget |
|
36 |
11 |
0 |
|
69% |
| little_loops / cli / docs.py |
main_check_links |
|
24 |
0 |
0 |
|
100% |
| little_loops / cli / docs.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / doctor.py |
_print_report |
|
25 |
0 |
0 |
|
100% |
| little_loops / cli / doctor.py |
main_doctor |
|
12 |
0 |
0 |
|
100% |
| little_loops / cli / doctor.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / generate_skill_descriptions.py |
_find_plugin_root |
|
2 |
2 |
0 |
|
0% |
| little_loops / cli / generate_skill_descriptions.py |
_parse_frontmatter |
|
13 |
1 |
0 |
|
92% |
| little_loops / cli / generate_skill_descriptions.py |
_extract_trigger_keywords |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / generate_skill_descriptions.py |
_build_prompt |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / generate_skill_descriptions.py |
_write_description_to_frontmatter |
|
10 |
1 |
0 |
|
90% |
| little_loops / cli / generate_skill_descriptions.py |
_process_skills |
|
41 |
13 |
0 |
|
68% |
| little_loops / cli / generate_skill_descriptions.py |
main_generate_skill_descriptions |
|
17 |
3 |
0 |
|
82% |
| little_loops / cli / generate_skill_descriptions.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| little_loops / cli / gitignore.py |
main_gitignore |
|
29 |
0 |
0 |
|
100% |
| little_loops / cli / gitignore.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / history.py |
main_history |
|
72 |
1 |
0 |
|
99% |
| little_loops / cli / history.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / issues / anchor_sweep.py |
cmd_anchor_sweep |
|
20 |
2 |
0 |
|
90% |
| little_loops / cli / issues / anchor_sweep.py |
(no function) |
|
6 |
0 |
2 |
|
100% |
| little_loops / cli / issues / append_log.py |
cmd_append_log |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / issues / append_log.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / check_flag.py |
cmd_check_flag |
|
9 |
9 |
0 |
|
0% |
| little_loops / cli / issues / check_flag.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / check_readiness.py |
cmd_check_readiness |
|
21 |
21 |
0 |
|
0% |
| little_loops / cli / issues / check_readiness.py |
(no function) |
|
6 |
0 |
2 |
|
100% |
| little_loops / cli / issues / clusters.py |
_get_connected_components |
|
19 |
1 |
0 |
|
95% |
| little_loops / cli / issues / clusters.py |
_topo_sort_cluster |
|
21 |
2 |
0 |
|
90% |
| little_loops / cli / issues / clusters.py |
_cluster_edges |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / issues / clusters.py |
_render_cluster_diagram |
|
44 |
1 |
0 |
|
98% |
| little_loops / cli / issues / clusters.py |
cmd_clusters |
|
57 |
2 |
0 |
|
96% |
| little_loops / cli / issues / clusters.py |
cmd_clusters._max_degree |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / clusters.py |
(no function) |
|
15 |
0 |
4 |
|
100% |
| little_loops / cli / issues / count_cmd.py |
cmd_count |
|
26 |
0 |
0 |
|
100% |
| little_loops / cli / issues / count_cmd.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
_infer_effort |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
_infer_impact |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
_issue_slug |
|
7 |
1 |
0 |
|
86% |
| little_loops / cli / issues / impact_effort.py |
_render_quadrant_lines |
|
17 |
2 |
0 |
|
88% |
| little_loops / cli / issues / impact_effort.py |
_render_grid |
|
53 |
0 |
0 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
_render_grid.pad |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
cmd_impact_effort |
|
30 |
3 |
0 |
|
90% |
| little_loops / cli / issues / impact_effort.py |
cmd_impact_effort._rec |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / impact_effort.py |
(no function) |
|
14 |
0 |
3 |
|
100% |
| little_loops / cli / issues / list_cmd.py |
cmd_list |
|
81 |
5 |
0 |
|
94% |
| little_loops / cli / issues / list_cmd.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / next_action.py |
cmd_next_action |
|
26 |
0 |
0 |
|
100% |
| little_loops / cli / issues / next_action.py |
(no function) |
|
4 |
0 |
2 |
|
100% |
| little_loops / cli / issues / next_id.py |
cmd_next_id |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / issues / next_id.py |
(no function) |
|
3 |
0 |
2 |
|
100% |
| little_loops / cli / issues / next_issue.py |
cmd_next_issue |
|
23 |
3 |
0 |
|
87% |
| little_loops / cli / issues / next_issue.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / next_issues.py |
cmd_next_issues |
|
24 |
3 |
0 |
|
88% |
| little_loops / cli / issues / next_issues.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / path_cmd.py |
cmd_path |
|
15 |
2 |
0 |
|
87% |
| little_loops / cli / issues / path_cmd.py |
(no function) |
|
4 |
0 |
3 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_cmd_label |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_source_label |
|
5 |
1 |
0 |
|
80% |
| little_loops / cli / issues / refine_status.py |
_truncate |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_col |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_rcol |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_apply_cell_color |
|
19 |
2 |
0 |
|
89% |
| little_loops / cli / issues / refine_status.py |
_compute_min_total_width |
|
16 |
1 |
0 |
|
94% |
| little_loops / cli / issues / refine_status.py |
_elide_columns |
|
20 |
3 |
0 |
|
85% |
| little_loops / cli / issues / refine_status.py |
_elide_columns.fits |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status |
|
62 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._canonical_sort_key |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._sort_key |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._get_col_display_width |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._render_cell |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._header_cell |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._cell_value |
|
29 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
cmd_refine_status._build_row |
|
23 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
_print_key |
|
16 |
0 |
0 |
|
100% |
| little_loops / cli / issues / refine_status.py |
(no function) |
|
34 |
0 |
3 |
|
100% |
| little_loops / cli / issues / search.py |
_parse_discovered_date |
|
20 |
3 |
0 |
|
85% |
| little_loops / cli / issues / search.py |
_parse_updated_date |
|
15 |
4 |
0 |
|
73% |
| little_loops / cli / issues / search.py |
_parse_labels_from_content |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / issues / search.py |
_parse_priority_filter |
|
11 |
0 |
0 |
|
100% |
| little_loops / cli / issues / search.py |
_load_issues_with_status |
|
25 |
4 |
0 |
|
84% |
| little_loops / cli / issues / search.py |
build_sort_key |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / issues / search.py |
build_sort_key.key |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / issues / search.py |
_sort_issues |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / issues / search.py |
_sort_issues.key |
|
27 |
11 |
0 |
|
59% |
| little_loops / cli / issues / search.py |
cmd_search |
|
120 |
7 |
0 |
|
94% |
| little_loops / cli / issues / search.py |
(no function) |
|
16 |
0 |
5 |
|
100% |
| little_loops / cli / issues / sequence.py |
cmd_sequence |
|
33 |
4 |
0 |
|
88% |
| little_loops / cli / issues / sequence.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / set_scores.py |
cmd_set_scores |
|
26 |
0 |
0 |
|
100% |
| little_loops / cli / issues / set_scores.py |
(no function) |
|
5 |
0 |
2 |
|
100% |
| little_loops / cli / issues / show.py |
_source_label |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / issues / show.py |
_resolve_issue_id |
|
33 |
2 |
0 |
|
94% |
| little_loops / cli / issues / show.py |
_parse_card_fields |
|
81 |
11 |
0 |
|
86% |
| little_loops / cli / issues / show.py |
_strip_ansi |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / issues / show.py |
_ljust |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / issues / show.py |
_render_card |
|
129 |
3 |
0 |
|
98% |
| little_loops / cli / issues / show.py |
cmd_show |
|
12 |
0 |
0 |
|
100% |
| little_loops / cli / issues / show.py |
(no function) |
|
16 |
0 |
2 |
|
100% |
| little_loops / cli / issues / skip.py |
cmd_skip |
|
31 |
11 |
0 |
|
65% |
| little_loops / cli / issues / skip.py |
(no function) |
|
5 |
0 |
3 |
|
100% |
| little_loops / cli / learning_tests.py |
cmd_check |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / learning_tests.py |
cmd_list |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / learning_tests.py |
cmd_mark_stale |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / learning_tests.py |
main_learning_tests |
|
17 |
2 |
0 |
|
88% |
| little_loops / cli / learning_tests.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / logs.py |
_is_ll_relevant |
|
26 |
7 |
0 |
|
73% |
| little_loops / cli / logs.py |
_has_ll_activity |
|
17 |
5 |
0 |
|
71% |
| little_loops / cli / logs.py |
discover_all_projects |
|
14 |
2 |
0 |
|
86% |
| little_loops / cli / logs.py |
_cmd_matches |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / logs.py |
generate_index |
|
41 |
7 |
0 |
|
83% |
| little_loops / cli / logs.py |
_cmd_extract |
|
50 |
5 |
0 |
|
90% |
| little_loops / cli / logs.py |
_cmd_tail |
|
24 |
1 |
0 |
|
96% |
| little_loops / cli / logs.py |
_build_parser |
|
11 |
0 |
0 |
|
100% |
| little_loops / cli / logs.py |
_parse_args |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / logs.py |
main_logs |
|
19 |
4 |
0 |
|
79% |
| little_loops / cli / logs.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| little_loops / cli / loop / __main__.py |
(no function) |
|
1 |
1 |
2 |
|
0% |
| little_loops / cli / loop / _helpers.py |
_loop_signal_handler |
|
21 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
_is_earliest_waiter |
|
18 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
register_loop_signal_handlers |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
get_builtin_loops_dir |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
resolve_loop_path |
|
13 |
1 |
0 |
|
92% |
| little_loops / cli / loop / _helpers.py |
load_loop |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
load_loop_with_spec |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
print_execution_plan |
|
44 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
_make_instance_id |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / _helpers.py |
run_background |
|
49 |
6 |
0 |
|
88% |
| little_loops / cli / loop / _helpers.py |
run_foreground |
|
38 |
3 |
0 |
|
92% |
| little_loops / cli / loop / _helpers.py |
run_foreground.display_progress |
|
135 |
6 |
0 |
|
96% |
| little_loops / cli / loop / _helpers.py |
(no function) |
|
30 |
0 |
2 |
|
100% |
| little_loops / cli / loop / config_cmds.py |
cmd_validate |
|
17 |
0 |
0 |
|
100% |
| little_loops / cli / loop / config_cmds.py |
cmd_install |
|
19 |
0 |
0 |
|
100% |
| little_loops / cli / loop / config_cmds.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / loop / info.py |
_load_loop_meta |
|
16 |
2 |
0 |
|
88% |
| little_loops / cli / loop / info.py |
cmd_list |
|
122 |
5 |
0 |
|
96% |
| little_loops / cli / loop / info.py |
_strip_ansi |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / info.py |
_truncate |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / loop / info.py |
_format_history_event |
|
113 |
29 |
0 |
|
74% |
| little_loops / cli / loop / info.py |
_format_duration |
|
10 |
10 |
0 |
|
0% |
| little_loops / cli / loop / info.py |
_list_archived_runs |
|
46 |
40 |
0 |
|
13% |
| little_loops / cli / loop / info.py |
cmd_history |
|
34 |
0 |
0 |
|
100% |
| little_loops / cli / loop / info.py |
_compact_transitions |
|
19 |
4 |
0 |
|
79% |
| little_loops / cli / loop / info.py |
_print_state_overview_table |
|
39 |
4 |
0 |
|
90% |
| little_loops / cli / loop / info.py |
_humanize_evaluate_type |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / info.py |
cmd_show |
|
171 |
37 |
0 |
|
78% |
| little_loops / cli / loop / info.py |
cmd_fragments |
|
40 |
6 |
0 |
|
85% |
| little_loops / cli / loop / info.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_colorize_label |
|
13 |
4 |
0 |
|
69% |
| little_loops / cli / loop / layout.py |
_edge_line_color |
|
12 |
1 |
0 |
|
92% |
| little_loops / cli / loop / layout.py |
_colorize_diagram_labels |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_badge_display_width |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_get_state_badge |
|
14 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_box_inner_lines |
|
19 |
1 |
0 |
|
95% |
| little_loops / cli / loop / layout.py |
_collect_edges |
|
28 |
3 |
0 |
|
89% |
| little_loops / cli / loop / layout.py |
_bfs_order |
|
11 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_trace_main_path |
|
18 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_classify_edges |
|
17 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
TopologyDetector.__init__ |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
TopologyDetector.classify |
|
10 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
LayerAssigner.__init__ |
|
5 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
LayerAssigner.assign |
|
51 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
CrossingMinimizer.__init__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
CrossingMinimizer.minimize |
|
34 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_compute_display_labels |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_compute_box_sizes |
|
24 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_draw_box |
|
69 |
9 |
0 |
|
87% |
| little_loops / cli / loop / layout.py |
_draw_box._bc |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_layered_diagram |
|
559 |
45 |
0 |
|
92% |
| little_loops / cli / loop / layout.py |
_render_layered_diagram._lc |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_layered_diagram._lc |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_layered_diagram._lc |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_layered_diagram._lc |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_fsm_diagram |
|
37 |
0 |
0 |
|
100% |
| little_loops / cli / loop / layout.py |
_render_horizontal_simple |
|
44 |
15 |
0 |
|
66% |
| little_loops / cli / loop / layout.py |
(no function) |
|
37 |
0 |
0 |
|
100% |
| little_loops / cli / loop / lifecycle.py |
_format_relative_time |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / loop / lifecycle.py |
_read_pid_file |
|
6 |
2 |
0 |
|
67% |
| little_loops / cli / loop / lifecycle.py |
_kill_with_timeout |
|
10 |
0 |
0 |
|
100% |
| little_loops / cli / loop / lifecycle.py |
_status_single |
|
61 |
2 |
0 |
|
97% |
| little_loops / cli / loop / lifecycle.py |
cmd_status |
|
70 |
16 |
0 |
|
77% |
| little_loops / cli / loop / lifecycle.py |
cmd_stop |
|
50 |
2 |
0 |
|
96% |
| little_loops / cli / loop / lifecycle.py |
cmd_resume |
|
79 |
5 |
0 |
|
94% |
| little_loops / cli / loop / lifecycle.py |
cmd_resume._cleanup_pid |
|
1 |
1 |
0 |
|
0% |
| little_loops / cli / loop / lifecycle.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| little_loops / cli / loop / next_loop.py |
LoopCandidate.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / loop / next_loop.py |
_scan_history |
|
23 |
4 |
0 |
|
83% |
| little_loops / cli / loop / next_loop.py |
_recency_score |
|
10 |
3 |
0 |
|
70% |
| little_loops / cli / loop / next_loop.py |
_score_loop |
|
13 |
1 |
0 |
|
92% |
| little_loops / cli / loop / next_loop.py |
_resolve_autodev_params |
|
12 |
3 |
0 |
|
75% |
| little_loops / cli / loop / next_loop.py |
_resolve_params |
|
7 |
2 |
0 |
|
71% |
| little_loops / cli / loop / next_loop.py |
_build_command |
|
7 |
3 |
0 |
|
57% |
| little_loops / cli / loop / next_loop.py |
_build_rationale |
|
17 |
4 |
0 |
|
76% |
| little_loops / cli / loop / next_loop.py |
cmd_next_loop |
|
59 |
12 |
0 |
|
80% |
| little_loops / cli / loop / next_loop.py |
(no function) |
|
32 |
0 |
0 |
|
100% |
| little_loops / cli / loop / run.py |
_parse_program_md |
|
30 |
0 |
0 |
|
100% |
| little_loops / cli / loop / run.py |
_parse_program_md._extract |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / loop / run.py |
cmd_run |
|
170 |
22 |
0 |
|
87% |
| little_loops / cli / loop / run.py |
cmd_run._cleanup_pid |
|
1 |
1 |
0 |
|
0% |
| little_loops / cli / loop / run.py |
cmd_run._cleanup_queue_entry |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / loop / run.py |
cmd_run._cleanup_worktree_on_exit |
|
1 |
1 |
0 |
|
0% |
| little_loops / cli / loop / run.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / cli / loop / testing.py |
cmd_test |
|
98 |
20 |
0 |
|
80% |
| little_loops / cli / loop / testing.py |
cmd_simulate |
|
29 |
3 |
0 |
|
90% |
| little_loops / cli / loop / testing.py |
cmd_simulate.simulation_callback |
|
20 |
0 |
0 |
|
100% |
| little_loops / cli / loop / testing.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / messages.py |
main_messages |
|
87 |
4 |
0 |
|
95% |
| little_loops / cli / messages.py |
_save_combined |
|
13 |
0 |
0 |
|
100% |
| little_loops / cli / messages.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / migrate.py |
_set_fields |
|
14 |
0 |
0 |
|
100% |
| little_loops / cli / migrate.py |
_extract_prefix_from_filename |
|
2 |
0 |
0 |
|
100% |
| little_loops / cli / migrate.py |
_get_git_completion_date |
|
9 |
3 |
0 |
|
67% |
| little_loops / cli / migrate.py |
_move_file |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / migrate.py |
main_migrate |
|
73 |
6 |
0 |
|
92% |
| little_loops / cli / migrate.py |
(no function) |
|
16 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_labels.py |
_parse_body_labels |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_labels.py |
_set_labels_frontmatter |
|
12 |
3 |
0 |
|
75% |
| little_loops / cli / migrate_labels.py |
_remove_labels_section |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_labels.py |
_migrate_content |
|
17 |
1 |
0 |
|
94% |
| little_loops / cli / migrate_labels.py |
main_migrate_labels |
|
41 |
9 |
0 |
|
78% |
| little_loops / cli / migrate_labels.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_relationships.py |
_set_fields |
|
14 |
3 |
0 |
|
79% |
| little_loops / cli / migrate_relationships.py |
_migrate_content |
|
19 |
1 |
0 |
|
95% |
| little_loops / cli / migrate_relationships.py |
main_migrate_relationships |
|
42 |
9 |
0 |
|
79% |
| little_loops / cli / migrate_relationships.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_status.py |
_migrate_content |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_status.py |
_migrate_content._replace |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / migrate_status.py |
main_migrate_status |
|
42 |
9 |
0 |
|
79% |
| little_loops / cli / migrate_status.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
terminal_width |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
wrap_text |
|
2 |
2 |
0 |
|
0% |
| little_loops / cli / output.py |
configure_output |
|
7 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
use_color_enabled |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
colorize |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
print_json |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
format_relative_time |
|
13 |
0 |
0 |
|
100% |
| little_loops / cli / output.py |
(no function) |
|
17 |
0 |
2 |
|
100% |
| little_loops / cli / parallel.py |
main_parallel |
|
67 |
6 |
0 |
|
91% |
| little_loops / cli / parallel.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| little_loops / cli / schemas.py |
main_generate_schemas |
|
14 |
3 |
0 |
|
79% |
| little_loops / cli / schemas.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / session.py |
_build_parser |
|
11 |
2 |
0 |
|
82% |
| little_loops / cli / session.py |
_parse_args |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / session.py |
main_session |
|
35 |
10 |
0 |
|
71% |
| little_loops / cli / session.py |
(no function) |
|
9 |
2 |
0 |
|
78% |
| little_loops / cli / sprint / _helpers.py |
_score_suffix |
|
10 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / _helpers.py |
_render_execution_plan |
|
89 |
4 |
0 |
|
96% |
| little_loops / cli / sprint / _helpers.py |
_build_issue_contents |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / _helpers.py |
_render_dependency_analysis |
|
49 |
36 |
0 |
|
27% |
| little_loops / cli / sprint / _helpers.py |
(no function) |
|
7 |
0 |
4 |
|
100% |
| little_loops / cli / sprint / create.py |
_cmd_sprint_create |
|
29 |
7 |
0 |
|
76% |
| little_loops / cli / sprint / create.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / edit.py |
_cmd_sprint_edit |
|
77 |
14 |
0 |
|
82% |
| little_loops / cli / sprint / edit.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / manage.py |
_cmd_sprint_list |
|
20 |
4 |
0 |
|
80% |
| little_loops / cli / sprint / manage.py |
_cmd_sprint_delete |
|
6 |
2 |
0 |
|
67% |
| little_loops / cli / sprint / manage.py |
_cmd_sprint_analyze |
|
93 |
8 |
0 |
|
91% |
| little_loops / cli / sprint / manage.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / run.py |
_sprint_signal_handler |
|
11 |
1 |
0 |
|
91% |
| little_loops / cli / sprint / run.py |
_get_sprint_state_file |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / run.py |
_load_sprint_state |
|
12 |
4 |
0 |
|
67% |
| little_loops / cli / sprint / run.py |
_save_sprint_state |
|
6 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / run.py |
_cleanup_sprint_state |
|
4 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / run.py |
_cmd_sprint_run |
|
261 |
40 |
0 |
|
85% |
| little_loops / cli / sprint / run.py |
(no function) |
|
23 |
0 |
3 |
|
100% |
| little_loops / cli / sprint / show.py |
_render_dependency_graph |
|
26 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / show.py |
_render_dependency_graph.build_chain |
|
13 |
6 |
0 |
|
54% |
| little_loops / cli / sprint / show.py |
_render_health_summary |
|
34 |
10 |
0 |
|
71% |
| little_loops / cli / sprint / show.py |
_cmd_sprint_show |
|
63 |
13 |
0 |
|
79% |
| little_loops / cli / sprint / show.py |
_format_created |
|
13 |
4 |
0 |
|
69% |
| little_loops / cli / sprint / show.py |
_print_composition |
|
13 |
1 |
0 |
|
92% |
| little_loops / cli / sprint / show.py |
_print_run_state |
|
23 |
4 |
0 |
|
83% |
| little_loops / cli / sprint / show.py |
_show_json |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli / sprint / show.py |
(no function) |
|
15 |
0 |
3 |
|
100% |
| little_loops / cli / sync.py |
main_sync |
|
74 |
26 |
0 |
|
65% |
| little_loops / cli / sync.py |
_print_sync_status |
|
16 |
0 |
0 |
|
100% |
| little_loops / cli / sync.py |
_print_sync_result |
|
30 |
0 |
0 |
|
100% |
| little_loops / cli / sync.py |
_print_diff_result |
|
13 |
13 |
0 |
|
0% |
| little_loops / cli / sync.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_dry_run_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_resume_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_config_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_only_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_skip_arg |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_max_workers_arg |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_timeout_arg |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_idle_timeout_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_handoff_threshold_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_context_limit_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_quiet_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_skip_analysis_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_max_issues_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
parse_issue_ids |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
parse_issue_ids_ordered |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
_id_matches |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
parse_priorities |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_priority_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_label_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
parse_labels |
|
3 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_type_arg |
|
1 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
parse_issue_types |
|
9 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_common_auto_args |
|
13 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
add_common_parallel_args |
|
12 |
0 |
0 |
|
100% |
| little_loops / cli_args.py |
(no function) |
|
32 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
AutomationConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
ParallelAutomationConfig.from_dict |
|
2 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
ConfidenceGateConfig.from_dict |
|
2 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
RateLimitsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
RecursiveRefineConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
CommandsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
ScoringWeightsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
DependencyMappingConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / automation.py |
(no function) |
|
79 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsLoggerConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsPriorityConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsTypeConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsEdgeLabelsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsEdgeLabelsConfig.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliColorsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
RefineStatusConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
CliConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / cli.py |
(no function) |
|
64 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
deep_merge |
|
8 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
_config_candidates |
|
6 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
resolve_config_path |
|
6 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
ProjectConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.__init__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig._load_config |
|
5 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig._parse_config |
|
17 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.project |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.issues |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.automation |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.parallel |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.commands |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.scan |
|
1 |
1 |
0 |
|
0% |
| little_loops / config / core.py |
BRConfig.sprints |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.loops |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.learning_tests |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.sync |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.dependency_mapping |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.cli |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.refine_status |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.events |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.orchestration |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.extensions |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.repo_path |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_issue_dir |
|
4 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_completed_dir |
|
2 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_deferred_dir |
|
2 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_issue_prefix |
|
3 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_category_action |
|
3 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_loops_dir |
|
1 |
1 |
0 |
|
0% |
| little_loops / config / core.py |
BRConfig.get_src_path |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_worktree_base |
|
1 |
1 |
0 |
|
0% |
| little_loops / config / core.py |
BRConfig.get_state_file |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.get_parallel_state_file |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.create_parallel_config |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.issue_categories |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.issue_priorities |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
BRConfig.resolve_variable |
|
11 |
0 |
0 |
|
100% |
| little_loops / config / core.py |
(no function) |
|
89 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
feature_enabled |
|
6 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
CategoryConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
DuplicateDetectionConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
NextIssueSortKey.from_dict |
|
7 |
4 |
0 |
|
43% |
| little_loops / config / features.py |
NextIssueConfig.from_dict |
|
8 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
IssuesConfig.from_dict |
|
6 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
IssuesConfig.get_category_by_prefix |
|
4 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
IssuesConfig.get_category_by_dir |
|
4 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
IssuesConfig.get_all_prefixes |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
IssuesConfig.get_all_dirs |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
ScanConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
SprintsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
LearningTestsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
LoopsGlyphsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
LoopsGlyphsConfig.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
LoopsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
GitHubSyncConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
SyncConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
SocketEventsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
OTelEventsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
WebhookEventsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
SqliteEventsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
EventsConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / features.py |
(no function) |
|
140 |
0 |
0 |
|
100% |
| little_loops / config / orchestration.py |
OrchestrationConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / config / orchestration.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.from_issues |
|
40 |
3 |
0 |
|
92% |
| little_loops / dependency_graph.py |
DependencyGraph.get_ready_issues |
|
10 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.get_execution_waves |
|
26 |
1 |
0 |
|
96% |
| little_loops / dependency_graph.py |
DependencyGraph.is_blocked |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.get_blocking_issues |
|
3 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.get_blocked_by_issue |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.topological_sort |
|
21 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.detect_cycles |
|
9 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.detect_cycles.dfs |
|
13 |
1 |
0 |
|
92% |
| little_loops / dependency_graph.py |
DependencyGraph.has_cycles |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.__len__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
DependencyGraph.__contains__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
refine_waves_for_contention |
|
42 |
0 |
0 |
|
100% |
| little_loops / dependency_graph.py |
(no function) |
|
31 |
0 |
3 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
_basename |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
_extract_semantic_targets |
|
11 |
2 |
0 |
|
82% |
| little_loops / dependency_mapper / analysis.py |
_extract_section_mentions |
|
14 |
2 |
0 |
|
86% |
| little_loops / dependency_mapper / analysis.py |
_classify_modification_type |
|
9 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
compute_conflict_score |
|
18 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
find_file_overlaps |
|
71 |
3 |
0 |
|
96% |
| little_loops / dependency_mapper / analysis.py |
validate_dependencies |
|
33 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
validate_frontmatter_fields |
|
11 |
1 |
0 |
|
91% |
| little_loops / dependency_mapper / analysis.py |
analyze_dependencies |
|
4 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / analysis.py |
(no function) |
|
25 |
0 |
3 |
|
100% |
| little_loops / dependency_mapper / formatting.py |
format_report |
|
79 |
2 |
0 |
|
97% |
| little_loops / dependency_mapper / formatting.py |
format_text_graph |
|
51 |
1 |
0 |
|
98% |
| little_loops / dependency_mapper / formatting.py |
format_text_graph._arrow |
|
5 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / formatting.py |
format_text_graph.build_chain |
|
13 |
6 |
0 |
|
54% |
| little_loops / dependency_mapper / formatting.py |
(no function) |
|
5 |
0 |
3 |
|
100% |
| little_loops / dependency_mapper / models.py |
ValidationResult.has_issues |
|
1 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / models.py |
(no function) |
|
40 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / operations.py |
apply_proposals |
|
22 |
9 |
0 |
|
59% |
| little_loops / dependency_mapper / operations.py |
_add_to_section |
|
30 |
2 |
0 |
|
93% |
| little_loops / dependency_mapper / operations.py |
_remove_from_section |
|
25 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / operations.py |
fix_dependencies |
|
34 |
2 |
0 |
|
94% |
| little_loops / dependency_mapper / operations.py |
gather_all_issue_ids |
|
13 |
0 |
0 |
|
100% |
| little_loops / dependency_mapper / operations.py |
(no function) |
|
11 |
0 |
3 |
|
100% |
| little_loops / doc_counts.py |
VerificationResult.add_result |
|
3 |
0 |
0 |
|
100% |
| little_loops / doc_counts.py |
count_files |
|
6 |
1 |
0 |
|
83% |
| little_loops / doc_counts.py |
extract_count_from_line |
|
5 |
0 |
0 |
|
100% |
| little_loops / doc_counts.py |
verify_documentation |
|
25 |
1 |
0 |
|
96% |
| little_loops / doc_counts.py |
format_result_text |
|
9 |
0 |
0 |
|
100% |
| little_loops / doc_counts.py |
format_result_json |
|
3 |
0 |
0 |
|
100% |
| little_loops / doc_counts.py |
format_result_markdown |
|
11 |
0 |
0 |
|
100% |
| little_loops / doc_counts.py |
_parse_skill_frontmatter |
|
11 |
2 |
0 |
|
82% |
| little_loops / doc_counts.py |
check_skill_budget |
|
20 |
3 |
0 |
|
85% |
| little_loops / doc_counts.py |
fix_counts |
|
24 |
1 |
0 |
|
96% |
| little_loops / doc_counts.py |
(no function) |
|
42 |
0 |
0 |
|
100% |
| little_loops / events.py |
LLEvent.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / events.py |
LLEvent.from_dict |
|
4 |
0 |
0 |
|
100% |
| little_loops / events.py |
LLEvent.from_raw_event |
|
1 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.register |
|
4 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.unregister |
|
4 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.add_transport |
|
1 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.close_transports |
|
5 |
2 |
0 |
|
60% |
| little_loops / events.py |
EventBus.emit |
|
13 |
0 |
0 |
|
100% |
| little_loops / events.py |
EventBus.read_events |
|
12 |
0 |
0 |
|
100% |
| little_loops / events.py |
(no function) |
|
29 |
0 |
2 |
|
100% |
| little_loops / extension.py |
LLExtension.on_event |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
InterceptorExtension.before_route |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
InterceptorExtension.after_route |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
InterceptorExtension.before_issue_close |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
ActionProviderExtension.provided_actions |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
EvaluatorProviderExtension.provided_evaluators |
|
1 |
1 |
0 |
|
0% |
| little_loops / extension.py |
LLHookIntentExtension.provided_hook_intents |
|
1 |
0 |
0 |
|
100% |
| little_loops / extension.py |
NoopLoggerExtension.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / extension.py |
NoopLoggerExtension.on_event |
|
2 |
0 |
0 |
|
100% |
| little_loops / extension.py |
ExtensionLoader.from_config |
|
10 |
0 |
0 |
|
100% |
| little_loops / extension.py |
ExtensionLoader.from_entry_points |
|
12 |
7 |
0 |
|
42% |
| little_loops / extension.py |
ExtensionLoader.load_all |
|
5 |
0 |
0 |
|
100% |
| little_loops / extension.py |
wire_extensions |
|
32 |
0 |
0 |
|
100% |
| little_loops / extension.py |
wire_extensions._make_callback |
|
2 |
0 |
0 |
|
100% |
| little_loops / extension.py |
wire_extensions._make_callback._cb |
|
1 |
0 |
0 |
|
100% |
| little_loops / extension.py |
(no function) |
|
37 |
0 |
6 |
|
100% |
| little_loops / extensions / reference_interceptor.py |
ReferenceInterceptorExtension.before_route |
|
1 |
0 |
0 |
|
100% |
| little_loops / extensions / reference_interceptor.py |
ReferenceInterceptorExtension.before_issue_close |
|
1 |
0 |
0 |
|
100% |
| little_loops / extensions / reference_interceptor.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / file_utils.py |
atomic_write |
|
11 |
2 |
0 |
|
82% |
| little_loops / file_utils.py |
atomic_write_json |
|
5 |
0 |
2 |
|
100% |
| little_loops / file_utils.py |
acquire_lock |
|
18 |
2 |
0 |
|
89% |
| little_loops / file_utils.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / frontmatter.py |
parse_frontmatter |
|
45 |
0 |
0 |
|
100% |
| little_loops / frontmatter.py |
strip_frontmatter |
|
6 |
0 |
0 |
|
100% |
| little_loops / frontmatter.py |
update_frontmatter |
|
8 |
0 |
0 |
|
100% |
| little_loops / frontmatter.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
_process_alive |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
_iso_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
ScopeLock.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
ScopeLock.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager.acquire |
|
15 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager.release |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager.find_conflict |
|
17 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager.list_locks |
|
14 |
1 |
0 |
|
93% |
| little_loops / fsm / concurrency.py |
LockManager.wait_for_scope |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager._scopes_overlap |
|
5 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager._paths_overlap |
|
15 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager._normalize_path |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
LockManager._process_alive |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / concurrency.py |
(no function) |
|
33 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_exit_code |
|
6 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_output_numeric |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
_extract_json_path |
|
14 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
_compare_values |
|
4 |
1 |
0 |
|
75% |
| little_loops / fsm / evaluators.py |
evaluate_output_json |
|
16 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_output_contains |
|
8 |
2 |
0 |
|
75% |
| little_loops / fsm / evaluators.py |
evaluate_convergence |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_diff_stall |
|
38 |
2 |
0 |
|
95% |
| little_loops / fsm / evaluators.py |
evaluate_mcp_result |
|
12 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_harbor_scorer |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / evaluators.py |
evaluate_llm_structured |
|
56 |
1 |
0 |
|
98% |
| little_loops / fsm / evaluators.py |
evaluate |
|
61 |
6 |
0 |
|
90% |
| little_loops / fsm / evaluators.py |
(no function) |
|
32 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
_iso_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor.__init__ |
|
30 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor.request_shutdown |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor.run |
|
78 |
2 |
0 |
|
97% |
| little_loops / fsm / executor.py |
FSMExecutor._execute_sub_loop |
|
44 |
6 |
0 |
|
86% |
| little_loops / fsm / executor.py |
FSMExecutor._execute_sub_loop._sub_event_callback |
|
4 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._execute_learning_state |
|
22 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._execute_learning_state._blocked_target |
|
3 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._check_throttle |
|
19 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._execute_state |
|
74 |
2 |
0 |
|
97% |
| little_loops / fsm / executor.py |
FSMExecutor._run_action |
|
31 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._run_action._on_line |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._run_subprocess |
|
22 |
1 |
0 |
|
95% |
| little_loops / fsm / executor.py |
FSMExecutor._run_subprocess._drain_stderr |
|
3 |
1 |
0 |
|
67% |
| little_loops / fsm / executor.py |
FSMExecutor._evaluate |
|
27 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._route |
|
22 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._resolve_route |
|
3 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._flush_pending_shell_state |
|
9 |
2 |
0 |
|
78% |
| little_loops / fsm / executor.py |
FSMExecutor._action_mode |
|
11 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._run_action_or_route |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._build_context |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._emit |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._handle_rate_limit |
|
34 |
1 |
0 |
|
97% |
| little_loops / fsm / executor.py |
FSMExecutor._maybe_wait_for_circuit |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._interruptible_sleep |
|
15 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._exhaust_rate_limit |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._handle_api_error |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._finish |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / executor.py |
FSMExecutor._handle_handoff |
|
6 |
1 |
0 |
|
83% |
| little_loops / fsm / executor.py |
(no function) |
|
77 |
0 |
0 |
|
100% |
| little_loops / fsm / fragments.py |
_deep_merge |
|
6 |
0 |
0 |
|
100% |
| little_loops / fsm / fragments.py |
resolve_fragments |
|
34 |
1 |
0 |
|
97% |
| little_loops / fsm / fragments.py |
resolve_inheritance |
|
19 |
0 |
0 |
|
100% |
| little_loops / fsm / fragments.py |
resolve_flow |
|
40 |
3 |
0 |
|
92% |
| little_loops / fsm / fragments.py |
resolve_flow._parse_name |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / fragments.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| little_loops / fsm / handoff_handler.py |
HandoffHandler.__init__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / handoff_handler.py |
HandoffHandler.handle |
|
8 |
1 |
0 |
|
88% |
| little_loops / fsm / handoff_handler.py |
HandoffHandler._spawn_continuation |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / handoff_handler.py |
(no function) |
|
18 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
InterpolationContext.resolve |
|
22 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
InterpolationContext._get_nested |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
InterpolationContext._get_state_value |
|
5 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
InterpolationContext._get_loop_value |
|
9 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
interpolate |
|
5 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
interpolate.replace_var |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
interpolate_dict |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
_interpolate_list |
|
10 |
3 |
0 |
|
70% |
| little_loops / fsm / interpolation.py |
_format_duration |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / interpolation.py |
(no function) |
|
29 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
_parse_run_folder |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
_iso_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
_now_ms |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
LoopState.to_dict |
|
16 |
1 |
0 |
|
94% |
| little_loops / fsm / persistence.py |
LoopState.from_dict |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.__init__ |
|
6 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.initialize |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.save_state |
|
10 |
3 |
0 |
|
70% |
| little_loops / fsm / persistence.py |
StatePersistence.load_state |
|
11 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.clear_state |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.append_event |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.read_events |
|
12 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.clear_events |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.archive_run |
|
16 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
StatePersistence.clear_all |
|
3 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
_reconcile_stale_runs |
|
36 |
6 |
0 |
|
83% |
| little_loops / fsm / persistence.py |
PersistentExecutor.__init__ |
|
13 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
PersistentExecutor._on_event |
|
1 |
1 |
0 |
|
0% |
| little_loops / fsm / persistence.py |
PersistentExecutor._on_event |
|
3 |
3 |
0 |
|
0% |
| little_loops / fsm / persistence.py |
PersistentExecutor.close_transports |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
PersistentExecutor.request_shutdown |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
PersistentExecutor._handle_event |
|
9 |
1 |
0 |
|
89% |
| little_loops / fsm / persistence.py |
PersistentExecutor._save_state |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
PersistentExecutor.run |
|
16 |
2 |
0 |
|
88% |
| little_loops / fsm / persistence.py |
PersistentExecutor.resume |
|
25 |
2 |
0 |
|
92% |
| little_loops / fsm / persistence.py |
_find_instances |
|
20 |
4 |
0 |
|
80% |
| little_loops / fsm / persistence.py |
list_running_loops |
|
23 |
2 |
0 |
|
91% |
| little_loops / fsm / persistence.py |
list_run_history |
|
22 |
9 |
0 |
|
59% |
| little_loops / fsm / persistence.py |
get_archived_events |
|
15 |
2 |
0 |
|
87% |
| little_loops / fsm / persistence.py |
get_loop_history |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / persistence.py |
(no function) |
|
76 |
0 |
0 |
|
100% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit.record_rate_limit |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit.get_estimated_recovery |
|
7 |
0 |
0 |
|
100% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit.is_stale |
|
7 |
1 |
0 |
|
86% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit.clear |
|
4 |
0 |
0 |
|
100% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit._read_unlocked |
|
14 |
6 |
0 |
|
57% |
| little_loops / fsm / rate_limit_circuit.py |
RateLimitCircuit._write_atomic |
|
12 |
6 |
0 |
|
50% |
| little_loops / fsm / rate_limit_circuit.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
_now_ms |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
ActionRunner.run |
|
1 |
1 |
0 |
|
0% |
| little_loops / fsm / runners.py |
DefaultActionRunner.__init__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
DefaultActionRunner.run |
|
33 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
DefaultActionRunner.run._stream_cb |
|
2 |
2 |
0 |
|
0% |
| little_loops / fsm / runners.py |
DefaultActionRunner.run._on_proc_start |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
DefaultActionRunner.run._on_proc_end |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
DefaultActionRunner.run._drain_stderr |
|
3 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
SimulationActionRunner.run |
|
11 |
0 |
0 |
|
100% |
| little_loops / fsm / runners.py |
SimulationActionRunner._scenario_result |
|
11 |
1 |
0 |
|
91% |
| little_loops / fsm / runners.py |
SimulationActionRunner._prompt_result |
|
20 |
7 |
0 |
|
65% |
| little_loops / fsm / runners.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
EvaluateConfig.to_dict |
|
32 |
7 |
0 |
|
78% |
| little_loops / fsm / schema.py |
EvaluateConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
RouteConfig.to_dict |
|
6 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
RouteConfig.from_dict |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
ParameterSpec.to_dict |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
ParameterSpec.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
ThrottleConfig.to_dict |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
ThrottleConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
LearningConfig.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
LearningConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
StateConfig.to_dict |
|
66 |
2 |
0 |
|
97% |
| little_loops / fsm / schema.py |
StateConfig.from_dict |
|
15 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
StateConfig.get_referenced_states |
|
29 |
1 |
0 |
|
97% |
| little_loops / fsm / schema.py |
LLMConfig.to_dict |
|
10 |
2 |
0 |
|
80% |
| little_loops / fsm / schema.py |
LLMConfig.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
LoopConfigOverrides.to_dict |
|
13 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
LoopConfigOverrides.from_dict |
|
10 |
1 |
0 |
|
90% |
| little_loops / fsm / schema.py |
TargetStateSpec.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
TargetStateSpec.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
TargetFileSpec.to_dict |
|
8 |
1 |
0 |
|
88% |
| little_loops / fsm / schema.py |
TargetFileSpec.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
FSMLoop.to_dict |
|
41 |
10 |
0 |
|
76% |
| little_loops / fsm / schema.py |
FSMLoop.from_dict |
|
9 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
FSMLoop.get_all_state_names |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
FSMLoop.get_terminal_states |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
FSMLoop.get_all_referenced_states |
|
4 |
0 |
0 |
|
100% |
| little_loops / fsm / schema.py |
(no function) |
|
163 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
SignalPattern.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
SignalPattern.search |
|
5 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
SignalDetector.__init__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
SignalDetector.detect |
|
1 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
SignalDetector.detect_first |
|
4 |
0 |
0 |
|
100% |
| little_loops / fsm / signal_detector.py |
(no function) |
|
18 |
0 |
0 |
|
100% |
| little_loops / fsm / types.py |
ExecutionResult.to_dict |
|
8 |
0 |
0 |
|
100% |
| little_loops / fsm / types.py |
(no function) |
|
23 |
0 |
4 |
|
100% |
| little_loops / fsm / validation.py |
ValidationError.__str__ |
|
4 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
_validate_evaluator |
|
25 |
1 |
0 |
|
96% |
| little_loops / fsm / validation.py |
_validate_parameters |
|
10 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
_check_param_type |
|
11 |
11 |
0 |
|
0% |
| little_loops / fsm / validation.py |
_validate_with_bindings |
|
28 |
6 |
0 |
|
79% |
| little_loops / fsm / validation.py |
_validate_state_action |
|
20 |
8 |
0 |
|
60% |
| little_loops / fsm / validation.py |
_validate_state_routing |
|
44 |
3 |
0 |
|
93% |
| little_loops / fsm / validation.py |
_validate_targets |
|
5 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
_validate_failure_terminal_action |
|
16 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
validate_fsm |
|
38 |
1 |
0 |
|
97% |
| little_loops / fsm / validation.py |
_find_reachable_states |
|
13 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
load_and_validate |
|
33 |
0 |
0 |
|
100% |
| little_loops / fsm / validation.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_str |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_int |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_number |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_bool |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_nullable_str |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
_nullable_bool |
|
1 |
1 |
0 |
|
0% |
| little_loops / generate_schemas.py |
_schema |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
event_type_to_filename |
|
1 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
generate_schemas |
|
8 |
0 |
0 |
|
100% |
| little_loops / generate_schemas.py |
(no function) |
|
17 |
0 |
5 |
|
100% |
| little_loops / git_operations.py |
GitignorePattern.__post_init__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
GitignorePattern.is_wildcard |
|
1 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
GitignorePattern.is_directory |
|
1 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
GitignoreSuggestion.has_suggestions |
|
1 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
GitignoreSuggestion.files_to_ignore |
|
4 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
GitignoreSuggestion.summary |
|
5 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
check_git_status |
|
13 |
3 |
0 |
|
77% |
| little_loops / git_operations.py |
get_untracked_files |
|
15 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
_read_existing_gitignore |
|
13 |
2 |
0 |
|
85% |
| little_loops / git_operations.py |
_file_matches_pattern |
|
22 |
8 |
0 |
|
64% |
| little_loops / git_operations.py |
_is_already_ignored |
|
7 |
0 |
0 |
|
100% |
| little_loops / git_operations.py |
suggest_gitignore_patterns |
|
29 |
2 |
0 |
|
93% |
| little_loops / git_operations.py |
add_patterns_to_gitignore |
|
33 |
12 |
0 |
|
64% |
| little_loops / git_operations.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
Persona.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
Priority.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
ProductGoals.from_file |
|
7 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
ProductGoals.from_content |
|
25 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
ProductGoals.is_valid |
|
1 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
validate_goals |
|
16 |
0 |
0 |
|
100% |
| little_loops / goals_parser.py |
(no function) |
|
30 |
0 |
0 |
|
100% |
| little_loops / hooks / __main__.py |
(no function) |
|
1 |
1 |
2 |
|
0% |
| little_loops / hooks / post_tool_use.py |
handle |
|
2 |
0 |
0 |
|
100% |
| little_loops / hooks / post_tool_use.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| little_loops / hooks / pre_compact.py |
handle |
|
38 |
8 |
0 |
|
79% |
| little_loops / hooks / pre_compact.py |
(no function) |
|
10 |
0 |
0 |
|
100% |
| little_loops / hooks / pre_tool_use.py |
handle |
|
2 |
0 |
0 |
|
100% |
| little_loops / hooks / pre_tool_use.py |
(no function) |
|
3 |
0 |
0 |
|
100% |
| little_loops / hooks / session_start.py |
_parse_frontmatter |
|
13 |
4 |
0 |
|
69% |
| little_loops / hooks / session_start.py |
handle |
|
46 |
6 |
0 |
|
87% |
| little_loops / hooks / session_start.py |
_validate_features |
|
12 |
0 |
0 |
|
100% |
| little_loops / hooks / session_start.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / hooks / types.py |
LLHookEvent.to_dict |
|
6 |
0 |
0 |
|
100% |
| little_loops / hooks / types.py |
LLHookEvent.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / hooks / types.py |
LLHookResult.to_dict |
|
10 |
0 |
0 |
|
100% |
| little_loops / hooks / types.py |
LLHookResult.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / hooks / types.py |
(no function) |
|
24 |
0 |
0 |
|
100% |
| little_loops / hooks / user_prompt_submit.py |
_load_config |
|
8 |
8 |
0 |
|
0% |
| little_loops / hooks / user_prompt_submit.py |
handle |
|
34 |
34 |
0 |
|
0% |
| little_loops / hooks / user_prompt_submit.py |
(no function) |
|
11 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
HostRunner.detect |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
HostRunner.build_streaming |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
HostRunner.build_blocking_json |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
HostRunner.build_version_check |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
HostRunner.build_detached |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
HostRunner.describe_capabilities |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
ClaudeCodeRunner.detect |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
ClaudeCodeRunner.build_streaming |
|
19 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
ClaudeCodeRunner.build_blocking_json |
|
5 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
ClaudeCodeRunner.build_version_check |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
ClaudeCodeRunner.build_detached |
|
2 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
ClaudeCodeRunner.describe_capabilities |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
CodexRunner.detect |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
CodexRunner._emit_agent_warning |
|
2 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
CodexRunner._inject_agent_persona |
|
12 |
2 |
0 |
|
83% |
| little_loops / host_runner.py |
CodexRunner.build_streaming |
|
24 |
6 |
0 |
|
75% |
| little_loops / host_runner.py |
CodexRunner.build_blocking_json |
|
12 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
CodexRunner.build_version_check |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
CodexRunner.build_detached |
|
2 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
CodexRunner.describe_capabilities |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
OpenCodeRunner.detect |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
OpenCodeRunner.build_streaming |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
OpenCodeRunner.build_blocking_json |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
OpenCodeRunner.build_version_check |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
OpenCodeRunner.build_detached |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
OpenCodeRunner.describe_capabilities |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
PiRunner.detect |
|
1 |
1 |
0 |
|
0% |
| little_loops / host_runner.py |
PiRunner.build_streaming |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
PiRunner.build_blocking_json |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
PiRunner.build_version_check |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
PiRunner.build_detached |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
PiRunner.describe_capabilities |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
_remediation_hint |
|
1 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
resolve_host |
|
16 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
apply_host_cli_from_config |
|
9 |
0 |
0 |
|
100% |
| little_loops / host_runner.py |
(no function) |
|
97 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / extraction.py |
_extract_fix_commit |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / extraction.py |
_extract_files_changed |
|
9 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / extraction.py |
_extract_completion_date |
|
7 |
2 |
0 |
|
71% |
| little_loops / issue_discovery / extraction.py |
_commit_exists_in_history |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / extraction.py |
_get_files_modified_since_commit |
|
20 |
20 |
0 |
|
0% |
| little_loops / issue_discovery / extraction.py |
detect_regression_or_duplicate |
|
24 |
12 |
0 |
|
50% |
| little_loops / issue_discovery / extraction.py |
_build_reopen_section |
|
26 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / extraction.py |
(no function) |
|
14 |
0 |
2 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_skip |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_update |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_create |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_reopen |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_reopen_as_regression |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.should_reopen_as_invalid_fix |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
FindingMatch.is_unverified |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
_normalize_text |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
_extract_line_numbers |
|
8 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
_matches_issue_type |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_discovery / matching.py |
(no function) |
|
49 |
0 |
2 |
|
100% |
| little_loops / issue_discovery / search.py |
_get_all_issue_files |
|
31 |
11 |
0 |
|
65% |
| little_loops / issue_discovery / search.py |
search_issues_by_content |
|
17 |
3 |
0 |
|
82% |
| little_loops / issue_discovery / search.py |
search_issues_by_file_path |
|
12 |
2 |
0 |
|
83% |
| little_loops / issue_discovery / search.py |
find_existing_issue |
|
57 |
22 |
0 |
|
61% |
| little_loops / issue_discovery / search.py |
_get_category_from_issue_path |
|
5 |
1 |
0 |
|
80% |
| little_loops / issue_discovery / search.py |
reopen_issue |
|
35 |
11 |
0 |
|
69% |
| little_loops / issue_discovery / search.py |
update_existing_issue |
|
15 |
5 |
0 |
|
67% |
| little_loops / issue_discovery / search.py |
(no function) |
|
15 |
0 |
3 |
|
100% |
| little_loops / issue_history / _utils.py |
get_issue_content |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_history / _utils.py |
(no function) |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_history / analysis.py |
_load_issue_contents |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_history / analysis.py |
calculate_analysis |
|
45 |
8 |
0 |
|
82% |
| little_loops / issue_history / analysis.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / issue_history / coupling.py |
analyze_coupling |
|
32 |
0 |
0 |
|
100% |
| little_loops / issue_history / coupling.py |
_build_coupling_clusters |
|
30 |
0 |
0 |
|
100% |
| little_loops / issue_history / coupling.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_history / debt.py |
detect_cross_cutting_smells |
|
38 |
1 |
0 |
|
97% |
| little_loops / issue_history / debt.py |
analyze_agent_effectiveness |
|
37 |
1 |
0 |
|
97% |
| little_loops / issue_history / debt.py |
analyze_complexity_proxy |
|
75 |
2 |
0 |
|
97% |
| little_loops / issue_history / debt.py |
_calculate_debt_metrics |
|
24 |
6 |
0 |
|
75% |
| little_loops / issue_history / debt.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| little_loops / issue_history / doc_synthesis.py |
score_relevance |
|
15 |
0 |
0 |
|
100% |
| little_loops / issue_history / doc_synthesis.py |
_compute_corpus_stats |
|
14 |
1 |
0 |
|
93% |
| little_loops / issue_history / doc_synthesis.py |
_extract_section |
|
10 |
0 |
0 |
|
100% |
| little_loops / issue_history / doc_synthesis.py |
_extract_title |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_history / doc_synthesis.py |
synthesize_docs |
|
24 |
1 |
0 |
|
96% |
| little_loops / issue_history / doc_synthesis.py |
build_narrative_doc |
|
30 |
0 |
0 |
|
100% |
| little_loops / issue_history / doc_synthesis.py |
build_structured_doc |
|
42 |
3 |
0 |
|
93% |
| little_loops / issue_history / doc_synthesis.py |
(no function) |
|
13 |
0 |
0 |
|
100% |
| little_loops / issue_history / formatting.py |
format_summary_text |
|
26 |
0 |
0 |
|
100% |
| little_loops / issue_history / formatting.py |
format_summary_json |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / formatting.py |
format_analysis_json |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / formatting.py |
format_analysis_yaml |
|
5 |
0 |
0 |
|
100% |
| little_loops / issue_history / formatting.py |
format_analysis_text |
|
293 |
1 |
0 |
|
99% |
| little_loops / issue_history / formatting.py |
format_analysis_markdown |
|
324 |
205 |
0 |
|
37% |
| little_loops / issue_history / formatting.py |
(no function) |
|
9 |
0 |
0 |
|
100% |
| little_loops / issue_history / hotspots.py |
analyze_hotspots |
|
49 |
1 |
0 |
|
98% |
| little_loops / issue_history / hotspots.py |
(no function) |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
CompletedIssue.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
HistorySummary.date_range_days |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
HistorySummary.velocity |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
HistorySummary.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
PeriodMetrics.bug_ratio |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
PeriodMetrics.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
SubsystemHealth.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
Hotspot.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
HotspotAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
CouplingPair.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
CouplingAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RegressionCluster.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RegressionAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
TestGap.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
TestGapAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RejectionMetrics.rejection_rate |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RejectionMetrics.invalid_rate |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RejectionMetrics.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
RejectionAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ManualPattern.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ManualPatternAnalysis.automatable_percentage |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ManualPatternAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ConfigGap.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ConfigGapsAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
AgentOutcome.total_count |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
AgentOutcome.success_rate |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
AgentOutcome.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
AgentEffectivenessAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
TechnicalDebtMetrics.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ComplexityProxy.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
ComplexityProxyAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
CrossCuttingSmell.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
CrossCuttingAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
HistoryAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / models.py |
(no function) |
|
255 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
parse_completed_issue |
|
19 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_parse_iso_datetime |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_parse_captured_at |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_parse_completed_at |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_parse_discovered_by |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_batch_completion_dates |
|
1 |
1 |
0 |
|
0% |
| little_loops / issue_history / parsing.py |
_parse_completion_date |
|
20 |
3 |
0 |
|
85% |
| little_loops / issue_history / parsing.py |
_parse_resolution_action |
|
20 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_detect_processing_agent |
|
21 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
scan_completed_issues |
|
30 |
6 |
0 |
|
80% |
| little_loops / issue_history / parsing.py |
_parse_discovered_date |
|
10 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_extract_subsystem |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_extract_paths_from_issue |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
_find_test_file |
|
14 |
1 |
0 |
|
93% |
| little_loops / issue_history / parsing.py |
scan_active_issues |
|
24 |
0 |
0 |
|
100% |
| little_loops / issue_history / parsing.py |
(no function) |
|
26 |
0 |
0 |
|
100% |
| little_loops / issue_history / quality.py |
analyze_test_gaps |
|
35 |
0 |
0 |
|
100% |
| little_loops / issue_history / quality.py |
_update_rejection_metrics |
|
10 |
2 |
0 |
|
80% |
| little_loops / issue_history / quality.py |
analyze_rejection_rates |
|
42 |
7 |
0 |
|
83% |
| little_loops / issue_history / quality.py |
detect_manual_patterns |
|
33 |
0 |
0 |
|
100% |
| little_loops / issue_history / quality.py |
detect_config_gaps |
|
45 |
2 |
0 |
|
96% |
| little_loops / issue_history / quality.py |
(no function) |
|
15 |
0 |
0 |
|
100% |
| little_loops / issue_history / regressions.py |
analyze_regression_clustering |
|
57 |
7 |
0 |
|
88% |
| little_loops / issue_history / regressions.py |
(no function) |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_history / summary.py |
calculate_summary |
|
15 |
0 |
0 |
|
100% |
| little_loops / issue_history / summary.py |
_calculate_period_label |
|
7 |
2 |
0 |
|
71% |
| little_loops / issue_history / summary.py |
_group_by_period |
|
42 |
2 |
0 |
|
95% |
| little_loops / issue_history / summary.py |
_calculate_trend |
|
13 |
1 |
0 |
|
92% |
| little_loops / issue_history / summary.py |
_analyze_subsystems |
|
25 |
0 |
0 |
|
100% |
| little_loops / issue_history / summary.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
_iso_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
_completed_at_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
classify_failure |
|
29 |
2 |
0 |
|
93% |
| little_loops / issue_lifecycle.py |
_build_closure_resolution |
|
6 |
2 |
0 |
|
67% |
| little_loops / issue_lifecycle.py |
_build_completion_resolution |
|
6 |
2 |
0 |
|
67% |
| little_loops / issue_lifecycle.py |
_prepare_issue_content |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
_is_git_tracked |
|
5 |
2 |
0 |
|
60% |
| little_loops / issue_lifecycle.py |
_commit_issue_completion |
|
21 |
6 |
0 |
|
71% |
| little_loops / issue_lifecycle.py |
verify_issue_completed |
|
16 |
3 |
0 |
|
81% |
| little_loops / issue_lifecycle.py |
create_issue_from_failure |
|
25 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
close_issue |
|
29 |
3 |
0 |
|
90% |
| little_loops / issue_lifecycle.py |
complete_issue_lifecycle |
|
21 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
_build_deferred_section |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
_build_undeferred_section |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
defer_issue |
|
21 |
3 |
0 |
|
86% |
| little_loops / issue_lifecycle.py |
_build_skip_section |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_lifecycle.py |
skip_issue |
|
16 |
10 |
0 |
|
38% |
| little_loops / issue_lifecycle.py |
undefer_issue |
|
19 |
4 |
0 |
|
79% |
| little_loops / issue_lifecycle.py |
(no function) |
|
35 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
_compute_relative_path |
|
5 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
timed_phase |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
run_claude_command |
|
15 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
run_claude_command.stream_callback |
|
4 |
4 |
0 |
|
0% |
| little_loops / issue_manager.py |
run_with_continuation |
|
80 |
4 |
0 |
|
95% |
| little_loops / issue_manager.py |
run_with_continuation._tracking_usage |
|
4 |
1 |
0 |
|
75% |
| little_loops / issue_manager.py |
detect_plan_creation |
|
9 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
check_content_markers |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
process_issue_inplace |
|
168 |
12 |
0 |
|
93% |
| little_loops / issue_manager.py |
process_issue_inplace._on_usage_writer |
|
8 |
8 |
0 |
|
0% |
| little_loops / issue_manager.py |
AutoManager.__init__ |
|
34 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
AutoManager._signal_handler |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
AutoManager._get_next_issue |
|
22 |
2 |
0 |
|
91% |
| little_loops / issue_manager.py |
AutoManager._log_blocked_issues |
|
8 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
AutoManager.run |
|
38 |
8 |
0 |
|
79% |
| little_loops / issue_manager.py |
AutoManager._log_timing_summary |
|
30 |
17 |
0 |
|
43% |
| little_loops / issue_manager.py |
AutoManager._process_issue |
|
19 |
4 |
0 |
|
79% |
| little_loops / issue_manager.py |
AutoManager._process_issue.on_model |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_manager.py |
(no function) |
|
51 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
is_normalized |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
is_formatted |
|
27 |
5 |
0 |
|
81% |
| little_loops / issue_parser.py |
slugify |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
get_next_issue_number |
|
24 |
1 |
0 |
|
96% |
| little_loops / issue_parser.py |
ProductImpact.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
ProductImpact.from_dict |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueInfo.priority_int |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueInfo.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueInfo.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._build_prefix_map |
|
3 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser.parse_file |
|
79 |
5 |
0 |
|
94% |
| little_loops / issue_parser.py |
IssueParser._parse_priority |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._get_category_for_prefix |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_type_and_id |
|
15 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._generate_id_from_filename |
|
7 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._read_content |
|
5 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_title_from_content |
|
8 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_section_items |
|
14 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._strip_code_fences |
|
10 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_blocked_by |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_blocks |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
IssueParser._parse_product_impact |
|
4 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
find_issues |
|
27 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
find_highest_priority_issue |
|
2 |
0 |
0 |
|
100% |
| little_loops / issue_parser.py |
(no function) |
|
81 |
0 |
2 |
|
100% |
| little_loops / issue_template.py |
_default_templates_dir |
|
1 |
0 |
0 |
|
100% |
| little_loops / issue_template.py |
load_issue_sections |
|
5 |
0 |
0 |
|
100% |
| little_loops / issue_template.py |
assemble_issue_markdown |
|
36 |
3 |
0 |
|
92% |
| little_loops / issue_template.py |
_append_section |
|
6 |
0 |
0 |
|
100% |
| little_loops / issue_template.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / issues / anchor_sweep.py |
_format_anchor_ref |
|
5 |
1 |
0 |
|
80% |
| little_loops / issues / anchor_sweep.py |
_sweep_file |
|
26 |
4 |
0 |
|
85% |
| little_loops / issues / anchor_sweep.py |
_sweep_file._in_fence |
|
1 |
0 |
0 |
|
100% |
| little_loops / issues / anchor_sweep.py |
sweep_issues |
|
11 |
2 |
0 |
|
82% |
| little_loops / issues / anchor_sweep.py |
(no function) |
|
19 |
0 |
0 |
|
100% |
| little_loops / issues / anchors.py |
resolve_anchor |
|
14 |
0 |
0 |
|
100% |
| little_loops / issues / anchors.py |
(no function) |
|
5 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
Assertion.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
Assertion.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
LearnTestRecord.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
LearnTestRecord.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
_resolve_base |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
_slug_path |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
_read_frontmatter_yaml |
|
4 |
1 |
0 |
|
75% |
| little_loops / learning_tests.py |
write_record |
|
7 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
read_record |
|
8 |
1 |
0 |
|
88% |
| little_loops / learning_tests.py |
list_records |
|
9 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
mark_stale |
|
6 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
check_learning_test |
|
1 |
0 |
0 |
|
100% |
| little_loops / learning_tests.py |
(no function) |
|
34 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
LinkCheckResult.has_errors |
|
1 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
extract_links_from_markdown |
|
13 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
is_internal_reference |
|
7 |
1 |
0 |
|
86% |
| little_loops / link_checker.py |
should_ignore_url |
|
4 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
check_url |
|
15 |
3 |
0 |
|
80% |
| little_loops / link_checker.py |
check_markdown_links |
|
40 |
6 |
0 |
|
85% |
| little_loops / link_checker.py |
load_ignore_patterns |
|
19 |
3 |
0 |
|
84% |
| little_loops / link_checker.py |
format_result_text |
|
20 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
format_result_json |
|
2 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
format_result_markdown |
|
23 |
0 |
0 |
|
100% |
| little_loops / link_checker.py |
(no function) |
|
39 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.__init__ |
|
10 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger._timestamp |
|
1 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger._format |
|
4 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.info |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.debug |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.success |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.warning |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.error |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.timing |
|
2 |
0 |
0 |
|
100% |
| little_loops / logger.py |
Logger.header |
|
5 |
0 |
0 |
|
100% |
| little_loops / logger.py |
format_duration |
|
3 |
0 |
0 |
|
100% |
| little_loops / logger.py |
(no function) |
|
25 |
0 |
2 |
|
100% |
| little_loops / logo.py |
get_logo |
|
4 |
4 |
0 |
|
0% |
| little_loops / logo.py |
print_logo |
|
4 |
4 |
0 |
|
0% |
| little_loops / logo.py |
(no function) |
|
4 |
4 |
0 |
|
0% |
| little_loops / loops / yaml_state_editor.py |
extract_action |
|
3 |
0 |
0 |
|
100% |
| little_loops / loops / yaml_state_editor.py |
replace_action |
|
6 |
0 |
0 |
|
100% |
| little_loops / loops / yaml_state_editor.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / mcp_call.py |
_load_mcp_config |
|
5 |
0 |
0 |
|
100% |
| little_loops / mcp_call.py |
_find_server_config |
|
3 |
0 |
0 |
|
100% |
| little_loops / mcp_call.py |
_send_jsonrpc |
|
26 |
6 |
0 |
|
77% |
| little_loops / mcp_call.py |
call_mcp_tool |
|
59 |
8 |
0 |
|
86% |
| little_loops / mcp_call.py |
call_mcp_tool._drain_stderr |
|
3 |
1 |
0 |
|
67% |
| little_loops / mcp_call.py |
main |
|
21 |
21 |
0 |
|
0% |
| little_loops / mcp_call.py |
(no function) |
|
15 |
0 |
2 |
|
100% |
| little_loops / output_parsing.py |
_clean_verdict_content |
|
6 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
_extract_verdict_from_text |
|
11 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
parse_sections |
|
12 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
parse_validation_table |
|
7 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
parse_status_lines |
|
4 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
parse_ready_issue_output |
|
95 |
5 |
0 |
|
95% |
| little_loops / output_parsing.py |
parse_manage_issue_output |
|
36 |
0 |
0 |
|
100% |
| little_loops / output_parsing.py |
(no function) |
|
14 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
FileHints.all_paths |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
FileHints.is_empty |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
FileHints.overlaps_with |
|
28 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
FileHints.contends_with |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
FileHints.get_overlapping_paths |
|
29 |
2 |
0 |
|
93% |
| little_loops / parallel / file_hints.py |
_is_common_file |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
_directories_overlap |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
_file_in_directory |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
_extract_write_target_files |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
_extract_write_target_directories |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
extract_file_hints |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
_is_valid_path |
|
10 |
0 |
0 |
|
100% |
| little_loops / parallel / file_hints.py |
(no function) |
|
31 |
0 |
2 |
|
100% |
| little_loops / parallel / git_lock.py |
GitLock.__init__ |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / git_lock.py |
GitLock.__enter__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / git_lock.py |
GitLock.__exit__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / git_lock.py |
GitLock.run |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / git_lock.py |
GitLock._run_with_retry |
|
27 |
5 |
0 |
|
81% |
| little_loops / parallel / git_lock.py |
GitLock._is_index_lock_error |
|
4 |
0 |
0 |
|
100% |
| little_loops / parallel / git_lock.py |
(no function) |
|
14 |
0 |
2 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.__init__ |
|
17 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.start |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.shutdown |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.queue_merge |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._stash_local_changes |
|
27 |
2 |
0 |
|
93% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._pop_stash |
|
21 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._mark_state_file_assume_unchanged |
|
11 |
2 |
0 |
|
82% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._restore_state_file_tracking |
|
10 |
2 |
0 |
|
80% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._is_local_changes_error |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._is_untracked_files_error |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._is_index_error |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._is_rebase_in_progress |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._abort_rebase_if_in_progress |
|
9 |
9 |
0 |
|
0% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._is_unmerged_files_error |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._detect_conflict_commit |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._check_and_recover_index |
|
37 |
16 |
0 |
|
57% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._attempt_hard_reset |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._merge_loop |
|
10 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._process_merge |
|
90 |
34 |
0 |
|
62% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._handle_conflict |
|
39 |
3 |
0 |
|
92% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._handle_untracked_conflict |
|
35 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._finalize_merge |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._handle_failure |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator._cleanup_worktree |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.merged_ids |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.failed_merges |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.pending_count |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.stash_pop_failures |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
MergeCoordinator.wait_for_completion |
|
9 |
0 |
0 |
|
100% |
| little_loops / parallel / merge_coordinator.py |
(no function) |
|
44 |
0 |
2 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator.__init__ |
|
26 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator.execution_duration |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator.run |
|
24 |
4 |
0 |
|
83% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._setup_signal_handlers |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._restore_signal_handlers |
|
4 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._ensure_gitignore_entries |
|
18 |
1 |
0 |
|
94% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._cleanup_orphaned_worktrees |
|
38 |
3 |
0 |
|
92% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._prune_ghost_worktree_refs |
|
31 |
9 |
0 |
|
71% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._inspect_worktree |
|
19 |
1 |
0 |
|
95% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._check_pending_worktrees |
|
31 |
1 |
0 |
|
97% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._merge_pending_worktrees |
|
20 |
7 |
0 |
|
65% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._signal_handler |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._load_state |
|
16 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._save_state |
|
19 |
3 |
0 |
|
84% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._cleanup_state |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._dry_run |
|
28 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._maybe_report_status |
|
35 |
6 |
0 |
|
83% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._execute |
|
36 |
2 |
0 |
|
94% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._scan_issues |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._process_sequential |
|
11 |
3 |
0 |
|
73% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._process_parallel |
|
11 |
1 |
0 |
|
91% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._on_worker_complete |
|
49 |
10 |
0 |
|
80% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._requeue_deferred_issues |
|
11 |
1 |
0 |
|
91% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._merge_sequential |
|
15 |
2 |
0 |
|
87% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._wait_for_completion |
|
19 |
2 |
0 |
|
89% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._report_results |
|
71 |
35 |
0 |
|
51% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._complete_issue_lifecycle_if_needed |
|
32 |
9 |
0 |
|
72% |
| little_loops / parallel / orchestrator.py |
ParallelOrchestrator._cleanup |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / orchestrator.py |
(no function) |
|
55 |
0 |
2 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapResult.__bool__ |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.__init__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.register_issue |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.unregister_issue |
|
4 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.check_overlap |
|
14 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.get_active_issues |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.get_hints |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
OverlapDetector.clear |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / overlap_detector.py |
(no function) |
|
21 |
0 |
3 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.__init__ |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.add |
|
13 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.add_many |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.get |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.mark_completed |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.mark_failed |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.requeue |
|
9 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.empty |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.qsize |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.in_progress_count |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.completed_count |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.failed_count |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.in_progress_ids |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.completed_ids |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.failed_ids |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.load_completed |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.load_failed |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / priority_queue.py |
IssuePriorityQueue.scan_issues |
|
7 |
1 |
0 |
|
86% |
| little_loops / parallel / priority_queue.py |
(no function) |
|
33 |
0 |
3 |
|
100% |
| little_loops / parallel / types.py |
QueuedIssue.__lt__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
QueuedIssue.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
WorkerResult.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
WorkerResult.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
MergeRequest.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
OrchestratorState.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
OrchestratorState.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
PendingWorktreeInfo.has_pending_work |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
ParallelConfig.get_ready_command |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
ParallelConfig.get_manage_command |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
ParallelConfig.get_decide_command |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
ParallelConfig.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
ParallelConfig.from_dict |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / types.py |
(no function) |
|
122 |
0 |
2 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.__init__ |
|
15 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.start |
|
6 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.shutdown |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.set_shutdown_requested |
|
1 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.terminate_all_processes |
|
17 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.submit |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._handle_completion |
|
19 |
1 |
0 |
|
95% |
| little_loops / parallel / worker_pool.py |
WorkerPool._process_issue |
|
80 |
12 |
0 |
|
85% |
| little_loops / parallel / worker_pool.py |
WorkerPool._setup_worktree |
|
7 |
4 |
0 |
|
43% |
| little_loops / parallel / worker_pool.py |
WorkerPool._detect_worktree_model_via_api |
|
15 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._cleanup_worktree |
|
11 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_claude_command |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_claude_command.stream_callback |
|
4 |
4 |
0 |
|
0% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_claude_command.on_start |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_claude_command.on_end |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_with_continuation |
|
71 |
13 |
0 |
|
82% |
| little_loops / parallel / worker_pool.py |
WorkerPool._run_with_continuation._usage_tracker |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._get_changed_files |
|
4 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._update_branch_base |
|
10 |
2 |
0 |
|
80% |
| little_loops / parallel / worker_pool.py |
WorkerPool._verify_work_was_done |
|
13 |
2 |
0 |
|
85% |
| little_loops / parallel / worker_pool.py |
WorkerPool._has_other_issue_id |
|
7 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._detect_main_repo_leaks |
|
36 |
5 |
0 |
|
86% |
| little_loops / parallel / worker_pool.py |
WorkerPool._cleanup_leaked_files |
|
42 |
7 |
0 |
|
83% |
| little_loops / parallel / worker_pool.py |
WorkerPool._get_main_repo_baseline |
|
12 |
2 |
0 |
|
83% |
| little_loops / parallel / worker_pool.py |
WorkerPool._get_main_head_sha |
|
4 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool._detect_committed_leaks |
|
10 |
1 |
0 |
|
90% |
| little_loops / parallel / worker_pool.py |
WorkerPool._recover_committed_leaks |
|
22 |
3 |
0 |
|
86% |
| little_loops / parallel / worker_pool.py |
WorkerPool.active_count |
|
5 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.set_worker_stage |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.get_worker_stage |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.get_active_stages |
|
3 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.remove_worker_stage |
|
2 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
WorkerPool.cleanup_all_worktrees |
|
8 |
0 |
0 |
|
100% |
| little_loops / parallel / worker_pool.py |
(no function) |
|
51 |
0 |
4 |
|
100% |
| little_loops / session_log.py |
parse_session_log |
|
5 |
0 |
0 |
|
100% |
| little_loops / session_log.py |
count_session_commands |
|
7 |
0 |
0 |
|
100% |
| little_loops / session_log.py |
get_current_session_jsonl |
|
7 |
0 |
0 |
|
100% |
| little_loops / session_log.py |
append_session_log_entry |
|
16 |
0 |
0 |
|
100% |
| little_loops / session_log.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
_current_version |
|
5 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
_apply_migrations |
|
5 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
ensure_db |
|
7 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
connect |
|
4 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
_index |
|
1 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
search |
|
7 |
2 |
0 |
|
71% |
| little_loops / session_store.py |
recent |
|
8 |
0 |
0 |
|
100% |
| little_loops / session_store.py |
SQLiteTransport.__init__ |
|
9 |
3 |
0 |
|
67% |
| little_loops / session_store.py |
SQLiteTransport.send |
|
19 |
1 |
0 |
|
95% |
| little_loops / session_store.py |
SQLiteTransport.close |
|
6 |
5 |
0 |
|
17% |
| little_loops / session_store.py |
_hash_args |
|
5 |
3 |
0 |
|
40% |
| little_loops / session_store.py |
_backfill_issues |
|
17 |
4 |
0 |
|
76% |
| little_loops / session_store.py |
_backfill_loops |
|
19 |
6 |
0 |
|
68% |
| little_loops / session_store.py |
_backfill_tool_events |
|
31 |
10 |
0 |
|
68% |
| little_loops / session_store.py |
backfill |
|
14 |
5 |
0 |
|
64% |
| little_loops / session_store.py |
(no function) |
|
33 |
3 |
0 |
|
91% |
| little_loops / skill_expander.py |
_find_plugin_root |
|
4 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_resolve_content_path |
|
7 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_substitute_config |
|
2 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_substitute_config._replacer |
|
5 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_substitute_relative_refs |
|
2 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_substitute_relative_refs._replacer |
|
7 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
_substitute_arguments |
|
2 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
expand_skill |
|
13 |
0 |
0 |
|
100% |
| little_loops / skill_expander.py |
(no function) |
|
12 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintOptions.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintOptions.from_dict |
|
3 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintState.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintState.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
Sprint.to_dict |
|
4 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
Sprint.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
Sprint.save |
|
5 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
Sprint.load |
|
6 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.__init__ |
|
7 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.get_default_options |
|
3 |
3 |
0 |
|
0% |
| little_loops / sprint.py |
SprintManager.create |
|
3 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.load |
|
1 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.list_all |
|
6 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.delete |
|
5 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager._find_issue_path |
|
7 |
1 |
0 |
|
86% |
| little_loops / sprint.py |
SprintManager.validate_issues |
|
8 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
SprintManager.load_issue_infos |
|
14 |
0 |
0 |
|
100% |
| little_loops / sprint.py |
(no function) |
|
51 |
0 |
3 |
|
100% |
| little_loops / state.py |
_iso_now |
|
1 |
0 |
0 |
|
100% |
| little_loops / state.py |
ProcessingState.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / state.py |
ProcessingState.from_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.__init__ |
|
4 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager._emit |
|
2 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.state |
|
3 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.load |
|
11 |
2 |
0 |
|
82% |
| little_loops / state.py |
StateManager.save |
|
14 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.cleanup |
|
6 |
2 |
0 |
|
67% |
| little_loops / state.py |
StateManager.update_current |
|
3 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.mark_attempted |
|
3 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.mark_completed |
|
7 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.mark_failed |
|
3 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.is_attempted |
|
1 |
0 |
0 |
|
100% |
| little_loops / state.py |
StateManager.record_corrections |
|
3 |
0 |
0 |
|
100% |
| little_loops / state.py |
(no function) |
|
38 |
0 |
0 |
|
100% |
| little_loops / subprocess_utils.py |
detect_context_handoff |
|
1 |
0 |
0 |
|
100% |
| little_loops / subprocess_utils.py |
read_continuation_prompt |
|
4 |
0 |
0 |
|
100% |
| little_loops / subprocess_utils.py |
read_sentinel |
|
10 |
3 |
0 |
|
70% |
| little_loops / subprocess_utils.py |
write_sentinel |
|
8 |
2 |
0 |
|
75% |
| little_loops / subprocess_utils.py |
assemble_guillotine_prompt |
|
13 |
1 |
0 |
|
92% |
| little_loops / subprocess_utils.py |
_list_scratch_files |
|
17 |
14 |
0 |
|
18% |
| little_loops / subprocess_utils.py |
run_claude_command |
|
93 |
5 |
0 |
|
95% |
| little_loops / subprocess_utils.py |
(no function) |
|
28 |
0 |
0 |
|
100% |
| little_loops / sync.py |
SyncResult.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sync.py |
SyncStatus.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / sync.py |
_run_gh_command |
|
4 |
4 |
0 |
|
0% |
| little_loops / sync.py |
_check_gh_auth |
|
6 |
0 |
0 |
|
100% |
| little_loops / sync.py |
_get_repo_name |
|
7 |
2 |
0 |
|
71% |
| little_loops / sync.py |
_update_issue_frontmatter |
|
8 |
0 |
0 |
|
100% |
| little_loops / sync.py |
_parse_issue_title |
|
11 |
0 |
0 |
|
100% |
| little_loops / sync.py |
_get_issue_body |
|
7 |
1 |
0 |
|
86% |
| little_loops / sync.py |
GitHubSyncManager.__init__ |
|
6 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._get_local_issues |
|
11 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._extract_issue_id |
|
4 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._get_labels_for_issue |
|
23 |
4 |
0 |
|
83% |
| little_loops / sync.py |
GitHubSyncManager.push_issues |
|
27 |
10 |
0 |
|
63% |
| little_loops / sync.py |
GitHubSyncManager._push_single_issue |
|
25 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._create_github_issue |
|
18 |
5 |
0 |
|
72% |
| little_loops / sync.py |
GitHubSyncManager._update_github_issue |
|
10 |
4 |
0 |
|
60% |
| little_loops / sync.py |
GitHubSyncManager._update_local_frontmatter |
|
7 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager.pull_issues |
|
45 |
13 |
0 |
|
71% |
| little_loops / sync.py |
GitHubSyncManager._get_local_github_numbers |
|
11 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._determine_issue_type |
|
8 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._create_local_issue |
|
43 |
2 |
0 |
|
95% |
| little_loops / sync.py |
GitHubSyncManager.get_status |
|
18 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager._find_local_issue |
|
11 |
0 |
0 |
|
100% |
| little_loops / sync.py |
GitHubSyncManager.diff_issue |
|
33 |
4 |
0 |
|
88% |
| little_loops / sync.py |
GitHubSyncManager.diff_all |
|
42 |
8 |
0 |
|
81% |
| little_loops / sync.py |
GitHubSyncManager.close_issues |
|
47 |
3 |
0 |
|
94% |
| little_loops / sync.py |
GitHubSyncManager.reopen_issues |
|
54 |
7 |
0 |
|
87% |
| little_loops / sync.py |
(no function) |
|
69 |
0 |
3 |
|
100% |
| little_loops / testing.py |
LLTestBus.__init__ |
|
3 |
0 |
0 |
|
100% |
| little_loops / testing.py |
LLTestBus.from_jsonl |
|
2 |
0 |
0 |
|
100% |
| little_loops / testing.py |
LLTestBus.register |
|
1 |
0 |
0 |
|
100% |
| little_loops / testing.py |
LLTestBus.replay |
|
14 |
0 |
0 |
|
100% |
| little_loops / testing.py |
(no function) |
|
11 |
0 |
2 |
|
100% |
| little_loops / text_utils.py |
extract_file_paths |
|
13 |
1 |
0 |
|
92% |
| little_loops / text_utils.py |
extract_words |
|
2 |
0 |
0 |
|
100% |
| little_loops / text_utils.py |
calculate_word_overlap |
|
5 |
0 |
0 |
|
100% |
| little_loops / text_utils.py |
parse_duration |
|
4 |
0 |
0 |
|
100% |
| little_loops / text_utils.py |
score_bm25 |
|
10 |
0 |
0 |
|
100% |
| little_loops / text_utils.py |
(no function) |
|
17 |
0 |
0 |
|
100% |
| little_loops / transport.py |
Transport.send |
|
1 |
1 |
0 |
|
0% |
| little_loops / transport.py |
Transport.close |
|
1 |
1 |
0 |
|
0% |
| little_loops / transport.py |
JsonlTransport.__init__ |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
JsonlTransport.send |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
JsonlTransport.close |
|
1 |
0 |
0 |
|
100% |
| little_loops / transport.py |
_SocketClient.__init__ |
|
8 |
0 |
0 |
|
100% |
| little_loops / transport.py |
UnixSocketTransport.__init__ |
|
22 |
5 |
0 |
|
77% |
| little_loops / transport.py |
UnixSocketTransport._accept_loop |
|
21 |
4 |
0 |
|
81% |
| little_loops / transport.py |
UnixSocketTransport._client_loop |
|
17 |
2 |
0 |
|
88% |
| little_loops / transport.py |
UnixSocketTransport.send |
|
8 |
0 |
0 |
|
100% |
| little_loops / transport.py |
UnixSocketTransport._record_drop |
|
13 |
3 |
0 |
|
77% |
| little_loops / transport.py |
UnixSocketTransport.close |
|
25 |
4 |
0 |
|
84% |
| little_loops / transport.py |
OTelTransport.__init__ |
|
19 |
5 |
0 |
|
74% |
| little_loops / transport.py |
OTelTransport.send |
|
21 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport.close |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport._handle_loop_start |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport._handle_loop_resume |
|
5 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport._handle_state_enter |
|
8 |
2 |
0 |
|
75% |
| little_loops / transport.py |
OTelTransport._handle_action_start |
|
7 |
2 |
0 |
|
71% |
| little_loops / transport.py |
OTelTransport._handle_action_complete |
|
3 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport._handle_loop_complete |
|
11 |
0 |
0 |
|
100% |
| little_loops / transport.py |
OTelTransport._add_span_event |
|
5 |
1 |
0 |
|
80% |
| little_loops / transport.py |
OTelTransport._close_state_and_action |
|
6 |
2 |
0 |
|
67% |
| little_loops / transport.py |
WebhookTransport.__init__ |
|
13 |
0 |
0 |
|
100% |
| little_loops / transport.py |
WebhookTransport.send |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
WebhookTransport.close |
|
2 |
0 |
0 |
|
100% |
| little_loops / transport.py |
WebhookTransport._batch_loop |
|
4 |
0 |
0 |
|
100% |
| little_loops / transport.py |
WebhookTransport._flush |
|
9 |
0 |
0 |
|
100% |
| little_loops / transport.py |
WebhookTransport._post_with_retry |
|
14 |
2 |
0 |
|
86% |
| little_loops / transport.py |
_make_seed_callback |
|
3 |
0 |
0 |
|
100% |
| little_loops / transport.py |
_make_seed_callback._seed |
|
7 |
7 |
0 |
|
0% |
| little_loops / transport.py |
wire_transports |
|
22 |
0 |
0 |
|
100% |
| little_loops / transport.py |
_resolve_socket_path |
|
6 |
3 |
0 |
|
50% |
| little_loops / transport.py |
(no function) |
|
64 |
0 |
3 |
|
100% |
| little_loops / user_messages.py |
UserMessage.to_dict |
|
4 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
ResponseMetadata.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
CommandRecord.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
ExampleRecord.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
_extract_response_metadata |
|
27 |
1 |
0 |
|
96% |
| little_loops / user_messages.py |
_aggregate_response_metadata |
|
35 |
3 |
0 |
|
91% |
| little_loops / user_messages.py |
_detect_completion_status |
|
12 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
_detect_error_message |
|
10 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
get_project_folder |
|
9 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
extract_user_messages |
|
38 |
8 |
0 |
|
79% |
| little_loops / user_messages.py |
extract_commands |
|
26 |
5 |
0 |
|
81% |
| little_loops / user_messages.py |
_parse_command_record |
|
31 |
4 |
0 |
|
87% |
| little_loops / user_messages.py |
_parse_user_record |
|
31 |
6 |
0 |
|
81% |
| little_loops / user_messages.py |
_extract_messages_with_context |
|
16 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
save_messages |
|
11 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
build_examples |
|
19 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
print_messages_to_stdout |
|
3 |
0 |
0 |
|
100% |
| little_loops / user_messages.py |
(no function) |
|
57 |
0 |
0 |
|
100% |
| little_loops / work_verification.py |
filter_excluded_files |
|
1 |
0 |
0 |
|
100% |
| little_loops / work_verification.py |
verify_work_was_done |
|
47 |
2 |
0 |
|
96% |
| little_loops / work_verification.py |
(no function) |
|
6 |
0 |
2 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
extract_entities |
|
7 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
calculate_boundary_weight |
|
13 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
entity_overlap |
|
5 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
get_verb_class |
|
6 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
semantic_similarity |
|
9 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_detect_handoff |
|
3 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_parse_timestamps |
|
12 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_group_by_session |
|
7 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_link_sessions |
|
47 |
5 |
0 |
|
89% |
| little_loops / workflow_sequence / analysis.py |
_cluster_by_entities |
|
45 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_compute_boundaries |
|
22 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_get_message_category |
|
6 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_build_category_index |
|
10 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
_detect_workflows |
|
51 |
2 |
0 |
|
96% |
| little_loops / workflow_sequence / analysis.py |
analyze_workflows |
|
56 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / analysis.py |
(no function) |
|
33 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / io.py |
_load_messages |
|
15 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / io.py |
_load_patterns |
|
2 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / io.py |
(no function) |
|
8 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
SessionLink.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
EntityCluster.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
WorkflowBoundary.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
Workflow.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
WorkflowAnalysis.to_dict |
|
1 |
0 |
0 |
|
100% |
| little_loops / workflow_sequence / models.py |
(no function) |
|
52 |
0 |
0 |
|
100% |
| little_loops / worktree_utils.py |
setup_worktree |
|
33 |
1 |
0 |
|
97% |
| little_loops / worktree_utils.py |
cleanup_worktree |
|
13 |
0 |
0 |
|
100% |
| little_loops / worktree_utils.py |
_is_ll_worktree |
|
1 |
0 |
0 |
|
100% |
| little_loops / worktree_utils.py |
(no function) |
|
10 |
0 |
3 |
|
100% |