Skip to content

Testing — Remove the legacy agent classifier backfill

This change is a revert; the testing strategy is to prove the removal is complete and caused no collateral breakage. It reuses the exact symbol names from architecture.md and the steps in implementation-plan.md.

What the failing test was

AgentSpanDeploymentContractEndToEndTest.legacyAgentClassifierBackfillUsesConcreteExecutionTimeBounds() reflected into a private method:

java.lang.NoSuchMethodException: org.conductoross.conductor.ai.agentspan.runtime.service.AgentService.backfillLegacyAgentExecutionClassifiers()

Per reviewer direction, the method must not be re-added. So this test has no production counterpart to exercise and is removed entirely (see implementation-plan.md, Step 2). There is no replacement test: the behavior it covered no longer exists.

Acceptance criteria

  1. Production code compiles without the feature.
./gradlew :agentspan:compileJava

Passes with no reference to IndexDAO, backfillLegacyAgentExecutionClassifiers, backfillVersionOf, reindexAgentExecutions, AGENT_CLASSIFIER_BACKFILL_VERSION, or AGENT_CLASSIFIER_BACKFILL_VERSION_VALUE.

  1. Test sources compile without the reflection import.
./gradlew :test-harness:compileTestJava

Passes with java.lang.reflect.Method no longer imported.

  1. The previously failing suite passes.
./gradlew :test-harness:test --tests \
  'com.netflix.conductor.test.integration.agent.AgentSpanDeploymentContractEndToEndTest'

The suite runs green; the removed test is simply absent from the report.

  1. No regression elsewhere.
./gradlew test

Full suite passes. In particular, other AgentSpanDeploymentContractEndToEndTest methods that use agentService.deploy(...) / agentService.start(...) and executionDAO still run, confirming the retained fields survived the edit.

  1. Formatting is clean.
./gradlew spotlessApply

Grep-based completeness gate

Beyond compilation, confirm no dead references remain:

grep -rn "backfillLegacyAgentExecutionClassifiers" . || echo "clean"
grep -rn "AGENT_CLASSIFIER_BACKFILL_VERSION"       . || echo "clean"
grep -rn "reindexAgentExecutions"                  . || echo "clean"
grep -rn "backfillVersionOf"                       . || echo "clean"

Each command must print clean (ignoring matches inside this docs/design folder, which intentionally names the removed symbols).

Bean-wiring smoke check

AgentService is a Spring @Component with @RequiredArgsConstructor. Removing the indexDAO field changes the generated constructor signature. Confirm Spring still instantiates the bean by relying on the existing integration tests: any @SpringBootTest-based agentspan test that boots the context (including AgentSpanDeploymentContractEndToEndTest itself) will fail context startup if a required dependency were dropped incorrectly. Their green status is the wiring proof — no dedicated new test is needed, and none should be added, consistent with the "do not re-add the feature" directive.