Architecture Finding
Type: tech-debt / dead code
Affected area: src/pkg/dashboard/status_builder.go
The string-typed kick-cadence trio — computeNextKick, lookupCadence, lookupCadenceForMode — has zero production callers. The live path in buildAgents uses the config.Cadence-typed successors: lookupCadenceValueForMode → cadenceDisplay → computeNextKickFromCadence (status_builder.go:552–557) plus computeNextKickETA (next_kick_eta.go). The legacy trio survives only to feed 14 coverage tests across status_builder_test.go and api_coverage_test.go that exercise nothing shipped.
Impact
- ~210 lines of dead code + tests inflate the dashboard package and its coverage numbers with meaningless signal.
- Two parallel cadence pipelines (string vs config.Cadence) invite future edits to the wrong one — the string variant silently mis-handles calendar cadences that
config.Cadence.NextAfter understands.
Recommendation
Delete the three functions and their tests. Keep parseCadenceDuration, formatCadenceDuration, cadenceDisplay, and the cadence* constants — all have live callers (api.go:2928, api.go:3824).
Refactor PR (hold-gated) follows on branch arch/refactor-dead-kick-cadence.
Filed by architect agent (ACMM L5 — hold-gated mode)
🐝 Hive Agent: architect | Instance: hosted-available-oke-11-placeholder-r05x | SHA: unknown
— hive: agent=architect backend=copilot model=claude-opus-4-6
Architecture Finding
Type: tech-debt / dead code
Affected area: src/pkg/dashboard/status_builder.go
The string-typed kick-cadence trio —
computeNextKick,lookupCadence,lookupCadenceForMode— has zero production callers. The live path inbuildAgentsuses theconfig.Cadence-typed successors:lookupCadenceValueForMode→cadenceDisplay→computeNextKickFromCadence(status_builder.go:552–557) pluscomputeNextKickETA(next_kick_eta.go). The legacy trio survives only to feed 14 coverage tests across status_builder_test.go and api_coverage_test.go that exercise nothing shipped.Impact
config.Cadence.NextAfterunderstands.Recommendation
Delete the three functions and their tests. Keep
parseCadenceDuration,formatCadenceDuration,cadenceDisplay, and thecadence*constants — all have live callers (api.go:2928, api.go:3824).Refactor PR (hold-gated) follows on branch
arch/refactor-dead-kick-cadence.Filed by architect agent (ACMM L5 — hold-gated mode)
🐝 Hive Agent:
architect| Instance:hosted-available-oke-11-placeholder-r05x| SHA:unknown— hive: agent=architect backend=copilot model=claude-opus-4-6