Coverage report: 81%

Files Functions Classes

coverage.py v7.11.0, created at 2025-10-19 09:31 -0400

File function statements missing excluded coverage
src/workstack/__init__.py main 1 1 0 0%
src/workstack/__init__.py (no function) 2 0 0 100%
src/workstack/__main__.py (no function) 3 3 0 0%
src/workstack/cli/__init__.py (no function) 0 0 0 100%
src/workstack/cli/activation.py render_activation_script 4 0 0 100%
src/workstack/cli/activation.py (no function) 3 0 0 100%
src/workstack/cli/cli.py cli 2 0 0 100%
src/workstack/cli/cli.py main 1 1 0 0%
src/workstack/cli/cli.py (no function) 48 0 0 100%
src/workstack/cli/commands/__init__.py (no function) 0 0 0 100%
src/workstack/cli/commands/completion.py completion_group 0 0 0 100%
src/workstack/cli/commands/completion.py completion_bash 7 7 0 0%
src/workstack/cli/commands/completion.py completion_zsh 7 7 0 0%
src/workstack/cli/commands/completion.py completion_fish 7 7 0 0%
src/workstack/cli/commands/completion.py (no function) 13 0 0 100%
src/workstack/cli/commands/config.py _get_env_value 7 0 0 100%
src/workstack/cli/commands/config.py _get_post_create_value 15 6 0 60%
src/workstack/cli/commands/config.py config_group 0 0 0 100%
src/workstack/cli/commands/config.py config_list 30 0 0 100%
src/workstack/cli/commands/config.py config_get 32 4 0 88%
src/workstack/cli/commands/config.py config_set 27 4 0 85%
src/workstack/cli/commands/config.py (no function) 21 0 0 100%
src/workstack/cli/commands/create.py sanitize_branch_component 5 0 0 100%
src/workstack/cli/commands/create.py strip_plan_from_filename 16 1 0 94%
src/workstack/cli/commands/create.py strip_plan_from_filename.replace_impl_plan 18 0 0 100%
src/workstack/cli/commands/create.py strip_plan_from_filename.replace_plan 7 0 0 100%
src/workstack/cli/commands/create.py strip_plan_from_filename.clean_separators 5 0 0 100%
src/workstack/cli/commands/create.py sanitize_worktree_name 6 0 0 100%
src/workstack/cli/commands/create.py default_branch_for_worktree 1 0 0 100%
src/workstack/cli/commands/create.py add_worktree 20 2 0 90%
src/workstack/cli/commands/create.py make_env_content 9 0 0 100%
src/workstack/cli/commands/create.py quote_env_value 2 0 0 100%
src/workstack/cli/commands/create.py create 84 14 0 83%
src/workstack/cli/commands/create.py run_commands_in_worktree 4 1 0 75%
src/workstack/cli/commands/create.py (no function) 32 0 0 100%
src/workstack/cli/commands/down.py down_cmd 15 2 0 87%
src/workstack/cli/commands/down.py (no function) 10 0 0 100%
src/workstack/cli/commands/gc.py gc_cmd 37 0 0 100%
src/workstack/cli/commands/gc.py gc_cmd.debug_print 2 0 0 100%
src/workstack/cli/commands/gc.py (no function) 8 0 0 100%
src/workstack/cli/commands/gt.py graphite_group 1 1 0 0%
src/workstack/cli/commands/gt.py graphite_branches_cmd 17 4 0 76%
src/workstack/cli/commands/gt.py _format_branches_as_tree 12 12 0 0%
src/workstack/cli/commands/gt.py _format_branch_recursive 19 19 0 0%
src/workstack/cli/commands/gt.py (no function) 18 0 0 100%
src/workstack/cli/commands/init.py detect_root_project_name 14 0 0 100%
src/workstack/cli/commands/init.py is_repo_named 2 0 0 100%
src/workstack/cli/commands/init.py detect_graphite 1 0 0 100%
src/workstack/cli/commands/init.py create_global_config 2 0 0 100%
src/workstack/cli/commands/init.py discover_presets 4 0 0 100%
src/workstack/cli/commands/init.py render_config_template 6 1 0 83%
src/workstack/cli/commands/init.py _add_gitignore_entry 8 2 0 75%
src/workstack/cli/commands/init.py get_shell_wrapper_content 7 2 0 71%
src/workstack/cli/commands/init.py perform_shell_setup 45 7 0 84%
src/workstack/cli/commands/init.py init_cmd 65 1 0 98%
src/workstack/cli/commands/init.py (no function) 26 0 0 100%
src/workstack/cli/commands/jump.py _format_worktree_info 5 1 0 80%
src/workstack/cli/commands/jump.py _perform_jump 28 11 0 61%
src/workstack/cli/commands/jump.py jump_cmd 21 0 0 100%
src/workstack/cli/commands/jump.py (no function) 16 0 0 100%
src/workstack/cli/commands/list.py _format_worktree_line 13 3 0 77%
src/workstack/cli/commands/list.py _filter_stack_for_worktree 14 1 0 93%
src/workstack/cli/commands/list.py _is_trunk_branch 15 0 0 100%
src/workstack/cli/commands/list.py _get_pr_status_emoji 11 0 0 100%
src/workstack/cli/commands/list.py _format_pr_info 9 0 0 100%
src/workstack/cli/commands/list.py _format_plan_summary 7 0 0 100%
src/workstack/cli/commands/list.py _display_branch_stack 22 1 0 95%
src/workstack/cli/commands/list.py _list_worktrees 61 3 0 95%
src/workstack/cli/commands/list.py list_cmd 1 0 0 100%
src/workstack/cli/commands/list.py ls_cmd 1 1 0 0%
src/workstack/cli/commands/list.py (no function) 24 0 0 100%
src/workstack/cli/commands/move.py _get_worktree_branch 6 1 0 83%
src/workstack/cli/commands/move.py _has_uncommitted_changes 4 1 0 75%
src/workstack/cli/commands/move.py _find_worktree_containing_path 10 0 0 100%
src/workstack/cli/commands/move.py _find_worktree_with_branch 5 0 0 100%
src/workstack/cli/commands/move.py _resolve_current_worktree 11 4 0 64%
src/workstack/cli/commands/move.py resolve_source_worktree 20 2 0 90%
src/workstack/cli/commands/move.py detect_operation_type 7 0 0 100%
src/workstack/cli/commands/move.py execute_move 21 4 0 81%
src/workstack/cli/commands/move.py execute_swap 21 5 0 76%
src/workstack/cli/commands/move.py move_cmd 16 0 0 100%
src/workstack/cli/commands/move.py (no function) 24 0 0 100%
src/workstack/cli/commands/prepare_cwd_recovery.py generate_recovery_script 13 1 0 92%
src/workstack/cli/commands/prepare_cwd_recovery.py prepare_cwd_recovery_cmd 4 0 0 100%
src/workstack/cli/commands/prepare_cwd_recovery.py (no function) 9 0 0 100%
src/workstack/cli/commands/remove.py _try_git_worktree_remove 5 2 0 60%
src/workstack/cli/commands/remove.py _prune_worktrees_safe 4 2 0 50%
src/workstack/cli/commands/remove.py _find_worktree_branch 5 5 0 0%
src/workstack/cli/commands/remove.py _get_non_trunk_branches 12 12 0 0%
src/workstack/cli/commands/remove.py _get_branches_to_delete 5 5 0 0%
src/workstack/cli/commands/remove.py _remove_worktree 66 9 0 86%
src/workstack/cli/commands/remove.py remove_cmd 1 1 0 0%
src/workstack/cli/commands/remove.py rm_cmd 1 0 0 100%
src/workstack/cli/commands/remove.py (no function) 29 0 0 100%
src/workstack/cli/commands/rename.py rename_cmd 22 1 0 95%
src/workstack/cli/commands/rename.py (no function) 13 0 0 100%
src/workstack/cli/commands/shell_integration.py hidden_shell_cmd 7 0 0 100%
src/workstack/cli/commands/shell_integration.py (no function) 5 0 0 100%
src/workstack/cli/commands/status.py status_cmd 18 18 0 0%
src/workstack/cli/commands/status.py (no function) 13 0 0 100%
src/workstack/cli/commands/switch.py _ensure_graphite_enabled 3 0 0 100%
src/workstack/cli/commands/switch.py _activate_root_repo 11 5 0 55%
src/workstack/cli/commands/switch.py _activate_worktree 17 4 0 76%
src/workstack/cli/commands/switch.py _resolve_up_navigation 12 1 0 92%
src/workstack/cli/commands/switch.py _resolve_down_navigation 22 6 0 73%
src/workstack/cli/commands/switch.py complete_worktree_names 11 2 0 82%
src/workstack/cli/commands/switch.py switch_cmd 37 7 0 81%
src/workstack/cli/commands/switch.py (no function) 22 0 0 100%
src/workstack/cli/commands/sync.py _emit 1 0 0 100%
src/workstack/cli/commands/sync.py _return_to_original_worktree 8 6 0 25%
src/workstack/cli/commands/sync.py sync_cmd 81 2 0 98%
src/workstack/cli/commands/sync.py (no function) 16 0 0 100%
src/workstack/cli/commands/tree.py tree_cmd 7 2 0 71%
src/workstack/cli/commands/tree.py (no function) 8 0 0 100%
src/workstack/cli/commands/up.py up_cmd 13 2 0 85%
src/workstack/cli/commands/up.py (no function) 10 0 0 100%
src/workstack/cli/config.py load_config 11 0 0 100%
src/workstack/cli/config.py (no function) 9 0 0 100%
src/workstack/cli/core.py discover_repo_context 19 1 0 95%
src/workstack/cli/core.py ensure_workstacks_dir 2 0 0 100%
src/workstack/cli/core.py worktree_path_for 1 0 0 100%
src/workstack/cli/core.py validate_worktree_name_for_removal 15 2 0 87%
src/workstack/cli/core.py (no function) 13 0 0 100%
src/workstack/cli/debug.py is_debug 1 0 0 100%
src/workstack/cli/debug.py debug_log 6 4 0 33%
src/workstack/cli/debug.py (no function) 5 0 0 100%
src/workstack/cli/graphite.py _load_graphite_cache 2 0 0 100%
src/workstack/cli/graphite.py _load_branch_info 15 1 0 93%
src/workstack/cli/graphite.py get_branch_stack 26 2 0 92%
src/workstack/cli/graphite.py get_parent_branch 6 2 0 67%
src/workstack/cli/graphite.py get_child_branches 6 2 0 67%
src/workstack/cli/graphite.py find_worktrees_containing_branch 10 0 0 100%
src/workstack/cli/graphite.py find_worktree_for_branch 4 0 0 100%
src/workstack/cli/graphite.py (no function) 16 0 0 100%
src/workstack/cli/shell_integration/handler.py _invoke_hidden_command 22 6 0 73%
src/workstack/cli/shell_integration/handler.py handle_shell_request 5 0 0 100%
src/workstack/cli/shell_integration/handler.py _build_passthrough_script 6 0 0 100%
src/workstack/cli/shell_integration/handler.py _render_passthrough_script 3 0 0 100%
src/workstack/cli/shell_integration/handler.py _render_posix_passthrough 4 0 0 100%
src/workstack/cli/shell_integration/handler.py _quote_fish 14 5 0 64%
src/workstack/cli/shell_integration/handler.py _render_fish_passthrough 4 0 0 100%
src/workstack/cli/shell_integration/handler.py (no function) 29 0 0 100%
src/workstack/cli/shell_utils.py render_cd_script 4 0 0 100%
src/workstack/cli/shell_utils.py write_script_to_temp 13 0 0 100%
src/workstack/cli/shell_utils.py cleanup_stale_scripts 9 2 0 78%
src/workstack/cli/shell_utils.py (no function) 11 0 0 100%
src/workstack/cli/tree.py build_workstack_tree 8 0 0 100%
src/workstack/cli/tree.py _get_worktree_mapping 19 0 0 100%
src/workstack/cli/tree.py _load_graphite_branch_graph 21 1 0 95%
src/workstack/cli/tree.py _filter_graph_to_active_branches 13 0 0 100%
src/workstack/cli/tree.py _build_tree_from_graph 2 0 0 100%
src/workstack/cli/tree.py _build_tree_from_graph.build_node 5 0 0 100%
src/workstack/cli/tree.py render_tree 6 0 0 100%
src/workstack/cli/tree.py render_tree.render_node 14 0 0 100%
src/workstack/cli/tree.py _format_branch_name 3 0 0 100%
src/workstack/cli/tree.py _format_worktree_annotation 1 0 0 100%
src/workstack/cli/tree.py (no function) 29 0 0 100%
src/workstack/core/__init__.py (no function) 0 0 0 100%
src/workstack/core/branch_metadata.py (no function) 8 0 0 100%
src/workstack/core/context.py create_context 10 0 0 100%
src/workstack/core/context.py (no function) 15 0 0 100%
src/workstack/core/file_utils.py _is_critical_system_file 9 3 0 67%
src/workstack/core/file_utils.py atomic_write 17 7 0 59%
src/workstack/core/file_utils.py extract_plan_title 13 0 0 100%
src/workstack/core/file_utils.py (no function) 10 0 0 100%
src/workstack/core/github_ops.py _parse_github_pr_url 4 0 0 100%
src/workstack/core/github_ops.py GitHubOps.get_prs_for_repo 0 0 1 100%
src/workstack/core/github_ops.py GitHubOps.get_pr_status 0 0 1 100%
src/workstack/core/github_ops.py RealGitHubOps.get_prs_for_repo 21 21 0 0%
src/workstack/core/github_ops.py RealGitHubOps.get_pr_status 13 13 0 0%
src/workstack/core/github_ops.py RealGitHubOps._determine_checks_status 11 11 0 0%
src/workstack/core/github_ops.py DryRunGitHubOps.__init__ 1 0 0 100%
src/workstack/core/github_ops.py DryRunGitHubOps.get_prs_for_repo 1 0 0 100%
src/workstack/core/github_ops.py DryRunGitHubOps.get_pr_status 1 1 0 0%
src/workstack/core/github_ops.py (no function) 29 0 3 100%
src/workstack/core/gitops.py GitOps.list_worktrees 0 0 1 100%
src/workstack/core/gitops.py GitOps.get_current_branch 0 0 1 100%
src/workstack/core/gitops.py GitOps.detect_default_branch 0 0 1 100%
src/workstack/core/gitops.py GitOps.get_git_common_dir 0 0 1 100%
src/workstack/core/gitops.py GitOps.has_staged_changes 0 0 1 100%
src/workstack/core/gitops.py GitOps.add_worktree 0 0 1 100%
src/workstack/core/gitops.py GitOps.move_worktree 0 0 1 100%
src/workstack/core/gitops.py GitOps.remove_worktree 0 0 1 100%
src/workstack/core/gitops.py GitOps.checkout_branch 0 0 1 100%
src/workstack/core/gitops.py GitOps.checkout_detached 0 0 1 100%
src/workstack/core/gitops.py GitOps.delete_branch_with_graphite 0 0 1 100%
src/workstack/core/gitops.py GitOps.prune_worktrees 0 0 1 100%
src/workstack/core/gitops.py GitOps.is_branch_checked_out 0 0 1 100%
src/workstack/core/gitops.py GitOps.get_branch_head 0 0 1 100%
src/workstack/core/gitops.py GitOps.get_commit_message 0 0 1 100%
src/workstack/core/gitops.py RealGitOps.list_worktrees 21 2 0 90%
src/workstack/core/gitops.py RealGitOps.get_current_branch 7 0 0 100%
src/workstack/core/gitops.py RealGitOps.detect_default_branch 12 0 0 100%
src/workstack/core/gitops.py RealGitOps.get_git_common_dir 7 0 0 100%
src/workstack/core/gitops.py RealGitOps.has_staged_changes 5 5 0 0%
src/workstack/core/gitops.py RealGitOps.add_worktree 8 0 0 100%
src/workstack/core/gitops.py RealGitOps.move_worktree 2 0 0 100%
src/workstack/core/gitops.py RealGitOps.remove_worktree 5 0 0 100%
src/workstack/core/gitops.py RealGitOps.checkout_branch 1 0 0 100%
src/workstack/core/gitops.py RealGitOps.checkout_detached 1 1 0 0%
src/workstack/core/gitops.py RealGitOps.delete_branch_with_graphite 4 4 0 0%
src/workstack/core/gitops.py RealGitOps.prune_worktrees 1 1 0 0%
src/workstack/core/gitops.py RealGitOps.is_branch_checked_out 5 5 0 0%
src/workstack/core/gitops.py RealGitOps.get_branch_head 4 4 0 0%
src/workstack/core/gitops.py RealGitOps.get_commit_message 4 4 0 0%
src/workstack/core/gitops.py DryRunGitOps.__init__ 1 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.list_worktrees 1 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.get_current_branch 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.detect_default_branch 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.get_git_common_dir 1 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.checkout_branch 1 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.checkout_detached 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.has_staged_changes 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.add_worktree 7 4 0 43%
src/workstack/core/gitops.py DryRunGitOps.move_worktree 1 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.remove_worktree 2 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.delete_branch_with_graphite 2 0 0 100%
src/workstack/core/gitops.py DryRunGitOps.prune_worktrees 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.is_branch_checked_out 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.get_branch_head 1 1 0 0%
src/workstack/core/gitops.py DryRunGitOps.get_commit_message 1 1 0 0%
src/workstack/core/gitops.py (no function) 73 0 17 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_workstacks_root 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_use_graphite 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_shell_setup_complete 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_show_pr_info 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_show_pr_checks 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.set 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.exists 0 0 1 100%
src/workstack/core/global_config_ops.py GlobalConfigOps.get_path 0 0 1 100%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.__init__ 2 0 0 100%
src/workstack/core/global_config_ops.py RealGlobalConfigOps._load_cache 7 1 0 86%
src/workstack/core/global_config_ops.py RealGlobalConfigOps._ensure_cache 3 0 0 100%
src/workstack/core/global_config_ops.py RealGlobalConfigOps._invalidate_cache 1 0 0 100%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_workstacks_root 5 1 0 80%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_use_graphite 5 5 0 0%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_shell_setup_complete 5 5 0 0%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_show_pr_info 5 5 0 0%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_show_pr_checks 5 5 0 0%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.set 24 7 0 71%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.exists 1 0 0 100%
src/workstack/core/global_config_ops.py RealGlobalConfigOps.get_path 1 1 0 0%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.__init__ 1 0 0 100%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_workstacks_root 1 0 0 100%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_use_graphite 1 1 0 0%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_shell_setup_complete 1 1 0 0%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_show_pr_info 1 0 0 100%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_show_pr_checks 1 0 0 100%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.set 13 3 0 77%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.exists 1 1 0 0%
src/workstack/core/global_config_ops.py DryRunGlobalConfigOps.get_path 1 1 0 0%
src/workstack/core/global_config_ops.py (no function) 48 0 10 100%
src/workstack/core/graphite_ops.py GraphiteOps.get_graphite_url 0 0 1 100%
src/workstack/core/graphite_ops.py GraphiteOps.sync 0 0 1 100%
src/workstack/core/graphite_ops.py GraphiteOps.get_prs_from_graphite 0 0 1 100%
src/workstack/core/graphite_ops.py GraphiteOps.get_all_branches 0 0 1 100%
src/workstack/core/graphite_ops.py RealGraphiteOps.get_graphite_url 1 0 0 100%
src/workstack/core/graphite_ops.py RealGraphiteOps.sync 4 4 0 0%
src/workstack/core/graphite_ops.py RealGraphiteOps.get_prs_from_graphite 21 16 0 24%
src/workstack/core/graphite_ops.py RealGraphiteOps._graphite_url_to_github_url 7 7 0 0%
src/workstack/core/graphite_ops.py RealGraphiteOps.get_all_branches 26 26 0 0%
src/workstack/core/graphite_ops.py DryRunGraphiteOps.__init__ 1 0 0 100%
src/workstack/core/graphite_ops.py DryRunGraphiteOps.get_graphite_url 1 0 0 100%
src/workstack/core/graphite_ops.py DryRunGraphiteOps.get_prs_from_graphite 1 0 0 100%
src/workstack/core/graphite_ops.py DryRunGraphiteOps.get_all_branches 1 1 0 0%
src/workstack/core/graphite_ops.py DryRunGraphiteOps.sync 5 1 0 80%
src/workstack/core/graphite_ops.py (no function) 29 0 5 100%
src/workstack/core/shell_ops.py ShellOps.detect_shell 0 0 1 100%
src/workstack/core/shell_ops.py ShellOps.check_tool_installed 0 0 1 100%
src/workstack/core/shell_ops.py RealShellOps.detect_shell 14 14 0 0%
src/workstack/core/shell_ops.py RealShellOps.check_tool_installed 1 1 0 0%
src/workstack/core/shell_ops.py (no function) 12 0 3 100%
src/workstack/status/__init__.py (no function) 2 0 0 100%
src/workstack/status/collectors/__init__.py (no function) 3 0 0 100%
src/workstack/status/collectors/base.py StatusCollector.name 0 0 1 100%
src/workstack/status/collectors/base.py StatusCollector.is_available 0 0 1 100%
src/workstack/status/collectors/base.py StatusCollector.collect 0 0 1 100%
src/workstack/status/collectors/base.py (no function) 12 0 2 100%
src/workstack/status/collectors/git.py GitStatusCollector.name 1 0 0 100%
src/workstack/status/collectors/git.py GitStatusCollector.is_available 3 0 0 100%
src/workstack/status/collectors/git.py GitStatusCollector.collect 8 5 0 38%
src/workstack/status/collectors/git.py GitStatusCollector._get_file_status 16 16 0 0%
src/workstack/status/collectors/git.py GitStatusCollector._get_ahead_behind 11 11 0 0%
src/workstack/status/collectors/git.py GitStatusCollector._get_recent_commits 9 9 0 0%
src/workstack/status/collectors/git.py (no function) 13 0 0 100%
src/workstack/status/collectors/github.py GitHubPRCollector.name 1 1 0 0%
src/workstack/status/collectors/github.py GitHubPRCollector.is_available 5 5 0 0%
src/workstack/status/collectors/github.py GitHubPRCollector.collect 11 11 0 0%
src/workstack/status/collectors/github.py (no function) 9 0 0 100%
src/workstack/status/collectors/graphite.py GraphiteStackCollector.name 1 1 0 0%
src/workstack/status/collectors/graphite.py GraphiteStackCollector.is_available 5 5 0 0%
src/workstack/status/collectors/graphite.py GraphiteStackCollector.collect 15 15 0 0%
src/workstack/status/collectors/graphite.py (no function) 10 0 0 100%
src/workstack/status/collectors/plan.py PlanFileCollector.name 1 0 0 100%
src/workstack/status/collectors/plan.py PlanFileCollector.is_available 2 0 0 100%
src/workstack/status/collectors/plan.py PlanFileCollector.collect 18 0 0 100%
src/workstack/status/collectors/plan.py (no function) 9 0 0 100%
src/workstack/status/models/__init__.py (no function) 2 0 0 100%
src/workstack/status/models/status_data.py (no function) 67 0 0 100%
src/workstack/status/orchestrator.py StatusOrchestrator.__init__ 2 0 0 100%
src/workstack/status/orchestrator.py StatusOrchestrator.collect_status 35 11 0 69%
src/workstack/status/orchestrator.py StatusOrchestrator._get_worktree_info 6 0 0 100%
src/workstack/status/orchestrator.py StatusOrchestrator._get_related_worktrees 17 11 0 35%
src/workstack/status/orchestrator.py (no function) 12 0 0 100%
src/workstack/status/renderers/__init__.py (no function) 2 0 0 100%
src/workstack/status/renderers/simple.py SimpleRenderer.render 6 0 0 100%
src/workstack/status/renderers/simple.py SimpleRenderer._render_file_list 5 0 0 100%
src/workstack/status/renderers/simple.py SimpleRenderer._render_header 8 1 0 88%
src/workstack/status/renderers/simple.py SimpleRenderer._render_plan 8 0 0 100%
src/workstack/status/renderers/simple.py SimpleRenderer._render_stack 24 3 0 88%
src/workstack/status/renderers/simple.py SimpleRenderer._render_pr_status 18 16 0 11%
src/workstack/status/renderers/simple.py SimpleRenderer._render_git_status 33 3 0 91%
src/workstack/status/renderers/simple.py SimpleRenderer._render_related_worktrees 14 12 0 14%
src/workstack/status/renderers/simple.py (no function) 11 0 0 100%
Total   3113 605 74 81%

No items found using the specified filter.