Skip to content

feat: enhance fleet status with observability dashboard#928

Merged
chubes4 merged 1 commit intomainfrom
feat/fleet-report
Mar 22, 2026
Merged

feat: enhance fleet status with observability dashboard#928
chubes4 merged 1 commit intomainfrom
feat/fleet-report

Conversation

@chubes4
Copy link
Member

@chubes4 chubes4 commented Mar 22, 2026

Summary

Closes #613

Upgrades homeboy fleet status from a flat version list to a full fleet observability dashboard — server health, component drift, release state, and fleet-wide summaries in one command.

Before vs After

Before: fleet status returned Vec<FleetProjectStatus> with component versions and health. No summary, no drift detection, no release state, no deduplication.

After: Returns FleetStatusResult with per-project detail AND fleet-wide summary:

{
  "projects": [{
    "project_id": "chubes-site",
    "server_id": "chubes-net",
    "health": { "uptime": "2 weeks", "load": {...}, "disk": {"percent": 58}, "memory": {"percent": 10} },
    "components": [{
      "component_id": "data-machine",
      "local_version": "0.55.2",
      "remote_version": "0.54.0",
      "drift": "needs_update",
      "unreleased_commits": 0,
      "version_source": "live"
    }]
  }],
  "summary": {
    "servers": { "total": 1, "healthy": 1, "warning": 0, "unreachable": 0, "services_up": 0, "services_down": 0 },
    "components": { "total": 1, "current": 0, "needs_update": 1, "needs_bump": 0, "unknown": 0 },
    "projects": { "total": 1, "healthy": 1, "warning": 0, "unreachable": 0 }
  }
}

Human-readable table (stderr in terminals)

┌─── Fleet Status ───────────────────────────────────┐
│ Servers: 1 healthy, 0 warning, 0 unreachable
│ Services: 3 up, 0 down
│ Components: 2 current, 1 outdated, 0 need bump, 0 unknown
└────────────────────────────────────────────────────┘

✅ chubes-site (chubes-net)
  data-machine   0.55.2 → 0.54.0  (0 unreleased)  ⚠️  outdated

What changed

Core (fleet/status.rs)

  • Server dedup: Health collected once per unique server_id, not per project
  • Version drift: FleetComponentDrift enum (current, needs_update, behind_remote, needs_bump, docs_only, unknown)
  • Release state: Unreleased commit count per component via calculate_release_state()
  • Fleet summary: FleetStatusSummary with project, component, and server counts
  • Aggregated warnings: FleetWarning with server_id + project_id context
  • FleetStatusResult: New wrapper type combining projects + summary

CLI (commands/fleet.rs)

  • Removed shadow FleetProjectStatus/FleetComponentStatus types (used core types directly)
  • Human-readable dashboard table to stderr
  • Exit code 1 when servers unreachable or services down

Modes preserved

  • fleet status <id> — full live dashboard
  • fleet status <id> --cached — local versions only, no SSH
  • fleet status <id> --health-only — health metrics only, skip components

Testing

  • Build: ✅ clean
  • Binary tests: ✅ 25/25
  • Smoke tested all three modes (live, cached, health-only) against chubes-site

Upgrade `homeboy fleet status` from a flat version list to a full
observability dashboard:

- Server health deduplication (shared servers collected once)
- Component version drift detection (local vs remote + release state)
- Fleet-level summary (servers, components, services, warnings)
- Aggregated warnings across all servers with source context
- Human-readable table output to stderr in terminals
- Exit code 1 when servers unreachable or services down

Replaces shadow FleetProjectStatus/FleetComponentStatus types in the
CLI layer with richer core types. All three modes preserved: live,
--cached, --health-only.
@chubes4 chubes4 merged commit 6be8407 into main Mar 22, 2026
1 check passed
@homeboy-ci
Copy link
Contributor

homeboy-ci bot commented Mar 22, 2026

Homeboy Results — homeboy

Audit

Failure Digest

Audit Failure Digest

  • Alignment score: 0.921
  • Severity counts: info: 107, unknown: 3, warning: 662
  • Outliers in current run: 3
  • Parsed outlier entries: 3
  • Drift increased: yes
  • New findings since baseline: 104
    1. intra-method-duplication — Duplicated block in analyze_dead_code — 5 identical lines at line 98 and line 147 (intra-method-duplication::src/core/code_audit/dead_code.rs::IntraMethodDuplicate)
    2. intra-method-duplication — Duplicated block in analyze_test_coverage — 6 identical lines at line 143 and line 235 (intra-method-duplication::src/core/code_audit/test_coverage.rs::IntraMethodDuplicate)
    3. intra-method-duplication — Duplicated block in execute_artifact_deploy — 5 identical lines at line 226 and line 248 (intra-method-duplication::src/core/deploy/execution.rs::IntraMethodDuplicate)
    4. intra-method-duplication — Duplicated block in execute_component_deploy — 5 identical lines at line 92 and line 105 (intra-method-duplication::src/core/deploy/execution.rs::IntraMethodDuplicate)
    5. intra-method-duplication — Duplicated block in load_project_components — 5 identical lines at line 291 and line 319 (intra-method-duplication::src/core/deploy/planning.rs::IntraMethodDuplicate)
  • Top actionable findings:
    1. src/commands/docs.rs — namespace_mismatch — Namespace mismatch: expected crate::commands, found crate::help_topics
    2. src/core/engine/undo/rollback.rs — signature_mismatch — Signature mismatch for new: different structure — expected 10 tokens, found 5. Example: pub fn new() -> Self {
    3. src/commands/fleet.rs — high_item_count — File has 18 top-level items (threshold: 15)
    4. src/commands/project.rs — high_item_count — File has 26 top-level items (threshold: 15)
    5. src/commands/refactor.rs — god_file — File has 1340 lines (threshold: 1000)
All parsed audit findings (500)
1. **src/commands/docs.rs** — namespace_mismatch — Namespace mismatch: expected `crate::commands`, found `crate::help_topics`
2. **src/core/engine/undo/rollback.rs** — signature_mismatch — Signature mismatch for new: different structure — expected 10 tokens, found 5. Example: `pub fn new() -> Self {`
3. **src/commands/fleet.rs** — high_item_count — File has 18 top-level items (threshold: 15)
4. **src/commands/project.rs** — high_item_count — File has 26 top-level items (threshold: 15)
5. **src/commands/refactor.rs** — god_file — File has 1340 lines (threshold: 1000)
6. **src/commands/refactor.rs** — high_item_count — File has 19 top-level items (threshold: 15)
7. **src/commands/server.rs** — high_item_count — File has 18 top-level items (threshold: 15)
8. **src/core/code_audit/codebase_map.rs** — god_file — File has 1069 lines (threshold: 1000)
9. **src/core/code_audit/codebase_map.rs** — high_item_count — File has 26 top-level items (threshold: 15)
10. **src/core/code_audit/conventions.rs** — god_file — File has 1474 lines (threshold: 1000)
11. **src/core/code_audit/core_fingerprint.rs** — god_file — File has 1667 lines (threshold: 1000)
12. **src/core/code_audit/core_fingerprint.rs** — high_item_count — File has 37 top-level items (threshold: 15)
13. **src/core/code_audit/docs_audit/claims.rs** — high_item_count — File has 19 top-level items (threshold: 15)
14. **src/core/code_audit/duplication.rs** — god_file — File has 1704 lines (threshold: 1000)
15. **src/core/code_audit/duplication.rs** — high_item_count — File has 30 top-level items (threshold: 15)
16. **src/core/code_audit/test_coverage.rs** — god_file — File has 1147 lines (threshold: 1000)
17. **src/core/config.rs** — god_file — File has 1532 lines (threshold: 1000)
18. **src/core/config.rs** — high_item_count — File has 52 top-level items (threshold: 15)
19. **src/core/deploy/types.rs** — high_item_count — File has 18 top-level items (threshold: 15)
20. **src/core/engine/baseline.rs** — high_item_count — File has 18 top-level items (threshold: 15)
21. **src/core/engine/codebase_scan.rs** — high_item_count — File has 24 top-level items (threshold: 15)
22. **src/core/engine/contract.rs** — high_item_count — File has 16 top-level items (threshold: 15)
23. **src/core/engine/contract_testgen.rs** — god_file — File has 2831 lines (threshold: 1000)
24. **src/core/engine/pipeline.rs** — high_item_count — File has 22 top-level items (threshold: 15)
25. **src/core/engine/text.rs** — high_item_count — File has 16 top-level items (threshold: 15)
26. **src/core/engine/undo/snapshot.rs** — high_item_count — File has 23 top-level items (threshold: 15)
27. **src/core/extension/execution.rs** — god_file — File has 1147 lines (threshold: 1000)
28. **src/core/extension/execution.rs** — high_item_count — File has 35 top-level items (threshold: 15)
29. **src/core/extension/grammar.rs** — god_file — File has 1382 lines (threshold: 1000)
30. **src/core/extension/grammar.rs** — high_item_count — File has 24 top-level items (threshold: 15)
31. **src/core/extension/grammar_items.rs** — god_file — File has 1052 lines (threshold: 1000)
32. **src/core/extension/lifecycle.rs** — high_item_count — File has 20 top-level items (threshold: 15)
33. **src/core/extension/manifest.rs** — high_item_count — File has 37 top-level items (threshold: 15)
34. **src/core/extension/test/analyze.rs** — high_item_count — File has 16 top-level items (threshold: 15)
35. **src/core/extension/test/drift.rs** — high_item_count — File has 19 top-level items (threshold: 15)
36. **src/core/git/commits.rs** — high_item_count — File has 25 top-level items (threshold: 15)
37. **src/core/git/operations.rs** — god_file — File has 1218 lines (threshold: 1000)
38. **src/core/git/operations.rs** — high_item_count — File has 50 top-level items (threshold: 15)
39. **src/core/project/files.rs** — high_item_count — File has 35 top-level items (threshold: 15)
40. **src/core/refactor/auto/apply.rs** — god_file — File has 1109 lines (threshold: 1000)
41. **src/core/refactor/auto/apply.rs** — high_item_count — File has 16 top-level items (threshold: 15)
42. **src/core/refactor/auto/contracts.rs** — high_item_count — File has 22 top-level items (threshold: 15)
43. **src/core/refactor/decompose.rs** — god_file — File has 1701 lines (threshold: 1000)
44. **src/core/refactor/decompose.rs** — high_item_count — File has 30 top-level items (threshold: 15)
45. **src/core/refactor/plan/planner.rs** — god_file — File has 1183 lines (threshold: 1000)
46. **src/core/refactor/plan/planner.rs** — high_item_count — File has 28 top-level items (threshold: 15)
47. **src/core/refactor/transform.rs** — high_item_count — File has 26 top-level items (threshold: 15)
48. **src/core/release/pipeline.rs** — god_file — File has 1203 lines (threshold: 1000)
49. **src/core/release/pipeline.rs** — high_item_count — File has 20 top-level items (threshold: 15)
50. **src/core/server/health.rs** — high_item_count — File has 16 top-level items (threshold: 15)
51. **src/commands/component.rs** — intra_method_duplicate — Duplicated block in `run` — 5 identical lines at line 250 and line 260
52. **src/commands/component.rs** — intra_method_duplicate — Duplicated block in `shared` — 8 identical lines at line 603 and line 618
53. **src/commands/refactor.rs** — intra_method_duplicate — Duplicated block in `run_transform` — 8 identical lines at line 1206 and line 1219
54. **src/commands/refactor.rs** — intra_method_duplicate — Duplicated block in `run` — 6 identical lines at line 291 and line 311
55. **src/commands/utils/args.rs** — intra_method_duplicate — Duplicated block in `normalize_trailing_flags` — 12 identical lines at line 47 and line 60
56. **src/commands/utils/entity_suggest.rs** — intra_method_duplicate — Duplicated block in `find_entity_match` — 5 identical lines at line 39 and line 48
57. **src/commands/version.rs** — intra_method_duplicate — Duplicated block in `run` — 5 identical lines at line 152 and line 165
58. **src/core/code_audit/codebase_map.rs** — intra_method_duplicate — Duplicated block in `render_class` — 5 identical lines at line 640 and line 651
59. **src/core/code_audit/codebase_map.rs** — intra_method_duplicate — Duplicated block in `split_classes_by_prefix` — 5 identical lines at line 860 and line 882
60. **src/core/code_audit/comment_hygiene.rs** — intra_method_duplicate — Duplicated block in `analyze_comment_hygiene` — 5 identical lines at line 26 and line 44
61. **src/core/code_audit/comment_hygiene.rs** — intra_method_duplicate — Duplicated block in `extract_comments` — 5 identical lines at line 69 and line 85
62. **src/core/code_audit/conventions.rs** — intra_method_duplicate — Duplicated block in `check_signature_consistency` — 5 identical lines at line 626 and line 684
63. **src/core/code_audit/conventions.rs** — intra_method_duplicate — Duplicated block in `discover_conventions` — 5 identical lines at line 400 and line 417
64. **src/core/code_audit/core_fingerprint.rs** — intra_method_duplicate — Duplicated block in `extract_implements` — 5 identical lines at line 935 and line 947
65. **src/core/code_audit/core_fingerprint.rs** — intra_method_duplicate — Duplicated block in `extract_internal_calls` — 5 identical lines at line 1118 and line 1127
66. **src/core/code_audit/dead_code.rs** — intra_method_duplicate — Duplicated block in `analyze_dead_code` — 5 identical lines at line 98 and line 147
67. **src/core/code_audit/docs_audit/claims.rs** — intra_method_duplicate — Duplicated block in `extract_claims` — 5 identical lines at line 256 and line 329
68. **src/core/code_audit/impact.rs** — intra_method_duplicate — Duplicated block in `find_affected_files` — 5 identical lines at line 408 and line 418
69. **src/core/code_audit/impact.rs** — intra_method_duplicate — Duplicated block in `test_diff_fingerprints_detects_removed_export` — 6 identical lines at line 594 and line 603
70. **src/core/code_audit/impact.rs** — intra_method_duplicate — Duplicated block in `test_diff_fingerprints_detects_removed_hook` — 6 identical lines at line 649 and line 658
71. **src/core/code_audit/impact.rs** — intra_method_duplicate — Duplicated block in `test_find_affected_calls_removed_function` — 5 identical lines at line 689 and line 698
72. **src/core/code_audit/report.rs** — intra_method_duplicate — Duplicated block in `compute_fixability` — 8 identical lines at line 211 and line 233
73. **src/core/code_audit/test_coverage.rs** — intra_method_duplicate — Duplicated block in `analyze_test_coverage` — 6 identical lines at line 143 and line 235
74. **src/core/component/inventory.rs** — intra_method_duplicate — Duplicated block in `inventory` — 6 identical lines at line 16 and line 30
75. **src/core/component/versioning.rs** — intra_method_duplicate — Duplicated block in `validate_version_pattern` — 6 identical lines at line 30 and line 51
76. **src/core/config.rs** — intra_method_duplicate — Duplicated block in `list` — 5 identical lines at line 786 and line 798
77. **src/core/db/operations.rs** — intra_method_duplicate — Duplicated block in `resolve_domain` — 9 identical lines at line 111 and line 138
78. **src/core/deploy/execution.rs** — intra_method_duplicate — Duplicated block in `execute_artifact_deploy` — 5 identical lines at line 226 and line 248
79. **src/core/deploy/execution.rs** — intra_method_duplicate — Duplicated block in `execute_component_deploy` — 5 identical lines at line 92 and line 105
80. **src/core/deploy/orchestration.rs** — intra_method_duplicate — Duplicated block in `checkout_latest_tags` — 5 identical lines at line 390 and line 408
81. **src/core/deploy/planning.rs** — intra_method_duplicate — Duplicated block in `load_project_components` — 5 identical lines at line 291 and line 319
82. **src/core/deploy/planning.rs** — intra_method_duplicate — Duplicated block in `plan_components` — 5 identical lines at line 119 and line 158
83. **src/core/deploy/release_download.rs** — intra_method_duplicate — Duplicated block in `parse_github_url` — 7 identical lines at line 49 and line 61
84. **src/core/deploy/safety_and_artifact.rs** — intra_method_duplicate — Duplicated block in `deploy_artifact` — 7 identical lines at line 210 and line 230
85. **src/core/deploy/safety_and_artifact.rs** — intra_method_duplicate — Duplicated block in `validate_deploy_target` — 5 identical lines at line 63 and line 79
86. **src/core/deploy/transfer.rs** — intra_method_duplicate — Duplicated block in `rsync_directory` — 5 identical lines at line 58 and line 104
87. **src/core/deploy/transfer.rs** — intra_method_duplicate — Duplicated block in `scp_transfer` — 6 identical lines at line 152 and line 196
88. **src/core/engine/baseline.rs** — intra_method_duplicate — Duplicated block in `days_to_date` — 5 identical lines at line 418 and line 423
89. **src/core/engine/cli_tool.rs** — intra_method_duplicate — Duplicated block in `resolve_subtarget` — 5 identical lines at line 297 and line 330
90. **src/core/engine/codebase_scan.rs** — intra_method_duplicate — Duplicated block in `search` — 6 identical lines at line 501 and line 512
91. **src/core/engine/contract.rs** — intra_method_duplicate — Duplicated block in `extract_contracts` — 5 identical lines at line 385 and line 425
92. **src/core/engine/local_files.rs** — intra_method_duplicate — Duplicated block in `write_file_atomic` — 5 identical lines at line 166 and line 173
93. **src/core/engine/symbol_graph.rs** — intra_method_duplicate — Duplicated block in `compute_import_rewrite` — 5 identical lines at line 355 and line 381
94. **src/core/extension/execution.rs** — intra_method_duplicate — Duplicated block in `extension_ready_status` — 6 identical lines at line 887 and line 895
95. **src/core/extension/grammar.rs** — intra_method_duplicate — Duplicated block in `php_grammar` — 5 identical lines at line 952 and line 969
96. **src/core/extension/lint/run.rs** — intra_method_duplicate — Duplicated block in `resolve_effective_glob` — 10 identical lines at line 183 and line 201
97. **src/core/extension/scope.rs** — intra_method_duplicate — Duplicated block in `validate_project_compatibility` — 6 identical lines at line 55 and line 70
98. **src/core/extension/test/drift.rs** — intra_method_duplicate — Duplicated block in `extract_changes_from_diff` — 5 identical lines at line 384 and line 420
99. **src/core/fleet/exec.rs** — intra_method_duplicate — Duplicated block in `collect_exec` — 9 identical lines at line 90 and line 108
100. **src/core/fleet/status.rs** — intra_method_duplicate — Duplicated block in `test_collect_status_if_let_some_cached_health_server_health_cache_get_server_id` — 5 identical lines at line 457 and line 469
101. **src/core/git/changes.rs** — intra_method_duplicate — Duplicated block in `get_files_changed_since` — 5 identical lines at line 84 and line 107
102. **src/core/git/operations.rs** — intra_method_duplicate — Duplicated block in `commit_at` — 5 identical lines at line 552 and line 563
103. **src/core/git/operations.rs** — intra_method_duplicate — Duplicated block in `detect_baseline_with_version` — 5 identical lines at line 226 and line 239
104. **src/core/project/files.rs** — intra_method_duplicate — Duplicated block in `grep` — 5 identical lines at line 412 and line 421
105. **src/core/refactor/auto/apply.rs** — intra_method_duplicate — Duplicated block in `apply_decompose_plans` — 6 identical lines at line 881 and line 955
106. **src/core/refactor/auto/apply.rs** — intra_method_duplicate — Duplicated block in `apply_file_moves` — 5 identical lines at line 988 and line 1002
107. **src/core/refactor/auto/apply.rs** — intra_method_duplicate — Duplicated block in `apply_fixes_chunked` — 6 identical lines at line 684 and line 761
108. **src/core/refactor/auto/apply.rs** — intra_method_duplicate — Duplicated block in `apply_insertions_to_content` — 5 identical lines at line 200 and line 209
109. **src/core/refactor/auto/apply.rs** — intra_method_duplicate — Duplicated block in `apply_new_files_chunked` — 7 identical lines at line 789 and line 804
110. **src/core/refactor/auto/preflight.rs** — intra_method_duplicate — Duplicated block in `run_insertion_preflight` — 7 identical lines at line 92 and line 146
111. **src/core/refactor/move_items.rs** — intra_method_duplicate — Duplicated block in `move_items_with_options` — 5 identical lines at line 371 and line 391
112. **src/core/refactor/move_items/whole_file_move.rs** — intra_method_duplicate — Duplicated block in `move_file` — 5 identical lines at line 142 and line 181
113. **src/core/refactor/plan/generate/convention_fixes.rs** — intra_method_duplicate — Duplicated block in `apply_convention_fixes` — 5 identical lines at line 321 and line 346
114. **src/core/refactor/plan/generate/duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_simple_duplicate_fixes` — 5 identical lines at line 417 and line 428
115. **src/core/refactor/plan/generate/duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `is_used_by_binary_crate` — 5 identical lines at line 554 and line 563
116. **src/core/refactor/plan/generate/intra_duplicate_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_intra_duplicate_fixes` — 5 identical lines at line 107 and line 120
117. **src/core/refactor/plan/generate/orphaned_test_fixes.rs** — intra_method_duplicate — Duplicated block in `find_test_function_range` — 6 identical lines at line 249 and line 378
118. **src/core/refactor/plan/generate/orphaned_test_fixes.rs** — intra_method_duplicate — Duplicated block in `generate_orphaned_test_fixes` — 5 identical lines at line 251 and line 406
119. **src/core/refactor/plan/generate/signatures.rs** — intra_method_duplicate — Duplicated block in `fallback_body` — 5 identical lines at line 46 and line 53
120. **src/core/refactor/plan/generate/test_gen_fixes.rs** — intra_method_duplicate — Duplicated block in `build_inline_test_module` — 7 identical lines at line 173 and line 183
121. **src/core/refactor/plan/verify.rs** — intra_method_duplicate — Duplicated block in `run_fix_iteration` — 13 identical lines at line 444 and line 474
122. **src/core/release/changelog/sections.rs** — intra_method_duplicate — Duplicated block in `append_item_to_subsection` — 5 identical lines at line 500 and line 513
123. **src/core/release/pipeline.rs** — intra_method_duplicate — Duplicated block in `build_release_steps` — 5 identical lines at line 912 and line 928
124. **src/core/release/pipeline.rs** — intra_method_duplicate — Duplicated block in `validate_changelog` — 7 identical lines at line 368 and line 379
125. **src/core/release/version.rs** — intra_method_duplicate — Duplicated block in `update_version_in_file` — 5 identical lines at line 81 and line 108
126. **src/core/release/workflow.rs** — intra_method_duplicate — Duplicated block in `run_command` — 7 identical lines at line 44 and line 91
127. **src/core/server/client.rs** — intra_method_duplicate — Duplicated block in `get_local_ips` — 7 identical lines at line 398 and line 425
128. **src/core/server/connection.rs** — intra_method_duplicate — Duplicated block in `resolve_internal` — 5 identical lines at line 80 and line 101
129. **src/core/server/transfer.rs** — intra_method_duplicate — Duplicated block in `run_server_to_server` — 7 identical lines at line 398 and line 413
130. **src/core/code_audit/baseline.rs** — near_duplicate — Near-duplicate `load_baseline_from_ref` — structurally identical to src/core/extension/test/baseline.rs
131. **src/core/extension/grammar.rs** — near_duplicate — Near-duplicate `default_context` — structurally identical to src/core/refactor/transform.rs
132. **src/core/extension/test/baseline.rs** — near_duplicate — Near-duplicate `load_baseline_from_ref` — structurally identical to src/core/code_audit/baseline.rs
133. **src/core/extension/update_check.rs** — near_duplicate — Near-duplicate `cache_path` — structurally identical to src/core/upgrade/update_check.rs
134. **src/core/extension/update_check.rs** — near_duplicate — Near-duplicate `is_disabled_by_config` — structurally identical to src/core/upgrade/update_check.rs
135. **src/core/extension/update_check.rs** — near_duplicate — Near-duplicate `now_unix` — structurally identical to src/core/upgrade/update_check.rs
136. **src/core/extension/update_check.rs** — near_duplicate — Near-duplicate `read_cache` — structurally identical to src/core/upgrade/update_check.rs
137. **src/core/extension/update_check.rs** — near_duplicate — Near-duplicate `write_cache` — structurally identical to src/core/upgrade/update_check.rs
138. **src/core/refactor/add.rs** — near_duplicate — Near-duplicate `resolve_root` — structurally identical to src/core/refactor/move_items/whole_file_move.rs
139. **src/core/refactor/move_items/whole_file_move.rs** — near_duplicate — Near-duplicate `resolve_root` — structurally identical to src/core/refactor/add.rs
140. **src/core/refactor/transform.rs** — near_duplicate — Near-duplicate `default_context` — structurally identical to src/core/extension/grammar.rs
141. **src/commands/fleet.rs** — parallel_implementation — Parallel implementation: `log_fleet_dashboard` has similar call pattern to `log_dashboard_table` in src/commands/status.rs — shared calls: `is_terminal`, `max`, `stderr`
142. **src/commands/status.rs** — parallel_implementation — Parallel implementation: `log_dashboard_table` has similar call pattern to `log_fleet_dashboard` in src/commands/fleet.rs — shared calls: `is_terminal`, `max`, `stderr`
143. **src/core/code_audit/docs_audit/verify.rs** — parallel_implementation — Parallel implementation: `search_class_in_dir` has similar call pattern to `scan_dir_for_reference` in src/core/refactor/plan/generate/duplicate_fixes.rs — shared calls: `Only`, `any_file_matches`, `read_to_string`
144. **src/core/component/inventory.rs** — parallel_implementation — Parallel implementation: `inventory` has similar call pattern to `prefer_cwd_for_component` in src/core/component/resolution.rs — shared calls: `current_dir`, `detect_git_root`, `discover_from_portable`
145. **src/core/component/resolution.rs** — parallel_implementation — Parallel implementation: `prefer_cwd_for_component` has similar call pattern to `inventory` in src/core/component/inventory.rs — shared calls: `current_dir`, `detect_git_root`, `discover_from_portable`
146. **src/core/deploy/planning.rs** — parallel_implementation — Parallel implementation: `calculate_directory_size` has similar call pattern to `scan_available_extensions` in src/core/extension/lifecycle.rs — shared calls: `is_dir`, `path`, `read_dir`
147. **src/core/deploy/safety_and_artifact.rs** — parallel_implementation — Parallel implementation: `deploy_artifact` has similar call pattern to `deploy_with_override` in src/core/deploy/version_overrides.rs — shared calls: `execute`, `failure`, `fix_deployed_permissions`, `ok_or_else`, `quote_path` (+4 more)
148. **src/core/deploy/version_overrides.rs** — parallel_implementation — Parallel implementation: `deploy_with_override` has similar call pattern to `deploy_artifact` in src/core/deploy/safety_and_artifact.rs — shared calls: `execute`, `failure`, `fix_deployed_permissions`, `ok_or_else`, `quote_path` (+4 more)
149. **src/core/extension/lifecycle.rs** — parallel_implementation — Parallel implementation: `scan_available_extensions` has similar call pattern to `calculate_directory_size` in src/core/deploy/planning.rs — shared calls: `is_dir`, `path`, `read_dir`
150. **src/core/refactor/plan/generate/duplicate_fixes.rs** — parallel_implementation — Parallel implementation: `scan_dir_for_reference` has similar call pattern to `search_class_in_dir` in src/core/code_audit/docs_audit/verify.rs — shared calls: `Only`, `any_file_matches`, `read_to_string`
151. **src/commands/utils/entity_suggest.rs** — unreferenced_export — Public function 'find_entity_match' is not referenced by any other file
152. **src/commands/utils/entity_suggest.rs** — unreferenced_export — Public function 'generate_entity_hints' is not referenced by any other file
153. **src/commands/utils/tty.rs** — unreferenced_export — Public function 'is_stdin_tty' is not referenced by any other file
154. **src/commands/utils/tty.rs** — unreferenced_export — Public function 'require_tty_for_interactive' is not referenced by any other file
155. **src/core/code_audit/core_fingerprint.rs** — unused_parameter — Unused parameter 'b' in function 'ignores_second' (no callers found)
156. **src/core/code_audit/docs_audit/verify.rs** — unreferenced_export — Public function 'verify_claim' is not referenced by any other file
157. **src/core/code_audit/impact.rs** — unreferenced_export — Public function 'diff_changed_files' is not referenced by any other file
158. **src/core/code_audit/impact.rs** — unreferenced_export — Public function 'expand_scope' is not referenced by any other file
159. **src/core/code_audit/impact.rs** — unreferenced_export — Public function 'find_affected_files' is not referenced by any other file
160. **src/core/code_audit/impact.rs** — unreferenced_export — Public function 'fingerprint_from_git_ref' is not referenced by any other file
161. **src/core/code_audit/run.rs** — unreferenced_export — Public function 'default_audit_exit_code' is not referenced by any other file
162. **src/core/code_audit/test_mapping.rs** — unreferenced_export — Public function 'test_to_source_path' is not referenced by any other file
163. **src/core/component/inventory.rs** — unreferenced_export — Public function 'extension_provides_artifact_pattern' is not referenced by any other file
164. **src/core/component/portable.rs** — unreferenced_export — Public function 'has_portable_config' is not referenced by any other file
165. **src/core/component/portable.rs** — unreferenced_export — Public function 'read_portable_config' is not referenced by any other file
166. **src/core/component/resolution.rs** — unreferenced_export — Public function 'detect_from_cwd' is not referenced by any other file
167. **src/core/config.rs** — unreferenced_export — Public function 'collect_array_fields' is not referenced by any other file
168. **src/core/deploy/planning.rs** — unreferenced_export — Public function 'classify_release_state' is not referenced by any other file
169. **src/core/engine/contract.rs** — unreferenced_export — Public function 'branches_by_variant' is not referenced by any other file
170. **src/core/engine/contract.rs** — unreferenced_export — Public function 'can_fail' is not referenced by any other file
171. **src/core/engine/contract.rs** — unreferenced_export — Public function 'extract_contracts' is not referenced by any other file
172. **src/core/engine/contract_testgen.rs** — unreferenced_export — Public function 'generate_tests_for_file' is not referenced by any other file
173. **src/core/engine/contract_testgen.rs** — unreferenced_export — Public function 'generate_tests_for_methods' is not referenced by any other file
174. **src/core/engine/symbol_graph.rs** — unreferenced_export — Public function 'parse_imports' is not referenced by any other file
175. **src/core/engine/symbol_graph.rs** — unreferenced_export — Public function 'trace_symbol_callers' is not referenced by any other file
176. **src/core/engine/temp.rs** — unreferenced_export — Public function 'ensure_runtime_tmp_dir' is not referenced by any other file
177. **src/core/engine/text.rs** — unreferenced_export — Public function 'normalize_doc_segment' is not referenced by any other file
178. **src/core/extension/execution.rs** — unreferenced_export — Public function 'build_exec_env' is not referenced by any other file
179. **src/core/extension/execution.rs** — unreferenced_export — Public function 'is_extension_compatible' is not referenced by any other file
180. **src/core/extension/grammar.rs** — unused_parameter — Unused parameter 'path' in function 'load' (no callers found)
181. **src/core/extension/lifecycle.rs** — unreferenced_export — Public function 'derive_id_from_url' is not referenced by any other file
182. **src/core/extension/lifecycle.rs** — unreferenced_export — Public function 'is_git_url' is not referenced by any other file
183. **src/core/extension/runner.rs** — unreferenced_export — Public function 'path_override' is not referenced by any other file
184. **src/core/project/component/attachments.rs** — unreferenced_export — Public function 'attach_component_path' is not referenced by any other file
185. **src/core/refactor/auto/apply.rs** — unreferenced_export — Public function 'apply_new_files' is not referenced by any other file
186. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'fix_plan_temp_path' is not referenced by any other file
187. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'fix_results_temp_path' is not referenced by any other file
188. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'for_apply' is not referenced by any other file
189. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'parse_fix_plan_file' is not referenced by any other file
190. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'parse_fix_results_file' is not referenced by any other file
191. **src/core/refactor/auto/sidecar.rs** — unreferenced_export — Public function 'read_fix_results' is not referenced by any other file
192. **src/core/refactor/auto/tracking.rs** — unreferenced_export — Public function 'begin_applied_fix_capture' is not referenced by any other file
193. **src/core/refactor/auto/tracking.rs** — unreferenced_export — Public function 'changed_file_set' is not referenced by any other file
194. **src/core/refactor/auto/tracking.rs** — unreferenced_export — Public function 'count_newly_changed' is not referenced by any other file
195. **src/core/refactor/auto/tracking.rs** — unreferenced_export — Public function 'finish_applied_fix_capture' is not referenced by any other file
196. **src/core/refactor/auto/tracking.rs** — unreferenced_export — Public function 'newly_changed_files' is not referenced by any other file
197. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'analyze_stage_overlaps' is not referenced by any other file
198. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'normalize_sources' is not referenced by any other file
199. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'run_lint_refactor' is not referenced by any other file
200. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'run_test_refactor' is not referenced by any other file
201. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'summarize_plan_totals' is not referenced by any other file
202. **src/core/refactor/plan/planner.rs** — unreferenced_export — Public function 'test_refactor_request' is not referenced by any other file
203. **src/core/release/changelog/sections.rs** — unreferenced_export — Public function 'add_next_section_items' is not referenced by any other file
204. **src/core/release/utils.rs** — unreferenced_export — Public function 'parse_release_artifacts' is not referenced by any other file
205. **src/core/release/version.rs** — unreferenced_export — Public function 'validate_baseline_alignment' is not referenced by any other file
206. **src/commands/release.rs** — legacy_comment — Potential legacy/stale comment on line 208: --outdated: only components with unreleased code commits
207. **src/core/code_audit/baseline.rs** — missing_test_method — Method 'compare' has no corresponding test (expected 'test_compare')
208. **src/core/code_audit/baseline.rs** — missing_test_method — Method 'load_baseline' has no corresponding test (expected 'test_load_baseline')
209. **src/core/code_audit/baseline.rs** — missing_test_method — Method 'load_baseline_from_ref' has no corresponding test (expected 'test_load_baseline_from_ref')
210. **src/core/code_audit/baseline.rs** — missing_test_method — Method 'save_baseline' has no corresponding test (expected 'test_save_baseline')
211. **src/core/code_audit/baseline.rs** — missing_test_method — Method 'save_baseline_scoped' has no corresponding test (expected 'test_save_baseline_scoped')
212. **src/core/code_audit/baseline.rs** — orphaned_test — Test method 'test_make_finding' references 'make_finding' which no longer exists in the source
213. **src/core/code_audit/baseline.rs** — orphaned_test — Test method 'test_make_result' references 'make_result' which no longer exists in the source
214. **src/core/code_audit/baseline.rs** — orphaned_test — Test method 'test_save_and_load_baseline' references 'save_and_load_baseline' which no longer exists in the source
215. **src/core/code_audit/codebase_map.rs** — missing_test_file — No test file found (expected 'tests/core/code_audit/codebase_map_test.rs') and no inline tests
216. **src/core/code_audit/comment_hygiene.rs** — missing_test_method — Method 'run' has no corresponding test (expected 'test_run')
217. **src/core/code_audit/comment_hygiene.rs** — orphaned_test — Test method 'test_make_fp' references 'make_fp' which no longer exists in the source
218. **src/core/code_audit/compare.rs** — missing_test_method — Method 'finding_fingerprint' has no corresponding test (expected 'test_finding_fingerprint')
219. **src/core/code_audit/compare.rs** — missing_test_method — Method 'score_delta' has no corresponding test (expected 'test_score_delta')
220. **src/core/code_audit/compare.rs** — missing_test_method — Method 'weighted_finding_score_with' has no corresponding test (expected 'test_weighted_finding_score_with')
221. **src/core/code_audit/compiler_warnings.rs** — missing_test_method — Method 'run' has no corresponding test (expected 'test_run')
222. **src/core/code_audit/conventions.rs** — missing_test_method — Method 'all_names' has no corresponding test (expected 'test_all_names')
223. **src/core/code_audit/conventions.rs** — missing_test_method — Method 'check_signature_consistency' has no corresponding test (expected 'test_check_signature_consistency')
224. **src/core/code_audit/conventions.rs** — missing_test_method — Method 'discover_conventions' has no corresponding test (expected 'test_discover_conventions')
225. **src/core/code_audit/conventions.rs** — missing_test_method — Method 'from_extension' has no corresponding test (expected 'test_from_extension')
226. **src/core/code_audit/conventions.rs** — missing_test_method — Method 'from_path' has no corresponding test (expected 'test_from_path')
227. **src/core/code_audit/conventions.rs** — orphaned_test — Test method 'test_discover_convention_from_fingerprints' references 'discover_convention_from_fingerprints' which no longer exists in the source
228. **src/core/code_audit/conventions.rs** — orphaned_test — Test method 'test_discover_interface_convention' references 'discover_interface_convention' which no longer exists in the source
229. **src/core/code_audit/core_fingerprint.rs** — missing_test_method — Method 'fingerprint_from_grammar' has no corresponding test (expected 'test_fingerprint_from_grammar')
230. **src/core/code_audit/core_fingerprint.rs** — missing_test_method — Method 'ignores_second' has no corresponding test (expected 'test_ignores_second')
231. **src/core/code_audit/core_fingerprint.rs** — missing_test_method — Method 'load' has no corresponding test (expected 'test_load')
232. **src/core/code_audit/core_fingerprint.rs** — missing_test_method — Method 'load_grammar_for_ext' has no corresponding test (expected 'test_load_grammar_for_ext')
233. **src/core/code_audit/core_fingerprint.rs** — missing_test_method — Method 'uses_both' has no corresponding test (expected 'test_uses_both')
234. **src/core/code_audit/core_fingerprint.rs** — orphaned_test — Test method 'test_rust_grammar' references 'rust_grammar' which no longer exists in the source
235. **src/core/code_audit/dead_code.rs** — missing_test_method — Method 'analyze_dead_code' has no corresponding test (expected 'test_analyze_dead_code')
236. **src/core/code_audit/dead_code.rs** — orphaned_test — Test method 'test_make_fingerprint' references 'make_fingerprint' which no longer exists in the source
237. **src/core/code_audit/discovery.rs** — missing_test_method — Method 'auto_discover_groups' has no corresponding test (expected 'test_auto_discover_groups')
238. **src/core/code_audit/discovery.rs** — missing_test_method — Method 'discover_cross_directory' has no corresponding test (expected 'test_discover_cross_directory')
239. **src/core/code_audit/docs.rs** — missing_test_method — Method 'generate_from_audit' has no corresponding test (expected 'test_generate_from_audit')
240. **src/core/code_audit/docs.rs** — missing_test_method — Method 'generate_from_spec' has no corresponding test (expected 'test_generate_from_spec')
241. **src/core/code_audit/docs_audit/claims.rs** — missing_test_method — Method 'extract_claims' has no corresponding test (expected 'test_extract_claims')
242. **src/core/code_audit/docs_audit/verify.rs** — missing_test_method — Method 'verify_claim' has no corresponding test (expected 'test_verify_claim')
243. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_absolute_directory_needs_verification' references 'verify_absolute_directory_needs_verification' which no longer exists in the source
244. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_absolute_path_needs_verification' references 'verify_absolute_path_needs_verification' which no longer exists in the source
245. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_existing_directory' references 'verify_existing_directory' which no longer exists in the source
246. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_existing_file' references 'verify_existing_file' which no longer exists in the source
247. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_file_with_component_prefix' references 'verify_file_with_component_prefix' which no longer exists in the source
248. **src/core/code_audit/docs_audit/verify.rs** — orphaned_test — Test method 'test_verify_missing_file' references 'verify_missing_file' which no longer exists in the source
249. **src/core/code_audit/duplication.rs** — missing_test_method — Method 'detect_duplicate_groups' has no corresponding test (expected 'test_detect_duplicate_groups')
250. **src/core/code_audit/duplication.rs** — missing_test_method — Method 'detect_duplicates' has no corresponding test (expected 'test_detect_duplicates')
251. **src/core/code_audit/duplication.rs** — missing_test_method — Method 'detect_intra_method_duplicates' has no corresponding test (expected 'test_detect_intra_method_duplicates')
252. **src/core/code_audit/duplication.rs** — missing_test_method — Method 'detect_near_duplicates' has no corresponding test (expected 'test_detect_near_duplicates')
253. **src/core/code_audit/duplication.rs** — missing_test_method — Method 'detect_parallel_implementations' has no corresponding test (expected 'test_detect_parallel_implementations')
254. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_extract_calls_skips_keywords' references 'extract_calls_skips_keywords' which no longer exists in the source
255. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_jaccard_disjoint_sets' references 'jaccard_disjoint_sets' which no longer exists in the source
256. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_jaccard_identical_sets' references 'jaccard_identical_sets' which no longer exists in the source
257. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_lcs_identical_sequences' references 'lcs_identical_sequences' which no longer exists in the source
258. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_lcs_partial_overlap' references 'lcs_partial_overlap' which no longer exists in the source
259. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_make_fingerprint' references 'make_fingerprint' which no longer exists in the source
260. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_duplicates_different_hashes' references 'no_duplicates_different_hashes' which no longer exists in the source
261. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_duplicates_single_location' references 'no_duplicates_single_location' which no longer exists in the source
262. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_parallel_for_generic_names' references 'no_parallel_for_generic_names' which no longer exists in the source
263. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_parallel_for_same_file' references 'no_parallel_for_same_file' which no longer exists in the source
264. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_parallel_for_trivial_methods' references 'no_parallel_for_trivial_methods' which no longer exists in the source
265. **src/core/code_audit/duplication.rs** — orphaned_test — Test method 'test_no_parallel_for_unrelated_functions' references 'no_parallel_for_unrelated_functions' which no longer exists in the source
266. **src/core/code_audit/findings.rs** — missing_test_method — Method 'build_findings' has no corresponding test (expected 'test_build_findings')
267. **src/core/code_audit/fingerprint.rs** — missing_test_file — No test file found (expected 'tests/core/code_audit/fingerprint_test.rs') and no inline tests
268. **src/core/code_audit/impact.rs** — missing_test_method — Method 'diff_changed_files' has no corresponding test (expected 'test_diff_changed_files')
269. **src/core/code_audit/impact.rs** — missing_test_method — Method 'expand_scope' has no corresponding test (expected 'test_expand_scope')
270. **src/core/code_audit/impact.rs** — missing_test_method — Method 'find_affected_files' has no corresponding test (expected 'test_find_affected_files')
271. **src/core/code_audit/impact.rs** — missing_test_method — Method 'fingerprint_from_git_ref' has no corresponding test (expected 'test_fingerprint_from_git_ref')
272. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_calls_removed_function' references 'find_affected_calls_removed_function' which no longer exists in the source
273. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_extends_renamed_class' references 'find_affected_extends_renamed_class' which no longer exists in the source
274. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_hooks_removed_action' references 'find_affected_hooks_removed_action' which no longer exists in the source
275. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_imports_renamed_type' references 'find_affected_imports_renamed_type' which no longer exists in the source
276. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_renamed_function_in_calls' references 'find_affected_renamed_function_in_calls' which no longer exists in the source
277. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_find_affected_skips_changed_files' references 'find_affected_skips_changed_files' which no longer exists in the source
278. **src/core/code_audit/impact.rs** — orphaned_test — Test method 'test_make_fingerprint' references 'make_fingerprint' which no longer exists in the source
279. **src/core/code_audit/layer_ownership.rs** — missing_test_method — Method 'run' has no corresponding test (expected 'test_run')
280. **src/core/code_audit/naming.rs** — missing_test_method — Method 'detect_naming_suffix' has no corresponding test (expected 'test_detect_naming_suffix')
281. **src/core/code_audit/naming.rs** — missing_test_method — Method 'extract_class_suffix' has no corresponding test (expected 'test_extract_class_suffix')
282. **src/core/code_audit/naming.rs** — missing_test_method — Method 'pluralize' has no corresponding test (expected 'test_pluralize')
283. **src/core/code_audit/naming.rs** — missing_test_method — Method 'singularize' has no corresponding test (expected 'test_singularize')
284. **src/core/code_audit/naming.rs** — missing_test_method — Method 'suffix_matches' has no corresponding test (expected 'test_suffix_matches')
285. **src/core/code_audit/report.rs** — missing_test_method — Method 'build_audit_summary' has no corresponding test (expected 'test_build_audit_summary')
286. **src/core/code_audit/report.rs** — missing_test_method — Method 'compute_fixability' has no corresponding test (expected 'test_compute_fixability')
287. **src/core/code_audit/report.rs** — missing_test_method — Method 'finding_kind_key' has no corresponding test (expected 'test_finding_kind_key')
288. **src/core/code_audit/report.rs** — missing_test_method — Method 'from_main_workflow' has no corresponding test (expected 'test_from_main_workflow')
289. **src/core/code_audit/run.rs** — missing_test_method — Method 'default_audit_exit_code' has no corresponding test (expected 'test_default_audit_exit_code')
290. **src/core/code_audit/run.rs** — missing_test_method — Method 'run_main_audit_workflow' has no corresponding test (expected 'test_run_main_audit_workflow')
291. **src/core/code_audit/signatures.rs** — missing_test_method — Method 'compute_signature_skeleton' has no corresponding test (expected 'test_compute_signature_skeleton')
292. **src/core/code_audit/signatures.rs** — missing_test_method — Method 'normalize_signature' has no corresponding test (expected 'test_normalize_signature')
293. **src/core/code_audit/signatures.rs** — missing_test_method — Method 'tokenize_signature' has no corresponding test (expected 'test_tokenize_signature')
294. **src/core/code_audit/structural.rs** — missing_test_method — Method 'analyze_structure' has no corresponding test (expected 'test_analyze_structure')
295. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_another' references 'another' which no longer exists in the source
296. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_async_handler' references 'async_handler' which no longer exists in the source
297. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_helper' references 'helper' which no longer exists in the source
298. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_internal' references 'internal' which no longer exists in the source
299. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_main_logic' references 'main_logic' which no longer exists in the source
300. **src/core/code_audit/structural.rs** — orphaned_test — Test method 'test_new' references 'new' which no longer exists in the source
_Truncated to 300 findings to avoid oversized PR comments (500 total parsed)._
- Full audit log: https://github.com/Extra-Chill/homeboy/actions/runs/23415460044

Autofixability classification

  • Overall: human_needed
  • Autofix enabled: yes
  • Autofix attempted this run: yes
  • Human-needed failed commands:
    • audit
  • Failed commands with available automated fixes:
    • audit

Machine-readable artifacts

  • homeboy-lint-summary.json
  • homeboy-test-failures.json
  • homeboy-audit-summary.json
  • homeboy-autofixability.json

⚡ Scope: changed files only

audit (changed files only)

Auto-refactor

🔧 Autofix applied — 1 file(s) fixed via refactor

⚡ Scope: changed files only

refactor --from all

Tooling versions
  • Homeboy CLI: homeboy 0.85.3+0d9b840
  • Extension: rust from https://github.com/Extra-Chill/homeboy-extensions
  • Extension revision: unknown
  • Action: Extra-Chill/homeboy-action@v2

Homeboy Action v1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fleet observability dashboard: commits, errors, health, and task delegation

1 participant