Skip to content

[tech-debt] duplication/function: Batch — 68 findings across 30 files #129

Description

@Duskript

[tech-debt] duplication/function — Batch: 68 findings

This issue batches all duplication/function findings detected on 2026-08-10T11:06:25Z.

Field Value
Total 68 findings across 30 files
Severity medium
Detected 2026-08-10T11:06:25Z

Findings

  • conductor/scripts/profile-bootstrap-apply.py:102 — iter_canonical_skill_files() duplicate function body in 2 functions across 2 files (fp c24f0e6a09db2df8): conductor/scripts/profile-bootstrap-apply.py:102 iter_canonical_skill_file
  • conductor/v2/api_server.pre-4.0a-full.py:83 — _workflow_to_dict() duplicate function body in 2 functions across 2 files (fp 125b1b2ee601f556): conductor/v2/api_server.pre-4.0a-full.py:83 _workflow_to_dict(); conductor/v2/api_s
  • conductor/v2/api_server.pre-4.0a-full.py:145 — _instance_to_dict() duplicate function body in 2 functions across 2 files (fp 94afc1e147494886): conductor/v2/api_server.pre-4.0a-full.py:145 instance_to_dict(); conductor/v2/api
  • conductor/v2/api_server.pre-4.0a-full.py:169 — _atomic_write_yaml() duplicate function body in 2 functions across 2 files (fp 8ed2592cc9670e14): conductor/v2/api_server.pre-4.0a-full.py:169 _atomic_write_yaml(); conductor/v2/ap
  • conductor/v2/api_server.pre-4.0a-full.py:204 — _list_run_state_files() duplicate function body in 2 functions across 2 files (fp 421d95d40d4bdc9f): conductor/v2/api_server.pre-4.0a-full.py:204 _list_run_state_files(); conductor
  • conductor/v2/api_server.pre-4.0a-full.py:216 — _load_runs_for_definition() duplicate function body in 2 functions across 2 files (fp 46183103185ece8f): conductor/v2/api_server.pre-4.0a-full.py:216 _load_runs_for_definition(); c
  • conductor/v2/api_server.pre-4.0a-full.py:312 — health() duplicate function body in 2 functions across 2 files (fp 0fb624253c697a63): conductor/v2/api_server.pre-4.0a-full.py:312 health(); conductor/v2/api_server.py:348 health()
  • conductor/v2/api_server.pre-4.0a-full.py:327 — list_workflows() duplicate function body in 2 functions across 2 files (fp 8bdba3b67a98de9f): conductor/v2/api_server.pre-4.0a-full.py:327 list_workflows(); conductor/v2/api_server
  • conductor/v2/api_server.pre-4.0a-full.py:369 — get_workflow() duplicate function body in 2 functions across 2 files (fp d7189985dfd11c8c): conductor/v2/api_server.pre-4.0a-full.py:369 get_workflow(); conductor/v2/api_server.py:
  • conductor/v2/api_server.pre-4.0a-full.py:395 — put_workflow() duplicate function body in 2 functions across 2 files (fp 2fb1f0dadeaa42b8): conductor/v2/api_server.pre-4.0a-full.py:395 put_workflow(); conductor/v2/api_server.py:
  • conductor/v2/api_server.pre-4.0a-full.py:537 — delete_workflow() duplicate function body in 2 functions across 2 files (fp c867dacc0cdb43f7): conductor/v2/api_server.pre-4.0a-full.py:537 delete_workflow(); conductor/v2/api_serv
  • conductor/v2/api_server.pre-4.0a-full.py:577 — validate_endpoint() duplicate function body in 2 functions across 2 files (fp 17fcf08cad51858e): conductor/v2/api_server.pre-4.0a-full.py:577 validate_endpoint(); conductor/v2/api_
  • conductor/v2/api_server.pre-4.0a-full.py:618 — run_workflow() duplicate function body in 2 functions across 2 files (fp 3ac4b49792cbec5b): conductor/v2/api_server.pre-4.0a-full.py:618 run_workflow(); conductor/v2/api_server.py:
  • conductor/v2/api_server.pre-4.0a-full.py:682 — list_runs() duplicate function body in 2 functions across 2 files (fp 2ace0ae7643b8005): conductor/v2/api_server.pre-4.0a-full.py:682 list_runs(); conductor/v2/api_server.py:718 li
  • conductor/v2/api_server.pre-4.0a-full.py:741 — event_generator() duplicate function body in 2 functions across 2 files (fp 3e042ba42d3ae48c): conductor/v2/api_server.pre-4.0a-full.py:741 event_generator(); conductor/v2/api_serv
  • conductor/v2/tests/test_backbone_e2e.py:206 — _make_handoff() duplicate function body in 2 functions across 2 files (fp 60f2fcf15a93f10e): conductor/v2/tests/test_backbone_e2e.py:206 _make_handoff(); conductor/v2/tests/test_re
  • conductor/v2/tests/test_daemon_consumes_inbox.py:60 — _new_engine() duplicate function body in 3 functions across 3 files (fp 5d439e3f8b4fcd36): conductor/v2/tests/test_daemon_consumes_inbox.py:60 _new_engine(); conductor/v2/tests/tes
  • cron/pantheon-sync/adapters/base.py:88 — _get_n8n_api_key() duplicate function body in 2 functions across 2 files (fp 8e578ff1028bc10c): cron/pantheon-sync/adapters/base.py:88 _get_n8n_api_key(); webui/api/onboarding.py:1
  • examples/morning-briefing/morning-briefing.py:66 — collect_hades() duplicate function body in 2 functions across 2 files (fp 9ee02eeda4bb8fc2): examples/morning-briefing/morning-briefing.py:66 collect_hades(); scripts/morning-brief
  • examples/morning-briefing/morning-briefing.py:87 — collect_dawn_patrol() duplicate function body in 2 functions across 2 files (fp 11f057dc515fa5dd): examples/morning-briefing/morning-briefing.py:87 collect_dawn_patrol(); scripts/m
  • examples/morning-briefing/morning-briefing.py:118 — collect_git_status() duplicate function body in 2 functions across 2 files (fp 5224f98cd5d14bd6): examples/morning-briefing/morning-briefing.py:118 collect_git_status(); scripts/mo
  • examples/morning-briefing/morning-briefing.py:135 — main() duplicate function body in 2 functions across 2 files (fp 155df900a86d5699): examples/morning-briefing/morning-briefing.py:135 main(); scripts/morning-briefing.py:135 main()
  • god-packages/shared-skills/last30days/scripts/lib/reddit_listing.py:59 — _to_epoch() duplicate function body in 2 functions across 2 files (fp f8bd6ea07b3f48ad): god-packages/shared-skills/last30days/scripts/lib/reddit_listing.py:59 _to_epoch(); god-pac
  • lib/clawforge/adjustment_exporter.py:67 — load_token() duplicate function body in 3 functions across 3 files (fp 158d215224883b94): lib/clawforge/adjustment_exporter.py:67 load_token(); lib/clawforge/learning_exporter.py:9
  • lib/clawforge/learning_exporter.py:68 — _find_token_path() duplicate function body in 2 functions across 2 files (fp d1268f8787e5757c): lib/clawforge/learning_exporter.py:68 _find_token_path(); lib/clawforge/pattern_expo
  • lib/clawforge/recommendation_applier.py:74 — _atomic_write_json() duplicate function body in 4 functions across 4 files (fp 78a1703f04ac4733): lib/clawforge/recommendation_applier.py:74 _atomic_write_json(); scripts/clawforge
  • lib/ichor/entities/dream.py:123 — _parse_db_datetime() duplicate function body in 2 functions across 2 files (fp 8ef7a9e1faf5bd92): lib/ichor/entities/dream.py:123 _parse_db_datetime(); lib/ichor/entities/recency.p
  • lib/ichor/entities/dream.py:169 — _temporal_clause() duplicate function body in 2 functions across 2 files (fp 74098946b2e4625f): lib/ichor/entities/dream.py:169 _temporal_clause(); lib/ichor/entities/traversal.py:
  • pantheon-core/gods/graph_client.py:83 — _ensure_schema() duplicate function body in 2 functions across 2 files (fp 2e8b09f360b5723f): pantheon-core/gods/graph_client.py:83 _ensure_schema(); plugins/pantheon/graph_client.
  • pantheon-core/gods/graph_client.py:145 — upsert_node() duplicate function body in 2 functions across 2 files (fp e5898a626ab6c80a): pantheon-core/gods/graph_client.py:145 upsert_node(); plugins/pantheon/graph_client.py:14
  • pantheon-core/gods/graph_client.py:185 — get_node() duplicate function body in 2 functions across 2 files (fp e6b495f2dc81815d): pantheon-core/gods/graph_client.py:185 get_node(); plugins/pantheon/graph_client.py:185 get_
  • pantheon-core/gods/graph_client.py:208 — find_nodes() duplicate function body in 2 functions across 2 files (fp a24af5b96f121e26): pantheon-core/gods/graph_client.py:208 find_nodes(); plugins/pantheon/graph_client.py:208
  • pantheon-core/gods/graph_client.py:239 — search_nodes() duplicate function body in 2 functions across 2 files (fp 3a34b8fb44cd9d68): pantheon-core/gods/graph_client.py:239 search_nodes(); plugins/pantheon/graph_client.py:
  • pantheon-core/gods/graph_client.py:258 — _sync_fts() duplicate function body in 2 functions across 2 files (fp f61766a58d3a06d4): pantheon-core/gods/graph_client.py:258 _sync_fts(); plugins/pantheon/graph_client.py:258 _s
  • pantheon-core/gods/graph_client.py:286 — add_edge() duplicate function body in 2 functions across 2 files (fp 0aacfca0699a8ae6): pantheon-core/gods/graph_client.py:286 add_edge(); plugins/pantheon/graph_client.py:286 add_
  • pantheon-core/gods/graph_client.py:336 — remove_edge() duplicate function body in 2 functions across 2 files (fp 95cd007d15b078de): pantheon-core/gods/graph_client.py:336 remove_edge(); plugins/pantheon/graph_client.py:33
  • pantheon-core/gods/graph_client.py:348 — get_edges() duplicate function body in 2 functions across 2 files (fp bc79d7fb4d2107f3): pantheon-core/gods/graph_client.py:348 get_edges(); plugins/pantheon/graph_client.py:348 ge
  • pantheon-core/gods/graph_client.py:391 — get_neighbors() duplicate function body in 2 functions across 2 files (fp 732b5c81adbc177b): pantheon-core/gods/graph_client.py:391 get_neighbors(); plugins/pantheon/graph_client.p
  • pantheon-core/gods/graph_client.py:407 — _get_direct_neighbors() duplicate function body in 2 functions across 2 files (fp 10d260dd42691ca9): pantheon-core/gods/graph_client.py:407 _get_direct_neighbors(); plugins/pantheo
  • pantheon-core/gods/graph_client.py:431 — _bfs() duplicate function body in 2 functions across 2 files (fp 51fa161aed21c63a): pantheon-core/gods/graph_client.py:431 _bfs(); plugins/pantheon/graph_client.py:431 _bfs()
  • pantheon-core/gods/graph_client.py:459 — shortest_path() duplicate function body in 2 functions across 2 files (fp d57eb52638eb8456): pantheon-core/gods/graph_client.py:459 shortest_path(); plugins/pantheon/graph_client.p
  • pantheon-core/gods/graph_client.py:517 — register_file() duplicate function body in 2 functions across 2 files (fp 7edd457c5a7bf47f): pantheon-core/gods/graph_client.py:517 register_file(); plugins/pantheon/graph_client.p
  • pantheon-core/gods/graph_client.py:537 — register_session() duplicate function body in 2 functions across 2 files (fp 65c42716730ef012): pantheon-core/gods/graph_client.py:537 register_session(); plugins/pantheon/graph_cl
  • pantheon-core/gods/graph_client.py:549 — register_entity() duplicate function body in 2 functions across 2 files (fp def1869835a7f365): pantheon-core/gods/graph_client.py:549 register_entity(); plugins/pantheon/graph_clie
  • pantheon-core/gods/graph_client.py:578 — stats() duplicate function body in 2 functions across 2 files (fp f46e6e5aaa908c8a): pantheon-core/gods/graph_client.py:578 stats(); plugins/pantheon/graph_client.py:578 stats()
  • scripts/clawforge-effectiveness-validator.py:427 — load_token() duplicate function body in 3 functions across 3 files (fp abeeb21ea68db4ff): scripts/clawforge-effectiveness-validator.py:427 load_token(); scripts/clawforge-pattern-a
  • scripts/clawforge-effectiveness-validator.py:465 — _read_registry() duplicate function body in 2 functions across 2 files (fp 64a6a01c0ad16239): scripts/clawforge-effectiveness-validator.py:465 _read_registry(); scripts/clawforge-f
  • scripts/clawforge-effectiveness-validator.py:482 — _read_profiles() duplicate function body in 2 functions across 2 files (fp d8af12930139a889): scripts/clawforge-effectiveness-validator.py:482 _read_profiles(); scripts/clawforge-f
  • tests/test_ichor_v2_phase4.py:12 — _seed_test_db() duplicate function body in 2 functions across 2 files (fp 21fb6967a8576935): tests/test_ichor_v2_phase4.py:12 _seed_test_db(); tests/test_ichor_v2_phase6.py:27 _see
  • webui/api/onboarding.py:207 — _load_env_file() duplicate function body in 2 functions across 2 files (fp 48fe988f12ead34e): webui/api/onboarding.py:207 _load_env_file(); webui/api/providers.py:130 _load_env_fil
  • webui/tests/test_1694_prompt_ownership.py:15 — _body_from_brace() duplicate function body in 2 functions across 2 files (fp 0040cebb74a42378): webui/tests/test_1694_prompt_ownership.py:15 _body_from_brace(); webui/tests/test_16
  • webui/tests/test_approval_unblock.py:52 — post() duplicate function body in 4 functions across 4 files (fp 8001e096f1219453): webui/tests/test_approval_unblock.py:52 post(); webui/tests/test_sprint1.py:41 post(); webui/tes
  • webui/tests/test_chinese_locale.py:13 — extract_locale_block() duplicate function body in 4 functions across 4 files (fp 887086b71f381ab1): webui/tests/test_chinese_locale.py:13 extract_locale_block(); webui/tests/test_j
  • webui/tests/test_custom_provider_display_name.py:12 — _strip_at_prefix() duplicate function body in 2 functions across 2 files (fp b89d265f5c55055c): webui/tests/test_custom_provider_display_name.py:12 _strip_at_prefix(); webui/tests/
  • webui/tests/test_custom_provider_display_name.py:26 — _isolate_models_cache() duplicate function body in 4 functions across 4 files (fp 76ba634df9f73da4): webui/tests/test_custom_provider_display_name.py:26 _isolate_models_cache(); we
  • webui/tests/test_custom_provider_display_name.py:39 — _models_with_cfg() duplicate function body in 2 functions across 2 files (fp 7c6d6d88b2efa446): webui/tests/test_custom_provider_display_name.py:39 _models_with_cfg(); webui/tests/
  • webui/tests/test_custom_providers_in_panel.py:14 — _install_fake_hermes_cli() duplicate function body in 5 functions across 5 files (fp 18664db681304b71): webui/tests/test_custom_providers_in_panel.py:14 _install_fake_hermes_cli();
  • webui/tests/test_issue1094_provider_bugs.py:32 — _post() duplicate function body in 2 functions across 2 files (fp b19e55a126b1f079): webui/tests/test_issue1094_provider_bugs.py:32 _post(); webui/tests/test_provider_management.py
  • webui/tests/test_issue1144_session_time_sync.py:66 — _extract_function() duplicate function body in 2 functions across 2 files (fp 95341ddfb3f77acc): webui/tests/test_issue1144_session_time_sync.py:66 _extract_function(); webui/tests
  • webui/tests/test_issue1298_cancel_and_activity.py:31 — _isolate_session_dir() duplicate function body in 3 functions across 3 files (fp d0da9b4712ea2a3e): webui/tests/test_issue1298_cancel_and_activity.py:31 _isolate_session_dir(); web
  • webui/tests/test_issue1298_cancel_and_activity.py:44 — _isolate_stream_state() duplicate function body in 2 functions across 2 files (fp 334f1c89507f07df): webui/tests/test_issue1298_cancel_and_activity.py:44 _isolate_stream_state(); w
  • webui/tests/test_issue1420_lmstudio_provider_env_var.py:69 — _swap_in_test_config() duplicate function body in 5 functions across 5 files (fp df55ed8f7ece3fe5): webui/tests/test_issue1420_lmstudio_provider_env_var.py:69 _swap_in_test_config(
  • webui/tests/test_issue1446_glued_heading_lift.py:230 — _render() duplicate function body in 3 functions across 3 files (fp 995053c556da4f6e): webui/tests/test_issue1446_glued_heading_lift.py:230 _render(); webui/tests/test_issue1618_ya
  • webui/tests/test_issue1538_nous_live_catalog.py:119 — _scrub_provider_env() duplicate function body in 3 functions across 3 files (fp f18e185e42aa048f): webui/tests/test_issue1538_nous_live_catalog.py:119 _scrub_provider_env(); webui/
  • webui/tests/test_issue673.py:38 — _post() duplicate function body in 5 functions across 5 files (fp 030feda1ed2a68ee): webui/tests/test_issue673.py:38 _post(); webui/tests/test_login_locale.py:19 post(); webui/test
  • webui/tests/test_issue765_streaming_persistence.py:22 — _isolate_session_dir() duplicate function body in 2 functions across 2 files (fp ae8c8bf9c742fefb): webui/tests/test_issue765_streaming_persistence.py:22 _isolate_session_dir(); we
  • webui/tests/test_logs_ui_static.py:11 — _function_body() duplicate function body in 2 functions across 2 files (fp f3583de6cc1fc364): webui/tests/test_logs_ui_static.py:11 function_body(); webui/tests/test_ui_tool_call
  • webui/tests/test_onboarding_existing_config.py:266 — _http_post() duplicate function body in 2 functions across 2 files (fp c6e38dc745ccb20d): webui/tests/test_onboarding_existing_config.py:266 _http_post(); webui/tests/test_onboardi

Recommendation

Extract the shared logic into a reusable helper or intentionally document why the copies must diverge.

Labels

tech-debt, category:duplication, severity:medium

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions