Objective
Reduce the largest Launchplane source files so future work graph, service API, and operator UI changes can land without repeatedly editing multi-thousand-line files.
Finish Line
Work graph/UI changes land without editing giant files
Current Status
State: Backend/frontend refactor sprint is parked after a substantial cleanup pass. frontend/src/App.tsx is down to 1,907 lines; control_plane/service.py is down to 7,589 lines after extracting work-graph, product-config, and runtime-key-safety route adapters. The oversized control_plane/cli.py cleanup was split into #421 so it does not expand this issue's scope.
Next action: If #307 resumes, choose one more narrow route adapter or close/narrow the issue after confirming common work graph/operator UI changes no longer require editing giant implementation blocks.
Blocked by: No active blocker. Work is intentionally paused because the user said we are done landing changes for now.
Last verified: 2026-05-07 after PRs #422, #423, and #425 merged, post-merge CI/Security/CodeQL passed, deploy succeeded, and live health returned launchplane_req_2280daeb174548d48f43e4382471031d.
Scope
- Extract work graph HTTP route/adaptor code from the broad service module behind existing authorization and contract boundaries.
- Split operator cockpit rendering into focused frontend components without changing the user-facing workflow.
- Consider splitting workflow deploy helper shell blocks only after runtime behavior is stable.
- Keep changes mechanical and separately verified; avoid broad style rewrites.
Acceptance Criteria
- Refactor PRs preserve existing behavior and tests.
- Each PR reduces a concrete large-file hotspot or narrows a repeated edit surface.
- Work graph/provider changes can be made in focused modules without editing the broad service or app shell for common cases.
- Docs are updated only where ownership or operational behavior changes.
Relationships
Validation
- Existing unit tests for work graph contracts, service snapshot/rank routes, and GitHub Project provider continue to pass.
- Frontend typecheck/build continue to pass after component extraction.
- Targeted browser fixture review for any UI component split that changes markup or layout.
Decisions
Open Questions
- Should service route extraction use a small local router module first, or wait for a broader service boundary pass?
- Which frontend split creates the most review value: What-next row rendering, chooser controls, or data-loading state?
Objective
Reduce the largest Launchplane source files so future work graph, service API, and operator UI changes can land without repeatedly editing multi-thousand-line files.
Finish Line
Work graph/UI changes land without editing giant files
Current Status
State: Backend/frontend refactor sprint is parked after a substantial cleanup pass.
frontend/src/App.tsxis down to 1,907 lines;control_plane/service.pyis down to 7,589 lines after extracting work-graph, product-config, and runtime-key-safety route adapters. The oversizedcontrol_plane/cli.pycleanup was split into #421 so it does not expand this issue's scope.Next action: If #307 resumes, choose one more narrow route adapter or close/narrow the issue after confirming common work graph/operator UI changes no longer require editing giant implementation blocks.
Blocked by: No active blocker. Work is intentionally paused because the user said we are done landing changes for now.
Last verified: 2026-05-07 after PRs #422, #423, and #425 merged, post-merge CI/Security/CodeQL passed, deploy succeeded, and live health returned
launchplane_req_2280daeb174548d48f43e4382471031d.Scope
Acceptance Criteria
Relationships
Validation
Decisions
Open Questions