Skip to content

Commit 5788761

Browse files
committed
Merge release/v0.0.5 into main
2 parents 2da2c4e + 5587b13 commit 5788761

File tree

120 files changed

+8974
-302
lines changed

Some content is hidden

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

120 files changed

+8974
-302
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Build Binaries
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
tags:
7+
- 'v*'
8+
9+
permissions:
10+
contents: write
11+
12+
jobs:
13+
build:
14+
strategy:
15+
# Prevent race conditions with multiple releases
16+
max-parallel: 1
17+
matrix:
18+
os: [
19+
{ name: "windows", image: "windows-latest" },
20+
{ name: "linux", image: "ubuntu-22.04" },
21+
{ name: "macos-intel", image: "macos-13" },
22+
{ name: "macos", image: "macos-latest" },
23+
]
24+
runs-on: ${{ matrix.os.image }}
25+
steps:
26+
- name: Checkout code
27+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
28+
29+
- name: Setup Node.js
30+
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
31+
with:
32+
node-version: 20
33+
cache: npm
34+
cache-dependency-path: package-lock.json
35+
36+
- name: Clean up
37+
run: |
38+
rm -rf node_modules package-lock.json || true
39+
npm cache clean --force || true
40+
41+
- name: Install dependencies
42+
run: npm ci --no-audit --no-fund --progress=false
43+
44+
- name: Add macOS certificate
45+
if: contains(matrix.os.name, 'macos')
46+
env:
47+
MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }}
48+
MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }}
49+
run: chmod +x tools/add-macos-cert.sh && . ./tools/add-macos-cert.sh
50+
51+
# Windows certificate setup
52+
- name: Set up certificate (Windows)
53+
if: contains(matrix.os.name, 'windows')
54+
run: |
55+
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
56+
shell: bash
57+
58+
- name: Set Windows signing variables
59+
if: contains(matrix.os.name, 'windows')
60+
id: variables
61+
run: |
62+
echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
63+
echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
64+
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
65+
echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
66+
shell: bash
67+
68+
- name: Code signing with Software Trust Manager (Windows)
69+
if: contains(matrix.os.name, 'windows')
70+
uses: digicert/[email protected]
71+
72+
- name: Sync certificate (Windows)
73+
if: contains(matrix.os.name, 'windows')
74+
run: |
75+
smctl windows certsync --keypair-alias=${{ secrets.DIGICERT_KEYPAIR_ALIAS }}
76+
shell: bash
77+
78+
- name: Build binaries
79+
env:
80+
NODE_OPTIONS: "--max-old-space-size=4096"
81+
SM_CODE_SIGNING_CERT_SHA1_HASH: ${{ secrets.SM_CODE_SIGNING_CERT_SHA1_HASH }}
82+
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
83+
APPLE_ID: ${{ secrets.APPLE_ID }}
84+
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
85+
run: npm run make
86+
87+
- name: Upload binaries
88+
uses: actions/upload-artifact@v4
89+
with:
90+
name: AliFullStack-${{ matrix.os.name }}-${{ github.run_number }}
91+
path: out/make/
92+
retention-days: 30
93+
94+
verify-artifacts:
95+
name: Verify Build Artifacts
96+
needs: build
97+
runs-on: ubuntu-latest
98+
steps:
99+
- name: Checkout code
100+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
101+
102+
- name: Setup Node.js
103+
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
104+
with:
105+
node-version: 20
106+
107+
- name: Download all artifacts
108+
uses: actions/download-artifact@v4
109+
with:
110+
path: artifacts/
111+
112+
- name: List all downloaded artifacts
113+
run: |
114+
echo "Build artifacts:"
115+
find artifacts/ -type f -name "*.zip" -o -name "*.exe" -o -name "*.deb" -o -name "*.rpm" | sort
116+
117+
- name: Verify expected binaries exist
118+
run: |
119+
# Check for Windows binary
120+
if [ ! -f "artifacts/AliFullStack-windows-${{ github.run_number }}/zip/win32/x64/AliFullStack-win32-x64-*.zip" ]; then
121+
echo "❌ Windows binary not found"
122+
exit 1
123+
fi
124+
125+
# Check for Linux binaries
126+
if [ ! -f "artifacts/AliFullStack-linux-${{ github.run_number }}/zip/linux/x64/AliFullStack-linux-x64-*.zip" ]; then
127+
echo "❌ Linux ZIP binary not found"
128+
exit 1
129+
fi
130+
131+
# Check for macOS binaries
132+
if [ ! -f "artifacts/AliFullStack-macos-${{ github.run_number }}/zip/darwin/x64/AliFullStack-darwin-x64-*.zip" ] && \
133+
[ ! -f "artifacts/AliFullStack-macos-intel-${{ github.run_number }}/zip/darwin/x64/AliFullStack-darwin-x64-*.zip" ]; then
134+
echo "❌ macOS binary not found"
135+
exit 1
136+
fi
137+
138+
echo "✅ All expected binaries found:"
139+
find artifacts/ -type f \( -name "*.zip" -o -name "*.exe" -o -name "*.deb" -o -name "*.rpm" \) -exec basename {} \;

.github/workflows/release.yml

Lines changed: 89 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,17 @@ jobs:
1919
# which prevents the race.
2020
# max-parallel: 1
2121
matrix:
22+
# See https://github.com/SFARPak/dyad/issues/96
2223
os: [
2324
{ name: "windows", image: "windows-latest" },
24-
# See https://github.com/SFARPak/dyad/issues/96
2525
{ name: "linux", image: "ubuntu-22.04" },
2626
{ name: "macos-intel", image: "macos-13" },
2727
{ name: "macos", image: "macos-latest" },
2828
]
2929
runs-on: ${{ matrix.os.image }}
30+
# env:
31+
# CSC_LINK: ${{ secrets.CSC_LINK }}
32+
# CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
3033
steps:
3134
- name: Github checkout
3235
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
@@ -36,43 +39,48 @@ jobs:
3639
node-version: 20
3740
- name: Clean up
3841
run: |
39-
if [ "$RUNNER_OS" == "Windows" ]; then
40-
Remove-Item -Recurse -Force node_modules -ErrorAction SilentlyContinue
41-
else
42-
rm -rf node_modules || true
43-
fi
44-
npm cache clean --force || true
42+
rm -rf node_modules
43+
rm -f package-lock.json
44+
npm cache clean --force
4545
shell: bash
46-
- run: npm ci
47-
- name: add macos cert
46+
- run: npm install --include=optional
47+
- run: npm rebuild @rollup/rollup-linux-x64-gnu || true
48+
if: contains(matrix.os.name, 'linux')
49+
- run: npm rebuild @rollup/rollup-darwin-x64 || true
50+
if: contains(matrix.os.name, 'macos-intel')
51+
- run: npm rebuild @rollup/rollup-darwin-arm64 || true
4852
if: contains(matrix.os.name, 'macos')
49-
env:
50-
MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }}
51-
MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }}
52-
run: chmod +x tools/add-macos-cert.sh && . ./tools/add-macos-cert.sh
53-
# Windows only
54-
- name: Set up certificate
55-
if: contains(matrix.os.name, 'windows')
56-
run: |
57-
echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
58-
shell: bash
59-
- name: Set variables
60-
if: contains(matrix.os.name, 'windows')
61-
id: variables
62-
run: |
63-
echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
64-
echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
65-
echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
66-
echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
67-
shell: bash
68-
- name: Code signing with Software Trust Manager
69-
if: contains(matrix.os.name, 'windows')
70-
uses: digicert/[email protected]
71-
- name: Sync certificate (Windows)
53+
- run: npm rebuild @rollup/rollup-win32-x64-msvc || true
7254
if: contains(matrix.os.name, 'windows')
73-
run: |
74-
smctl windows certsync --keypair-alias=${{ secrets.DIGICERT_KEYPAIR_ALIAS }}
75-
shell: bash
55+
# - name: add macos cert
56+
# if: contains(matrix.os.name, 'macos') && secrets.MACOS_CERT_P12
57+
# env:
58+
# MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }}
59+
# MACOS_CERT_PASSWORD: ${{ secrets.MACOS_CERT_PASSWORD }}
60+
# run: chmod +x tools/add-macos-cert.sh && . ./tools/add-macos-cert.sh
61+
# Windows only
62+
# - name: Set up certificate
63+
# if: contains(matrix.os.name, 'windows')
64+
# run: |
65+
# echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
66+
# shell: bash
67+
# - name: Set variables
68+
# if: contains(matrix.os.name, 'windows')
69+
# id: variables
70+
# run: |
71+
# echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
72+
# echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
73+
# echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
74+
# echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
75+
# shell: bash
76+
# - name: Code signing with Software Trust Manager
77+
# if: contains(matrix.os.name, 'windows')
78+
# uses: digicert/[email protected]
79+
# - name: Sync certificate (Windows)
80+
# if: contains(matrix.os.name, 'windows')
81+
# run: |
82+
# smctl windows certsync --keypair-alias=${{ secrets.DIGICERT_KEYPAIR_ALIAS }}
83+
# shell: bash
7684
# Publish (all platforms)
7785
- name: Publish app
7886
env:
@@ -82,13 +90,59 @@ jobs:
8290
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
8391
APPLE_ID: ${{ secrets.APPLE_ID }}
8492
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
93+
# CSC_LINK: ${{ secrets.CSC_LINK }}
94+
# CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
8595
run: npm run publish
8696

8797
verify-assets:
8898
name: Verify Release Assets
8999
needs: build
90100
runs-on: ubuntu-latest
101+
permissions:
102+
contents: read
103+
packages: read
104+
actions: read
91105
steps:
106+
- name: Check token permissions
107+
run: |
108+
echo "🔐 Checking GITHUB_TOKEN permissions..."
109+
echo "📡 Making API call to: https://api.github.com/user"
110+
111+
# Capture full response for detailed logging
112+
RESPONSE=$(curl -s -w "\nHTTP_STATUS:%{http_code}\n" \
113+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
114+
-H "Accept: application/vnd.github.v3+json" \
115+
-H "User-Agent: dyad-release-workflow" \
116+
https://api.github.com/user)
117+
118+
# Extract status code
119+
HTTP_STATUS=$(echo "$RESPONSE" | grep "HTTP_STATUS:" | cut -d: -f2)
120+
JSON_RESPONSE=$(echo "$RESPONSE" | sed '/HTTP_STATUS:/d')
121+
122+
echo "📡 API Response Status: $HTTP_STATUS"
123+
124+
# Log token scopes and permissions from headers (if available)
125+
echo "🔑 Token scopes: $(curl -s -I \
126+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
127+
-H "Accept: application/vnd.github.v3+json" \
128+
https://api.github.com/user | grep -i "x-oauth-scopes:" | sed 's/.*: //' || echo "Not available")"
129+
130+
echo "📋 Accepted permissions: $(curl -s -I \
131+
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
132+
-H "Accept: application/vnd.github.v3+json" \
133+
https://api.github.com/user | grep -i "x-accepted-github-permissions:" | sed 's/.*: //' || echo "Not available")"
134+
135+
if [ "$HTTP_STATUS" -eq 200 ]; then
136+
echo "✅ Token authentication successful"
137+
echo "👤 User data:"
138+
echo "$JSON_RESPONSE" | jq '.login // "Not available"'
139+
echo "📋 Permissions:"
140+
echo "$JSON_RESPONSE" | jq '.permissions // empty'
141+
else
142+
echo "❌ Token authentication failed with status: $HTTP_STATUS"
143+
echo "🔍 Response body: $JSON_RESPONSE"
144+
exit 1
145+
fi
92146
- name: Github checkout
93147
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
94148
- name: Use Node.js

Roo-Code/apps/web-evals/src/app/runs/new/new-run.tsx

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,10 +97,14 @@ export function NewRun() {
9797
async (values: CreateRun) => {
9898
try {
9999
if (mode === "openrouter") {
100+
<<<<<<< HEAD
100101
values.settings = {
101102
...(values.settings || {}),
102103
openRouterModelId: model,
103104
}
105+
=======
106+
values.settings = { ...values.settings, openRouterModelId: model }
107+
>>>>>>> release/v0.0.5
104108
}
105109

106110
const { id } = await createRun(values)

Roo-Code/packages/cloud/src/TelemetryClient.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ abstract class BaseTelemetryClient implements TelemetryClient {
6060
// Event properties take precedence in case of conflicts.
6161
const mergedProperties = {
6262
...providerProperties,
63-
...(event.properties || {}),
63+
...event.properties,
6464
}
6565

6666
// Filter out properties that shouldn't be captured by this client

Roo-Code/packages/telemetry/src/BaseTelemetryClient.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,14 @@ export abstract class BaseTelemetryClient implements TelemetryClient {
5151

5252
// Merge provider properties with event-specific properties.
5353
// Event properties take precedence in case of conflicts.
54+
<<<<<<< HEAD
5455
const mergedProperties = {
5556
...providerProperties,
5657
...(event.properties || {}),
5758
}
59+
=======
60+
const mergedProperties = { ...providerProperties, ...event.properties }
61+
>>>>>>> release/v0.0.5
5862

5963
// Filter out properties that shouldn't be captured by this client
6064
return Object.fromEntries(Object.entries(mergedProperties).filter(([key]) => this.isPropertyCapturable(key)))

Roo-Code/packages/telemetry/src/TelemetryService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ export class TelemetryService {
217217
itemType,
218218
itemName,
219219
target,
220-
...(properties || {}),
220+
...properties,
221221
})
222222
}
223223

0 commit comments

Comments
 (0)