mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-11-07 09:47:23 +00:00
对应主管任务 A/B。**没有实现 wasm 接入**,只交付事实结论与可执行方案。 ## A. P1-4 结论固化(docs/channel-repair-plan.md) 原 P1-4 只有一句「阻塞:二进制不在仓库任何位置」,现补成可审计的事实段: - 绝对路径 / 298606 字节 / sha256 6419471e…55b43d(位于第三方插件 `dsh-our-free-model` 的 vendor 目录,**不随本仓分发**;本仓 `git ls-files | grep -i wasm` = 0); - 它是 wasm-bindgen 产物:31 个 import 全来自单一 JS glue 模块 `./qoder_auth_wasm_bg.js`,且该 glue **上游也没提供**(改为手写 `src/qoder-wasm.ts` 706 行)⇒ 代价在宿主侧; - 31 import / 34 export 各分四类,逐类给出用途与成员; - **我们仓库没有 wasm 运行时入口**:`grep -rniE 'wazero|wasmtime|wasmer| tetratelabs'` = 0 命中,`go.sum` wasm 命中 = 0,Lua 侧只有注释。 只写事实,未写「已修复」。 ## B. 可行性判定(docs/qoder-wasm-integration.md,新文件) 实测推翻了一个此前的假定:**不需要 JS 引擎,纯 Go(wazero)可以驱动它**。 证据来自新增的 tools/qoder-wasm-probe(独立 module,主仓 go.mod 不动): - 实例化:31 桩,实例化阶段真实调用 0 次; - level 2 `generate_runtime_auth_fields` → encrypt_user_info/key 各 172 字符; - level 3 `qodercontext_new` + `prepareInferRequest` → 20 个头,其中 `Authorization: Bearer COSY.<载荷>.<签名>`(len=209),body 60 字节密文; - 逐 import 计数:31 个里 **13 个从未被调用**(node/JS 探针居多); - 量化:≈2.2 ms/请求,线性内存 1.25 MiB,实例可复用(-repeat 50 全 PASS)。 文档含:依赖选型(wazero vs wasmtime-go/wasmer-go,+1.16 MiB 实测)、 接入点设计(走 `__llmsproxy_kernel` 而非新开 Lua 全局,保持「按插件声明授权」)、 31 import 逐个的 Go 实现映射表、6 条 ABI 陷阱(两个 getRandomValues 方向相反、 两套返回布局、requestresult_url 参数顺序、drop_ref 必须 no-op、machineId 必填、 host 不能是 api2-v2)、9 条风险、7 层改动面。 ## 为什么本轮不实现 跨 7 层、需新增内核依赖、且三个前置阻塞都不该由 fix 分支暗定: ① wasm 从哪来(不可再分发 / 需运维决策);② 加密端点的**响应也要解密**且是 SSE 逐帧(第二条未实现链路);③ 账号数 0 ⇒ 端到端不可验证。 ## 纪律声明 - 未动 main、未开 PR、未部署、未 restart; - 主仓 `go.mod`/`go.sum` **零改动**(tools/ 是嵌套 module,`go build ./...` 跳过); - `go test -tags luajit ./...` 全绿(core 420s / gateway 206s); - **本机 qoder 账号数 0**:能证明「产出了签名头」,不能证明「上游接受」。 文档内每处 PASS 都标注是离线结论。 ## 顺带更正一处过时事实 `internal/core/channels_upstream_gaps_test.go` 注释称 wasm「在参考仓库里也不存在」。 实测:文件存在(sha256 6419471e…),只是不在**我们**仓库。文档已记,本轮不改 代码避免动判据;接入时必须同步演进那条判据(否则新旧逻辑互相打脸)。
3 lines
177 B
Plaintext
3 lines
177 B
Plaintext
github.com/tetratelabs/wazero v1.9.0 h1:IcZ56OuxrtaEz8UYNRHBrUa9bYeX9oVY93KspZZBf/I=
|
|
github.com/tetratelabs/wazero v1.9.0/go.mod h1:TSbcXCfFP0L2FGkRPxHphadXPjo1T6W+CseNNY7EkjM=
|