Skip to content

Commit 290865c

Browse files
authored
Merge pull request #445 from 777genius/fix-win-arm64-support
fix(runtime): harden provider setup and team recovery
2 parents 0022359 + afae70d commit 290865c

131 files changed

Lines changed: 11165 additions & 4177 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/release.yml

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,8 @@ jobs:
486486
runner: ubuntu-24.04
487487
- platform: win32-x64
488488
runner: windows-2022
489+
- platform: win32-arm64
490+
runner: windows-11-arm
489491
- platform: darwin-arm64
490492
runner: macos-14
491493
- platform: darwin-x64
@@ -660,7 +662,19 @@ jobs:
660662
661663
release-win:
662664
needs: [build, prepare-runtime, prepare-terminal-platform-runtime, verify-public-runtime]
663-
runs-on: windows-latest
665+
strategy:
666+
fail-fast: false
667+
matrix:
668+
include:
669+
- arch: x64
670+
runner: windows-latest
671+
runtime_platform: win32-x64
672+
bundle_directory: win-unpacked
673+
- arch: arm64
674+
runner: windows-11-arm
675+
runtime_platform: win32-arm64
676+
bundle_directory: win-arm64-unpacked
677+
runs-on: ${{ matrix.runner }}
664678
timeout-minutes: 60
665679

666680
steps:
@@ -707,17 +721,17 @@ jobs:
707721
VERSION="${RELEASE_TAG#v}"
708722
pnpm pkg set version="$VERSION"
709723
710-
- name: Stage bundled runtime (Windows)
724+
- name: Stage bundled runtime (Windows ${{ matrix.arch }})
711725
shell: pwsh
712726
env:
713727
GH_TOKEN: ${{ secrets.RUNTIME_BUILD_DISPATCH_TOKEN }}
714-
run: node ./scripts/stage-runtime.mjs --platform win32-x64
728+
run: node ./scripts/stage-runtime.mjs --platform ${{ matrix.runtime_platform }}
715729

716-
- name: Stage terminal-platform runtime (Windows)
730+
- name: Stage terminal-platform runtime (Windows ${{ matrix.arch }})
717731
shell: pwsh
718732
env:
719733
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
720-
run: node ./scripts/stage-terminal-platform-runtime.mjs --platform win32-x64
734+
run: node ./scripts/stage-terminal-platform-runtime.mjs --platform ${{ matrix.runtime_platform }}
721735

722736
- name: Verify Sentry release env (Windows)
723737
if: ${{ env.IS_RELEASE_BUILD == 'true' }}
@@ -774,18 +788,18 @@ jobs:
774788
test -f resources/terminal-platform/terminal-daemon.exe
775789
test -f resources/terminal-platform/terminal-platform-node/index.mjs
776790
777-
- name: Package (Windows)
791+
- name: Package (Windows ${{ matrix.arch }})
778792
env:
779793
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
780-
run: pnpm pack:win --publish never
794+
run: pnpm pack:win:${{ matrix.arch }} --publish never
781795

782-
- name: Validate packaged bundle (Windows)
796+
- name: Validate packaged bundle (Windows ${{ matrix.arch }})
783797
shell: bash
784-
run: node ./scripts/electron-builder/verifyBundle.cjs "release/win-unpacked" win32 x64
798+
run: node ./scripts/electron-builder/verifyBundle.cjs "release/${{ matrix.bundle_directory }}" win32 ${{ matrix.arch }}
785799

786-
- name: Smoke packaged app (Windows)
800+
- name: Smoke packaged app (Windows ${{ matrix.arch }})
787801
shell: bash
788-
run: node ./scripts/electron-builder/smokePackagedApp.cjs "release/win-unpacked" win32
802+
run: node ./scripts/electron-builder/smokePackagedApp.cjs "release/${{ matrix.bundle_directory }}" win32
789803

790804
- name: Upload assets to release
791805
if: ${{ env.IS_RELEASE_BUILD == 'true' }}

docs/RELEASE.md

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,8 @@ Target branch: `dev`.
3434

3535
Runtime gate:
3636

37-
- Agent Teams runtime: `v0.0.73`.
38-
- Terminal Platform runtime: `v0.3.2`.
37+
- Agent Teams runtime: `v0.0.74`.
38+
- Terminal Platform runtime: `v0.3.3`.
3939

4040
Draft body source for GitHub release:
4141

@@ -49,6 +49,7 @@ Use self-hosted OpenAI-compatible models with team members.
4949
- Configured models can be available in one project or all projects.
5050
- Added a project trust notice before the first team launch.
5151
- Added video attachments for MiniMax-M3 models through OpenCode.
52+
- Added a native Windows ARM64 installer.
5253

5354
### Fixes
5455

@@ -74,7 +75,11 @@ Use self-hosted OpenAI-compatible models with team members.
7475
</td>
7576
<td align="center">
7677
<a href="https://github.com/777genius/agent-teams-ai/releases/download/v2.12.0/Agent.Teams.AI.Setup.2.12.0.exe">
77-
<img src="https://img.shields.io/badge/Windows-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows" />
78+
<img src="https://img.shields.io/badge/Windows_x64-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows x64" />
79+
</a>
80+
<br />
81+
<a href="https://github.com/777genius/agent-teams-ai/releases/download/v2.12.0/Agent.Teams.AI.Setup.2.12.0-arm64.exe">
82+
<img src="https://img.shields.io/badge/Windows_ARM64-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows ARM64" />
7883
</a>
7984
<br />
8085
<sub>May trigger SmartScreen - click "More info" then "Run anyway"</sub>
@@ -959,7 +964,7 @@ Public release notes must follow this standard every time:
959964
- Put `Downloads` as the final section, after all text notes.
960965
- Use badge/button links in `Downloads`, not bare asset links.
961966
- Verify actual asset names with `gh release view v<VERSION> --repo 777genius/agent-teams-ai --json assets` before writing links.
962-
- Prefer versioned installer links for release-specific notes: `Agent.Teams.AI-<VERSION>-arm64.dmg`, `Agent.Teams.AI-<VERSION>-x64.dmg`, `Agent.Teams.AI.Setup.<VERSION>.exe`, `Agent.Teams.AI-<VERSION>.AppImage`, `agent-teams-ai_<VERSION>_amd64.deb`, `agent-teams-ai-<VERSION>.x86_64.rpm`, and `agent-teams-ai-<VERSION>.pacman`.
967+
- Prefer versioned installer links for release-specific notes: `Agent.Teams.AI-<VERSION>-arm64.dmg`, `Agent.Teams.AI-<VERSION>-x64.dmg`, `Agent.Teams.AI.Setup.<VERSION>.exe`, `Agent.Teams.AI.Setup.<VERSION>-arm64.exe`, `Agent.Teams.AI-<VERSION>.AppImage`, `agent-teams-ai_<VERSION>_amd64.deb`, `agent-teams-ai-<VERSION>.x86_64.rpm`, and `agent-teams-ai-<VERSION>.pacman`.
963968

964969
Draft releases must be treated as review artifacts:
965970

@@ -1135,7 +1140,11 @@ The GitHub digest and bundle version must both match.
11351140
</td>
11361141
<td align="center">
11371142
<a href="https://github.com/777genius/agent-teams-ai/releases/download/v<VERSION>/Agent.Teams.AI.Setup.<VERSION>.exe">
1138-
<img src="https://img.shields.io/badge/Windows-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows" />
1143+
<img src="https://img.shields.io/badge/Windows_x64-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows x64" />
1144+
</a>
1145+
<br />
1146+
<a href="https://github.com/777genius/agent-teams-ai/releases/download/v<VERSION>/Agent.Teams.AI.Setup.<VERSION>-arm64.exe">
1147+
<img src="https://img.shields.io/badge/Windows_ARM64-Download_.exe-0078D4?style=for-the-badge&logo=windows&logoColor=white" alt="Windows ARM64" />
11391148
</a>
11401149
<br />
11411150
<sub>May trigger SmartScreen - click "More info" then "Run anyway"</sub>
@@ -1210,7 +1219,8 @@ electron-builder generates these artifacts per platform:
12101219
| macOS x64 DMG | `Agent.Teams.AI-<VER>-x64.dmg` | `Agent.Teams.AI-x64.dmg` | `Claude-Agent-Teams-UI-x64.dmg` |
12111220
| macOS arm64 ZIP | `Agent.Teams.AI-<VER>-arm64-mac.zip` | - | - |
12121221
| macOS x64 ZIP | `Agent.Teams.AI-<VER>-x64-mac.zip` | - | - |
1213-
| Windows | `Agent.Teams.AI.Setup.<VER>.exe` | `Agent.Teams.AI.Setup.exe` | `Claude-Agent-Teams-UI-Setup.exe` |
1222+
| Windows x64 | `Agent.Teams.AI.Setup.<VER>.exe` | `Agent.Teams.AI.Setup.exe` | `Claude-Agent-Teams-UI-Setup.exe` |
1223+
| Windows ARM64 | `Agent.Teams.AI.Setup.<VER>-arm64.exe` | `Agent.Teams.AI.Setup-arm64.exe` | - |
12141224
| Linux AppImage | `Agent.Teams.AI-<VER>.AppImage` | `Agent.Teams.AI.AppImage` | `Claude-Agent-Teams-UI.AppImage` |
12151225
| Linux deb | `agent-teams-ai_<VER>_amd64.deb` | `agent-teams-ai-amd64.deb` | `Claude-Agent-Teams-UI-amd64.deb` |
12161226
| Linux rpm | `agent-teams-ai-<VER>.x86_64.rpm` | `agent-teams-ai-x86_64.rpm` | `Claude-Agent-Teams-UI-x86_64.rpm` |
@@ -1219,7 +1229,7 @@ electron-builder generates these artifacts per platform:
12191229
## Stable Download Links
12201230

12211231
The `upload-stable-links` job in `release.yml` re-uploads key assets with version-agnostic names.
1222-
It starts only after **release-mac** (two matrix jobs), **release-win**, and **release-linux** all succeed, so it often stays in **Queued** until the slowest job finishes. Delays of several minutes are common when macOS hosted runners are backed up.
1232+
It starts only after **release-mac** and **release-win** (two matrix jobs each), plus **release-linux**, all succeed, so it often stays in **Queued** until the slowest job finishes. Delays of several minutes are common when hosted runners are backed up.
12231233

12241234
This enables permanent links in README that always point to the latest release:
12251235

landing/composables/useReleaseDownloads.ts

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
import type { DownloadArch, DownloadOs } from "~/data/downloads";
2+
import {
3+
parseWindowsReleaseVariants,
4+
resolveWindowsReleaseDownload,
5+
type WindowsReleaseVariants,
6+
} from "~/utils/windowsReleaseDownloads.mjs";
27

38
// --- Типы GitHub API ---
49

@@ -29,7 +34,7 @@ type DownloadsApiResponse = {
2934
pubDate: string | null;
3035
variants: {
3136
macos: { arm64: Variant; x64: Variant; universal: Variant };
32-
windows: { x64: Variant };
37+
windows: WindowsReleaseVariants;
3338
linux: { appimage: Variant; deb: Variant };
3439
};
3540
};
@@ -71,12 +76,7 @@ function parseGitHubRelease(release: GitHubRelease): DownloadsApiResponse {
7176
x64: toVariant(findAsset(assets, /[-_]x64\.dmg$/i), version),
7277
universal: { ...emptyVariant },
7378
},
74-
windows: {
75-
x64: toVariant(
76-
findAsset(assets, /[-_]Setup\.exe$/i) || findAsset(assets, /\.exe$/i) || findAsset(assets, /\.msi$/i),
77-
version
78-
),
79-
},
79+
windows: parseWindowsReleaseVariants(assets, version),
8080
linux: {
8181
appimage: toVariant(findAsset(assets, /\.AppImage$/i), version),
8282
deb: toVariant(findAsset(assets, /\.deb$/i), version),
@@ -142,8 +142,7 @@ export const useReleaseDownloads = () => {
142142
if (!api?.ok) return null;
143143

144144
if (os === "windows") {
145-
const v = api.variants.windows.x64;
146-
return v.url ? { url: v.url, version: v.version || api.version } : null;
145+
return resolveWindowsReleaseDownload(api.variants.windows, api.version, arch);
147146
}
148147

149148
if (os === "linux") {

landing/data/downloads.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ export const downloadAssets = [
1818
archLabel: '64-bit',
1919
fileName: 'Agent.Teams.AI.Setup.exe',
2020
},
21+
{
22+
id: 'windows-arm64',
23+
os: 'windows',
24+
arch: 'arm64',
25+
label: 'Windows',
26+
archLabel: 'ARM64',
27+
fileName: 'Agent.Teams.AI.Setup-arm64.exe',
28+
},
2129
{
2230
id: 'linux-appimage',
2331
os: 'linux',

0 commit comments

Comments
 (0)