feihong-code 8.0.1 → 8.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -13,4 +13,4 @@ updates:
13
13
  schedule:
14
14
  interval: "weekly"
15
15
  labels:
16
- - "github-actions"
16
+ - "dependencies"
@@ -22,7 +22,7 @@ jobs:
22
22
  strategy:
23
23
  fail-fast: false
24
24
  matrix:
25
- node: [18, 20, 22]
25
+ node: [22]
26
26
  steps:
27
27
  - uses: actions/checkout@v4
28
28
  - uses: actions/setup-node@v4
@@ -61,7 +61,7 @@ jobs:
61
61
  - uses: actions/checkout@v4
62
62
  - uses: actions/setup-node@v4
63
63
  with:
64
- node-version: 20
64
+ node-version: 22
65
65
  - run: npm install
66
66
  - run: npm run build
67
67
  - name: M4 断言套件(RBAC / 审计链 / 多租户 / 配额)
@@ -100,14 +100,14 @@ jobs:
100
100
  - uses: actions/checkout@v4
101
101
  - uses: actions/setup-node@v4
102
102
  with:
103
- node-version: 20
103
+ node-version: 22
104
104
  - run: npm install
105
105
  - run: npm run build
106
106
  - name: 发布包不得包含密钥或源码
107
107
  run: |
108
108
  npm pack --dry-run 2>&1 | tee pack.txt
109
- for bad in ".env" "src/" ".workbuddy" "policy.json" "id_rsa"; do
110
- if grep -q "$bad" pack.txt; then
109
+ for bad in "\\.env([ /]|$)" "src/" ".workbuddy" "policy.json" "id_rsa"; do
110
+ if grep -qE "$bad" pack.txt; then
111
111
  echo "::error::发布包中检出敏感条目: $bad"
112
112
  exit 1
113
113
  fi
@@ -115,7 +115,7 @@ jobs:
115
115
  echo "发布包白名单校验通过"
116
116
  - name: 仓库内不得提交明文密钥
117
117
  run: |
118
- if git grep -nIE "sk-[A-Za-z0-9_-]{16,}" -- . ':!*.md' ':!scripts/verify-m4.mjs' ':!tests/unit/redact.test.ts'; then
118
+ if git grep -nIE "sk-[A-Za-z0-9_-]{16,}" -- . ':!*.md' ':!scripts/verify-m4.mjs' ':!tests/unit/redact.test.ts' ':!scripts/data/voltagent_skills.json'; then
119
119
  echo "::error::检出疑似明文 API Key"
120
120
  exit 1
121
121
  fi
@@ -133,7 +133,7 @@ jobs:
133
133
  - uses: actions/checkout@v4
134
134
  - uses: actions/setup-node@v4
135
135
  with:
136
- node-version: 20
136
+ node-version: 22
137
137
  - run: npm install
138
138
  # 1) npm audit:生产依赖 high 及以上漏洞视为失败(供应链准入证据)
139
139
  - name: npm audit(生产依赖 high+)
@@ -1,203 +1,211 @@
1
- # 飞虹 Code 发布工作流
2
- # 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
3
- #
4
- # 触发条件:
5
- # 1. 推送 v* 标签(如 v1.0.0)→ 自动发布 npm 包 + Docker 镜像 + GitHub Release
6
- # 2. 手动触发(workflow_dispatch)→ 可指定版本号
7
- #
8
- # 所需 Secrets:
9
- # - NPM_TOKEN: npm 发布令牌
10
- # - DOCKERHUB_USERNAME: Docker Hub 用户名
11
- # - DOCKERHUB_TOKEN: Docker Hub 访问令牌
12
- # - GH_TOKEN: GitHub Token(自动注入,无需手动配置)
13
-
14
- name: Release
15
-
16
- on:
17
- push:
18
- tags:
19
- - 'v*'
20
- workflow_dispatch:
21
- inputs:
22
- version:
23
- description: '发布版本号(如 1.0.0)'
24
- required: true
25
- default: 'patch'
26
-
27
- permissions:
28
- contents: write
29
-
30
- env:
31
- NODE_VERSION: '20'
32
- IMAGE_NAME: feihong-code
33
-
34
- jobs:
35
- # ---------- 1. 版本号准备 ----------
36
- version:
37
- name: 准备版本号
38
- runs-on: ubuntu-latest
39
- outputs:
40
- version: ${{ steps.get_version.outputs.version }}
41
- tag: ${{ steps.get_version.outputs.tag }}
42
- steps:
43
- - uses: actions/checkout@v4
44
- with:
45
- fetch-depth: 0
46
- - name: 获取版本号
47
- id: get_version
48
- run: |
49
- if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
50
- VERSION=${GITHUB_REF_NAME#v}
51
- else
52
- if [[ "${{ github.event.inputs.version }}" == "patch" ]]; then
53
- VERSION=$(npm version patch --no-git-tag-version | sed 's/v//')
54
- elif [[ "${{ github.event.inputs.version }}" == "minor" ]]; then
55
- VERSION=$(npm version minor --no-git-tag-version | sed 's/v//')
56
- elif [[ "${{ github.event.inputs.version }}" == "major" ]]; then
57
- VERSION=$(npm version major --no-git-tag-version | sed 's/v//')
58
- else
59
- VERSION=${{ github.event.inputs.version }}
60
- fi
61
- fi
62
- echo "version=$VERSION" >> $GITHUB_OUTPUT
63
- echo "tag=v$VERSION" >> $GITHUB_OUTPUT
64
- echo "发布版本: v$VERSION"
65
-
66
- # ---------- 2. 构建与测试(复用 CI 逻辑) ----------
67
- build:
68
- name: 构建与测试
69
- needs: version
70
- runs-on: ubuntu-latest
71
- steps:
72
- - uses: actions/checkout@v4
73
- - uses: actions/setup-node@v4
74
- with:
75
- node-version: ${{ env.NODE_VERSION }}
76
- registry-url: 'https://registry.npmjs.org'
77
- - run: npm install
78
- - name: 类型检查
79
- run: npm run typecheck
80
- - name: 编译构建
81
- run: npm run build
82
- - name: 前端资源打包
83
- run: node scripts/copy-web.cjs
84
- - name: CLI 可用性验证
85
- run: node dist/cli/index.js --version
86
- - name: P7-5 安全 CI(npm audit + CycloneDX SBOM)
87
- run: npm run security || (echo "⚠️ npm audit 网络不可达按跳过处理" && exit 0)
88
- - name: P7-5 综合冒烟门禁(本地回归)
89
- run: |
90
- node dist/cli/index.js serve --port 8099 > /tmp/fh-serve.log 2>&1 &
91
- SERVER_PID=$!
92
- READY=0
93
- for i in $(seq 1 40); do
94
- if curl -sf http://127.0.0.1:8099/api/health >/dev/null 2>&1; then READY=1; break; fi
95
- sleep 1
96
- done
97
- if [ "$READY" != "1" ]; then
98
- echo "❌ 测试服务 40s 内未就绪,serve 日志:"
99
- cat /tmp/fh-serve.log || true
100
- kill $SERVER_PID 2>/dev/null || true
101
- exit 1
102
- fi
103
- node scripts/_smoke-full.mjs
104
- EXIT_CODE=$?
105
- kill $SERVER_PID 2>/dev/null || true
106
- exit $EXIT_CODE
107
- - name: P7-1 SWE-bench harness 链路冒烟(mock)
108
- run: node dist/cli/index.js harness lite --limit 1 --mode mock || echo "⚠️ harness 需网络拉取数据集,失败不阻断(真实跑分见 docs/SWE_BENCH_REPORT.md)"
109
- - name: 上传构建产物
110
- uses: actions/upload-artifact@v7
111
- with:
112
- name: dist-${{ needs.version.outputs.version }}
113
- path: dist/
114
- retention-days: 30
115
-
116
- # ---------- 3. 发布 npm 包 ----------
117
- npm-publish:
118
- name: 发布 npm 包
119
- needs: [version, build]
120
- runs-on: ubuntu-latest
121
- if: github.event_name == 'push' || github.event.inputs.version != 'patch'
122
- steps:
123
- - uses: actions/checkout@v4
124
- - uses: actions/setup-node@v4
125
- with:
126
- node-version: ${{ env.NODE_VERSION }}
127
- registry-url: 'https://registry.npmjs.org'
128
- - name: 下载构建产物
129
- uses: actions/download-artifact@v7
130
- with:
131
- name: dist-${{ needs.version.outputs.version }}
132
- path: dist/
133
- - name: 安装依赖(prepack build 需要)
134
- run: npm ci
135
- - name: 设置版本号
136
- run: npm version ${{ needs.version.outputs.version }} --no-git-tag-version --allow-same-version
137
- - name: 发布到 npm
138
- run: npm publish --access public
139
- env:
140
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
141
-
142
- # ---------- 4. 构建并推送 Docker 镜像 ----------
143
- docker-publish:
144
- name: 发布 Docker 镜像
145
- needs: [version, build]
146
- runs-on: ubuntu-latest
147
- if: github.event_name == 'push' || github.event.inputs.version != 'patch'
148
- steps:
149
- - uses: actions/checkout@v4
150
- - name: 设置 Docker Buildx
151
- uses: docker/setup-buildx-action@v3
152
- - name: 登录 Docker Hub
153
- uses: docker/login-action@v4
154
- with:
155
- username: ${{ secrets.DOCKERHUB_USERNAME }}
156
- password: ${{ secrets.DOCKERHUB_TOKEN }}
157
- - name: 构建并推送镜像
158
- uses: docker/build-push-action@v7
159
- with:
160
- context: .
161
- push: true
162
- tags: |
163
- ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ needs.version.outputs.version }}
164
- ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
165
- cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache
166
- cache-to: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
167
-
168
- # ---------- 5. 创建 GitHub Release ----------
169
- github-release:
170
- name: 创建 GitHub Release
171
- needs: [version, build, npm-publish, docker-publish]
172
- runs-on: ubuntu-latest
173
- if: github.event_name == 'push'
174
- steps:
175
- - uses: actions/checkout@v4
176
- with:
177
- fetch-depth: 0
178
- - name: 生成变更日志
179
- id: changelog
180
- run: |
181
- echo "## 飞虹 Code v${{ needs.version.outputs.version }}" > RELEASE_NOTES.md
182
- echo "" >> RELEASE_NOTES.md
183
- echo "### 发布说明" >> RELEASE_NOTES.md
184
- echo "" >> RELEASE_NOTES.md
185
- git log --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo HEAD^)..HEAD >> RELEASE_NOTES.md 2>/dev/null || echo "- 首次发布" >> RELEASE_NOTES.md
186
- echo "" >> RELEASE_NOTES.md
187
- echo "### 安装方式" >> RELEASE_NOTES.md
188
- echo "" >> RELEASE_NOTES.md
189
- echo "\`\`\`bash" >> RELEASE_NOTES.md
190
- echo "npm install -g feihong-code" >> RELEASE_NOTES.md
191
- echo "# 或" >> RELEASE_NOTES.md
192
- echo "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feihong-code:latest" >> RELEASE_NOTES.md
193
- echo "\`\`\`" >> RELEASE_NOTES.md
194
- - name: 创建 Release
195
- uses: softprops/action-gh-release@v3
196
- with:
197
- tag_name: ${{ needs.version.outputs.tag }}
198
- name: 飞虹 Code ${{ needs.version.outputs.tag }}
199
- body_path: RELEASE_NOTES.md
200
- draft: false
201
- prerelease: false
202
- env:
203
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1
+ # 飞虹 Code 发布工作流
2
+ # 晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹
3
+ #
4
+ # 触发条件:
5
+ # 1. 推送 v* 标签(如 v1.0.0)→ 自动发布 npm 包 + Docker 镜像 + GitHub Release
6
+ # 2. 手动触发(workflow_dispatch)→ 可指定版本号
7
+ #
8
+ # 所需 Secrets:
9
+ # - NPM_TOKEN: npm 发布令牌
10
+ # - DOCKERHUB_USERNAME: Docker Hub 用户名
11
+ # - DOCKERHUB_TOKEN: Docker Hub 访问令牌
12
+ # - GH_TOKEN: GitHub Token(自动注入,无需手动配置)
13
+
14
+ name: Release
15
+
16
+ on:
17
+ push:
18
+ tags:
19
+ - 'v*'
20
+ workflow_dispatch:
21
+ inputs:
22
+ version:
23
+ description: '发布版本号(如 1.0.0)'
24
+ required: true
25
+ default: 'patch'
26
+
27
+ permissions:
28
+ contents: write
29
+
30
+ env:
31
+ NODE_VERSION: '22'
32
+ IMAGE_NAME: feihong-code
33
+
34
+ jobs:
35
+ # ---------- 1. 版本号准备 ----------
36
+ version:
37
+ name: 准备版本号
38
+ runs-on: ubuntu-latest
39
+ outputs:
40
+ version: ${{ steps.get_version.outputs.version }}
41
+ tag: ${{ steps.get_version.outputs.tag }}
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+ with:
45
+ fetch-depth: 0
46
+ - name: 获取版本号
47
+ id: get_version
48
+ run: |
49
+ if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
50
+ VERSION=${GITHUB_REF_NAME#v}
51
+ else
52
+ if [[ "${{ github.event.inputs.version }}" == "patch" ]]; then
53
+ VERSION=$(npm version patch --no-git-tag-version | sed 's/v//')
54
+ elif [[ "${{ github.event.inputs.version }}" == "minor" ]]; then
55
+ VERSION=$(npm version minor --no-git-tag-version | sed 's/v//')
56
+ elif [[ "${{ github.event.inputs.version }}" == "major" ]]; then
57
+ VERSION=$(npm version major --no-git-tag-version | sed 's/v//')
58
+ else
59
+ VERSION=${{ github.event.inputs.version }}
60
+ fi
61
+ fi
62
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
63
+ echo "tag=v$VERSION" >> $GITHUB_OUTPUT
64
+ echo "发布版本: v$VERSION"
65
+
66
+ # ---------- 2. 构建与测试(复用 CI 逻辑) ----------
67
+ build:
68
+ name: 构建与测试
69
+ needs: version
70
+ runs-on: ubuntu-latest
71
+ steps:
72
+ - uses: actions/checkout@v4
73
+ - uses: actions/setup-node@v4
74
+ with:
75
+ node-version: ${{ env.NODE_VERSION }}
76
+ registry-url: 'https://registry.npmjs.org'
77
+ - run: npm install
78
+ - name: 类型检查
79
+ run: npm run typecheck
80
+ - name: 编译构建
81
+ run: npm run build
82
+ - name: 前端资源打包
83
+ run: node scripts/copy-web.cjs
84
+ - name: CLI 可用性验证
85
+ run: node dist/cli/index.js --version
86
+ - name: P7-5 安全 CI(npm audit + CycloneDX SBOM)
87
+ run: npm run security || (echo "⚠️ npm audit 网络不可达按跳过处理" && exit 0)
88
+ - name: P7-5 综合冒烟门禁(本地回归)
89
+ run: |
90
+ node dist/cli/index.js serve --port 8099 > /tmp/fh-serve.log 2>&1 &
91
+ SERVER_PID=$!
92
+ READY=0
93
+ for i in $(seq 1 40); do
94
+ if curl -sf http://127.0.0.1:8099/api/health >/dev/null 2>&1; then READY=1; break; fi
95
+ sleep 1
96
+ done
97
+ if [ "$READY" != "1" ]; then
98
+ echo "❌ 测试服务 40s 内未就绪,serve 日志:"
99
+ cat /tmp/fh-serve.log || true
100
+ kill $SERVER_PID 2>/dev/null || true
101
+ exit 1
102
+ fi
103
+ node scripts/_smoke-full.mjs
104
+ EXIT_CODE=$?
105
+ kill $SERVER_PID 2>/dev/null || true
106
+ exit $EXIT_CODE
107
+ - name: P7-1 SWE-bench harness 链路冒烟(mock)
108
+ run: node dist/cli/index.js harness lite --limit 1 --mode mock || echo "⚠️ harness 需网络拉取数据集,失败不阻断(真实跑分见 docs/SWE_BENCH_REPORT.md)"
109
+ - name: 上传构建产物
110
+ uses: actions/upload-artifact@v7
111
+ with:
112
+ name: dist-${{ needs.version.outputs.version }}
113
+ path: dist/
114
+ retention-days: 30
115
+
116
+ # ---------- 3. 发布 npm 包 ----------
117
+ npm-publish:
118
+ name: 发布 npm 包
119
+ needs: [version, build]
120
+ runs-on: ubuntu-latest
121
+ if: github.event_name == 'push' || github.event.inputs.version != 'patch'
122
+ steps:
123
+ - uses: actions/checkout@v4
124
+ - uses: actions/setup-node@v4
125
+ with:
126
+ node-version: ${{ env.NODE_VERSION }}
127
+ registry-url: 'https://registry.npmjs.org'
128
+ - name: 下载构建产物
129
+ uses: actions/download-artifact@v8
130
+ with:
131
+ name: dist-${{ needs.version.outputs.version }}
132
+ path: dist/
133
+ - name: 安装依赖(prepack build 需要)
134
+ run: npm ci
135
+ - name: 设置版本号
136
+ run: npm version ${{ needs.version.outputs.version }} --no-git-tag-version --allow-same-version
137
+ - name: 检查 NPM_TOKEN 是否配置
138
+ id: npm_token_check
139
+ env:
140
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
141
+ run: |
142
+ if [ -n "$NPM_TOKEN" ]; then echo "has_token=true" >> "$GITHUB_OUTPUT"; else echo "has_token=false" >> "$GITHUB_OUTPUT"; fi
143
+ - name: 发布到 npm
144
+ if: steps.npm_token_check.outputs.has_token == 'true'
145
+ run: npm publish --access public
146
+ env:
147
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
148
+
149
+ # ---------- 4. 构建并推送 Docker 镜像 ----------
150
+ docker-publish:
151
+ name: 发布 Docker 镜像
152
+ needs: [version, build]
153
+ runs-on: ubuntu-latest
154
+ if: github.event_name == 'push' || github.event.inputs.version != 'patch'
155
+ steps:
156
+ - uses: actions/checkout@v4
157
+ - name: 设置 Docker Buildx
158
+ uses: docker/setup-buildx-action@v4
159
+ - name: 登录 Docker Hub
160
+ uses: docker/login-action@v4
161
+ with:
162
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
163
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
164
+ - name: 构建并推送镜像
165
+ uses: docker/build-push-action@v7
166
+ with:
167
+ context: .
168
+ push: true
169
+ tags: |
170
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ needs.version.outputs.version }}
171
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
172
+ cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache
173
+ cache-to: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
174
+
175
+ # ---------- 5. 创建 GitHub Release ----------
176
+ github-release:
177
+ name: 创建 GitHub Release
178
+ needs: [version, build, npm-publish, docker-publish]
179
+ runs-on: ubuntu-latest
180
+ if: github.event_name == 'push'
181
+ steps:
182
+ - uses: actions/checkout@v4
183
+ with:
184
+ fetch-depth: 0
185
+ - name: 生成变更日志
186
+ id: changelog
187
+ run: |
188
+ echo "## 飞虹 Code v${{ needs.version.outputs.version }}" > RELEASE_NOTES.md
189
+ echo "" >> RELEASE_NOTES.md
190
+ echo "### 发布说明" >> RELEASE_NOTES.md
191
+ echo "" >> RELEASE_NOTES.md
192
+ git log --pretty=format:"- %s (%h)" $(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo HEAD^)..HEAD >> RELEASE_NOTES.md 2>/dev/null || echo "- 首次发布" >> RELEASE_NOTES.md
193
+ echo "" >> RELEASE_NOTES.md
194
+ echo "### 安装方式" >> RELEASE_NOTES.md
195
+ echo "" >> RELEASE_NOTES.md
196
+ echo "\`\`\`bash" >> RELEASE_NOTES.md
197
+ echo "npm install -g feihong-code" >> RELEASE_NOTES.md
198
+ echo "# 或" >> RELEASE_NOTES.md
199
+ echo "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feihong-code:latest" >> RELEASE_NOTES.md
200
+ echo "\`\`\`" >> RELEASE_NOTES.md
201
+ - name: 创建 Release
202
+ uses: softprops/action-gh-release@v3
203
+ with:
204
+ tag_name: ${{ needs.version.outputs.tag }}
205
+ name: 飞虹 Code ${{ needs.version.outputs.tag }}
206
+ body_path: RELEASE_NOTES.md
207
+ draft: false
208
+ prerelease: false
209
+ skipIfReleaseExists: true
210
+ env:
211
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -14,6 +14,14 @@ on:
14
14
  description: '实例清单路径'
15
15
  required: false
16
16
  default: 'bench/swe-bench-verified-sample.json'
17
+ model:
18
+ description: '评测模型名(如 agnes-3.0-flash / DeepSeek-V4-Flash)'
19
+ required: false
20
+ default: 'agnes-2.5-flash'
21
+ base_url:
22
+ description: 'API 通道地址(AMD 填 https://developer.amd.com.cn/radeon/api/v1)'
23
+ required: false
24
+ default: 'https://api.agnes-ai.cn/v1'
17
25
  # 可选:定时跑(UTC 18:00)
18
26
  # schedule:
19
27
  # - cron: '0 18 * * *'
@@ -29,7 +37,7 @@ jobs:
29
37
  with:
30
38
  node-version: '22'
31
39
 
32
- - uses: actions/setup-python@v7
40
+ - uses: actions/setup-python@v5
33
41
  with:
34
42
  python-version: '3.11'
35
43
 
@@ -54,6 +62,9 @@ jobs:
54
62
  - name: 真实模型生成 patch
55
63
  env:
56
64
  AGNES_API_KEY: ${{ secrets.AGNES_API_KEY }}
65
+ AMD_API_KEY: ${{ secrets.AMD_API_KEY }}
66
+ SWEEBENCH_MODEL: ${{ inputs.model }}
67
+ SWEEBENCH_BASE_URL: ${{ inputs.base_url }}
57
68
  run: node scripts/swebench-real.mjs --instances "${{ inputs.instances }}" --limit "${{ inputs.limit }}"
58
69
 
59
70
  - name: 真实测试验证(env-reconstructed)
package/CHANGELOG.md CHANGED
@@ -2,6 +2,43 @@
2
2
 
3
3
  > **版本体系说明**:**7.x** 为**产品化成熟度版本号**(SemVer),衡量产品打磨程度(桌面版、Web 控制台、SWE-bench harness、企业治理、自进化等持续迭代);**M0→M9.1** 为**能力里程碑编号**(工程开发阶段),2026-08 上旬全部交付后已冻结、不再扩展。两套编号相互解耦——M 编号停止增长是设计使然,后续能力演进体现在 7.x 次版本号中。
4
4
 
5
+ ## v8.3.0 (2026-09-10)
6
+
7
+ ### 移动端 APP(飞虹 Code 移动版 v8.3.0)
8
+
9
+ - **上传功能修复**:修复 v8.2.x 遗留的初始化中断导致「图片/文件」无法上传的问题(删除视频功能时残留了指向已删除函数的按钮绑定);图片支持**多选最多 20 张**并自动压缩(最长边 1280px / JPEG 0.8),底部缩略图预览(点击放大、单个移除、+继续加图);文件上传 ≤20MB,文本文件自动读入对话。
10
+ - **文生视频重建(正确契约)**:内置 `agnes-video-2.5-flash`(一键填充 API 地址 + Key);请求按官方 2.5 契约重写——`POST /videos` + `seconds`(字符串) + `size:"720P"` + `aspect_ratio` + `mode`,替换此前报 Invalid URL 的错误端点;支持**上传参考图**(有图 `mode:reference` + `image`,无图 `mode:text`);轮询走 `/agnesapi?video_id=`。
11
+ - **删除图生视频与截图功能**:创作中心精简为「文生图 + 文生视频(含参考图)」两个能力;底部输入栏移除截图按钮(保留图片/文件/拍照)。
12
+ - **流式对话稳定性**(8.2.1 起保留):完整行 SSE 解析零丢字、`max_tokens:8192` 防长回答截断、`finish_reason=length` 自动续写(最多 3 次)、首字等待放宽至 30 秒。
13
+ - 版本同步:app.js APP_VER / 关于面板 / android versionCode 36 + versionName "8.3.0"。
14
+
15
+ ### 工程 / Engineering
16
+
17
+ - 版本一致性全量同步 8.3.0(version.ts / android / README JSON-LD / CHANGELOG / package.json)。
18
+
19
+ ## v8.0.2 (2026-09-08)
20
+
21
+ ### 工程修复 / Engineering Fixes
22
+
23
+ - **Node 22 全链路兼容**:CI matrix 统一为 Node 22,Dockerfile 升级 node:22-slim,engines 声明 >=22.5.0;CLI 新增版本守卫(Node <22.5 给出友好提示,替代 ERR_UNKNOWN_BUILTIN_MODULE 崩溃)。
24
+ - **供应链安全**:overrides 强制 qs 6.16.0(GHSA-x5fp-wj9c-mxmx / GHSA-4mjr-xmp4-gh2g)、uuid 11.1.1(GHSA-w5hq-g745-h8pq),npm audit 全量 0 漏洞,osv-scanner 通过。
25
+ - **CI 修复**:发布包检查修正 .env.example 误报(子串匹配 -> 精确匹配);仓库密钥扫描排除 voltagent_skills.json 误报(repo slug 命中 sk- 模式)。
26
+ - **版本一致性**:version.ts / android versionName+versionCode / README JSON-LD / 当前文档版本标记全量同步 8.0.2。
27
+
28
+ ## v8.0.1 (2026-09-08)
29
+
30
+ ### 重大更新 / Major Updates
31
+
32
+ - **桌面手脚(desktop-touch MCP 嫁接)**:飞虹获得 Windows 原生 app 操控能力——`feihong_desktop_see / act / verify` 三工具闭环(看屏 → 操作 → 验证);审批矩阵 + 危险窗口停手线 + 取证留痕三层安全模型;A 配置 / B 策略 / C 内化三层嫁接结构。
33
+ - **AI 员工军团(agent-team)整合**:17 个业务 AI 员工(L1 获客 / L2 内容 / L3 转化 / L4 决策 / L5 管理)随包分发;飞虹原生工具 `feihong_agents_list / submit` 打通,模型路由自动复用飞虹 providers,无配置回退 mock 全链路可跑。
34
+ - **全仓脱敏与清理治理**:移除 app.js / android assets / 评测脚本 / 测试脚本共 17 处硬编码密钥;git 历史泄露 KEY 经 filter-branch 全历史清除并 force push;清理 bench/real 约 6.8GB 评测运行产物与 android build 构建产物;.gitignore 加固防再污染。
35
+ - **工程修复**:copy-web.cjs 重写(Node 22 `fs.cpSync` 原生崩溃 0xC0000409 规避);steer 人工指挥(M9)注入与事件恢复;单测 269 例全绿。
36
+
37
+ ### 兼容性 / Compatibility
38
+
39
+ - npm 包 `feihong-code@8.0.1`:files 白名单新增 `agent-team/`(17 员工技能随包分发);版本号以 package.json 为单一权威源全量同步(version.ts / android / README JSON-LD / CHANGELOG)。
40
+ - **安全提示**:8.0.0 已废弃(deprecated),请升级至 8.0.1;曾泄露的 API 密钥请立即轮换。
41
+
5
42
  ## v7.6.0 (2026-08-28)
6
43
 
7
44
  ### 重大更新 / Major Updates