Skip to content

Commit 04da490

Browse files
authored
Merge pull request #4235 from RSSNext/release/mobile/0.2.4
release(mobile): Release v0.2.4
2 parents b576ac9 + 3faac49 commit 04da490

File tree

555 files changed

+23737
-17372
lines changed

Some content is hidden

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

555 files changed

+23737
-17372
lines changed

.cursor/rules/i18n.mdc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
---
2+
description:
3+
globs: locales/**/*.json
4+
alwaysApply: false
5+
---
6+
7+
i18n Coding Standards.
8+
9+
1. Read and follow https://www.i18next.com/translation-function/formatting
10+
11+
2. Use flat keys. Use `.` to separate. Do not use object form nesting.
12+
13+
3. For languages sensitive to singular and plural, distinguish between them using the `_one` and `_other` forms.
14+
15+
4. In the build stage, flattened dot-separated keys (such as 'exif.custom.rendered.custom') will be automatically converted to nested object objects, which may cause conflicts. For example, 'exif.custom.rendered.custom' may conflict with 'exif.custom.rendered'. Please avoid using such dot-separated flat keys.
16+
17+
5. @locales is located at the root directory and needs to handle all existing languages at the same time.

.cursorignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv)

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
* text=auto eol=lf
2+
*.splinecode filter=lfs diff=lfs merge=lfs -text
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: "Setup Xcode"
2+
description: "Setup specific Xcode version for iOS builds"
3+
inputs:
4+
xcode-version:
5+
description: "Xcode version to use"
6+
required: false
7+
default: "16.4"
8+
9+
runs:
10+
using: "composite"
11+
steps:
12+
- uses: maxim-lobanov/setup-xcode@v1
13+
with:
14+
xcode-version: ${{ inputs.xcode-version }}

.github/workflows/build-android.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build Android
1+
name: 🤖 Build Android
22

33
on:
44
push:

.github/workflows/build-desktop.yml

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build Desktop
1+
name: 🖥️ Build Desktop
22

33
on:
44
push:
@@ -32,6 +32,7 @@ env:
3232
VITE_OPENPANEL_CLIENT_ID: ${{ vars.VITE_OPENPANEL_CLIENT_ID }}
3333
VITE_OPENPANEL_API_URL: ${{ vars.VITE_OPENPANEL_API_URL }}
3434
VITE_FIREBASE_CONFIG: ${{ vars.VITE_FIREBASE_CONFIG }}
35+
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
3536
NODE_OPTIONS: --max-old-space-size=8192
3637

3738
jobs:
@@ -44,7 +45,7 @@ jobs:
4445
strategy:
4546
fail-fast: false
4647
matrix:
47-
os: [macos-latest, ubuntu-latest, windows-latest]
48+
os: [macos-16, ubuntu-latest, windows-latest]
4849
exclude:
4950
- os: ${{ github.event.inputs.store == 'true' && 'ubuntu-latest' }}
5051

@@ -137,14 +138,11 @@ jobs:
137138
- name: Build - Vite
138139
working-directory: apps/desktop
139140
run: pnpm build:electron-vite ${{ env.PROD == 'false' && '--mode staging' || '' }}
140-
env:
141-
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
141+
142142
- name: Build - Windows and Linux
143-
if: runner.os != 'macOS'
143+
if: runner.os == 'Linux' || (runner.os == 'Windows' && github.event.inputs.store != 'true')
144144
working-directory: apps/desktop
145145
run: pnpm build:electron-forge ${{ env.PROD == 'false' && '--mode=staging' || '' }}
146-
env:
147-
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
148146

149147
- name: Build - macOS
150148
if: runner.os == 'macOS' && github.event.inputs.store != 'true'
@@ -174,12 +172,15 @@ jobs:
174172
working-directory: apps/desktop
175173
run: pnpm build:electron-forge:mas
176174

175+
- name: Build - Microsoft Store
176+
if: runner.os == 'Windows' && github.event.inputs.store == 'true'
177+
working-directory: apps/desktop
178+
run: pnpm build:electron-forge:ms
179+
177180
- name: Build - Renderer
178181
if: runner.os == 'Linux'
179182
working-directory: apps/desktop
180183
run: pnpm build:render
181-
env:
182-
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
183184

184185
- name: Upload file (macos-arm64-dmg)
185186
uses: actions/upload-artifact@v4

.github/workflows/build-ios-development.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Build iOS for development
1+
name: 📱 Build iOS for development
22

33
on:
44
push:
@@ -29,7 +29,7 @@ jobs:
2929
if [ -n "$available" ]; then
3030
echo "runner-label=self-hosted" >> $GITHUB_OUTPUT
3131
else
32-
echo "runner-label=macos-15" >> $GITHUB_OUTPUT
32+
echo "runner-label=macos-16" >> $GITHUB_OUTPUT
3333
fi
3434
3535
build-ipa-device-self-hosted:
@@ -71,17 +71,17 @@ jobs:
7171
7272
build-ipa-device-github:
7373
name: Build iOS IPA for device (GitHub-hosted)
74-
if: github.secret_source != 'None' && needs.check-runner.outputs.runner-label == 'macos-15'
74+
if: github.secret_source != 'None' && needs.check-runner.outputs.runner-label == 'macos-16'
7575
needs: check-runner
76-
runs-on: macos-15
76+
runs-on: macos-16
7777

7878
steps:
79-
- name: Use Xcode 16.3
80-
run: sudo xcode-select -s /Applications/Xcode_16.3.app
81-
8279
- name: 📦 Checkout code
8380
uses: actions/checkout@v4
8481

82+
- name: 🔧 Setup Xcode
83+
uses: ./.github/actions/setup-xcode
84+
8585
- name: 📦 Setup pnpm
8686
uses: pnpm/action-setup@v4
8787

@@ -117,15 +117,15 @@ jobs:
117117
build-simulator:
118118
name: Build iOS IPA for simulator
119119
if: github.secret_source != 'None'
120-
runs-on: macos-15
120+
runs-on: macos-16
121121

122122
steps:
123-
- name: Use Xcode 16.3
124-
run: sudo xcode-select -s /Applications/Xcode_16.3.app
125-
126123
- name: 📦 Checkout code
127124
uses: actions/checkout@v4
128125

126+
- name: 🔧 Setup Xcode
127+
uses: ./.github/actions/setup-xcode
128+
129129
- name: 📦 Setup pnpm
130130
uses: pnpm/action-setup@v4
131131

.github/workflows/build-ios.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
if [ -n "$available" ]; then
3737
echo "runner-label=self-hosted" >> $GITHUB_OUTPUT
3838
else
39-
echo "runner-label=macos-latest" >> $GITHUB_OUTPUT
39+
echo "runner-label=macos-16" >> $GITHUB_OUTPUT
4040
fi
4141
4242
build-ipa-self-hosted:
@@ -83,9 +83,9 @@ jobs:
8383

8484
build-ipa-github:
8585
name: Build iOS IPA (GitHub)
86-
if: github.secret_source != 'None' && needs.check-runner.outputs.runner-label == 'macos-latest'
86+
if: github.secret_source != 'None' && needs.check-runner.outputs.runner-label == 'macos-16'
8787
needs: check-runner
88-
runs-on: macos-latest
88+
runs-on: macos-16
8989

9090
steps:
9191
- name: 📦 Checkout code

.github/workflows/build-web.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
push:
44
branches: [main, dev]
55

6-
name: CI Build web and SSR server
6+
name: 🌐 CI Build web and SSR server
77
concurrency:
88
group: ${{ github.workflow }}-${{ github.ref }}-ssr
99
cancel-in-progress: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/dev' }}
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: 🤖 Claude PR Assistant
2+
3+
on:
4+
issue_comment:
5+
types: [created]
6+
pull_request_review_comment:
7+
types: [created]
8+
issues:
9+
types: [opened, assigned]
10+
pull_request_review:
11+
types: [submitted]
12+
13+
jobs:
14+
claude-code-action:
15+
if: |
16+
(github.event_name == 'issue_comment' && contains(github.event.comment.body, '@claude')) ||
17+
(github.event_name == 'pull_request_review_comment' && contains(github.event.comment.body, '@claude')) ||
18+
(github.event_name == 'pull_request_review' && contains(github.event.review.body, '@claude')) ||
19+
(github.event_name == 'issues' && contains(github.event.issue.body, '@claude'))
20+
runs-on: ubuntu-latest
21+
permissions:
22+
contents: read
23+
pull-requests: read
24+
issues: read
25+
id-token: write
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
with:
30+
fetch-depth: 1
31+
32+
- name: Run Claude PR Action
33+
uses: anthropics/claude-code-action@beta
34+
with:
35+
# anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}
36+
# Or use OAuth token instead:
37+
claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }}
38+
timeout_minutes: "60"

0 commit comments

Comments
 (0)