feat(orchestrate): reconcile mode needs dir=/owner_repo — the merge-conflict error rail points foreign-repo PRs at a tool that cannot reach them #14
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#14
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
Problem
When a merge fails because the base moved under an open PR, the error message steers to the sanctioned force-push-free recovery:
But
madt_orchestratehas nodir=orowner_repo=parameter — it only operates on the repo at the server's working directory. For a PR in a FOREIGN repo (the ADR 0019 worktree flow:madt_worktrees add dir=→madt_commit dir=→madt_finish dir= branch=), the rail is unfollowable — worse, following it literally would target the same-numbered PR in the wrong repo (from a madtea session,reconcile=29would look up madtea#29, not the other repo's #29).Live reproduction (2026-07-10, a second repo's PR #29, driven from a madtea-cwd session)
madt_finish dir=<path-to-the-other-repo> branch=docs/issue-labels-standard— merge step failed: base had moved (add/add conflict on a file that landed on main after the worktree was cut).madt_orchestrate reconcile=29→ not usable: no dir/owner_repo, would resolve against the wrong repo.git merge origin/mainin the worktree → conflict (expected), but now the worktree holds merge-in-progress state madtea did not create;madt_commit dir=<worktree>→ refused: "foreign repo ... has a merge in progress. resolve or abort that operation directly in the target repo" — correct guard, but the Bash hook then steers rawgit commitright back tomadt_commit, so the two guards point at each other;madt_add dir=<worktree>(allowed during the merge) + rawgit merge --continue(safe local merge-flow op) +madt_push dir= branch=+madt_prs action=merge owner_repo=.So a recovery is possible, but it is undiscoverable, partly hook-fighting, and not the documented rail.
Ask
madt_orchestratereconcile mode acceptsdir=(local repo/worktree to operate in) and/orowner_repo=(which repo's PR number is meant), consistent with the other tools.madt_commit's foreign merge-in-progress refusal should name the working exit (madt_add dir=+git merge --continue, or reconcile once it supports dir=) instead of the bare "resolve or abort directly in the target repo" — today that text bounces against the Bash hook's steer back to madt_commit.Acceptance
madt_orchestrate reconcile=N dir=<foreign worktree>(or owner_repo=) completes the merge-base-into-head + push flow for a foreign repo's PR.