Releases: PolyphonyRequiem/polyphony
Release list
v2.4.6
v2.4.6 — merge-X-ado: prefer OLDEST completed PR
Companion to v2.4.5. The merge verbs (merge-mg-ado, merge-impl-ado, merge-feature-ado) do their OWN list-and-pick PR lookup instead of consuming pr_number from the upstream open verb, so they need the same oldest-wins fix.
Empirical
Apex 62286666 dogfood: v2.4.5's open-mg-ado correctly returned PR 15606143, but merge-mg-ado then did its own scan and returned the newest phantom PR 15606182 (null lastMergeCommit), re-tripping missing_merge_commit.
Scope
Three merge verbs that do their own PR lookup. MergeEvidenceAdo takes pr_number as input and is unaffected.
108/108 affected tests passing.
v2.4.5
v2.4.5 — prefer OLDEST completed PR on retry
Tightens the AB#3228 reuse heuristic shipped in v2.4.4. When multiple Completed PRs match the same source/target branches, open-{mg,impl,evidence}-ado and create-feature-ado now reuse the one with the EARLIEST CreationDate rather than first-found.
Why this matters
ADO's pullrequests list endpoint returns newest-first by default. v2.4.4's first-found-wins logic could pick a phantom no-op duplicate PR (created during a retry, with permanently empty lastMergeCommit) instead of the real merge PR. The merge verb then re-trips missing_merge_commit, wedging the workflow.
The real merge is usually the FIRST attempt; phantoms are subsequent retries. Oldest-by-CreationDate selects the real merge deterministically.
Scope
Four sites: open-mg-ado, open-impl-ado, open-evidence-ado, create-feature-ado. +1 test at the symptom site.
3755 / 3755 passing.
v2.4.4 - ADO PR completion polling + duplicate-PR reuse on retry
Fixes two distinct ADO PR-lifecycle bugs that together can wedge an SDLC run on the missing_merge_commit gate.
AB#3227 - AdoClient.CompletePullRequestAsync now polls GET on the PR (8 x 250ms exponential, ~64s budget) when the PATCH response body has an empty lastMergeCommit. ADO returns 200 OK on the PATCH before its CompletionQueueWorker populates the merge commit SHA.
AB#3228 - Four ADO open-X-ado verbs (open-mg-ado, open-impl-ado, open-evidence-ado, create-feature-ado) now scan status=All and reuse Completed PRs for the same source/target on retry, rather than opening a degenerate no-op duplicate that ADO completes with a permanently-empty merge commit. open-plan-ado deferred for follow-up (snapshot-comparison body logic needs more thought).
Wrapper tighten - MergeImplPr / MergeEvidencePr ADO-path wrappers now always exit 0 per the routing-style verb envelope convention (workflows route on JSON, not exit code).
PR: #455
Polyphony v2.4.3
Polyphony v2.4.3
Self-contained single-file binaries for win-x64, linux-x64, and osx-arm64.
Each binary bundles the .NET runtime — no separate dotnet install required.
The conductor workflow suite ships from the same tag and is registered
via conductor registry add (see install instructions below).
Assets
Per-platform binaries:
polyphony-2.4.3-win-x64.exe(+.sha256)polyphony-2.4.3-linux-x64(+.sha256)polyphony-2.4.3-osx-arm64(+.sha256)
Operator launcher scripts (PowerShell; cross-platform via pwsh):
Invoke-PolyphonySdlc.ps1(+.sha256) — dispatches a full SDLC run for one apex work itemResolve-GhIdentity.ps1(+.sha256) — required by the launcher (dot-sourced)Twig-Hydration.ps1(+.sha256) — required by the launcher (dot-sourced); hydrates the per-apex worktree's twig workspaceMigrate-ToBareRepo.ps1(+.sha256) — used by the launcher's bare-layout failure remediationbootstrap-conductor.ps1(+.sha256) — first-run repo onboarding (creates.polyphony-config/)
Install
Linux / macOS (zsh, bash):
# Pick your RID: linux-x64 or osx-arm64
RID=linux-x64
curl -L -o polyphony "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.3/polyphony-2.4.3-${RID}"
curl -L -o polyphony.sha256 "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.3/polyphony-2.4.3-${RID}.sha256"
shasum -a 256 -c polyphony.sha256
chmod +x polyphony
mkdir -p ~/.polyphony/bin && mv polyphony ~/.polyphony/bin/
# Add ~/.polyphony/bin to PATH if it isn't already.
~/.polyphony/bin/polyphony --versionWindows (PowerShell):
$ver = "2.4.3"
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe" -OutFile polyphony.exe
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe.sha256" -OutFile polyphony.exe.sha256
# Verify (the .sha256 file is a one-line "hash filename" record):
$expected = (Get-Content polyphony.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash polyphony.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -ne $actual) { throw "SHA256 mismatch" }
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.polyphony\bin" | Out-Null
Move-Item polyphony.exe "$env:USERPROFILE\.polyphony\bin\" -Force
& "$env:USERPROFILE\.polyphony\bin\polyphony.exe" --versionRegister the workflow suite with conductor
conductor registry add polyphony PolyphonyRequiem/polyphony
conductor registry list polyphonySee docs/onboarding-guide.md for the full bootstrap walkthrough.
Polyphony v2.4.2
Polyphony v2.4.2
Self-contained single-file binaries for win-x64, linux-x64, and osx-arm64.
Each binary bundles the .NET runtime — no separate dotnet install required.
The conductor workflow suite ships from the same tag and is registered
via conductor registry add (see install instructions below).
Assets
Per-platform binaries:
polyphony-2.4.2-win-x64.exe(+.sha256)polyphony-2.4.2-linux-x64(+.sha256)polyphony-2.4.2-osx-arm64(+.sha256)
Operator launcher scripts (PowerShell; cross-platform via pwsh):
Invoke-PolyphonySdlc.ps1(+.sha256) — dispatches a full SDLC run for one apex work itemResolve-GhIdentity.ps1(+.sha256) — required by the launcher (dot-sourced)Twig-Hydration.ps1(+.sha256) — required by the launcher (dot-sourced); hydrates the per-apex worktree's twig workspaceMigrate-ToBareRepo.ps1(+.sha256) — used by the launcher's bare-layout failure remediationbootstrap-conductor.ps1(+.sha256) — first-run repo onboarding (creates.polyphony-config/)
Install
Linux / macOS (zsh, bash):
# Pick your RID: linux-x64 or osx-arm64
RID=linux-x64
curl -L -o polyphony "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.2/polyphony-2.4.2-${RID}"
curl -L -o polyphony.sha256 "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.2/polyphony-2.4.2-${RID}.sha256"
shasum -a 256 -c polyphony.sha256
chmod +x polyphony
mkdir -p ~/.polyphony/bin && mv polyphony ~/.polyphony/bin/
# Add ~/.polyphony/bin to PATH if it isn't already.
~/.polyphony/bin/polyphony --versionWindows (PowerShell):
$ver = "2.4.2"
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe" -OutFile polyphony.exe
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe.sha256" -OutFile polyphony.exe.sha256
# Verify (the .sha256 file is a one-line "hash filename" record):
$expected = (Get-Content polyphony.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash polyphony.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -ne $actual) { throw "SHA256 mismatch" }
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.polyphony\bin" | Out-Null
Move-Item polyphony.exe "$env:USERPROFILE\.polyphony\bin\" -Force
& "$env:USERPROFILE\.polyphony\bin\polyphony.exe" --versionRegister the workflow suite with conductor
conductor registry add polyphony PolyphonyRequiem/polyphony
conductor registry list polyphonySee docs/onboarding-guide.md for the full bootstrap walkthrough.
Polyphony v2.4.1
Polyphony v2.4.1
Self-contained single-file binaries for win-x64, linux-x64, and osx-arm64.
Each binary bundles the .NET runtime — no separate dotnet install required.
The conductor workflow suite ships from the same tag and is registered
via conductor registry add (see install instructions below).
Assets
Per-platform binaries:
polyphony-2.4.1-win-x64.exe(+.sha256)polyphony-2.4.1-linux-x64(+.sha256)polyphony-2.4.1-osx-arm64(+.sha256)
Operator launcher scripts (PowerShell; cross-platform via pwsh):
Invoke-PolyphonySdlc.ps1(+.sha256) — dispatches a full SDLC run for one apex work itemResolve-GhIdentity.ps1(+.sha256) — required by the launcher (dot-sourced)Twig-Hydration.ps1(+.sha256) — required by the launcher (dot-sourced); hydrates the per-apex worktree's twig workspaceMigrate-ToBareRepo.ps1(+.sha256) — used by the launcher's bare-layout failure remediationbootstrap-conductor.ps1(+.sha256) — first-run repo onboarding (creates.polyphony-config/)
Install
Linux / macOS (zsh, bash):
# Pick your RID: linux-x64 or osx-arm64
RID=linux-x64
curl -L -o polyphony "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.1/polyphony-2.4.1-${RID}"
curl -L -o polyphony.sha256 "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.1/polyphony-2.4.1-${RID}.sha256"
shasum -a 256 -c polyphony.sha256
chmod +x polyphony
mkdir -p ~/.polyphony/bin && mv polyphony ~/.polyphony/bin/
# Add ~/.polyphony/bin to PATH if it isn't already.
~/.polyphony/bin/polyphony --versionWindows (PowerShell):
$ver = "2.4.1"
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe" -OutFile polyphony.exe
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe.sha256" -OutFile polyphony.exe.sha256
# Verify (the .sha256 file is a one-line "hash filename" record):
$expected = (Get-Content polyphony.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash polyphony.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -ne $actual) { throw "SHA256 mismatch" }
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.polyphony\bin" | Out-Null
Move-Item polyphony.exe "$env:USERPROFILE\.polyphony\bin\" -Force
& "$env:USERPROFILE\.polyphony\bin\polyphony.exe" --versionRegister the workflow suite with conductor
conductor registry add polyphony PolyphonyRequiem/polyphony
conductor registry list polyphonySee docs/onboarding-guide.md for the full bootstrap walkthrough.
Polyphony v2.4.0
Polyphony v2.4.0
Self-contained single-file binaries for win-x64, linux-x64, and osx-arm64.
Each binary bundles the .NET runtime — no separate dotnet install required.
The conductor workflow suite ships from the same tag and is registered
via conductor registry add (see install instructions below).
Assets
Per-platform binaries:
polyphony-2.4.0-win-x64.exe(+.sha256)polyphony-2.4.0-linux-x64(+.sha256)polyphony-2.4.0-osx-arm64(+.sha256)
Operator launcher scripts (PowerShell; cross-platform via pwsh):
Invoke-PolyphonySdlc.ps1(+.sha256) — dispatches a full SDLC run for one apex work itemResolve-GhIdentity.ps1(+.sha256) — required by the launcher (dot-sourced)Twig-Hydration.ps1(+.sha256) — required by the launcher (dot-sourced); hydrates the per-apex worktree's twig workspaceMigrate-ToBareRepo.ps1(+.sha256) — used by the launcher's bare-layout failure remediationbootstrap-conductor.ps1(+.sha256) — first-run repo onboarding (creates.polyphony-config/)
Install
Linux / macOS (zsh, bash):
# Pick your RID: linux-x64 or osx-arm64
RID=linux-x64
curl -L -o polyphony "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.0/polyphony-2.4.0-${RID}"
curl -L -o polyphony.sha256 "https://github.com/PolyphonyRequiem/polyphony/releases/download/v2.4.0/polyphony-2.4.0-${RID}.sha256"
shasum -a 256 -c polyphony.sha256
chmod +x polyphony
mkdir -p ~/.polyphony/bin && mv polyphony ~/.polyphony/bin/
# Add ~/.polyphony/bin to PATH if it isn't already.
~/.polyphony/bin/polyphony --versionWindows (PowerShell):
$ver = "2.4.0"
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe" -OutFile polyphony.exe
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe.sha256" -OutFile polyphony.exe.sha256
# Verify (the .sha256 file is a one-line "hash filename" record):
$expected = (Get-Content polyphony.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash polyphony.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -ne $actual) { throw "SHA256 mismatch" }
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.polyphony\bin" | Out-Null
Move-Item polyphony.exe "$env:USERPROFILE\.polyphony\bin\" -Force
& "$env:USERPROFILE\.polyphony\bin\polyphony.exe" --versionRegister the workflow suite with conductor
conductor registry add polyphony PolyphonyRequiem/polyphony
conductor registry list polyphonySee docs/onboarding-guide.md for the full bootstrap walkthrough.
Polyphony v1.0.1
Polyphony v1.0.1
Self-contained single-file binaries for win-x64, linux-x64, and osx-arm64.
Each binary bundles the .NET runtime — no separate dotnet install required.
The conductor workflow suite ships from the same tag and is registered
via conductor registry add (see install instructions below).
Install
Linux / macOS (zsh, bash):
# Pick your RID: linux-x64 or osx-arm64
RID=linux-x64
curl -L -o polyphony "https://github.com/PolyphonyRequiem/polyphony/releases/download/v1.0.1/polyphony-1.0.1-${RID}"
curl -L -o polyphony.sha256 "https://github.com/PolyphonyRequiem/polyphony/releases/download/v1.0.1/polyphony-1.0.1-${RID}.sha256"
shasum -a 256 -c polyphony.sha256
chmod +x polyphony
mkdir -p ~/.twig/bin && mv polyphony ~/.twig/bin/
# Add ~/.twig/bin to PATH if it isn't already.
~/.twig/bin/polyphony --versionWindows (PowerShell):
$ver = "1.0.1"
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe" -OutFile polyphony.exe
Invoke-WebRequest -Uri "https://github.com/PolyphonyRequiem/polyphony/releases/download/v$ver/polyphony-$ver-win-x64.exe.sha256" -OutFile polyphony.exe.sha256
# Verify (the .sha256 file is a one-line "hash filename" record):
$expected = (Get-Content polyphony.exe.sha256).Split(' ')[0]
$actual = (Get-FileHash polyphony.exe -Algorithm SHA256).Hash.ToLower()
if ($expected -ne $actual) { throw "SHA256 mismatch" }
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.twig\bin" | Out-Null
Move-Item polyphony.exe "$env:USERPROFILE\.twig\bin\" -Force
& "$env:USERPROFILE\.twig\bin\polyphony.exe" --versionRegister the workflow suite with conductor
conductor registry add polyphony PolyphonyRequiem/polyphony
conductor registry list polyphonySee docs/onboarding-guide.md for the full bootstrap walkthrough.