feihong-code 7.2.0 → 7.5.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.
Files changed (249) hide show
  1. package/.github/workflows/ci.yml +180 -140
  2. package/.github/workflows/release.yml +200 -173
  3. package/CHANGELOG.md +94 -115
  4. package/README.md +609 -586
  5. package/dist/agent/completion-engine.js +76 -45
  6. package/dist/agent/completion-engine.js.map +1 -1
  7. package/dist/agent/completion-postprocess.js +109 -0
  8. package/dist/agent/completion-postprocess.js.map +1 -0
  9. package/dist/agent/context-budget.js +121 -0
  10. package/dist/agent/context-budget.js.map +1 -0
  11. package/dist/agent/context-compactor.js +47 -0
  12. package/dist/agent/context-compactor.js.map +1 -1
  13. package/dist/agent/custom-agent.js +52 -52
  14. package/dist/agent/design-to-code.js +40 -40
  15. package/dist/agent/lint.js +121 -0
  16. package/dist/agent/lint.js.map +1 -0
  17. package/dist/agent/multi-agent.js +44 -44
  18. package/dist/agent/orchestrator.js +20 -20
  19. package/dist/agent/prompts.js +54 -54
  20. package/dist/agent/self-correction.js +24 -24
  21. package/dist/agent/self-heal.js +27 -27
  22. package/dist/cli/commands.js +9 -0
  23. package/dist/cli/commands.js.map +1 -1
  24. package/dist/cli/index.js +9 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/multi-pane-tui.js +217 -0
  27. package/dist/cli/multi-pane-tui.js.map +1 -0
  28. package/dist/cli/run.js +129 -40
  29. package/dist/cli/run.js.map +1 -1
  30. package/dist/cli/tui-run.js +79 -0
  31. package/dist/cli/tui-run.js.map +1 -0
  32. package/dist/cli/tui.js.map +1 -1
  33. package/dist/cli/version.js +1 -1
  34. package/dist/lsp/lsp-client.js +183 -0
  35. package/dist/lsp/lsp-client.js.map +1 -0
  36. package/dist/lsp/lsp-service.js +159 -0
  37. package/dist/lsp/lsp-service.js.map +1 -0
  38. package/dist/plugins/manager.js +50 -2
  39. package/dist/plugins/manager.js.map +1 -1
  40. package/dist/shared/i18n.js +108 -100
  41. package/dist/shared/i18n.js.map +1 -1
  42. package/dist/tools/generator/code-generator.js +40 -40
  43. package/dist/tools/generator/test-generator.js +9 -9
  44. package/dist/tools/shell/exec.js +23 -1
  45. package/dist/tools/shell/exec.js.map +1 -1
  46. package/dist/web/extra-apis.js +440 -0
  47. package/dist/web/extra-apis.js.map +1 -0
  48. package/dist/web/public/css/style.css +1715 -1715
  49. package/dist/web/public/index.html +1242 -1200
  50. package/dist/web/public/js/api.js +555 -496
  51. package/dist/web/public/js/app.js +2210 -2210
  52. package/dist/web/public/js/mock-api.js +234 -234
  53. package/dist/web/public/js/monaco-editor.js +363 -203
  54. package/dist/web/public/js/ui.js +2251 -1981
  55. package/dist/web/public/js/utils.js +214 -214
  56. package/dist/web/public/manifest.json +59 -59
  57. package/dist/web/public/service-worker.js +173 -173
  58. package/dist/web/server.js +97 -45
  59. package/dist/web/server.js.map +1 -1
  60. package/docs/BENCHMARK_REPORT_en.md +386 -329
  61. package/docs/BENCHMARK_REPORT_zh.md +386 -329
  62. package/docs/DPA.md +63 -0
  63. package/docs/DPA/346/225/260/346/215/256/345/244/204/347/220/206/345/215/217/350/256/256/346/250/241/346/235/277_v1.0.md +67 -0
  64. package/docs/SECURITY_WHITEPAPER.md +74 -0
  65. package/docs/SWE_BENCH_REPORT.md +55 -0
  66. package/docs/TECHNICAL_SPEC_en.md +292 -292
  67. package/docs/TECHNICAL_SPEC_zh.md +292 -292
  68. package/docs/UPDATE_NOTES_en.md +159 -159
  69. package/docs/UPDATE_NOTES_zh.md +159 -159
  70. package/docs/UPGRADE_7.2.0.md +309 -0
  71. package/docs/UPGRADE_GUIDE_7_5.md +86 -0
  72. package/docs/geo-feihong-code.html +391 -0
  73. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_50/350/275/256/346/267/261/345/272/246/345/256/241/350/256/241_v7.2.0.md +208 -0
  74. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_6/351/241/271/351/207/215/347/202/271/346/240/270/346/237/245_v7.2.0.md +152 -0
  75. package/docs//345/205/250/351/235/242/345/244/215/347/233/230_/350/277/220/350/241/214/346/227/266/345/256/236/346/265/213/347/211/210_v7.2.0.md +271 -0
  76. package/docs//345/220/210/350/247/204/350/256/244/350/257/201/345/207/206/345/244/207/346/270/205/345/215/225_v7.2.0.md +59 -0
  77. package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +82 -0
  78. package/electron/main.js +404 -602
  79. package/package.json +175 -172
  80. package/templates/skills/api-design/SKILL.md +27 -0
  81. package/templates/skills/code-review/SKILL.md +35 -0
  82. package/templates/skills/dependency-upgrade/SKILL.md +29 -0
  83. package/templates/skills/doc-gen/SKILL.md +29 -0
  84. package/templates/skills/git-flow/SKILL.md +26 -0
  85. package/templates/skills/onboarding/SKILL.md +27 -0
  86. package/templates/skills/performance/SKILL.md +29 -0
  87. package/templates/skills/refactor/SKILL.md +28 -0
  88. package/templates/skills/security-audit/SKILL.md +28 -0
  89. package/templates/skills/test-gen/SKILL.md +30 -0
  90. package/tool-schema.json +197 -197
  91. package/dist/hello.js +0 -14
  92. package/dist/hello.js.map +0 -1
  93. package/dist/self-evolve/hook.ts +0 -80
  94. package/dist/self-evolve/manager.d.ts +0 -8
  95. package/dist/web/public/vendor/monaco/vs/abap-D-t0cyap.js +0 -1
  96. package/dist/web/public/vendor/monaco/vs/apex-CcIm7xu6.js +0 -1
  97. package/dist/web/public/vendor/monaco/vs/assets/css.worker-URu8fCFR.js +0 -97
  98. package/dist/web/public/vendor/monaco/vs/assets/editor.worker-lj3bdIIn.js +0 -30
  99. package/dist/web/public/vendor/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +0 -30
  100. package/dist/web/public/vendor/monaco/vs/assets/html.worker-D1SL3iM8.js +0 -474
  101. package/dist/web/public/vendor/monaco/vs/assets/json.worker-CoJx_OPf.js +0 -62
  102. package/dist/web/public/vendor/monaco/vs/assets/ts.worker-BWKtMYOk.js +0 -67722
  103. package/dist/web/public/vendor/monaco/vs/azcli-BA0tQDCg.js +0 -1
  104. package/dist/web/public/vendor/monaco/vs/basic-languages/monaco.contribution.js +0 -1
  105. package/dist/web/public/vendor/monaco/vs/bat-C397hTD6.js +0 -1
  106. package/dist/web/public/vendor/monaco/vs/bicep-DF5aW17k.js +0 -2
  107. package/dist/web/public/vendor/monaco/vs/cameligo-plsz8qhj.js +0 -1
  108. package/dist/web/public/vendor/monaco/vs/clojure-Y2auQMzK.js +0 -1
  109. package/dist/web/public/vendor/monaco/vs/coffee-Bu45yuWE.js +0 -1
  110. package/dist/web/public/vendor/monaco/vs/cpp-CkKPQIni.js +0 -1
  111. package/dist/web/public/vendor/monaco/vs/csharp-CX28MZyh.js +0 -1
  112. package/dist/web/public/vendor/monaco/vs/csp-D8uWnyxW.js +0 -1
  113. package/dist/web/public/vendor/monaco/vs/css-CaeNmE3S.js +0 -3
  114. package/dist/web/public/vendor/monaco/vs/css.worker-CyhWkhHo.js +0 -1
  115. package/dist/web/public/vendor/monaco/vs/cssMode-CV6Ay48H.js +0 -1
  116. package/dist/web/public/vendor/monaco/vs/cypher-DVThT8BS.js +0 -1
  117. package/dist/web/public/vendor/monaco/vs/dart-CmGfCvrO.js +0 -1
  118. package/dist/web/public/vendor/monaco/vs/dockerfile-CZqqYdch.js +0 -1
  119. package/dist/web/public/vendor/monaco/vs/ecl-30fUercY.js +0 -1
  120. package/dist/web/public/vendor/monaco/vs/editor/editor.main.css +0 -1
  121. package/dist/web/public/vendor/monaco/vs/editor/editor.main.js +0 -1
  122. package/dist/web/public/vendor/monaco/vs/editor/editor.worker.js +0 -1
  123. package/dist/web/public/vendor/monaco/vs/editor-KLE6jdfb.js +0 -831
  124. package/dist/web/public/vendor/monaco/vs/editor.js +0 -1
  125. package/dist/web/public/vendor/monaco/vs/editorWorkerHost-fVE1cjcC.js +0 -35
  126. package/dist/web/public/vendor/monaco/vs/elixir-xjPaIfzF.js +0 -1
  127. package/dist/web/public/vendor/monaco/vs/flow9-DqtmStfK.js +0 -1
  128. package/dist/web/public/vendor/monaco/vs/freemarker2-FWreY7v7.js +0 -3
  129. package/dist/web/public/vendor/monaco/vs/fsharp-BOMdg4U1.js +0 -1
  130. package/dist/web/public/vendor/monaco/vs/go-D_hbi-Jt.js +0 -1
  131. package/dist/web/public/vendor/monaco/vs/graphql-CKUU4kLG.js +0 -1
  132. package/dist/web/public/vendor/monaco/vs/handlebars-CZi4pHCH.js +0 -1
  133. package/dist/web/public/vendor/monaco/vs/hcl-DTaboeZW.js +0 -1
  134. package/dist/web/public/vendor/monaco/vs/html-j_7ZTNRU.js +0 -1
  135. package/dist/web/public/vendor/monaco/vs/html.worker-CA3iAimZ.js +0 -1
  136. package/dist/web/public/vendor/monaco/vs/htmlMode-27by_KM4.js +0 -1
  137. package/dist/web/public/vendor/monaco/vs/index-049xrXrp.js +0 -1
  138. package/dist/web/public/vendor/monaco/vs/index-CBVt3dzv.js +0 -5
  139. package/dist/web/public/vendor/monaco/vs/index.js +0 -1
  140. package/dist/web/public/vendor/monaco/vs/ini-CsNwO04R.js +0 -1
  141. package/dist/web/public/vendor/monaco/vs/initialize-DL0l1TGY.js +0 -1
  142. package/dist/web/public/vendor/monaco/vs/java-CI4ZMsH9.js +0 -1
  143. package/dist/web/public/vendor/monaco/vs/javascript-DTJl4Jn1.js +0 -1
  144. package/dist/web/public/vendor/monaco/vs/json.worker-BizpAl9O.js +0 -1
  145. package/dist/web/public/vendor/monaco/vs/jsonMode-DLUiMUrI.js +0 -1
  146. package/dist/web/public/vendor/monaco/vs/julia-BwzEvaQw.js +0 -1
  147. package/dist/web/public/vendor/monaco/vs/kotlin-IUYPiTV8.js +0 -1
  148. package/dist/web/public/vendor/monaco/vs/language/css/css.worker.js +0 -66
  149. package/dist/web/public/vendor/monaco/vs/language/css/monaco.contribution.js +0 -1
  150. package/dist/web/public/vendor/monaco/vs/language/html/html.worker.js +0 -443
  151. package/dist/web/public/vendor/monaco/vs/language/html/monaco.contribution.js +0 -1
  152. package/dist/web/public/vendor/monaco/vs/language/json/json.worker.js +0 -17
  153. package/dist/web/public/vendor/monaco/vs/language/json/monaco.contribution.js +0 -1
  154. package/dist/web/public/vendor/monaco/vs/language/typescript/monaco.contribution.js +0 -1
  155. package/dist/web/public/vendor/monaco/vs/language/typescript/ts.worker.js +0 -67693
  156. package/dist/web/public/vendor/monaco/vs/less-C0eDYdqa.js +0 -2
  157. package/dist/web/public/vendor/monaco/vs/lexon-iON-Kj97.js +0 -1
  158. package/dist/web/public/vendor/monaco/vs/liquid-CLJYelW6.js +0 -1
  159. package/dist/web/public/vendor/monaco/vs/loader.js +0 -1368
  160. package/dist/web/public/vendor/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +0 -2
  161. package/dist/web/public/vendor/monaco/vs/lua-DtygF91M.js +0 -1
  162. package/dist/web/public/vendor/monaco/vs/m3-CsR4AuFi.js +0 -1
  163. package/dist/web/public/vendor/monaco/vs/main-BEx-Fmlo.js +0 -15
  164. package/dist/web/public/vendor/monaco/vs/main-DsK8pnKg.js +0 -3
  165. package/dist/web/public/vendor/monaco/vs/markdown-C_rD0bIw.js +0 -1
  166. package/dist/web/public/vendor/monaco/vs/mdx-CpzZIPHF.js +0 -1
  167. package/dist/web/public/vendor/monaco/vs/mips-CiYP61RB.js +0 -1
  168. package/dist/web/public/vendor/monaco/vs/monaco.contribution-9cKT3C7t.js +0 -1
  169. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BE88ZNGY.js +0 -1
  170. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BPhsneLd.js +0 -1
  171. package/dist/web/public/vendor/monaco/vs/monaco.contribution-BgRy6xDf.js +0 -1
  172. package/dist/web/public/vendor/monaco/vs/msdax-C38-sJlp.js +0 -1
  173. package/dist/web/public/vendor/monaco/vs/mysql-CdtbpvbG.js +0 -1
  174. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.d.ts +0 -1
  175. package/dist/web/public/vendor/monaco/vs/nls/lang/cs.js +0 -9
  176. package/dist/web/public/vendor/monaco/vs/nls/lang/de.d.ts +0 -1
  177. package/dist/web/public/vendor/monaco/vs/nls/lang/de.js +0 -9
  178. package/dist/web/public/vendor/monaco/vs/nls/lang/es.d.ts +0 -1
  179. package/dist/web/public/vendor/monaco/vs/nls/lang/es.js +0 -9
  180. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.d.ts +0 -1
  181. package/dist/web/public/vendor/monaco/vs/nls/lang/fr.js +0 -9
  182. package/dist/web/public/vendor/monaco/vs/nls/lang/it.d.ts +0 -1
  183. package/dist/web/public/vendor/monaco/vs/nls/lang/it.js +0 -9
  184. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.d.ts +0 -1
  185. package/dist/web/public/vendor/monaco/vs/nls/lang/ja.js +0 -9
  186. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.d.ts +0 -1
  187. package/dist/web/public/vendor/monaco/vs/nls/lang/ko.js +0 -9
  188. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.d.ts +0 -1
  189. package/dist/web/public/vendor/monaco/vs/nls/lang/pl.js +0 -9
  190. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.d.ts +0 -1
  191. package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.js +0 -9
  192. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.d.ts +0 -1
  193. package/dist/web/public/vendor/monaco/vs/nls/lang/ru.js +0 -9
  194. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.d.ts +0 -1
  195. package/dist/web/public/vendor/monaco/vs/nls/lang/tr.js +0 -9
  196. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.d.ts +0 -1
  197. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.js +0 -9
  198. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.d.ts +0 -1
  199. package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.js +0 -9
  200. package/dist/web/public/vendor/monaco/vs/nls.messages-loader.js +0 -1
  201. package/dist/web/public/vendor/monaco/vs/objective-c-CntZFaHX.js +0 -1
  202. package/dist/web/public/vendor/monaco/vs/pascal-r6kuqfl_.js +0 -1
  203. package/dist/web/public/vendor/monaco/vs/pascaligo-BiXoTmXh.js +0 -1
  204. package/dist/web/public/vendor/monaco/vs/perl-DABw_TcH.js +0 -1
  205. package/dist/web/public/vendor/monaco/vs/pgsql-me_jFXeX.js +0 -1
  206. package/dist/web/public/vendor/monaco/vs/php-D_kh-9LK.js +0 -1
  207. package/dist/web/public/vendor/monaco/vs/pla-VfZjczW0.js +0 -1
  208. package/dist/web/public/vendor/monaco/vs/postiats-BBSzz8Pk.js +0 -1
  209. package/dist/web/public/vendor/monaco/vs/powerquery-Dt-g_2cc.js +0 -1
  210. package/dist/web/public/vendor/monaco/vs/powershell-B-7ap1zc.js +0 -1
  211. package/dist/web/public/vendor/monaco/vs/protobuf-BmtuEB1A.js +0 -2
  212. package/dist/web/public/vendor/monaco/vs/pug-BRpRNeEb.js +0 -1
  213. package/dist/web/public/vendor/monaco/vs/python-CqWUUgfu.js +0 -1
  214. package/dist/web/public/vendor/monaco/vs/qsharp-BzsFaUU9.js +0 -1
  215. package/dist/web/public/vendor/monaco/vs/r-f8dDdrp4.js +0 -1
  216. package/dist/web/public/vendor/monaco/vs/razor-hok5y9Km.js +0 -1
  217. package/dist/web/public/vendor/monaco/vs/redis-fvZQY4PI.js +0 -1
  218. package/dist/web/public/vendor/monaco/vs/redshift-45Et0LQi.js +0 -1
  219. package/dist/web/public/vendor/monaco/vs/restructuredtext-C7UUFKFD.js +0 -1
  220. package/dist/web/public/vendor/monaco/vs/ruby-CZO8zYTz.js +0 -1
  221. package/dist/web/public/vendor/monaco/vs/rust-Bfetafyc.js +0 -1
  222. package/dist/web/public/vendor/monaco/vs/sb-3GYllVck.js +0 -1
  223. package/dist/web/public/vendor/monaco/vs/scala-foMgrKo1.js +0 -1
  224. package/dist/web/public/vendor/monaco/vs/scheme-CHdMtr7p.js +0 -1
  225. package/dist/web/public/vendor/monaco/vs/scss-C1cmLt9V.js +0 -3
  226. package/dist/web/public/vendor/monaco/vs/shell-ClXCKCEW.js +0 -1
  227. package/dist/web/public/vendor/monaco/vs/solidity-MZ6ExpPy.js +0 -1
  228. package/dist/web/public/vendor/monaco/vs/sophia-DWkuSsPQ.js +0 -1
  229. package/dist/web/public/vendor/monaco/vs/sparql-AUGFYSyk.js +0 -1
  230. package/dist/web/public/vendor/monaco/vs/sql-32GpJSV2.js +0 -1
  231. package/dist/web/public/vendor/monaco/vs/st-CuDFIVZ_.js +0 -1
  232. package/dist/web/public/vendor/monaco/vs/swift-t-PfMj7W.js +0 -1
  233. package/dist/web/public/vendor/monaco/vs/systemverilog-Ch4vA8Yt.js +0 -1
  234. package/dist/web/public/vendor/monaco/vs/tcl-D74tq1nH.js +0 -1
  235. package/dist/web/public/vendor/monaco/vs/toggleHighContrast-qGX7E9o7.js +0 -61
  236. package/dist/web/public/vendor/monaco/vs/ts.worker-2QLmBukE.js +0 -1
  237. package/dist/web/public/vendor/monaco/vs/tsMode-B0S_kp2q.js +0 -11
  238. package/dist/web/public/vendor/monaco/vs/twig-C6taOxMV.js +0 -1
  239. package/dist/web/public/vendor/monaco/vs/typescript-_2t_511t.js +0 -1
  240. package/dist/web/public/vendor/monaco/vs/typespec-8OfoLt6R.js +0 -1
  241. package/dist/web/public/vendor/monaco/vs/vb-Dyb2648j.js +0 -1
  242. package/dist/web/public/vendor/monaco/vs/wgsl-BhLXMOR0.js +0 -298
  243. package/dist/web/public/vendor/monaco/vs/workers-BBttULjf.js +0 -1
  244. package/dist/web/public/vendor/monaco/vs/xml-cZjNDqDT.js +0 -1
  245. package/dist/web/public/vendor/monaco/vs/yaml-A1fOIdH6.js +0 -1
  246. package/dist/web/web-config.js +0 -143
  247. package/dist/web/web-config.js.map +0 -1
  248. package/docs/DEPLOYMENT.md +0 -382
  249. package/docs/MODEL_FINETUNING.md +0 -405
@@ -1,173 +1,200 @@
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
- env:
28
- NODE_VERSION: '20'
29
- IMAGE_NAME: feihong-code
30
-
31
- jobs:
32
- # ---------- 1. 版本号准备 ----------
33
- version:
34
- name: 准备版本号
35
- runs-on: ubuntu-latest
36
- outputs:
37
- version: ${{ steps.get_version.outputs.version }}
38
- tag: ${{ steps.get_version.outputs.tag }}
39
- steps:
40
- - uses: actions/checkout@v4
41
- with:
42
- fetch-depth: 0
43
- - name: 获取版本号
44
- id: get_version
45
- run: |
46
- if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
47
- VERSION=${GITHUB_REF_NAME#v}
48
- else
49
- if [[ "${{ github.event.inputs.version }}" == "patch" ]]; then
50
- VERSION=$(npm version patch --no-git-tag-version | sed 's/v//')
51
- elif [[ "${{ github.event.inputs.version }}" == "minor" ]]; then
52
- VERSION=$(npm version minor --no-git-tag-version | sed 's/v//')
53
- elif [[ "${{ github.event.inputs.version }}" == "major" ]]; then
54
- VERSION=$(npm version major --no-git-tag-version | sed 's/v//')
55
- else
56
- VERSION=${{ github.event.inputs.version }}
57
- fi
58
- fi
59
- echo "version=$VERSION" >> $GITHUB_OUTPUT
60
- echo "tag=v$VERSION" >> $GITHUB_OUTPUT
61
- echo "发布版本: v$VERSION"
62
-
63
- # ---------- 2. 构建与测试(复用 CI 逻辑) ----------
64
- build:
65
- name: 构建与测试
66
- needs: version
67
- runs-on: ubuntu-latest
68
- steps:
69
- - uses: actions/checkout@v4
70
- - uses: actions/setup-node@v4
71
- with:
72
- node-version: ${{ env.NODE_VERSION }}
73
- registry-url: 'https://registry.npmjs.org'
74
- - run: npm install
75
- - name: 类型检查
76
- run: npm run typecheck
77
- - name: 编译构建
78
- run: npm run build
79
- - name: CLI 可用性验证
80
- run: node dist/cli/index.js --version
81
- - name: 上传构建产物
82
- uses: actions/upload-artifact@v4
83
- with:
84
- name: dist-${{ needs.version.outputs.version }}
85
- path: dist/
86
- retention-days: 30
87
-
88
- # ---------- 3. 发布 npm 包 ----------
89
- npm-publish:
90
- name: 发布 npm
91
- needs: [version, build]
92
- runs-on: ubuntu-latest
93
- if: github.event_name == 'push' || github.event.inputs.version != 'patch'
94
- steps:
95
- - uses: actions/checkout@v4
96
- - uses: actions/setup-node@v4
97
- with:
98
- node-version: ${{ env.NODE_VERSION }}
99
- registry-url: 'https://registry.npmjs.org'
100
- - name: 下载构建产物
101
- uses: actions/download-artifact@v4
102
- with:
103
- name: dist-${{ needs.version.outputs.version }}
104
- path: dist/
105
- - name: 设置版本号
106
- run: npm version ${{ needs.version.outputs.version }} --no-git-tag-version --allow-same-version
107
- - name: 发布到 npm
108
- run: npm publish --access public
109
- env:
110
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
111
-
112
- # ---------- 4. 构建并推送 Docker 镜像 ----------
113
- docker-publish:
114
- name: 发布 Docker 镜像
115
- needs: [version, build]
116
- runs-on: ubuntu-latest
117
- if: github.event_name == 'push' || github.event.inputs.version != 'patch'
118
- steps:
119
- - uses: actions/checkout@v4
120
- - name: 设置 Docker Buildx
121
- uses: docker/setup-buildx-action@v3
122
- - name: 登录 Docker Hub
123
- uses: docker/login-action@v3
124
- with:
125
- username: ${{ secrets.DOCKERHUB_USERNAME }}
126
- password: ${{ secrets.DOCKERHUB_TOKEN }}
127
- - name: 构建并推送镜像
128
- uses: docker/build-push-action@v5
129
- with:
130
- context: .
131
- push: true
132
- tags: |
133
- ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ needs.version.outputs.version }}
134
- ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
135
- cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache
136
- cache-to: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
137
-
138
- # ---------- 5. 创建 GitHub Release ----------
139
- github-release:
140
- name: 创建 GitHub Release
141
- needs: [version, build, npm-publish, docker-publish]
142
- runs-on: ubuntu-latest
143
- if: github.event_name == 'push'
144
- steps:
145
- - uses: actions/checkout@v4
146
- with:
147
- fetch-depth: 0
148
- - name: 生成变更日志
149
- id: changelog
150
- run: |
151
- echo "## 飞虹 Code v${{ needs.version.outputs.version }}" > RELEASE_NOTES.md
152
- echo "" >> RELEASE_NOTES.md
153
- echo "### 发布说明" >> RELEASE_NOTES.md
154
- echo "" >> RELEASE_NOTES.md
155
- 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
156
- echo "" >> RELEASE_NOTES.md
157
- echo "### 安装方式" >> RELEASE_NOTES.md
158
- echo "" >> RELEASE_NOTES.md
159
- echo "\`\`\`bash" >> RELEASE_NOTES.md
160
- echo "npm install -g feihong-code" >> RELEASE_NOTES.md
161
- echo "# 或" >> RELEASE_NOTES.md
162
- echo "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feihong-code:latest" >> RELEASE_NOTES.md
163
- echo "\`\`\`" >> RELEASE_NOTES.md
164
- - name: 创建 Release
165
- uses: softprops/action-gh-release@v1
166
- with:
167
- tag_name: ${{ needs.version.outputs.tag }}
168
- name: 飞虹 Code ${{ needs.version.outputs.tag }}
169
- body_path: RELEASE_NOTES.md
170
- draft: false
171
- prerelease: false
172
- env:
173
- 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
+ env:
28
+ NODE_VERSION: '20'
29
+ IMAGE_NAME: feihong-code
30
+
31
+ jobs:
32
+ # ---------- 1. 版本号准备 ----------
33
+ version:
34
+ name: 准备版本号
35
+ runs-on: ubuntu-latest
36
+ outputs:
37
+ version: ${{ steps.get_version.outputs.version }}
38
+ tag: ${{ steps.get_version.outputs.tag }}
39
+ steps:
40
+ - uses: actions/checkout@v4
41
+ with:
42
+ fetch-depth: 0
43
+ - name: 获取版本号
44
+ id: get_version
45
+ run: |
46
+ if [[ "${{ github.ref }}" == refs/tags/v* ]]; then
47
+ VERSION=${GITHUB_REF_NAME#v}
48
+ else
49
+ if [[ "${{ github.event.inputs.version }}" == "patch" ]]; then
50
+ VERSION=$(npm version patch --no-git-tag-version | sed 's/v//')
51
+ elif [[ "${{ github.event.inputs.version }}" == "minor" ]]; then
52
+ VERSION=$(npm version minor --no-git-tag-version | sed 's/v//')
53
+ elif [[ "${{ github.event.inputs.version }}" == "major" ]]; then
54
+ VERSION=$(npm version major --no-git-tag-version | sed 's/v//')
55
+ else
56
+ VERSION=${{ github.event.inputs.version }}
57
+ fi
58
+ fi
59
+ echo "version=$VERSION" >> $GITHUB_OUTPUT
60
+ echo "tag=v$VERSION" >> $GITHUB_OUTPUT
61
+ echo "发布版本: v$VERSION"
62
+
63
+ # ---------- 2. 构建与测试(复用 CI 逻辑) ----------
64
+ build:
65
+ name: 构建与测试
66
+ needs: version
67
+ runs-on: ubuntu-latest
68
+ steps:
69
+ - uses: actions/checkout@v4
70
+ - uses: actions/setup-node@v4
71
+ with:
72
+ node-version: ${{ env.NODE_VERSION }}
73
+ registry-url: 'https://registry.npmjs.org'
74
+ - run: npm install
75
+ - name: 类型检查
76
+ run: npm run typecheck
77
+ - name: 编译构建
78
+ run: npm run build
79
+ - name: 前端资源打包
80
+ run: node scripts/copy-web.cjs
81
+ - name: CLI 可用性验证
82
+ run: node dist/cli/index.js --version
83
+ - name: P7-5 安全 CI(npm audit + CycloneDX SBOM)
84
+ run: npm run security || (echo "⚠️ npm audit 网络不可达按跳过处理" && exit 0)
85
+ - name: P7-5 综合冒烟门禁(本地回归)
86
+ run: |
87
+ node dist/cli/index.js serve --port 8099 > /tmp/fh-serve.log 2>&1 &
88
+ SERVER_PID=$!
89
+ READY=0
90
+ for i in $(seq 1 40); do
91
+ if curl -sf http://127.0.0.1:8099/api/health >/dev/null 2>&1; then READY=1; break; fi
92
+ sleep 1
93
+ done
94
+ if [ "$READY" != "1" ]; then
95
+ echo "❌ 测试服务 40s 内未就绪,serve 日志:"
96
+ cat /tmp/fh-serve.log || true
97
+ kill $SERVER_PID 2>/dev/null || true
98
+ exit 1
99
+ fi
100
+ node scripts/_smoke-full.mjs
101
+ EXIT_CODE=$?
102
+ kill $SERVER_PID 2>/dev/null || true
103
+ exit $EXIT_CODE
104
+ - name: P7-1 SWE-bench harness 链路冒烟(mock)
105
+ run: node dist/cli/index.js harness lite --limit 1 --mode mock || echo "⚠️ harness 需网络拉取数据集,失败不阻断(真实跑分见 docs/SWE_BENCH_REPORT.md)"
106
+ - name: 上传构建产物
107
+ uses: actions/upload-artifact@v4
108
+ with:
109
+ name: dist-${{ needs.version.outputs.version }}
110
+ path: dist/
111
+ retention-days: 30
112
+
113
+ # ---------- 3. 发布 npm 包 ----------
114
+ npm-publish:
115
+ name: 发布 npm 包
116
+ needs: [version, build]
117
+ runs-on: ubuntu-latest
118
+ if: github.event_name == 'push' || github.event.inputs.version != 'patch'
119
+ steps:
120
+ - uses: actions/checkout@v4
121
+ - uses: actions/setup-node@v4
122
+ with:
123
+ node-version: ${{ env.NODE_VERSION }}
124
+ registry-url: 'https://registry.npmjs.org'
125
+ - name: 下载构建产物
126
+ uses: actions/download-artifact@v4
127
+ with:
128
+ name: dist-${{ needs.version.outputs.version }}
129
+ path: dist/
130
+ - name: 安装依赖(prepack build 需要)
131
+ run: npm ci
132
+ - name: 设置版本号
133
+ run: npm version ${{ needs.version.outputs.version }} --no-git-tag-version --allow-same-version
134
+ - name: 发布到 npm
135
+ run: npm publish --access public
136
+ env:
137
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
138
+
139
+ # ---------- 4. 构建并推送 Docker 镜像 ----------
140
+ docker-publish:
141
+ name: 发布 Docker 镜像
142
+ needs: [version, build]
143
+ runs-on: ubuntu-latest
144
+ if: github.event_name == 'push' || github.event.inputs.version != 'patch'
145
+ steps:
146
+ - uses: actions/checkout@v4
147
+ - name: 设置 Docker Buildx
148
+ uses: docker/setup-buildx-action@v3
149
+ - name: 登录 Docker Hub
150
+ uses: docker/login-action@v3
151
+ with:
152
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
153
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
154
+ - name: 构建并推送镜像
155
+ uses: docker/build-push-action@v5
156
+ with:
157
+ context: .
158
+ push: true
159
+ tags: |
160
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ needs.version.outputs.version }}
161
+ ${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:latest
162
+ cache-from: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache
163
+ cache-to: type=registry,ref=${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:buildcache,mode=max
164
+
165
+ # ---------- 5. 创建 GitHub Release ----------
166
+ github-release:
167
+ name: 创建 GitHub Release
168
+ needs: [version, build, npm-publish, docker-publish]
169
+ runs-on: ubuntu-latest
170
+ if: github.event_name == 'push'
171
+ steps:
172
+ - uses: actions/checkout@v4
173
+ with:
174
+ fetch-depth: 0
175
+ - name: 生成变更日志
176
+ id: changelog
177
+ run: |
178
+ echo "## 飞虹 Code v${{ needs.version.outputs.version }}" > RELEASE_NOTES.md
179
+ echo "" >> RELEASE_NOTES.md
180
+ echo "### 发布说明" >> RELEASE_NOTES.md
181
+ echo "" >> RELEASE_NOTES.md
182
+ 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
183
+ echo "" >> RELEASE_NOTES.md
184
+ echo "### 安装方式" >> RELEASE_NOTES.md
185
+ echo "" >> RELEASE_NOTES.md
186
+ echo "\`\`\`bash" >> RELEASE_NOTES.md
187
+ echo "npm install -g feihong-code" >> RELEASE_NOTES.md
188
+ echo "# 或" >> RELEASE_NOTES.md
189
+ echo "docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feihong-code:latest" >> RELEASE_NOTES.md
190
+ echo "\`\`\`" >> RELEASE_NOTES.md
191
+ - name: 创建 Release
192
+ uses: softprops/action-gh-release@v1
193
+ with:
194
+ tag_name: ${{ needs.version.outputs.tag }}
195
+ name: 飞虹 Code ${{ needs.version.outputs.tag }}
196
+ body_path: RELEASE_NOTES.md
197
+ draft: false
198
+ prerelease: false
199
+ env:
200
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
package/CHANGELOG.md CHANGED
@@ -1,115 +1,94 @@
1
- # 飞虹 Code 更新日志 / Changelog
2
-
3
- ## v7.2.0 (2026-08-26)
4
-
5
- ### 重大更新 / Major Updates
6
-
7
- - **跨端三端齐发**:Windows 桌面版(Electron)+ 安卓版(Capacitor APK)+ Web 版统一交付
8
- - **Agent 能力全面升级**:多智能体协同 / 事件驱动 Agent / 自定义 Agent 框架
9
- - **补全质量突破**:跨文件深度上下文 + 补全 Pro 连续推荐 + FIM 训练数据准备
10
- - **生态集成增强**:飞书通知 / GitHub PR 审查 / Figma 设计稿转代码 / SSO 单点登录
11
- - **差异化创新落地**:语音编程 / AI 原生资料库 / 插件市场 / PWA 移动端适配
12
-
13
- ### 新功能 / New Features
14
-
15
- #### Agent 能力(阶段二)
16
- - 多智能体协同:架构师/开发者/测试/评审 4 角色协作,评审反馈循环,质量评分
17
- - 事件驱动 Agent:cron 定时任务 + 文件变更监听 + Webhook 接收,自动唤醒执行
18
- - 自定义 Agent 框架:5 个内置 Agent 模板 + 用户自定义 + 关键词匹配推荐 + 导入导出
19
-
20
- #### 补全质量(阶段一)
21
- - 跨文件深度上下文:import 分析 → 依赖符号 → 使用分析三层检索,自动注入相关定义
22
- - 补全 Pro:连续推荐(函数后推荐调用/import 后推荐使用/编辑模式继续)
23
- - FIM 训练数据准备脚本:一键生成 train.jsonl / val.jsonl / meta.json
24
-
25
- #### 生态与体验(阶段三)
26
- - Electron 桌面端增强:全局快捷键(Ctrl+Shift+Space/K/L)、fhcode:// 深度链接、开机自启、增强托盘
27
- - 协作工具集成:飞书消息通知 / GitHub PR 自动审查 / Issue 管理 / 提交信息生成
28
- - Figma 设计稿集成:API 拉取、组件识别、设计令牌提取、Tailwind/React/Vue/HTML 多框架生成
29
- - SSO 单点登录:SAML/OIDC/OAuth2/LDAP/飞书/企业微信/钉钉
30
-
31
- #### 差异化创新(阶段四)
32
- - 语音编程:28 种语音指令解析 + 语音转代码 + 语音会话上下文
33
- - AI 原生资料库:文档管理/智能检索/自动摘要/关键词提取/统计
34
- - 插件市场:插件安装卸载启用禁用 + 市场浏览 + 插件 API + 命令注册
35
- - PWA:manifest.json + Service Worker 离线缓存 + 推送通知
36
-
37
- #### 安卓版(新增)
38
- - Capacitor 打包安卓 APK,包名 com.feihong.code,支持 Android 6.0+
39
- - 离线演示模式 + 远程服务器连接双模式
40
- - 紫蓝渐变 F 字母自适应图标
41
-
42
- ### 优化改进 / Improvements
43
-
44
- - 修复阶段二 server.ts 类型错误(logger/req.body 断言)
45
- - 统一 Kotlin 版本解决依赖冲突
46
- - 构建链优化:Gradle 国内镜像、compileSdk 35、JDK 21
47
-
48
- ### 兼容性 / Compatibility
49
-
50
- - 完整向后兼容 v7.0.0 配置文件
51
- - CLI 接口不变,新增 40+ REST API 端点
52
-
53
- ## v7.0.0 (2026-08-24)
54
-
55
- ### 重大更新 / Major Updates
56
-
57
- - **对话流全面重构**:对标豆包体验,纯文本输出 + 实时思考过程展示
58
- - **Electron 桌面版正式发布**:独立桌面窗口,系统托盘,应用菜单,权限管理
59
- - **版本号跨越**:从 0.6.1 直接升级到 7.0.0,标志产品成熟
60
-
61
- ### 新功能 / New Features
62
-
63
- - 截图功能:屏幕捕获 + 框选裁剪,截图直接到输入框
64
- - 电脑操作:后端 PowerShell API,支持截图、鼠标移动/点击、键盘输入
65
- - 语音/视频通话:麦克风实时识别 + 摄像头画面 + 视频截图
66
- - 工作区选择器:驱动器和文件夹分页,支持新建/重命名文件夹
67
- - 自动化快捷指令:常用快捷指令内置
68
- - 模板库插件系统:支持自定义来源,节点连接外部插件
69
- - 记忆系统:长期记忆自定义,添加记录简化为纯文本输入
70
- - 本地语音识别服务:faster-whisper 本地部署,完全免费离线
71
-
72
- ### 优化改进 / Improvements
73
-
74
- - 界面宽度优化:主区域最大宽度 1400px,不再占满屏幕
75
- - 用户菜单重构:从底部上拉改为右侧侧边栏
76
- - 启动逻辑修复:不再打开两次网页
77
- - 文本选择复制:支持选中部分文字复制
78
- - 对话历史扩容:conversation 80→300 条,steps 200→500 条
79
- - 系统提示词升级:编码能力 8 条 + 修复 bug 能力 7 条
80
- - 自检维护优化:每天仅第一次任务可做环境确认,后续直接执行
81
- - 中英文国际化:完整的中英文词条
82
-
83
- ### Bug 修复 / Bug Fixes
84
-
85
- - 修复 Electron 桌面版自动退出问题
86
- - 修复启动后打开两次网页的问题
87
- - 修复对话历史过长导致前面内容被截断的问题
88
- - 修复任务执行中思考过程不实时显示的问题
89
- - 修复桌面版复制粘贴快捷键失效的问题
90
- - 修复桌面版截图权限反复请求的问题
91
- - 修复构建错误连续 3 次后错误信息不准确的问题
92
-
93
- ### 文档 / Documentation
94
-
95
- - 新增更新说明书(中英文版)
96
- - 新增技术说明书(中英文版)
97
- - 新增横向测评报告(中英文版,豆包 AI 辅助)
98
-
99
- ---
100
-
101
- ## v0.6.1 (2026-08-24)
102
-
103
- - 修复对话流输出格式问题
104
- - 优化思考过程实时显示
105
- - 修复构建错误自愈逻辑
106
-
107
- ---
108
-
109
- ## v0.6.0 (2026-08-24)
110
-
111
- - 初始版本发布
112
- - 多模型路由支持
113
- - 企业级 RBAC 审计
114
- - 全自动 SWE Agent
115
- - Web 控制台
1
+ # 飞虹 Code 更新日志 / Changelog
2
+
3
+ ## v7.5.0 (2026-08-27)
4
+
5
+ ### 重大更新 / Major Updates
6
+
7
+ - **SWE-bench Verified 官方 harness 就绪**:对接 HuggingFace 官方数据集,支持 `--verifier test` 官方测试验证,跑分说明见 `docs/SWE_BENCH_REPORT.md`
8
+ - **Docker 容器沙箱隔离加固**:`container` 档位默认断网(`--network none`)+ 内存/pids 上限 + `--cap-drop ALL` + `no-new-privileges`,面向不信任代码场景
9
+ - **安全 CI SBOM**:`npm run security`(npm audit + CycloneDX SBOM + osv-scanner 可选),发布流水线接入门禁
10
+ - **合规售前材料**:安全白皮书(SOC2/ISO27001 自评估)+ 数据处理协议(DPA)
11
+
12
+ ### 新功能 / New Features
13
+
14
+ - **补全质量**:多候选补全(按置信度 Top3)、temperature 分层(quick 0 / full 0.3)、跨文件上下文(import 关联 + 工作区实时文档透传)
15
+ - **补全接受后自动 lint**:`/api/lint` 轻量语法校验,Monaco/VS Code 双端接受补全即反馈错误波浪线与提示
16
+ - **Monaco 语义诊断**:编辑时 LSP 诊断波浪线 + hover 展示诊断详情
17
+ - **多文件 diff 视图**:变更面板支持并排/内联切换 + 文件级折叠
18
+ - **插件市场本地种子源**:断网可用 10 个官方 skill 模板,install 自动注册到本地技能索引
19
+ - **多 agent 协作可视化**:团队面板新增协作总览(任务状态漏斗 + 成员负载分布)
20
+ - **VS Code 扩展**:补全纯函数抽离可单测(9/9)、跨文件上下文收集、accept 后 lint
21
+
22
+ ### 修复 / Bug Fixes
23
+
24
+ - `dedupeAgainstSuffix` 后缀重复去重 bug(suffix 长于补全时无法匹配)
25
+ - LSP 客户端启动逻辑简化(node 直跑 tls 入口,跨平台稳定)
26
+
27
+ ### 工程 / Engineering
28
+
29
+ - 发布流水线(release.yml)新增安全 CI + 综合冒烟 + SWE harness 冒烟门禁
30
+ - 版本号 7.2.0 → 7.5.0
31
+
32
+ ## v7.0.0 (2026-08-24)
33
+
34
+ ### 重大更新 / Major Updates
35
+
36
+ - **对话流全面重构**:对标豆包体验,纯文本输出 + 实时思考过程展示
37
+ - **Electron 桌面版正式发布**:独立桌面窗口,系统托盘,应用菜单,权限管理
38
+ - **版本号跨越**:从 0.6.1 直接升级到 7.0.0,标志产品成熟
39
+
40
+ ### 新功能 / New Features
41
+
42
+ - 截图功能:屏幕捕获 + 框选裁剪,截图直接到输入框
43
+ - 电脑操作:后端 PowerShell API,支持截图、鼠标移动/点击、键盘输入
44
+ - 语音/视频通话:麦克风实时识别 + 摄像头画面 + 视频截图
45
+ - 工作区选择器:驱动器和文件夹分页,支持新建/重命名文件夹
46
+ - 自动化快捷指令:常用快捷指令内置
47
+ - 模板库插件系统:支持自定义来源,节点连接外部插件
48
+ - 记忆系统:长期记忆自定义,添加记录简化为纯文本输入
49
+ - 本地语音识别服务:faster-whisper 本地部署,完全免费离线
50
+
51
+ ### 优化改进 / Improvements
52
+
53
+ - 界面宽度优化:主区域最大宽度 1400px,不再占满屏幕
54
+ - 用户菜单重构:从底部上拉改为右侧侧边栏
55
+ - 启动逻辑修复:不再打开两次网页
56
+ - 文本选择复制:支持选中部分文字复制
57
+ - 对话历史扩容:conversation 80→300 条,steps 200→500 条
58
+ - 系统提示词升级:编码能力 8 条 + 修复 bug 能力 7 条
59
+ - 自检维护优化:每天仅第一次任务可做环境确认,后续直接执行
60
+ - 中英文国际化:完整的中英文词条
61
+
62
+ ### Bug 修复 / Bug Fixes
63
+
64
+ - 修复 Electron 桌面版自动退出问题
65
+ - 修复启动后打开两次网页的问题
66
+ - 修复对话历史过长导致前面内容被截断的问题
67
+ - 修复任务执行中思考过程不实时显示的问题
68
+ - 修复桌面版复制粘贴快捷键失效的问题
69
+ - 修复桌面版截图权限反复请求的问题
70
+ - 修复构建错误连续 3 次后错误信息不准确的问题
71
+
72
+ ### 文档 / Documentation
73
+
74
+ - 新增更新说明书(中英文版)
75
+ - 新增技术说明书(中英文版)
76
+ - 新增横向测评报告(中英文版,豆包 AI 辅助)
77
+
78
+ ---
79
+
80
+ ## v0.6.1 (2026-08-24)
81
+
82
+ - 修复对话流输出格式问题
83
+ - 优化思考过程实时显示
84
+ - 修复构建错误自愈逻辑
85
+
86
+ ---
87
+
88
+ ## v0.6.0 (2026-08-24)
89
+
90
+ - 初始版本发布
91
+ - 多模型路由支持
92
+ - 企业级 RBAC 审计
93
+ - 全自动 SWE Agent
94
+ - Web 控制台