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
- Production code compiles without the feature.
Passes with no reference to IndexDAO,
backfillLegacyAgentExecutionClassifiers, backfillVersionOf,
reindexAgentExecutions, AGENT_CLASSIFIER_BACKFILL_VERSION, or
AGENT_CLASSIFIER_BACKFILL_VERSION_VALUE.
- Test sources compile without the reflection import.
Passes with java.lang.reflect.Method no longer imported.
- 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.
- No regression elsewhere.
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.
- Formatting is clean.
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.