fix(#7378): remove migrated repos from per-org config - #7385
Conversation
repos migrate previously set enabled: false on successful migrations. Legacy repo-maintenance reconcile then treated those entries as offboard candidates and could open a PR deleting the newly installed per-repo shim. Delete the source repository entry instead, and add DeleteRepo to OrgConfigWriter so callers do not mutate RepoMap() directly. Failed, unselected, and pre-existing disabled entries stay in place. A rerun still removes still-enabled entries for repos already detected as per-repo installed. Note: pre-commit could not fetch remote hook repos (HTTP 403). gofmt, go vet, gitleaks, lychee, and lint-docs-links were run directly. golangci-lint is not installed in this sandbox. Closes #7378
|
🤖 Finished Review · ✅ Success · Started 7:55 PM UTC · Completed 8:07 PM UTC Commit: Runtime: pi · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $4.27 |
Site previewPreview: https://c527e36c-site.fullsend-ai.workers.dev Commit: |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Looks good to me |
|
🤖 Finished Retro · ✅ Success · Started 9:06 PM UTC · Completed 9:14 PM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-5 · Effort: high · Cost: $1.75 |
|
PR #7385 is the correct, successful resolution of issue #7378. The first attempt, PR #7382, implemented only the guard-variable fix the issue originally hypothesized; maintainer ggallen closed it and rewrote the issue's acceptance criteria after determining the real fix required deleting (not disabling) migrated repo entries from the source org config. That saga (wrong initial diagnosis, ~$17 spent on the first triage/code/review cycle, plus a fix-agent run that kept working for minutes after the PR was closed and pushed a commit to a dead branch) was already thoroughly analyzed by this session's own retro on PR #7382, which matched it to already-open issues #2251 and #3158/#2812 (triage/code should verify governing ADRs, not just the issue's stated hypothesis), #2284 (re-evaluate in-flight PRs when a human questions the linked issue), the in-flight-cancellation cluster (#2388, #1870, #6725, #4070, #5817), and the inline-comment 422 cluster (#6039, #7346). All remain open; I re-verified none were closed since and am not re-filing. This second pass (re-triage, correct implementation adding One new, distinct finding: the 'risk-assessment' review sub-agent (ADR 0089, implemented as a pi runtime persona in Proposals filed
|
Summary
fullsend repos migratenow deletes successfully migrated repository entries from the source<org>/.fullsend/config.yamlinstead of leaving them asenabled: false. That leftover disabled entry was enough for still-running per-orgrepo-maintenance.ymlreconcile to open an offboard PR that would delete the newly installed per-repo shim.Related Issue
#7378
Changes
DeleteRepotoconfig.OrgConfigWriterso callers can remove a repository entry without mutatingRepoMap().docs/cli/repos.md, and the repo-management guide to describe removal rather than disabling.Testing
go test -race -count=1 -coverprofile=coverage.out ./internal/config/ ./internal/repos/— pass (DeleteRepo100%,Migrate91.1%).go test -race -count=1 ./internal/cli/ -run 'TestRunReposMigrate|TestReposCmd'— pass.go vet ./internal/config/ ./internal/repos/ ./internal/cli/— pass.pre-commit runcould not fetch remote hook repos (HTTP 403);golangci-lintis not installed in this sandbox.Checklist
fix(#7378): ...)Closes #7378
Post-script verification
agent/7378-remove-migrated-org-entries)6aa078bc7dc2a5f0dcf2aea8e78e604e380cb2ff..HEAD)