Composition root: backend selection replaces aiodocker.Docker() hardcode; retire agent __ainit__/aobject
- Dominant language
- Python
- Stars
- 670
- Forks
- 183
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 368
Description
Replace the aiodocker.Docker() hardcode (dependencies/infrastructure/docker.py:38) with backend selection at composition time; the composer builds the whole graph and injects the chosen ComputeBackend. Retire the agent's __ainit__/aobject construction in favor of explicit composition.
Success Criteria:
- [ ] Backend (docker/k8s/dummy) selected via config at composition; no hardcoded Docker in the graph.
- [ ] Agent constructed without __ainit__/aobject.
- [ ] Existing startup path parity (via the #1 CLI).
- [ ] pants test passes for affected packages
JIRA Issue: BA-6761
Contributor guide
Research direction
Start in dependencies/infrastructure/docker.py:38 and trace how the composition root builds the graph and selects a ComputeBackend. Check the #1 CLI startup path for parity, then run pants test for the affected packages. Done means config selects docker, k8s, or dummy without a hardcoded Docker, and the agent no longer uses __ainit__/aobject.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, kubernetes, python
- Domain
- backend, cli
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100