Files
roboco/tests/integration
6cce556536 feat(git): coordination root cuts a Main-PM integration branch per repo (#58)
The coordination/fan-out root carries a product (cell->repo map) but no
project of its own, and was forced branchless — so a cell's parent-branch
resolution fell back to the project default (master), and cell completion
merged each cell straight to master, bypassing the Main-PM integration
point and the CEO merge gate.

Per the locked branch model (master <- feature/main_pm/{root} <- cell <-
dev), the root is now the Main-PM integration point: on claim it cuts
feature/main_pm/{root} off master in EACH distinct repo the product spans
(monorepo => 1, multi-repo => N). Cells then branch off it via the existing
ancestor-branch resolution, so cell work never targets master.

- ProductService.distinct_project_ids: enumerate the repos a product spans
- TaskService._create_branch_in_project: project-parameterized branch
  creation split out of _auto_create_branch
- TaskService._ensure_coordination_root_branches: cut the integration
  branch in each repo; graceful empty when the product has no cell map yet
- _ensure_branch_for_task routes a product-backed root here, not to no-op

Co-authored-by: Renn F <rennf93@users.noreply.github.com>
2026-06-04 05:48:21 +02:00
..
2026-05-02 03:11:49 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 22:25:39 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-05 03:19:43 +02:00
2026-05-05 03:19:43 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00
2026-05-06 21:02:31 +02:00