Rename the winget package to SplitFireAI.Agent
SplitFireAI.splitfire-agent repeated the publisher in the package segment. SplitFireAI.Agent follows winget's Publisher.Product convention. Nothing is merged under the old ID, so no users are affected. The exe name, command alias, moniker and zip asset name stay as they are, since those describe the binary and not the package. The release workflow also now checks for an open "New package" PR before submitting. Until the first one merges, the folder check is always false, so each dispatch opened another PR and Package Request issue for the same package. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Seto committed
Oct 20, 2026 at 22:09 UTC
cadd26ab994de3a1dbb97132fe0c38a34aa652fa
4 files changed
+25
-8
.github/workflows/release-winget.yml
+22
-5
@@ -36,7 +36,7 @@ permissions:
36
37
env:
38
REPO: SplitFireAI/splitfire-agent
39
- PACKAGE_IDENTIFIER: SplitFireAI.splitfire-agent
39
+ PACKAGE_IDENTIFIER: SplitFireAI.Agent
40
41
jobs:
42
submit-winget-manifest:
@@ -92,7 +92,7 @@ jobs:
92
GH_TOKEN: ${{ github.token }}
93
run: |
94
# Manifests are filed under the lowercased first letter of the
95
- # publisher, e.g. manifests/s/SplitFireAI/splitfire-agent.
95
+ # publisher, e.g. manifests/s/SplitFireAI/Agent.
96
PUBLISHER="${PACKAGE_IDENTIFIER%%.*}"
97
NAME="${PACKAGE_IDENTIFIER#*.}"
98
FIRST=$(echo "${PUBLISHER:0:1}" | tr '[:upper:]' '[:lower:]')
@@ -101,13 +101,29 @@ jobs:
101
if gh api "repos/microsoft/winget-pkgs/contents/${PATH_IN_REPO}" >/dev/null 2>&1; then
102
echo "Found ${PACKAGE_IDENTIFIER} at ${PATH_IN_REPO}; submitting an update."
103
echo "found=true" >> "$GITHUB_OUTPUT"
104
+ echo "pending=false" >> "$GITHUB_OUTPUT"
105
+ exit 0
106
+ fi
107
+
108
+ echo "found=false" >> "$GITHUB_OUTPUT"
109
+
110
+ # Until the first New-package PR merges the folder check above is
111
+ # always false, so without this every release would open another
112
+ # PR and Package Request issue for the same package.
113
+ OPEN_PR=$(gh pr list --repo microsoft/winget-pkgs --state open \
114
+ --search "New package: ${PACKAGE_IDENTIFIER} in:title" \
115
+ --json number,url --jq '.[0].url // empty')
116
+
117
+ if [ -n "$OPEN_PR" ]; then
118
+ echo "No ${PACKAGE_IDENTIFIER} at ${PATH_IN_REPO}, but ${OPEN_PR} is already open; not submitting again."
119
+ echo "pending=true" >> "$GITHUB_OUTPUT"
120
else
121
echo "No ${PACKAGE_IDENTIFIER} at ${PATH_IN_REPO}; submitting it as a new package."
106
- echo "found=false" >> "$GITHUB_OUTPUT"
122
+ echo "pending=false" >> "$GITHUB_OUTPUT"
123
fi
124
125
- name: Render manifests for a first submission
110
- if: steps.exists.outputs.found == 'false'
126
+ if: steps.exists.outputs.found == 'false' && steps.exists.outputs.pending != 'true'
127
shell: bash
128
run: |
129
TAG="${{ steps.release.outputs.tag }}"
@@ -150,6 +166,7 @@ jobs:
166
# scope error without them.
167
- name: File the winget Package Request issue
168
id: issue
169
+ if: steps.exists.outputs.pending != 'true'
170
shell: bash
171
env:
172
GH_TOKEN: ${{ secrets.WINGET_ISSUE_TOKEN }}
@@ -197,7 +214,7 @@ jobs:
214
215
- name: Submit new package
216
id: submit_new
200
- if: steps.exists.outputs.found == 'false'
217
+ if: steps.exists.outputs.found == 'false' && steps.exists.outputs.pending != 'true'
218
shell: pwsh
219
env:
220
WINGET_CREATE_GITHUB_TOKEN: ${{ secrets.WINGET_PR_TOKEN }}
packaging/winget/SplitFireAI.Agent.installer.yaml.in
renamed
+1
-1
@@ -1,5 +1,5 @@
1
# yaml-language-server: $schema=https://aka.ms/winget-manifest.installer.1.12.0.schema.json
2
-PackageIdentifier: SplitFireAI.splitfire-agent
2
+PackageIdentifier: SplitFireAI.Agent
3
PackageVersion: @VERSION@
4
InstallerType: zip
5
# `NestedInstallerType` and `NestedInstallerFiles` tell winget where to find
packaging/winget/SplitFireAI.Agent.locale.en-US.yaml.in
renamed
+1
-1
@@ -1,5 +1,5 @@
1
# yaml-language-server: $schema=https://aka.ms/winget-manifest.defaultLocale.1.12.0.schema.json
2
-PackageIdentifier: SplitFireAI.splitfire-agent
2
+PackageIdentifier: SplitFireAI.Agent
3
PackageVersion: @VERSION@
4
PackageLocale: en-US
5
Publisher: SplitFireAI
packaging/winget/SplitFireAI.Agent.yaml.in
renamed
+1
-1
@@ -1,5 +1,5 @@
1
# yaml-language-server: $schema=https://aka.ms/winget-manifest.version.1.12.0.schema.json
2
-PackageIdentifier: SplitFireAI.splitfire-agent
2
+PackageIdentifier: SplitFireAI.Agent
3
PackageVersion: @VERSION@
4
DefaultLocale: en-US
5
ManifestType: version