fix(push): keep config changes on explicit branch - #820
Conversation
|
Findings
Testing
|
|
Fixed the P1 in commit The issue was that a preceding existing-PR group could take the metadata-only path in The fix restores the captured config after every preceding reuse-group push, including metadata-only cleanup and handled failure paths, before the new explicit-branch group runs. Added a real CLI regression test covering:
The test verifies that the config lands on the explicit new branch and not on the existing PR branch. Verification:
|
|
Findings
Prior Finding
Testing
|
|
Addressed the follow-up finding in commit When Added a real-CLI regression test that updates a resource on an existing PR while changing Verification:
|
|
Findings
Prior Findings
Testing
|
Fixes #800.
Follow-up to #690.
Summary
When
teamai push --branch <name>updates an existing open-PR group and creates a new resource group in the same invocation, the pendingteamai.yamlchange must follow the explicit new branch. It must not silently modify the existing review.This follow-up also makes the dirty-clone guard conservative for
teamai.yamlmetadata changes, preserves captured config across preceding reuse-group cleanup, and removes an unreachable grouping guard identified during the #690 review.Changes
teamai.yamlchanges to the first newly-created group when--branchis supplied; keep the existing PR group on its recorded branch.teamai.yamledit as restorable only when neither the worktree nor index diff reports a file-mode change.planPushGroups()currently creates at most one new group.Test Plan
npm run typechecknpm run buildnpx vitest run src/__tests__/push-role.test.ts src/__tests__/push-pending-pr.test.ts --reporter=dot— 108 passednpx vitest run --config vitest.e2e.config.ts src/__tests__/push-role-skill-e2e.test.ts --reporter=verbose— 21 passedgit diff --checkThe E2E suite covers Claude, Codex, CodeBuddy, and OpenCode across generic Git, GitLab, and GitHub provider flows, including explicit resource/config branches, existing PR reuse, mixed routing, metadata-only reuse cleanup, and dirty-clone protection.