Skip to content
Merged

Dev #19

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
e59a6a2
refactor: android_usb_permission_boundary [android_usb_permission_bou…
lizy-coding Sep 3, 2026
4b9087d
fix(platform): tighten android boundary and responsive navigation
lizy-coding Sep 3, 2026
26342b0
test(windows): add acceptance harness and toolchain gate
lizy-coding Sep 3, 2026
8644ec2
feat(platform): vendor desktop and video capability packages
lizy-coding Sep 3, 2026
5f8f229
chore(acceptance): prune superseded macos ui evidence
lizy-coding Sep 4, 2026
0bc417f
fix(android): align platform boundary and responsive state flows
lizy-coding Sep 4, 2026
9e7eab8
feat: add module scaffold generator
lizy-coding Sep 4, 2026
f88eecf
feat: harden module scaffold acceptance
lizy-coding Sep 4, 2026
3bbc358
fix:更新 agent 文件
lizy-coding Sep 4, 2026
8371c35
ci: add Android arm64 release artifacts
lizy-coding Sep 4, 2026
4d0dde4
build: bump Flutter Forge for Android release
lizy-coding Sep 4, 2026
902628b
chore(android): streamline release validation and agent docs
lizy-coding Sep 4, 2026
1f5321b
ci: let Android release continue independently
lizy-coding Sep 4, 2026
46ff9fc
fix:精简 package 引用
lizy-coding Sep 4, 2026
ac2041c
ci: isolate Android arm64 release lane
lizy-coding Sep 4, 2026
7ec73c1
ci: publish available Android artifacts on partial matrix
lizy-coding Sep 4, 2026
ae9f759
fix(windows): restore verified video player dependency
lizy-coding Sep 4, 2026
881b807
ci: centralize release quality gate on Linux
lizy-coding Sep 4, 2026
25394f1
refactor: finalize pinned gcode dependency migration
lizy-coding Sep 5, 2026
89735f6
refactor: integrate-historical-webview-module [integrate-historical-w…
lizy-coding Sep 5, 2026
8a2ce96
refactor(webview): normalize backend naming and add macos support
lizy-coding Sep 6, 2026
7358729
release: prepare v1.2.6 webview and gcode integration
lizy-coding Sep 6, 2026
9da9d02
fix(ci): align legacy example formatter language
lizy-coding Sep 6, 2026
e3c885a
fix(ci): bootstrap vendored video example
lizy-coding Sep 6, 2026
d76c312
fix(release): bootstrap vendored video example
lizy-coding Sep 6, 2026
a3985fa
fix(windows): silence experimental coroutine deprecation for webview_…
lizy-coding Sep 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .fvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"flutter": "3.44.6"}
{"flutter": "3.47.2"}
56 changes: 56 additions & 0 deletions .github/workflows/android-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Android ARM64 release

on:
workflow_dispatch:
inputs:
release_tag:
description: Existing release tag to update
required: true
default: v1.2.6

permissions:
contents: write

env:
FLUTTER_VERSION: "3.47.2"

jobs:
android:
name: Build Android ARM64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
ref: ${{ github.ref }}
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
- name: Bootstrap
shell: bash
run: |
flutter pub get
(cd packages/video_player_win/example && flutter pub get)
- name: Analyze
run: flutter analyze
- name: Tests
shell: bash
run: bash tool/test_all.sh
- name: Build AAB
working-directory: apps/flutter_forge
run: flutter build appbundle --release
- name: Build ARM64 APK
working-directory: apps/flutter_forge
run: flutter build apk --release --target-platform android-arm64 --split-per-abi
- name: Stage artifacts
shell: bash
run: |
mkdir -p release-assets
cp "$GITHUB_WORKSPACE/apps/flutter_forge/build/app/outputs/bundle/release/app-release.aab" release-assets/flutter_forge-android-arm64.aab
cp "$GITHUB_WORKSPACE/apps/flutter_forge/build/app/outputs/apk/release/app-arm64-v8a-release.apk" release-assets/flutter_forge-android-arm64.apk
- uses: softprops/action-gh-release@v2
with:
tag_name: ${{ inputs.release_tag }}
name: Flutter Forge ${{ inputs.release_tag }} Android ARM64
prerelease: true
files: release-assets/*
14 changes: 8 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,23 @@ jobs:
quality-gate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- name: Setup Flutter
uses: subosito/flutter-action@v2
with:
flutter-version: "3.44.6"
flutter-version: "3.47.2"
channel: stable

- name: Setup Node.js
uses: actions/setup-node@v4
uses: actions/setup-node@v7
with:
node-version: "20.20.2"
node-version: "24"

- name: Bootstrap
run: |
flutter pub get
(cd packages/video_player_win/example && flutter pub get)
git config core.hooksPath .githooks

- name: Agent doc generation + drift check
Expand All @@ -35,8 +36,9 @@ jobs:
AI_ANALYSIS_SCHEMA.json \
AI_PROJECT_CONTEXT.md \
REFACTOR_PLAN.md \
'lib/**/AI_ANALYSIS.md' \
'lib/AI_MODULE_INDEX.md' \
AI_ANALYSIS.md \
'apps/flutter_forge/lib/**/AI_ANALYSIS.md' \
'apps/flutter_forge/lib/AI_MODULE_INDEX.md' \
'packages/**/AI_ANALYSIS.md'

- name: Dart format
Expand Down
57 changes: 48 additions & 9 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ permissions:
contents: write

env:
FLUTTER_VERSION: "3.44.6"
NODE_VERSION: "20.20.2"
FLUTTER_VERSION: "3.47.2"
NODE_VERSION: "24"

jobs:
build:
name: Build ${{ matrix.os }} installer
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
fail-fast: false
matrix:
include:
- os: macos-latest
Expand All @@ -26,25 +26,35 @@ jobs:
- os: windows-latest
platform: windows
artifact: flutter_forge-windows-x64.zip
- os: ubuntu-latest
platform: android
artifact: flutter_forge-android-arm64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
- uses: subosito/flutter-action@v2
with:
flutter-version: ${{ env.FLUTTER_VERSION }}
channel: stable
- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: ${{ env.NODE_VERSION }}
- name: Bootstrap
run: flutter pub get
shell: bash
run: |
flutter pub get
(cd packages/video_player_win/example && flutter pub get)
- name: Analyze
if: matrix.platform == 'android'
run: flutter analyze
- name: Tests
if: matrix.platform == 'android'
shell: bash
run: bash tool/test_all.sh
- name: Build macOS
if: matrix.platform == 'macos'
working-directory: apps/flutter_forge
env:
FLUTTER_XCODE_CC: ${{ github.workspace }}/apps/flutter_forge/tool/macos/compiler_probe.py
run: flutter build macos --release
- name: Package macOS
if: matrix.platform == 'macos'
Expand All @@ -53,6 +63,21 @@ jobs:
if: matrix.platform == 'windows'
working-directory: apps/flutter_forge
run: flutter build windows --release
- name: Build Android ARM64 AAB
if: matrix.platform == 'android'
working-directory: apps/flutter_forge
run: flutter build appbundle --release
- name: Build Android ARM64 APK
if: matrix.platform == 'android'
working-directory: apps/flutter_forge
run: flutter build apk --release --target-platform android-arm64 --split-per-abi
- name: Stage Android ARM64 artifacts
if: matrix.platform == 'android'
shell: bash
run: |
mkdir -p "$GITHUB_WORKSPACE/apps/flutter_forge/release-assets"
cp "$GITHUB_WORKSPACE/apps/flutter_forge/build/app/outputs/bundle/release/app-release.aab" "$GITHUB_WORKSPACE/apps/flutter_forge/release-assets/flutter_forge-android-arm64.aab"
cp "$GITHUB_WORKSPACE/apps/flutter_forge/build/app/outputs/apk/release/app-arm64-v8a-release.apk" "$GITHUB_WORKSPACE/apps/flutter_forge/release-assets/flutter_forge-android-arm64.apk"
- name: Install Inno Setup
if: matrix.platform == 'windows'
shell: pwsh
Expand All @@ -75,14 +100,21 @@ jobs:
name: flutter_forge-setup-x64.exe
path: flutter_forge-setup-x64.exe
retention-days: 14
- name: Upload Android ARM64 artifacts
if: matrix.platform == 'android'
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.artifact }}
path: apps/flutter_forge/release-assets/*
retention-days: 14

release:
name: Create GitHub release
if: startsWith(github.ref, 'refs/tags/v')
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: actions/download-artifact@v4
Expand Down Expand Up @@ -112,7 +144,7 @@ jobs:
fi
}

printf '%s\n' '首个桌面安装器发布。macOS 构建和 Windows 安装器均未签名;首次运行时,macOS 请右键选择“打开”(或执行 `xattr -dr com.apple.quarantine`),Windows SmartScreen 请点击“更多信息(More info)”后选择“仍要运行(Run anyway)”。' > release-notes.md
printf '%s\n' 'Flutter Forge 多平台发布。macOS Windows 产物未签名;首次运行时,macOS 请右键选择“打开”(或执行 `xattr -dr com.apple.quarantine`),Windows SmartScreen 请点击“更多信息(More info)”后选择“仍要运行(Run anyway)”。Android 产物使用工作流构建签名,仅用于项目当前发布轨道。' > release-notes.md
printf '\n' >> release-notes.md
write_group "Features" '^feat(\(.+\))?!?:'
write_group "Fixes" '^fix(\(.+\))?!?:'
Expand All @@ -131,4 +163,11 @@ jobs:
- name: Publish release
env:
GH_TOKEN: ${{ github.token }}
run: gh release create "${{ github.ref_name }}" release-assets/* --title "Flutter Forge ${{ github.ref_name }}" --notes-file release-notes.md
shell: bash
run: |
if gh release view "${{ github.ref_name }}" >/dev/null 2>&1; then
gh release upload "${{ github.ref_name }}" release-assets/* --clobber
gh release edit "${{ github.ref_name }}" --title "Flutter Forge ${{ github.ref_name }}" --notes-file release-notes.md
else
gh release create "${{ github.ref_name }}" release-assets/* --title "Flutter Forge ${{ github.ref_name }}" --notes-file release-notes.md
fi
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -84,3 +84,5 @@ test-results/

# Local build artifacts / downloads
.release/
**/android/*.jks
**/android/key.properties
Loading
Loading