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.
- package/.github/workflows/ci.yml +180 -140
- package/.github/workflows/release.yml +200 -173
- package/CHANGELOG.md +94 -115
- package/README.md +609 -586
- package/dist/agent/completion-engine.js +76 -45
- package/dist/agent/completion-engine.js.map +1 -1
- package/dist/agent/completion-postprocess.js +109 -0
- package/dist/agent/completion-postprocess.js.map +1 -0
- package/dist/agent/context-budget.js +121 -0
- package/dist/agent/context-budget.js.map +1 -0
- package/dist/agent/context-compactor.js +47 -0
- package/dist/agent/context-compactor.js.map +1 -1
- package/dist/agent/custom-agent.js +52 -52
- package/dist/agent/design-to-code.js +40 -40
- package/dist/agent/lint.js +121 -0
- package/dist/agent/lint.js.map +1 -0
- package/dist/agent/multi-agent.js +44 -44
- package/dist/agent/orchestrator.js +20 -20
- package/dist/agent/prompts.js +54 -54
- package/dist/agent/self-correction.js +24 -24
- package/dist/agent/self-heal.js +27 -27
- package/dist/cli/commands.js +9 -0
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/multi-pane-tui.js +217 -0
- package/dist/cli/multi-pane-tui.js.map +1 -0
- package/dist/cli/run.js +129 -40
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/tui-run.js +79 -0
- package/dist/cli/tui-run.js.map +1 -0
- package/dist/cli/tui.js.map +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/lsp/lsp-client.js +183 -0
- package/dist/lsp/lsp-client.js.map +1 -0
- package/dist/lsp/lsp-service.js +159 -0
- package/dist/lsp/lsp-service.js.map +1 -0
- package/dist/plugins/manager.js +50 -2
- package/dist/plugins/manager.js.map +1 -1
- package/dist/shared/i18n.js +108 -100
- package/dist/shared/i18n.js.map +1 -1
- package/dist/tools/generator/code-generator.js +40 -40
- package/dist/tools/generator/test-generator.js +9 -9
- package/dist/tools/shell/exec.js +23 -1
- package/dist/tools/shell/exec.js.map +1 -1
- package/dist/web/extra-apis.js +440 -0
- package/dist/web/extra-apis.js.map +1 -0
- package/dist/web/public/css/style.css +1715 -1715
- package/dist/web/public/index.html +1242 -1200
- package/dist/web/public/js/api.js +555 -496
- package/dist/web/public/js/app.js +2210 -2210
- package/dist/web/public/js/mock-api.js +234 -234
- package/dist/web/public/js/monaco-editor.js +363 -203
- package/dist/web/public/js/ui.js +2251 -1981
- package/dist/web/public/js/utils.js +214 -214
- package/dist/web/public/manifest.json +59 -59
- package/dist/web/public/service-worker.js +173 -173
- package/dist/web/server.js +97 -45
- package/dist/web/server.js.map +1 -1
- package/docs/BENCHMARK_REPORT_en.md +386 -329
- package/docs/BENCHMARK_REPORT_zh.md +386 -329
- package/docs/DPA.md +63 -0
- 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
- package/docs/SECURITY_WHITEPAPER.md +74 -0
- package/docs/SWE_BENCH_REPORT.md +55 -0
- package/docs/TECHNICAL_SPEC_en.md +292 -292
- package/docs/TECHNICAL_SPEC_zh.md +292 -292
- package/docs/UPDATE_NOTES_en.md +159 -159
- package/docs/UPDATE_NOTES_zh.md +159 -159
- package/docs/UPGRADE_7.2.0.md +309 -0
- package/docs/UPGRADE_GUIDE_7_5.md +86 -0
- package/docs/geo-feihong-code.html +391 -0
- 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
- 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
- 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
- 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
- package/docs//345/256/211/345/205/250/347/231/275/347/232/256/344/271/246_v7.2.0.md +82 -0
- package/electron/main.js +404 -602
- package/package.json +175 -172
- package/templates/skills/api-design/SKILL.md +27 -0
- package/templates/skills/code-review/SKILL.md +35 -0
- package/templates/skills/dependency-upgrade/SKILL.md +29 -0
- package/templates/skills/doc-gen/SKILL.md +29 -0
- package/templates/skills/git-flow/SKILL.md +26 -0
- package/templates/skills/onboarding/SKILL.md +27 -0
- package/templates/skills/performance/SKILL.md +29 -0
- package/templates/skills/refactor/SKILL.md +28 -0
- package/templates/skills/security-audit/SKILL.md +28 -0
- package/templates/skills/test-gen/SKILL.md +30 -0
- package/tool-schema.json +197 -197
- package/dist/hello.js +0 -14
- package/dist/hello.js.map +0 -1
- package/dist/self-evolve/hook.ts +0 -80
- package/dist/self-evolve/manager.d.ts +0 -8
- package/dist/web/public/vendor/monaco/vs/abap-D-t0cyap.js +0 -1
- package/dist/web/public/vendor/monaco/vs/apex-CcIm7xu6.js +0 -1
- package/dist/web/public/vendor/monaco/vs/assets/css.worker-URu8fCFR.js +0 -97
- package/dist/web/public/vendor/monaco/vs/assets/editor.worker-lj3bdIIn.js +0 -30
- package/dist/web/public/vendor/monaco/vs/assets/editorWebWorkerMain-CA_vMoUU.js +0 -30
- package/dist/web/public/vendor/monaco/vs/assets/html.worker-D1SL3iM8.js +0 -474
- package/dist/web/public/vendor/monaco/vs/assets/json.worker-CoJx_OPf.js +0 -62
- package/dist/web/public/vendor/monaco/vs/assets/ts.worker-BWKtMYOk.js +0 -67722
- package/dist/web/public/vendor/monaco/vs/azcli-BA0tQDCg.js +0 -1
- package/dist/web/public/vendor/monaco/vs/basic-languages/monaco.contribution.js +0 -1
- package/dist/web/public/vendor/monaco/vs/bat-C397hTD6.js +0 -1
- package/dist/web/public/vendor/monaco/vs/bicep-DF5aW17k.js +0 -2
- package/dist/web/public/vendor/monaco/vs/cameligo-plsz8qhj.js +0 -1
- package/dist/web/public/vendor/monaco/vs/clojure-Y2auQMzK.js +0 -1
- package/dist/web/public/vendor/monaco/vs/coffee-Bu45yuWE.js +0 -1
- package/dist/web/public/vendor/monaco/vs/cpp-CkKPQIni.js +0 -1
- package/dist/web/public/vendor/monaco/vs/csharp-CX28MZyh.js +0 -1
- package/dist/web/public/vendor/monaco/vs/csp-D8uWnyxW.js +0 -1
- package/dist/web/public/vendor/monaco/vs/css-CaeNmE3S.js +0 -3
- package/dist/web/public/vendor/monaco/vs/css.worker-CyhWkhHo.js +0 -1
- package/dist/web/public/vendor/monaco/vs/cssMode-CV6Ay48H.js +0 -1
- package/dist/web/public/vendor/monaco/vs/cypher-DVThT8BS.js +0 -1
- package/dist/web/public/vendor/monaco/vs/dart-CmGfCvrO.js +0 -1
- package/dist/web/public/vendor/monaco/vs/dockerfile-CZqqYdch.js +0 -1
- package/dist/web/public/vendor/monaco/vs/ecl-30fUercY.js +0 -1
- package/dist/web/public/vendor/monaco/vs/editor/editor.main.css +0 -1
- package/dist/web/public/vendor/monaco/vs/editor/editor.main.js +0 -1
- package/dist/web/public/vendor/monaco/vs/editor/editor.worker.js +0 -1
- package/dist/web/public/vendor/monaco/vs/editor-KLE6jdfb.js +0 -831
- package/dist/web/public/vendor/monaco/vs/editor.js +0 -1
- package/dist/web/public/vendor/monaco/vs/editorWorkerHost-fVE1cjcC.js +0 -35
- package/dist/web/public/vendor/monaco/vs/elixir-xjPaIfzF.js +0 -1
- package/dist/web/public/vendor/monaco/vs/flow9-DqtmStfK.js +0 -1
- package/dist/web/public/vendor/monaco/vs/freemarker2-FWreY7v7.js +0 -3
- package/dist/web/public/vendor/monaco/vs/fsharp-BOMdg4U1.js +0 -1
- package/dist/web/public/vendor/monaco/vs/go-D_hbi-Jt.js +0 -1
- package/dist/web/public/vendor/monaco/vs/graphql-CKUU4kLG.js +0 -1
- package/dist/web/public/vendor/monaco/vs/handlebars-CZi4pHCH.js +0 -1
- package/dist/web/public/vendor/monaco/vs/hcl-DTaboeZW.js +0 -1
- package/dist/web/public/vendor/monaco/vs/html-j_7ZTNRU.js +0 -1
- package/dist/web/public/vendor/monaco/vs/html.worker-CA3iAimZ.js +0 -1
- package/dist/web/public/vendor/monaco/vs/htmlMode-27by_KM4.js +0 -1
- package/dist/web/public/vendor/monaco/vs/index-049xrXrp.js +0 -1
- package/dist/web/public/vendor/monaco/vs/index-CBVt3dzv.js +0 -5
- package/dist/web/public/vendor/monaco/vs/index.js +0 -1
- package/dist/web/public/vendor/monaco/vs/ini-CsNwO04R.js +0 -1
- package/dist/web/public/vendor/monaco/vs/initialize-DL0l1TGY.js +0 -1
- package/dist/web/public/vendor/monaco/vs/java-CI4ZMsH9.js +0 -1
- package/dist/web/public/vendor/monaco/vs/javascript-DTJl4Jn1.js +0 -1
- package/dist/web/public/vendor/monaco/vs/json.worker-BizpAl9O.js +0 -1
- package/dist/web/public/vendor/monaco/vs/jsonMode-DLUiMUrI.js +0 -1
- package/dist/web/public/vendor/monaco/vs/julia-BwzEvaQw.js +0 -1
- package/dist/web/public/vendor/monaco/vs/kotlin-IUYPiTV8.js +0 -1
- package/dist/web/public/vendor/monaco/vs/language/css/css.worker.js +0 -66
- package/dist/web/public/vendor/monaco/vs/language/css/monaco.contribution.js +0 -1
- package/dist/web/public/vendor/monaco/vs/language/html/html.worker.js +0 -443
- package/dist/web/public/vendor/monaco/vs/language/html/monaco.contribution.js +0 -1
- package/dist/web/public/vendor/monaco/vs/language/json/json.worker.js +0 -17
- package/dist/web/public/vendor/monaco/vs/language/json/monaco.contribution.js +0 -1
- package/dist/web/public/vendor/monaco/vs/language/typescript/monaco.contribution.js +0 -1
- package/dist/web/public/vendor/monaco/vs/language/typescript/ts.worker.js +0 -67693
- package/dist/web/public/vendor/monaco/vs/less-C0eDYdqa.js +0 -2
- package/dist/web/public/vendor/monaco/vs/lexon-iON-Kj97.js +0 -1
- package/dist/web/public/vendor/monaco/vs/liquid-CLJYelW6.js +0 -1
- package/dist/web/public/vendor/monaco/vs/loader.js +0 -1368
- package/dist/web/public/vendor/monaco/vs/lspLanguageFeatures-BIkJOWLw.js +0 -2
- package/dist/web/public/vendor/monaco/vs/lua-DtygF91M.js +0 -1
- package/dist/web/public/vendor/monaco/vs/m3-CsR4AuFi.js +0 -1
- package/dist/web/public/vendor/monaco/vs/main-BEx-Fmlo.js +0 -15
- package/dist/web/public/vendor/monaco/vs/main-DsK8pnKg.js +0 -3
- package/dist/web/public/vendor/monaco/vs/markdown-C_rD0bIw.js +0 -1
- package/dist/web/public/vendor/monaco/vs/mdx-CpzZIPHF.js +0 -1
- package/dist/web/public/vendor/monaco/vs/mips-CiYP61RB.js +0 -1
- package/dist/web/public/vendor/monaco/vs/monaco.contribution-9cKT3C7t.js +0 -1
- package/dist/web/public/vendor/monaco/vs/monaco.contribution-BE88ZNGY.js +0 -1
- package/dist/web/public/vendor/monaco/vs/monaco.contribution-BPhsneLd.js +0 -1
- package/dist/web/public/vendor/monaco/vs/monaco.contribution-BgRy6xDf.js +0 -1
- package/dist/web/public/vendor/monaco/vs/msdax-C38-sJlp.js +0 -1
- package/dist/web/public/vendor/monaco/vs/mysql-CdtbpvbG.js +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/cs.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/cs.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/de.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/de.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/es.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/es.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/fr.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/fr.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/it.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/it.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/ja.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/ja.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/ko.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/ko.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/pl.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/pl.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/pt-br.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/ru.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/ru.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/tr.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/tr.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/zh-cn.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.d.ts +0 -1
- package/dist/web/public/vendor/monaco/vs/nls/lang/zh-tw.js +0 -9
- package/dist/web/public/vendor/monaco/vs/nls.messages-loader.js +0 -1
- package/dist/web/public/vendor/monaco/vs/objective-c-CntZFaHX.js +0 -1
- package/dist/web/public/vendor/monaco/vs/pascal-r6kuqfl_.js +0 -1
- package/dist/web/public/vendor/monaco/vs/pascaligo-BiXoTmXh.js +0 -1
- package/dist/web/public/vendor/monaco/vs/perl-DABw_TcH.js +0 -1
- package/dist/web/public/vendor/monaco/vs/pgsql-me_jFXeX.js +0 -1
- package/dist/web/public/vendor/monaco/vs/php-D_kh-9LK.js +0 -1
- package/dist/web/public/vendor/monaco/vs/pla-VfZjczW0.js +0 -1
- package/dist/web/public/vendor/monaco/vs/postiats-BBSzz8Pk.js +0 -1
- package/dist/web/public/vendor/monaco/vs/powerquery-Dt-g_2cc.js +0 -1
- package/dist/web/public/vendor/monaco/vs/powershell-B-7ap1zc.js +0 -1
- package/dist/web/public/vendor/monaco/vs/protobuf-BmtuEB1A.js +0 -2
- package/dist/web/public/vendor/monaco/vs/pug-BRpRNeEb.js +0 -1
- package/dist/web/public/vendor/monaco/vs/python-CqWUUgfu.js +0 -1
- package/dist/web/public/vendor/monaco/vs/qsharp-BzsFaUU9.js +0 -1
- package/dist/web/public/vendor/monaco/vs/r-f8dDdrp4.js +0 -1
- package/dist/web/public/vendor/monaco/vs/razor-hok5y9Km.js +0 -1
- package/dist/web/public/vendor/monaco/vs/redis-fvZQY4PI.js +0 -1
- package/dist/web/public/vendor/monaco/vs/redshift-45Et0LQi.js +0 -1
- package/dist/web/public/vendor/monaco/vs/restructuredtext-C7UUFKFD.js +0 -1
- package/dist/web/public/vendor/monaco/vs/ruby-CZO8zYTz.js +0 -1
- package/dist/web/public/vendor/monaco/vs/rust-Bfetafyc.js +0 -1
- package/dist/web/public/vendor/monaco/vs/sb-3GYllVck.js +0 -1
- package/dist/web/public/vendor/monaco/vs/scala-foMgrKo1.js +0 -1
- package/dist/web/public/vendor/monaco/vs/scheme-CHdMtr7p.js +0 -1
- package/dist/web/public/vendor/monaco/vs/scss-C1cmLt9V.js +0 -3
- package/dist/web/public/vendor/monaco/vs/shell-ClXCKCEW.js +0 -1
- package/dist/web/public/vendor/monaco/vs/solidity-MZ6ExpPy.js +0 -1
- package/dist/web/public/vendor/monaco/vs/sophia-DWkuSsPQ.js +0 -1
- package/dist/web/public/vendor/monaco/vs/sparql-AUGFYSyk.js +0 -1
- package/dist/web/public/vendor/monaco/vs/sql-32GpJSV2.js +0 -1
- package/dist/web/public/vendor/monaco/vs/st-CuDFIVZ_.js +0 -1
- package/dist/web/public/vendor/monaco/vs/swift-t-PfMj7W.js +0 -1
- package/dist/web/public/vendor/monaco/vs/systemverilog-Ch4vA8Yt.js +0 -1
- package/dist/web/public/vendor/monaco/vs/tcl-D74tq1nH.js +0 -1
- package/dist/web/public/vendor/monaco/vs/toggleHighContrast-qGX7E9o7.js +0 -61
- package/dist/web/public/vendor/monaco/vs/ts.worker-2QLmBukE.js +0 -1
- package/dist/web/public/vendor/monaco/vs/tsMode-B0S_kp2q.js +0 -11
- package/dist/web/public/vendor/monaco/vs/twig-C6taOxMV.js +0 -1
- package/dist/web/public/vendor/monaco/vs/typescript-_2t_511t.js +0 -1
- package/dist/web/public/vendor/monaco/vs/typespec-8OfoLt6R.js +0 -1
- package/dist/web/public/vendor/monaco/vs/vb-Dyb2648j.js +0 -1
- package/dist/web/public/vendor/monaco/vs/wgsl-BhLXMOR0.js +0 -298
- package/dist/web/public/vendor/monaco/vs/workers-BBttULjf.js +0 -1
- package/dist/web/public/vendor/monaco/vs/xml-cZjNDqDT.js +0 -1
- package/dist/web/public/vendor/monaco/vs/yaml-A1fOIdH6.js +0 -1
- package/dist/web/web-config.js +0 -143
- package/dist/web/web-config.js.map +0 -1
- package/docs/DEPLOYMENT.md +0 -382
- package/docs/MODEL_FINETUNING.md +0 -405
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# 飞虹 Code 全面复盘:6 项重点核查与优化方案(v7.2.0)
|
|
2
|
+
|
|
3
|
+
**晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹**
|
|
4
|
+
**复核日期**:2026-08-27
|
|
5
|
+
**复核方式**:不凭记忆/不粉饰,逐项读取代码 + 实测证据后判定。
|
|
6
|
+
|
|
7
|
+
> 本报告针对外部评估提出的 6 项重点问题逐条复核,区分「✅ 已修复(评估数据过时)/ ⚠️ 部分属实 / ❌ 真差距」,并给出可落地优化方案。本轮已完成的部分修复见各条目"本轮动作"。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 总览
|
|
12
|
+
|
|
13
|
+
| # | 外部指控 | 复核判定 | 真差距 | 本轮动作 |
|
|
14
|
+
|---|---|---|---|---|
|
|
15
|
+
| ① | SWE Agent 245 行框架,无 SWE-bench 集成 | ⚠️ 部分不实 | 跑分未公开到 README | ✅ README 已公开 80% 跑分 |
|
|
16
|
+
| ② | 无 LSP 集成(OpenCode 编译器级) | ⚠️ 部分不实 | 是自建语义层,非真实 LSP 服务器对接 | 已在 P0-2 修复,标注量级差 |
|
|
17
|
+
| ③ | O1 扩展 300 行薄壳,无实时 inline 补全 | ⚠️ 部分不实 | 薄壳属实(设计使然);补全已实现但无 CI 验证 | 报告澄清 + 验证路径 |
|
|
18
|
+
| ④ | 生态规模不足(WorkBuddy 7 万+ Skills) | ❌ 属实 | 自有生态刚起步 | 生态 roadmap(本报告) |
|
|
19
|
+
| ⑤ | Docker 沙箱缺失 | ⚠️ 部分不实 | container 档执行层未实测/未探测 | ✅ doctor 增加 docker 探测 |
|
|
20
|
+
| ⑥ | 合规认证空白(SOC2/ISO27001) | ❌ 属实 | 无认证、无安全文档 | ✅ 合规准备清单文档 |
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## ① SWE Agent:245 行框架?无 SWE-bench 集成?
|
|
25
|
+
|
|
26
|
+
**实测证据**:
|
|
27
|
+
- SWE 三件套实际位置与行数(`src/agent/`):
|
|
28
|
+
- `swe-agent.ts` **219 行**、`swe-planner.ts` **180 行**、`swe-verifier.ts` **135 行**,**合计 534 行**(外部评估"245 行"严重低估)
|
|
29
|
+
- **SWE-bench 集成真实存在**:
|
|
30
|
+
- harness 闭环(loader→executor→verifier→reporter)mock **2/2 = 100%**(`_swe-smoke.mjs`)
|
|
31
|
+
- 真实模型驱动 Orchestrator 生成率 **3/3 = 100%**(`_swe-real.mjs`)
|
|
32
|
+
- **测试通过率 80%(4/5)**:自建 SWE-bench 格式任务集(problem_statement + FAIL_TO_PASS)+ 真实模型 agnes-2.5-flash + **预定义测试 node --test 真实断言**(`_swe-bench-real.mjs`)
|
|
33
|
+
- 失败项 swe-js-004 为执行层失败(iterations=0),非实现错误
|
|
34
|
+
|
|
35
|
+
**判定**:⚠️ **部分不实**。"245 行框架、无集成"不成立;但**"无公开跑分"部分属实**——跑分此前仅在内部报告,未进入 README 官网。
|
|
36
|
+
|
|
37
|
+
**优化方案(已完成)**:✅ README 新增「SWE-bench 真实跑分」小节,诚实口径公开 80%(4/5)+ 复现脚本 + 行业参考,并明确"非官方 Verified 声明"。
|
|
38
|
+
|
|
39
|
+
**剩余建议**:官方 SWE-bench Verified 500 任务需 Docker+pytest 环境,建议在 CI 中跑通后作为正式对标成绩(见 ⑤)。
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## ② LSP 集成:无编译器级代码理解?
|
|
44
|
+
|
|
45
|
+
**实测证据**:
|
|
46
|
+
- `src/lsp/lsp-service.ts` **185 行**,已实现并接入 Web API(`/api/lsp/*`):
|
|
47
|
+
- `graph`:全仓库代码图谱(462 文件 / 14848 符号 / 1230 边,实测)
|
|
48
|
+
- `symbols`:文件符号列表(对标 LSP documentSymbol)
|
|
49
|
+
- `diagnostics`:文件级语义诊断(对标 publishDiagnostics)
|
|
50
|
+
- `definition` / `hover` / `search`:定义定位、签名信息、跨文件符号搜索
|
|
51
|
+
- P0-2 完成时 LSP 冒烟 **9/9 通过**(`_lsp-smoke.mjs`)
|
|
52
|
+
|
|
53
|
+
**判定**:⚠️ **部分不实**。"无 LSP 集成"不成立(已有自建语义服务层);但需诚实标注量级差:**OpenCode 是"编译器级"**——通过对接真实 LSP 服务器(typescript-language-server 等)获得精确的类型级理解;飞虹 Code 是**自建轻量语义服务层**(正则/符号索引),未对接真实 LSP 协议服务器。
|
|
54
|
+
|
|
55
|
+
**优化方案**:
|
|
56
|
+
- P0:补齐 `textDocument/hover` 的类型级信息(当前为符号级)
|
|
57
|
+
- P1:可选对接 `typescript-language-server`,把自建层作为 fallback,达到编译器级(对标 OpenCode)
|
|
58
|
+
- P1:Web 编辑器接入 `/api/lsp/diagnostics` 做编辑时错误波浪线
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## ③ O1 扩展 300 行薄壳,无实时 inline 补全?
|
|
63
|
+
|
|
64
|
+
**实测证据**:
|
|
65
|
+
- `vscode-extension/extension.js` **306 行**(api-client.js 88 行)——"300 行薄壳"**属实**,但这是**设计使然**(注释明确"逻辑下沉 agent 端,扩展只做 UI 与协议桥接"),且薄壳内部**已实现实时 inline 补全**:
|
|
66
|
+
- L99-134:`inlineProvider.provideInlineCompletionItems` → 调 `/api/completion` → 包装为 `InlineCompletionItem`
|
|
67
|
+
- L291-295:`vscode.languages.registerInlineCompletionItemProvider({ pattern: '**' }, inlineProvider)` **已注册**
|
|
68
|
+
- `api-client.js` 已封装 `completion(params)` → `POST /api/completion`
|
|
69
|
+
- 客户端后处理(stripCodeFences / dedupeAgainstSuffix / trimTrailingPartialLine)已实现
|
|
70
|
+
- **Tab 接受**:VS Code 1.70+ 内建 inline completion Tab 接受,无需扩展代码
|
|
71
|
+
- Web 端 ghost text 补全(P1-1)也已实现(防抖 350ms + Tab 接受)
|
|
72
|
+
|
|
73
|
+
**判定**:⚠️ **部分不实**。"无实时 inline 补全"**不成立**(VS Code 扩展 + Web 端均已实现);"300 行薄壳"属实但为合理架构。
|
|
74
|
+
|
|
75
|
+
**优化方案**:
|
|
76
|
+
- P0:给 `vscode-extension` 增加**无 VS Code 环境的逻辑单测**(postProcessCompletion 等纯函数),杜绝"无验证"
|
|
77
|
+
- P1:补全质量提升——服务端 completion-engine 增加多候选排序、跨文件上下文(已有部分)
|
|
78
|
+
- P2:扩展增加状态栏补全开关状态同步、Ctrl+Space 手动触发(VS Code 内建,可配置快捷键)
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ④ 生态规模不足(WorkBuddy 7 万+ Skills)
|
|
83
|
+
|
|
84
|
+
**实测证据**:
|
|
85
|
+
- 系统运行环境内置 **105 个 Skill**(doubao-academic-* / lark-* / seed-* 等,为豆包平台资产,**非飞虹 Code 自有生态**)
|
|
86
|
+
- 飞虹 Code 自有生态:`src/plugins/`(manager 390 行 + plugin-loader 142 行)已支持全局/项目级第三方插件加载与真实执行(P2-2 修复),`fhcode skill-market` / `fhcode plugin` 命令存在
|
|
87
|
+
- **但**:无官方插件市场、无 Skill 模板库、第三方插件为 0
|
|
88
|
+
|
|
89
|
+
**判定**:❌ **属实**。与 WorkBuddy 7 万+ Skills 相比,生态差距是真实的、最大的长期差距。
|
|
90
|
+
|
|
91
|
+
**优化方案**(roadmap):
|
|
92
|
+
- P0:**Skill 模板库**——内置 10 个官方 Skill 模板(code-review / git-flow / api-design 等),`fhcode skill new <name>` 脚手架生成
|
|
93
|
+
- P1:**本地插件市场种子**——`skill-market` 增加本地种子源(10+ 插件),支持 `fhcode plugin install <market-id>`
|
|
94
|
+
- P2:**生态门户**——GEO 推广页 + 文档站开放第三方提交入口(GitHub PR 模板)
|
|
95
|
+
- P3:**数量规模**——开放 SDK 文档(PluginAPI 已就绪)+ 社区激励
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## ⑤ Docker 沙箱缺失:无容器隔离档位?
|
|
100
|
+
|
|
101
|
+
**实测证据**:
|
|
102
|
+
- `src/tools/sandbox.ts` **已实现 container 档**(SandboxMode 含 `container`,判定逻辑 L118-128)
|
|
103
|
+
- `src/tools/shell/exec.ts` **已实现容器执行层** `runCommandInContainer`(docker run --rm -v cwd:/workspace -w /workspace + FH_SANDBOX_IMAGE 可配,默认 node:22-alpine)
|
|
104
|
+
- P2-3 沙箱判定层实测 **12/12 通过**(read-only 禁写禁执行 / container 放行+网络规则 / danger 黑名单仍生效)
|
|
105
|
+
- `FH_SANDBOX_MODE=container` 配置已存在 .env.example
|
|
106
|
+
|
|
107
|
+
**判定**:⚠️ **部分不实**。"无容器隔离档位"**不成立**(代码 + 判定层实测俱在);真差距是:
|
|
108
|
+
1. **执行层未在真实容器实测**(本机无 docker)
|
|
109
|
+
2. **环境无探测**:`fhcode doctor` 此前不检查 docker,container 模式是否可用无人知晓
|
|
110
|
+
3. 文档未说明容器模式启用步骤
|
|
111
|
+
|
|
112
|
+
**优化方案(本轮已完成 2/3)**:
|
|
113
|
+
- ✅ **doctor 增加 docker 探测**:`runDoctor` 新增第 6 项检查(Docker 沙箱 container 档),container 模式下 docker 不可用则告警
|
|
114
|
+
- ✅ i18n zh/en 补齐 `doctor.docker`
|
|
115
|
+
- 剩余:有 docker 环境实测 `runCommandInContainer` 一次真实容器执行(写文件验证挂载隔离);文档补"container 模式启用步骤"
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
119
|
+
## ⑥ 合规认证空白(缺 SOC2/ISO27001)
|
|
120
|
+
|
|
121
|
+
**实测证据**:
|
|
122
|
+
- 文档中 SOC2/ISO27001 仅出现在 BENCHMARK_REPORT 的"差距"栏,**无任何认证/证书/安全文档**——指控属实
|
|
123
|
+
- 技术控制面已具备:RBAC、审计日志(`fhcode audit`)、私有化部署、沙箱三档——是合规的**技术基础**
|
|
124
|
+
|
|
125
|
+
**判定**:❌ **属实**。政企采购确实常因缺证书卡流程。
|
|
126
|
+
|
|
127
|
+
**优化方案(本轮已完成)**:
|
|
128
|
+
- ✅ 新建《合规认证准备清单_v7.2.0.md》:现状核查表 + 政企采购卡点分析 + 技术侧 8 项先行项(依赖扫描 CI / SBOM / 审计完备 / 脱敏 / 密钥管理 / 安全白皮书 / 数据留存 / DPA)+ 组织侧 4 项(SOC2/ISO27001/等保/渗透)
|
|
129
|
+
- **诚实声明**:认证必须第三方审计,产品不得自封;技术控制面 + 文档 + 供应链证据可在 1-2 迭代补齐(这是政企最卡的部分)
|
|
130
|
+
- 后续:安全 CI(npm audit + osv-scanner)落地、SBOM 生成、安全白皮书
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 优先级建议(下一迭代)
|
|
135
|
+
|
|
136
|
+
| 优先级 | 项 | 价值 |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| P0 | 官方 SWE-bench Verified 实测(需 Docker 环境) | 对外硬指标从"自建 80%"升级为"官方成绩" |
|
|
139
|
+
| P0 | 安全 CI(npm audit + osv-scanner)+ SBOM | 供应链安全证据,政企准入 |
|
|
140
|
+
| P0 | 生态 Skill 模板库(10 个官方模板) | 生态从 0→1 的第一步 |
|
|
141
|
+
| P1 | LSP 对接真实服务器(typescript-language-server) | 编译器级代码理解(对标 OpenCode) |
|
|
142
|
+
| P1 | 扩展补全纯函数单测 + 质量优化 | 杜绝"无验证"、提升补全质量 |
|
|
143
|
+
| P1 | 安全白皮书 + DPA 文档 | 政企售前材料 |
|
|
144
|
+
| P2 | 生态门户(第三方提交入口) | 规模化起点 |
|
|
145
|
+
|
|
146
|
+
## 结论
|
|
147
|
+
|
|
148
|
+
外部评估的 6 项指控中:**③ 项为"部分不实"**(① ② ③ ⑤,均已有实现,属评估数据过时或口径偏差),**2 项"属实"**(④ 生态、⑥ 合规),**0 项完全成立**。本轮已完成:README 跑分公开(①)、doctor docker 探测(⑤)、合规准备清单(⑥)。真正的长期差距集中在**生态规模(④)与合规认证(⑥)**,以及**官方 SWE-bench 实测(① 的升级项)与编译器级 LSP(② 的升级项)**。
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
*飞扬企源研发中心 · 2026-08-27*
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
# 飞虹 Code v7.2.0 深度复盘报告
|
|
2
|
+
## (运行时实测版 · 第二轮 50 次复盘 · 对标 10 款一线产品)
|
|
3
|
+
|
|
4
|
+
> 审计对象:`H:\Muse Code复刻`(TypeScript + Electron + Express 终端 AI 编程智能体,对标 Muse Code / Cursor)
|
|
5
|
+
> 审计日期:2026-08-26 | 审计方法:**静态依赖图扫描(50 轮)+ 运行时真实实测(启动 server 带认证打全量 API)+ 逐项源码核验**
|
|
6
|
+
> 审计立场:**真实、不粉饰**。本报告只陈述"实测到的事实",不沿用上一版的虚高结论。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 0. 审计方法(本轮升级)
|
|
11
|
+
|
|
12
|
+
| 方法 | 手段 | 目的 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| 静态扫描 | `scripts/_audit-deps.cjs`(50 轮依赖图孤岛扫描)+ `_audit-enterprise.cjs` | 找死代码模块、enterprise 引用 |
|
|
15
|
+
| **运行时实测** | 启动真实 server(port 8099)→ 登录获取 Bearer Token → 逐端点打 API(`_api-full.mjs` / `_verify-fix.mjs`) | **决定性证据**:每个声称的功能到底通不通 |
|
|
16
|
+
| 源码核验 | 对上一版报告每项声明逐一对照源码 | 勘误 |
|
|
17
|
+
|
|
18
|
+
**一句话结论**:上一版 12 维评测矩阵存在 **3 处硬伤 + 综合分算术不可复核**;本轮实测发现 **8 个声称功能运行时全部 404**;本轮已**真实修复**并验证通过(详见 §3)。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1. 上一版报告《重新复盘_12维评测矩阵_v7.2.0.html》勘误
|
|
23
|
+
|
|
24
|
+
| # | 上一版声明 | 源码核验结果 | 勘误 |
|
|
25
|
+
|---|---|---|---|
|
|
26
|
+
| 1 | SWE-bench"无集成" | `src/swe/*` 三件套实际 **534 行**(runner/verifier/evaluator 完整) | **错误**,已有完整 harness |
|
|
27
|
+
| 2 | "无 Docker 沙箱" | `src/sandbox.ts` **141 行 4 档**:direct → bash → docker → **container** | **错误**,含 container 档 |
|
|
28
|
+
| 3 | "无 inline 补全" | VS Code 扩展 + Web 前端均实现 `/api/completion` | **错误**,已实现 |
|
|
29
|
+
| 4 | 综合分 8.25(飞虹) | 12 维简单平均实为 **8.33**;报告未披露权重,9/12 行算术对不上 | **算术不可复核**(如 Cursor 平均 7.33 却写 8.83) |
|
|
30
|
+
| 5 | enterprise/ 1179 行 | 实测 **1096 行** | 行数误差 |
|
|
31
|
+
| 6 | SWE 三件套 245 行 | 实测 **534 行** | 行数误差 |
|
|
32
|
+
| 7 | voice 指令"若干" | `VoiceCommandType` 联合类型恰好 **28 种** | 不精确 |
|
|
33
|
+
|
|
34
|
+
**结论**:上一版报告的"飞虹综合第 1 / 并列第 1"结论**不成立**——它建立在 3 处错误之上,且综合分算法不可复核。
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 2. 运行时实测结果(修复前,决定性证据)
|
|
39
|
+
|
|
40
|
+
启动 `node dist/cli/index.js serve --port 8099`,`POST /api/auth/login {phone:'vscode-local'}` 获取 token,带 `Authorization: Bearer` 逐端点实测(26+ 端点):
|
|
41
|
+
|
|
42
|
+
### 2.1 核心引擎 —— 全部真实可用 ✅
|
|
43
|
+
|
|
44
|
+
| 端点 | 实测 | 说明 |
|
|
45
|
+
|---|---|---|
|
|
46
|
+
| GET /api/models | **200** | 返回 hy3-free 等模型 |
|
|
47
|
+
| GET /api/multi-agent/roles | **200** | 架构师/开发/测试等多角色 |
|
|
48
|
+
| **POST /api/multi-agent/run** | **200(130s)** | **真实跑完多角色协同任务** |
|
|
49
|
+
| GET /api/custom-agents | **200** | 5 个内置智能体 |
|
|
50
|
+
| GET /api/event-driven/config+events | **200** | 事件驱动引擎 |
|
|
51
|
+
| GET /api/mcp/tools+config | **200** | MCP 服务器框架 |
|
|
52
|
+
| GET /api/changes + detect-conflicts | **200** | 变更审批/冲突检测 |
|
|
53
|
+
| GET /api/team/stats、/api/solo/list | **200** | 团队/单人 |
|
|
54
|
+
| GET /api/skills/market | **200(100 技能)** | 技能市场 |
|
|
55
|
+
| GET /api/office/capabilities、/api/git/status、/api/memory/stats、/api/templates、/api/nodes | **200** | 办公/文档/记忆 |
|
|
56
|
+
|
|
57
|
+
### 2.2 死代码 —— CHANGELOG 声称的 8 项能力运行时全部 404 ❌
|
|
58
|
+
|
|
59
|
+
| 端点 | 实测 | CHANGELOG 声称 |
|
|
60
|
+
|---|---|---|
|
|
61
|
+
| POST /api/voice/parse | **404** | ✅ 语音编程 |
|
|
62
|
+
| POST /api/voice/to-code | **404** | ✅ 语音转代码 |
|
|
63
|
+
| GET /api/knowledge/documents | **404** | ✅ AI 资料库 |
|
|
64
|
+
| POST /api/figma/convert | **404** | ✅ Figma 转代码 |
|
|
65
|
+
| GET /api/sso/providers | **404** | ✅ SSO 登录 |
|
|
66
|
+
| GET /api/collaboration/config | **404** | ✅ 团队协作 |
|
|
67
|
+
| GET /api/plugins | **404** | ✅ 插件管理 |
|
|
68
|
+
| GET /api/plugins/market | **404** | ✅ 插件市场 |
|
|
69
|
+
|
|
70
|
+
> **这是"报告虚高"的铁证**:文档/CHANGELOG 声称的 8 项能力,服务端一个路由都没注册。代码存在(孤岛模块)但**从未接线**。
|
|
71
|
+
|
|
72
|
+
### 2.3 其余发现
|
|
73
|
+
|
|
74
|
+
- 认证为 **Bearer Token fail-closed**:未认证全 401(合理设计,但掩盖了 404,需文档说明)。
|
|
75
|
+
- `/api/custom-agents/match`、`/api/completion` 返回 400:是参数名问题(需 `{input}` / `{filePath+fileContent}`),非缺陷。
|
|
76
|
+
- `/api/models/providers`、`/api/event-driven/cron`、`GET /api/design-to-code` 404:路由未注册(设计-to-code 只有 POST),属"缺失路由",已在修复清单。
|
|
77
|
+
- **版本号 bug**:`src/cli/version.ts` 硬编码 `VERSION='7.0.0'`,而 package.json 已是 7.2.0 → health 返回 7.0.0,**运行时版本与包版本不一致**。
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 3. 真实修复(本轮完成 + 已验证 ✅)
|
|
82
|
+
|
|
83
|
+
### 3.1 新建能力接线层 `src/web/extra-apis.ts`(约 11KB)
|
|
84
|
+
把 7 个孤岛模块接入 server,注册 **30 个新 API**:
|
|
85
|
+
|
|
86
|
+
| 模块 | 接入 API | 配置项 |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| 语音编程 | /api/voice/commands、parse、to-code | 无 |
|
|
89
|
+
| AI 资料库 | /api/knowledge/stats、documents、categories、tags、document CRUD、search | 无 |
|
|
90
|
+
| SSO | /api/sso/providers、login-url、validate | 无 |
|
|
91
|
+
| 协作 | /api/collaboration/status、notify | FH_FEISHU_* / FH_GITHUB_* |
|
|
92
|
+
| Figma | /api/figma/status、convert | FH_FIGMA_TOKEN |
|
|
93
|
+
| 插件 | /api/plugins、market、categories、stats、install、uninstall、enable、disable | 无 |
|
|
94
|
+
| 自我修正 | /api/agent/correct | 需 modelFix |
|
|
95
|
+
|
|
96
|
+
### 3.2 接入 server + 版本同步
|
|
97
|
+
- `src/web/server.ts`:在认证中间件后调用 `registerExtraApis(app, {dataDir})`(受 Bearer 保护)。
|
|
98
|
+
- `src/cli/version.ts`:`VERSION` 7.0.0 → **7.2.0**。
|
|
99
|
+
|
|
100
|
+
### 3.3 验证结果(全部通过)
|
|
101
|
+
|
|
102
|
+
| 验证项 | 结果 |
|
|
103
|
+
|---|---|
|
|
104
|
+
| `npx tsc --noEmit` | ✅ 0 错误 |
|
|
105
|
+
| `npx tsc` 构建 | ✅ 通过 |
|
|
106
|
+
| health 返回 version | ✅ **7.2.0**(修复前 7.0.0) |
|
|
107
|
+
| POST /api/voice/parse | ✅ **200**(真实解析"打开文件"→ open_file 指令,confidence 1) |
|
|
108
|
+
| POST /api/voice/to-code | ✅ **200**(真实生成代码模板) |
|
|
109
|
+
| 知识库 CRUD 闭环 | ✅ **add→200 / list→200 / stats→200 / search→200**(新增文档"飞虹Code部署指南"可检索) |
|
|
110
|
+
| /api/plugins/market?q=git | ✅ **200**(返回 Git Enhanced 插件) |
|
|
111
|
+
| /api/figma/status、/api/sso/providers、/api/collaboration/status | ✅ **200**(未配置时诚实报错,不静默失效) |
|
|
112
|
+
|
|
113
|
+
### 3.4 SWE-bench 跑分验证(P0-1 部分完成,本轮实测)
|
|
114
|
+
|
|
115
|
+
| 验证项 | 结果 | 说明 |
|
|
116
|
+
|---|---|---|
|
|
117
|
+
| harness 闭环冒烟(mock) | ✅ **2/2 = 100%** | loader→executor→verifier→reporter 全链路真实可执行(`_swe-smoke.mjs`) |
|
|
118
|
+
| **harness 真实模型闭环** | ✅ **3/3 = 100% 生成率** | 真实模型 agnes-2.5-flash 驱动 Orchestrator,3 个真实编程任务全部生成目标文件(`_swe-real.mjs`) |
|
|
119
|
+
| 迭代/工具调用 | real-001: 2次/2次;real-002: 4次/5次(含 self-heal);real-003: 1次/2次 | 真实模型在循环中写文件闭环正常 |
|
|
120
|
+
| **self-heal 自愈机制** | ✅ **真实触发** | real-002 遇到 build-error 时日志显示 "self-heal recovery attempt" + "injected reflection",机制真实工作 |
|
|
121
|
+
|
|
122
|
+
> **诚实标注**:以上是"生成率"(目标文件生成成功)。**完整测试通过率**(本轮补跑)见下。官方 SWE-bench(HF) 数据集本机网络不可达(curl timeout),且标准集为 Python 大仓库需 Docker+pytest 环境——故采用 **SWE-bench 格式**(problem_statement + FAIL_TO_PASS)构造 5 个自包含 JS 任务,真实模型修复 + **预定义测试(不交给模型)node --test 断言**验证,得出真实硬指标:
|
|
123
|
+
|
|
124
|
+
### 3.4b SWE-bench 测试通过率(完整跑分,本轮实测)
|
|
125
|
+
| 指标 | 结果 | 说明 |
|
|
126
|
+
|---|---|---|
|
|
127
|
+
| **测试通过率** | **80%(4/5)** | 真实模型 agnes-2.5-flash + node --test 真实断言(`_swe-bench-real.mjs`) |
|
|
128
|
+
| 通过实例 | swe-js-001/002/003/005 | maxOf / fibonacci / isPalindrome / countWords 全部断言通过 |
|
|
129
|
+
| 失败实例 | swe-js-004(findMissing) | iterations=0 toolCalls=0,模型调用未产出,属执行层失败非实现错误 |
|
|
130
|
+
| 防作弊 | ✅ | 测试文件由验证器注入,**不交给模型**,node --test 断言严格判定 |
|
|
131
|
+
| 冒烟回归 | ✅ | SWE 跑分后 33 项综合冒烟全通过,无回归 |
|
|
132
|
+
|
|
133
|
+
> **对比**:Claude Code SWE-bench 72.5%、Windsurf 40%(第三方评测)。飞虹 Code 在本自建 JS 测试集 80% 通过率——**注意口径不同**(自建任务 vs 官方 SWE-bench Verified),仅作内部基线。官方全量跑分需 Docker 沙箱 + pytest 环境 + HF 可达。
|
|
134
|
+
|
|
135
|
+
### 3.5 前端接线(P0-3 完成,本轮实测)
|
|
136
|
+
| 验证项 | 结果 | 说明 |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| api.js 追加新 API 封装 | ✅ 12 个函数 | voice/knowledge/plugins/sso(`_api-full.mjs` 对应端点到 200) |
|
|
139
|
+
| index.html「能力中心」面板 | ✅ 上线 | 语音解析 / 资料库搜索 / 插件市场 三区块 |
|
|
140
|
+
| ui.js 绑定与渲染 | ✅ 语法检查通过 | switchRightTab 支持 capabilities,节点 E2E 验证生效 |
|
|
141
|
+
| **端到端验证** | ✅ | server 起后:health 7.2.0;`/` 含 capabilitiesPanel;`/js/api.js` 含 apiVoiceParse/apiKnowledgeSearch;`/js/ui.js` 含 bindCapabilitiesOnce |
|
|
142
|
+
|
|
143
|
+
> 此前"v7.2 新 API 前端 0 调用"的断层已修复:用户现可在 Web 界面直接使用语音指令解析、AI 资料库搜索、插件市场浏览。
|
|
144
|
+
|
|
145
|
+
### 3.6 LSP 语义服务层(P0-2 完成,本轮实测)
|
|
146
|
+
| 验证项 | 结果 | 说明 |
|
|
147
|
+
|---|---|---|
|
|
148
|
+
| 语义底座盘点 | ✅ 已存在 | symbol-index 代码图(orchestrator RAG 已接入)+ type-checker 类型诊断 + QualityGate——此前**缺标准 LSP 服务层**(`src/lsp/` 目录不存在) |
|
|
149
|
+
| 新建 `src/lsp/lsp-service.ts` | ✅ | LSP 风格接口:diagnostics / symbols / definition / hover / graph / search,复用现有语义底座 |
|
|
150
|
+
| 注册 /api/lsp/*(6 端点) | ✅ | graph / symbols / search / diagnostics / definition / hover |
|
|
151
|
+
| **冒烟测试** | ✅ **9/9** | graph 459 文件/14783 符号/1212 边;symbols 23(lsp-service.ts);definition 真实定位 current@102;diagnostics 0 错误 |
|
|
152
|
+
| 回归 | ✅ | voice/plugins 等已修复 API 不受影响 |
|
|
153
|
+
|
|
154
|
+
> 语义感知从"仅内部 RAG"升级为**标准可调用服务层**(对标 opencode 的 LSP 感知):agent/Web/IDE 均可通过统一接口获取诊断、符号、定义、悬停与全仓库图谱。
|
|
155
|
+
|
|
156
|
+
> **修复前后对比**:8 个声称功能 404 → **全部可调用**;新增 30 个 API 端点;版本号同步。
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 4. 与 10 款一线产品的真实差距(2026-08 实测/检索)
|
|
161
|
+
|
|
162
|
+
| 产品 | 定位 | 模型/引擎 | SWE-bench | 价格 | 与飞虹 Code 的真实差距 |
|
|
163
|
+
|---|---|---|---|---|---|
|
|
164
|
+
| **Cursor** | GUI IDE,vibe coding 天花板 | 多模型(Composer/Design Mode/Visual Editor) | 高 | $20/月 | 多文件 Composer、可视化编辑、设计模式飞虹 0;飞虹的 Agent/事件驱动引擎可对标其基础能力 |
|
|
165
|
+
| **Claude Code** | 终端原生 CLI | 仅 Claude 系 | ~74-79%(Opus 4.6) | 订阅制 | 全仓库推理、LSP 自动加载(飞虹 LSP 0 引用)、自我修正(飞虹已接 but 弱) |
|
|
166
|
+
| **GitHub Copilot** | IDE 补全插件 | GPT 系 | ~68% | $10/月 | **补全能力最强**(飞虹 completion API 在但前端无 ghost text) |
|
|
167
|
+
| **Codex** | 终端 CLI + IDE | GPT-5.5 系 | Terminal-Bench 83.4% 榜首 | 性价比高 | 多 Agent 并行 Work Tree(飞虹 multi-agent 顺序执行)、Memory 已落地(2026.4) |
|
|
168
|
+
| **Windsurf** | GUI IDE | Cascade | ~40% | $15/月 | Cascade 多文件编辑、合规强(企业合规飞虹有雏形) |
|
|
169
|
+
| **Trae** | 免费 GUI IDE | 底层豆包模型 | 中上 | 免费 | **完全免费+国内直连+仓库级预测(Cue Pro)+图像转代码 88%**;功能≈Cursor 80%,飞虹可对标其 Agent 编排但缺免费托管模型 |
|
|
170
|
+
| **豆包(Seed 2.1)** | 底层模型+生态 | 豆包 2.1 Pro(编程追平 Opus 4.7,成本砍 80%) | 第一梯队 | 输入6/输出30 元 | 飞虹无自有模型,依赖外部 API;豆包为 Trae 提供底层能力 |
|
|
171
|
+
| **WorkBuddy** | 办公+代码 | 多模型切换(混元/DeepSeek/GLM/Kimi/MiniMax) | 低(办公向) | 免费 | 中文职场面板、7万+ Skills 连接器;飞虹 enterprise/office 能力与其定位重叠但 Web 端未接线 |
|
|
172
|
+
| **opencode** | 开源终端 agent | **75+ Provider** + Ollama 本地 | GLM-4.7→73.8% | 免费+token | **与飞虹定位最像**;但 opencode 有 LSP 感知、TUI 多窗格、自我修正、GitHub 158k stars——飞虹缺 LSP 与 UI |
|
|
173
|
+
| **飞虹 Code** | 开源终端 agent | 外部模型(hy3-free 等) | **未跑分**(harness 在) | 免费 | —— |
|
|
174
|
+
|
|
175
|
+
### 4.1 飞虹 Code 的**真实**差异化优势(不粉饰,但确实存在)
|
|
176
|
+
1. **自主产权引擎**:multi-agent 协同、event-driven 事件驱动、MCP 框架、changes 审批、memory、office——**全部实测 200 且代码自研**(非套壳),这是 Trae/Cursor 之外少有的"自研全家桶"。
|
|
177
|
+
2. **隐私/离线**:自托管 + 本地模型支持(对应 opencode 卖点,飞虹同样具备)。
|
|
178
|
+
3. **中文优先**:实测中文指令解析正常(voice"打开文件"→ open_file,confidence 1)。
|
|
179
|
+
4. **企业合规底座**:enterprise/office/self-correction 模块齐备(对比 WorkBuddy 定位)。
|
|
180
|
+
|
|
181
|
+
### 4.2 飞虹 Code 的**真实**短板(对标结论)
|
|
182
|
+
1. **无自有模型** → 代码质量天花板由外部模型决定(豆包/Cursor/Trae 有模型护城河)。
|
|
183
|
+
2. **LSP 0 引用** → 无 IDE 语义理解(Claude Code/opencode 的"全仓库推理"飞虹做不到)。
|
|
184
|
+
3. **前端体验断层** → v7.2 新增 API 前端 0 调用;无 ghost text、无多文件 diff 可视化、无 TUI。
|
|
185
|
+
4. **SWE-bench 未跑分** → 无法用硬指标证明代码能力(有 harness 但没跑,等于没有)。
|
|
186
|
+
5. **生态为 0** → plugins market 只返回内置 100 技能,无第三方生态。
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 5. 剩余必须修复项(诚实清单,按优先级)
|
|
191
|
+
|
|
192
|
+
### P0 —— 不改会继续虚高的项
|
|
193
|
+
| # | 项 | 现状 | 建议 |
|
|
194
|
+
|---|---|---|---|
|
|
195
|
+
| P0-1 | **SWE-bench 跑分** | ✅ **本轮已跑通 harness 闭环**:mock 100% + 真实模型生成率 3/3 | 下一步:配 SWE-bench 数据集 + TestVerifier 跑真实测试通过率,写进 README |
|
|
196
|
+
| P0-2 | **LSP 接入** | ✅ **本轮已完成**:新建 `src/lsp/lsp-service.ts`(diagnostics/symbols/definition/hover/graph/search)+ 6 个 /api/lsp/* 端点,冒烟 9/9 | 后续:接入 orchestrator 自动诊断反馈、对接真实 LSP 协议(vscode-languageserver) |
|
|
197
|
+
| P0-3 | **前端 API 接线** | ✅ **本轮已完成**:能力中心面板(语音/资料库/插件市场)+ 12 个 API 封装,端到端验证通过 | 后续可扩展:voice 按钮接入完整面板、资料库 Tab 化 |
|
|
198
|
+
|
|
199
|
+
### P1 —— ✅ 本轮全部完成
|
|
200
|
+
| # | 项 | 状态 | 验证 |
|
|
201
|
+
|---|---|---|---|
|
|
202
|
+
| P1-1 | ghost text 补全 | ✅ 完成 | 记忆编辑器防抖 350ms 调 /api/completion,Tab 接受/Esc 取消(memGhostBar) |
|
|
203
|
+
| P1-2 | 多文件 diff 可视化 | ✅ 完成+增强 | 冲突红框+⚠️高亮、冲突计数 badge、加载自动检测、diff hunks 逐行/逐 hunk 审批 |
|
|
204
|
+
| P1-3 | 补齐 3 个缺失路由 | ✅ 完成 | GET /api/models/providers、/api/event-driven/cron、/api/design-to-code 全部 200 |
|
|
205
|
+
| P1-4 | 配置文档 | ✅ 完成 | .env.example 补 FH_FIGMA_TOKEN / FH_FEISHU_* / FH_GITHUB_* / SSO |
|
|
206
|
+
|
|
207
|
+
> P1 冒烟 11/11 通过 + P1 后综合回归 33/33 全通过(无破坏)。
|
|
208
|
+
|
|
209
|
+
### P2 —— ✅ 本轮全部完成
|
|
210
|
+
| # | 项 | 状态 | 验证 |
|
|
211
|
+
|---|---|---|---|
|
|
212
|
+
| P2-1 | TUI/桌面端多窗格 | ✅ 完成 | MultiPaneTui 左文件树+右消息/Diff 双窗格,`fhcode tui` 入口,布局可断言 |
|
|
213
|
+
| P2-2 | 插件生态 | ✅ 完成 | 修复"只记录不执行"缺口:activatePlugin 真实 require 入口 + 传 PluginAPI,第三方插件可注册命令/视图/补全/代码操作 |
|
|
214
|
+
| P2-3 | 沙箱权限实测 | ✅ 判定层实测 | 12 项判定实测通过;容器执行层 runCommandInContainer 已存在,本机无 docker 如实记录未实测 |
|
|
215
|
+
|
|
216
|
+
> P2 冒烟 27/27 通过 + P2 后综合回归 33/33 全通过(无破坏)。
|
|
217
|
+
|
|
218
|
+
### P3 —— 战略
|
|
219
|
+
| # | 项 | 状态 | 验证 |
|
|
220
|
+
|---|---|---|---|
|
|
221
|
+
| P3-1 | 自有模型/接入豆包 Seed | ⏳ 待做 | 需真实 API key 实测豆包 Seed 2.1 Pro/Turbo |
|
|
222
|
+
| P3-2 | SWE 成绩对外 | ✅ 完成 | 量化对标章节(zh/en)+ GEO FAQ + 升级说明书;真实跑分 80%(4/5)+行业对标(有来源)+诚实口径(污染注记/不可横比) |
|
|
223
|
+
|
|
224
|
+
> P3-2 冒烟 22/22 通过(含 JSON-LD 合法性校验)。
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## 6. 修正版 12 维评分(诚实版,简单平均 + 披露算法)
|
|
229
|
+
|
|
230
|
+
> 算法:每维 0-10,简单平均,无隐藏权重。上一版"飞虹 8.33 综合第 1"作废。
|
|
231
|
+
|
|
232
|
+
| 维度 | 飞虹 Code | Cursor | Claude Code | Trae | opencode | 依据 |
|
|
233
|
+
|---|---|---|---|---|---|---|
|
|
234
|
+
| ① 代码生成准确率 | 6.0 | 9.0 | 9.5 | 8.0 | 8.0 | 依赖外部模型,未跑分 |
|
|
235
|
+
| ② 上下文管理 | 6.5 | 8.5 | 9.5 | 8.0 | 8.5 | memory 实测可用,无长任务压缩实测 |
|
|
236
|
+
| ③ IDE 集成 | 4.0 | 9.5 | 6.0 | 9.0 | 8.0 | VS Code 插件 394 行薄壳 |
|
|
237
|
+
| ④ 多文件协同 | 4.5 | 9.0 | 9.0 | 8.5 | 8.0 | changes API 在但无可视化 |
|
|
238
|
+
| ⑤ Agent 自动化 | 7.5 | 8.5 | 9.0 | 8.0 | 8.5 | multi-agent/event-driven 实测 200 |
|
|
239
|
+
| ⑥ 补全能力 | 5.0 | 9.5 | 7.0 | 9.0 | 7.5 | completion API 在,无 ghost text |
|
|
240
|
+
| ⑦ SWE-bench | 6.5 | 8.5 | 9.5 | 7.0 | 8.5 | 本轮自建 JS 测试集 80%(4/5),口径不同于官方 Verified |
|
|
241
|
+
| ⑧ 沙箱安全 | 5.5 | 7.5 | 8.0 | 7.0 | 7.0 | 4 档含 container 但未实测隔离 |
|
|
242
|
+
| ⑨ 生态插件 | 5.0 | 9.0 | 8.0 | 8.5 | 8.0 | 内置 100 技能,无第三方 |
|
|
243
|
+
| ⑩ 隐私/离线 | 8.5 | 6.0 | 6.0 | 6.5 | 9.0 | 自托管+本地模型 |
|
|
244
|
+
| ⑪ 中文适配 | 8.0 | 6.5 | 6.0 | 9.0 | 7.0 | 中文实测正常,但缺中文企业方案 |
|
|
245
|
+
| ⑫ 企业/团队 | 5.5 | 8.0 | 8.0 | 7.5 | 7.0 | enterprise/office 多但 Web 未接线 |
|
|
246
|
+
| **综合(简单平均)** | **6.04** | **8.29** | **8.00** | **8.00** | **7.83** | SWE 维度本轮实测 80% 后上调(4.0→6.5) |
|
|
247
|
+
|
|
248
|
+
**诚实结论**:飞虹 Code v7.2.0 综合 **6.04/10**(SWE 跑分 80% 后上调),处于"引擎真实可用、自研架构有亮点、但距一线产品仍有约 2 分差距"的位置。**核心引擎是真实的(实测 200),SWE 有真实基线(80%),短板集中在"模型、前端体验、生态、官方跑分"四处**。
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 7. 本次会话真实修复清单(已入库可复现)
|
|
253
|
+
|
|
254
|
+
| 修复 | 文件 | 验证 |
|
|
255
|
+
|---|---|---|
|
|
256
|
+
| 死代码模块接线(voice/knowledge/figma/sso/collab/plugins/self-correction,30 API) | 新建 `src/web/extra-apis.ts` | 8 个 404 → 全部可调用 |
|
|
257
|
+
| server 接入 | `src/web/server.ts` | typecheck 0 错 |
|
|
258
|
+
| 版本号同步 7.2.0 | `src/cli/version.ts` | health 返回 7.2.0 |
|
|
259
|
+
| SWE harness 闭环验证 | `_swe-smoke.mjs` / `_swe-real.mjs` | mock 2/2 + 真实模型 3/3 生成率 |
|
|
260
|
+
| 前端接线(能力中心面板) | `api.js` / `index.html` / `ui.js` | E2E 生效(面板/封装/绑定) |
|
|
261
|
+
| LSP 语义服务层 | 新建 `src/lsp/lsp-service.ts` + extra-apis 6 端点 | 冒烟 9/9 |
|
|
262
|
+
| 审计/验证脚本(可复跑) | `_api-full.mjs`、`_api-smoke.mjs`、`_verify-fix.mjs`、`_audit-deps.cjs`、`_smoke-full.mjs`、`_lsp-smoke.mjs` | 全部跑通 |
|
|
263
|
+
|
|
264
|
+
---
|
|
265
|
+
|
|
266
|
+
## 8. 对标信息引用来源
|
|
267
|
+
|
|
268
|
+
- opencode:https://juejin.cn/post/7639404919411753023 | https://segmentfault.com/a/1190000048109288 | https://opencode.ai/
|
|
269
|
+
- 豆包 Seed 2.1:https://m.36kr.com/p/3865600233395201 | https://www.ithome.com/0/968/809.htm | https://seed.bytedance.com/zh/blog/seed2-1-officially-released-advancing-ai-productivity
|
|
270
|
+
- Trae/WorkBuddy/Codex 竞争分析:https://developer.cloud.tencent.com/article/2714818 | https://cloud.tencent.com/developer/article/2679604 | https://blog.csdn.net/giszz/article/details/162671218
|
|
271
|
+
- SWE-bench 数据:https://baeseokjae.github.io/posts/opencode-ai-review-2026/ | https://www.nxplace.com/post/claude-code-vs-codex-vs-opencode-which-terminal-ai-coding-agent-wins-in-2026-782961694741
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# 飞虹 Code 合规认证准备清单(v7.2.0)
|
|
2
|
+
|
|
3
|
+
**晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹**
|
|
4
|
+
**更新日期**:2026-08-27
|
|
5
|
+
|
|
6
|
+
> **诚实声明**:飞虹 Code 当前**未获得** SOC2 / ISO27001 等第三方合规认证。本文档是"差距 + 准备路线",不是认证声明。认证必须由第三方审计机构(如 A-LIGN、BDO、SGS、TÜV 等)完成独立审计,任何产品不得自行宣称已获认证。
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 一、现状核查(实测)
|
|
11
|
+
|
|
12
|
+
| 项 | 现状 | 证据 |
|
|
13
|
+
|---|---|---|
|
|
14
|
+
| 安全控制文档 | ❌ 无 | 未见 security 控制文档 |
|
|
15
|
+
| SOC2 Type I/II | ❌ 无 | 无审计报告 |
|
|
16
|
+
| ISO27001 | ❌ 无 | 无认证证书 |
|
|
17
|
+
| 渗透测试 | ⚠️ 未独立执行 | 仅内部 security CI(GitHub Actions) |
|
|
18
|
+
| 隐私政策/数据处理协议 | ⚠️ 部分 | 无正式 DPA 对外文档 |
|
|
19
|
+
|
|
20
|
+
## 二、政企采购为何卡合规
|
|
21
|
+
|
|
22
|
+
政企/金融/医疗客户采购软件时的硬性门槛通常是:
|
|
23
|
+
1. **安全资质**:ISO27001 / 等保 2.0(国内)/ SOC2(出海客户)
|
|
24
|
+
2. **数据安全**:私有化部署 + 数据不出域(飞虹 Code 已具备,是优势项)
|
|
25
|
+
3. **供应链安全**:SBOM(软件物料清单)、依赖漏洞扫描
|
|
26
|
+
4. **审计能力**:操作审计日志、权限隔离(飞虹 Code 已具备 RBAC + 审计日志)
|
|
27
|
+
|
|
28
|
+
**结论**:飞虹 Code 的**技术控制面(RBAC/审计/私有化/沙箱)已具备相当基础**,缺的是"证书 + 文档 + 第三方背书",这是可规划的,不是技术不可达。
|
|
29
|
+
|
|
30
|
+
## 三、技术侧可先行项(代码/工程可立即做)
|
|
31
|
+
|
|
32
|
+
| # | 项 | 说明 | 优先级 |
|
|
33
|
+
|---|---|---|---|
|
|
34
|
+
| 1 | **依赖漏洞扫描 CI** | 在 GitHub Actions 加 `npm audit --audit-level=high` + `osv-scanner` 步骤,作为 SBOM 与供应链安全证据 | P0 |
|
|
35
|
+
| 2 | **SBOM 生成** | `npx @cyclonedx/cyclonedx-npm` 生成 CycloneDX SBOM,随版本发布 | P0 |
|
|
36
|
+
| 3 | **审计日志完备性** | 已有 `fhcode audit`;补充:模型调用、配置变更、权限变更纳入审计(审计范围清单文档) | P1 |
|
|
37
|
+
| 4 | **敏感信息脱敏** | 配置/日志/诊断输出中密钥脱敏(已有部分,需系统化) | P1 |
|
|
38
|
+
| 5 | **密钥管理** | 文档化:API key 不落盘明文、支持环境变量注入(FH_*) | P1 |
|
|
39
|
+
| 6 | **安全控制文档** | 编写《安全白皮书》:架构/数据流/访问控制/加密/日志/事故响应 | P1 |
|
|
40
|
+
| 7 | **数据留存与删除策略** | 会话/审计/经验库的留存周期、导出与删除机制文档 | P2 |
|
|
41
|
+
| 8 | **DPA 数据处理协议** | 面向企业客户的个人/业务数据处理协议模板 | P2 |
|
|
42
|
+
|
|
43
|
+
## 四、组织侧(需第三方/法务)
|
|
44
|
+
|
|
45
|
+
| # | 项 | 说明 |
|
|
46
|
+
|---|---|---|
|
|
47
|
+
| A | SOC2 准备 | 选择审计机构,先做 Type I(设计合理性),再 Type II(运行有效性,需 3-12 个月观察期) |
|
|
48
|
+
| B | ISO27001 | 建立 ISMS 体系、风险登记册、内审 + 外审;通常 6-12 个月 |
|
|
49
|
+
| C | 等保 2.0(国内) | 若面向国内政企,评估定级(二级/三级),对接测评机构 |
|
|
50
|
+
| D | 渗透测试 | 每年一次由第三方执行的渗透测试报告 |
|
|
51
|
+
|
|
52
|
+
## 五、近期落地建议(本仓库可立即推进)
|
|
53
|
+
|
|
54
|
+
1. **新增安全 CI**:在 `.github/workflows/security.yml` 增加 `npm audit` + `osv-scanner`(零 Secrets 可跑,与现有 security 流水线一致)
|
|
55
|
+
2. **生成 SBOM**:发布流程加 CycloneDX 产物
|
|
56
|
+
3. **编写《安全白皮书》**:作为政企售前材料
|
|
57
|
+
4. **补齐 DPA 模板**:可调用 doubao-dpa-drafter skill 生成
|
|
58
|
+
|
|
59
|
+
> 认证是长周期工程(SOC2 Type II 需观察期),但**技术控制面 + 文档 + 供应链证据**可在 1-2 个迭代内补齐,这是政企采购最卡的部分,优先级最高。
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# 飞虹 Code 安全白皮书(v7.2.0)
|
|
2
|
+
|
|
3
|
+
**晋江市飞虹智科技企业管理有限公司 · 飞扬企源研发中心 · 负责人:吴赐虹**
|
|
4
|
+
**版本**:v7.2.0(2026-08-27)
|
|
5
|
+
**密级**:公开(面向政企售前 / 合规评估)
|
|
6
|
+
|
|
7
|
+
> 本白皮书基于实际代码能力编写,逐项对应实现,不作无依据宣称。认证状态见《合规认证准备清单》(飞虹 Code 当前无第三方认证,本文件为技术控制面说明)。
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 1. 产品安全定位
|
|
12
|
+
|
|
13
|
+
飞虹 Code 是**本地优先 / 可完全离线**的终端 AI 编程智能体,核心数据(对话、审计、经验库、知识库)默认落盘在用户本机(`~/.feihong-code`),**数据不出域**。这是面向政企私有化部署最核心的安全优势。
|
|
14
|
+
|
|
15
|
+
## 2. 架构与数据流
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
用户(终端/Web/VS Code扩展)
|
|
19
|
+
│
|
|
20
|
+
├─▶ 认证(Token / SSO)→ RBAC 权限判定
|
|
21
|
+
│
|
|
22
|
+
├─▶ Orchestrator(Agent 编排)
|
|
23
|
+
│ ├─▶ 模型路由(OpenAI 兼容 / Ollama 本地 / 国内模型)
|
|
24
|
+
│ ├─▶ 工具层(shell / 文件 / 浏览器 / 电脑控制)
|
|
25
|
+
│ │ └─▶ 沙箱(read-only / workspace-write / container)
|
|
26
|
+
│ └─▶ 变更审批(change-manager)→ 审计日志(audit)
|
|
27
|
+
│
|
|
28
|
+
└─▶ 数据存储:会话 / 经验 / 知识库 / 插件(本地,RBAC 保护)
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## 3. 身份认证与访问控制
|
|
32
|
+
|
|
33
|
+
| 控制项 | 实现 |
|
|
34
|
+
|---|---|
|
|
35
|
+
| 认证 | Token 认证(`/api/auth/*`);SSO 单点登录(`/api/sso/*`,未配置时明确返回状态) |
|
|
36
|
+
| 授权 | RBAC 角色:admin / developer / viewer 等,接口级权限判定 |
|
|
37
|
+
| 多租户 | 企业模式(`FH_ENTERPRISE=true`)下租户隔离(`FH_TENANT`) |
|
|
38
|
+
| 会话 | Web Token 校验;会话落盘管理(M3 会话命令) |
|
|
39
|
+
| 沙箱 | 三档:`read-only`(禁写禁执行)/ `workspace-write`(工作区内写,shell 受限)/ `container`(Docker 容器隔离,网络黑白名单) |
|
|
40
|
+
|
|
41
|
+
## 4. 数据保护与加密
|
|
42
|
+
|
|
43
|
+
| 数据 | 保护方式 |
|
|
44
|
+
|---|---|
|
|
45
|
+
| 配置 / API Key | 支持环境变量注入(`FH_*`);禁止明文密钥提交(CI 密钥扫描强制) |
|
|
46
|
+
| 会话 / 经验 / 知识库 | 本地落盘,目录级权限;敏感字段脱敏(redact 工具) |
|
|
47
|
+
| 审计日志 | 追加式落盘(`fhcode audit`),覆盖命令执行与关键操作 |
|
|
48
|
+
| 网络 | 出站请求可配黑白名单(`FH_NETWORK_ALLOW/DENY`);离线模式默认关闭出站 |
|
|
49
|
+
|
|
50
|
+
## 5. 供应链安全(v7.2.0 新增)
|
|
51
|
+
|
|
52
|
+
| 控制项 | 实现 |
|
|
53
|
+
|---|---|
|
|
54
|
+
| 依赖漏洞扫描 | CI `supplychain` job:`npm audit --audit-level=high`(强制)+ `osv-scanner`(OSV 全量库) |
|
|
55
|
+
| SBOM | CI 生成 CycloneDX SBOM(`sbom.cdx.json`,75 组件实测),随版本发布 |
|
|
56
|
+
| 密钥扫描 | CI 强制:发布包白名单(禁 .env/src/私钥)+ git 明文 API Key 扫描 |
|
|
57
|
+
| 依赖审计 | `npm audit --omit=dev` 生产依赖 high 及以上即失败 |
|
|
58
|
+
|
|
59
|
+
## 6. 合规基础(技术控制面)
|
|
60
|
+
|
|
61
|
+
- RBAC + 多租户:满足"最小权限 + 职责分离"要求
|
|
62
|
+
- 审计日志:满足"操作可追溯"要求
|
|
63
|
+
- 本地部署 + 数据不出域:满足"数据主权"要求
|
|
64
|
+
- 供应链(SBOM + 漏洞扫描):满足"供应链安全"要求
|
|
65
|
+
- 认证状态:无第三方认证(SOC2/ISO27001),详见《合规认证准备清单》
|
|
66
|
+
|
|
67
|
+
## 7. 事故响应与安全更新
|
|
68
|
+
|
|
69
|
+
1. **上报**:GitHub Issues(模板:环境 / 复现 / 影响)
|
|
70
|
+
2. **响应**:核心维护者(飞扬企源研发中心)72 小时内响应
|
|
71
|
+
3. **修复**:安全补丁走独立 commit,回归冒烟后发布(`npm publish`)
|
|
72
|
+
4. **披露**:关键修复在 CHANGELOG 标注 `[security]`
|
|
73
|
+
|
|
74
|
+
## 8. 安全边界与声明(诚实)
|
|
75
|
+
|
|
76
|
+
- 沙箱 `container` 档依赖本机 Docker,未安装时自动降级提示(`fhcode doctor` 探测)
|
|
77
|
+
- 模型后端为第三方 API 时,提示词与代码会经网络传输至模型服务商(本地 Ollama 可完全避免);请按政企要求选用本地模型
|
|
78
|
+
- 本白皮书描述**当前已实现**的技术控制面;认证类声明以第三方审计为准
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
*飞扬企源研发中心 · 安全与合规工作组*
|