refactor(sidecars): drop vestigial start/stop methods (PRD 0024 chunk 3) #57
Reference in New Issue
Block a user
Delete Branch "prd-0024-chunk-3-backend-python-trim"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
PRD 0024 chunk 3: deletes the per-container
.start()/.stop()methods onDockerPipelockProxy/DockerEgress/DockerGitGate/DockerSuperviseand the matching@abstractmethoddeclarations on the four base ABCs. These methods have been documented as vestigial since PRD 0018 chunk 3 (compose-up owns per-container lifecycle); with the bundle renderer in flight (chunk 2), they're truly dead.Net: -1,678 lines, +80 lines.
What's gone
.start()/.stop()on the four DockerSidecar classes@abstractmethoddeclarations onPipelockProxy/Egress/GitGate/Superviseproxy / git_gate / egress / superviseinstance parameters onlaunch.launch()andprepare.resolve_plan()test_pipelock_sidecar_smoke,test_supervise_sidecar,test_git_gate_sidecar,test_git_gate_mirror.stop()-idempotency case intest_orphan_cleanup(network-cleanup cases remain — those test real production code)What stays
.prepare()methods on every sidecar module. The renderer (legacy + bundle),pipelock_apply.py, and the supervise dockerfile-emit flow still consume them.test_pipelock_apply.py— marked@skippending chunk 4 rewrite of its bringup helper. The test covers real production code (the runtime hot-reload); chunk 4 swaps the now-deleted.start-based bringup for a directdocker run.Deferred to chunk 5
Dockerfile.{egress,git-gate,supervise}deletion. Until the bundle flag default flips, the legacy compose path still references them viabuild:directives. Removing them now would break operators who haven't opted into the bundle.Test status
GITEA_ACTIONSguards).Compose-up has owned per-container lifecycle since PRD 0018 ch3; the .start() / .stop() methods on DockerPipelockProxy / DockerEgress / DockerGitGate / DockerSupervise (and their abstractmethod declarations in the four base ABCs) were already documented as vestigial. With the bundle path in flight (PRD 0024 ch2), they are truly dead — collapse to nothing. Changes: - Removed start/stop methods from the four DockerSidecar classes. Plan dataclasses, image/path constants, container-name helpers, and the .prepare() methods all stay (the renderer + apply path still need them). - Removed the matching @abstractmethod declarations in the base ABCs so concrete subclasses don't have to stub them. - launch.launch() and prepare.resolve_plan() no longer take proxy/git_gate/egress/supervise instance parameters. backend.py loses the four instance attributes it threaded through. prepare.resolve_plan() instantiates the four classes itself to call their .prepare() methods. - Deleted four integration tests that only exercised the removed lifecycle: test_pipelock_sidecar_smoke, test_supervise_sidecar, test_git_gate_sidecar, test_git_gate_mirror. - Dropped the .stop-idempotency case in test_orphan_cleanup; the network-cleanup cases stay (those test real production code). - Marked test_pipelock_apply @skip pending chunk 4 — its bringup helper used .start; chunk 4 rewrites it with direct `docker run`. Dockerfile deletion deferred to chunk 5 (when the bundle flag default flips) — the legacy compose path still needs Dockerfile.{egress,git-gate,supervise} until then. Net: 708 lines removed, 80 added. 533 unit tests + 27 integration tests passing (5 skipped: the chunk-4-pending case + existing GITEA_ACTIONS guards). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>