Skip to content

[Bug]: Please help to disable SSL for custom LLM provider #229

@kkksasasa

Description

@kkksasasa

Description

sorry I cannot pull request due my network limit:

总共做了两类修复:

  1. SSL/TLS 绕过
    根本原因:Node.js 22 的内置 fetch 用的是 undici,它忽略 NODE_TLS_REJECT_UNAUTHORIZED 环境变量。
    修复:新建 apps/desktop/src/main/tls-override.ts,用 undici 的 setGlobalDispatcher API 在请求前后动态替换全局 dispatcher:
    setGlobalDispatcher(new Agent({ connect: { rejectUnauthorized: false } }))

在 packages/shared/src/config.ts 的 provider schema 里加了 tlsRejectUnauthorized: boolean 字段,通过 connection-ipc.ts、index.ts 等地方传递,当 provider 配置了该字段时自动开启。

  1. developer role 被 Bedrock 拒绝
    根本原因:pi-ai 库发现模型 ID 匹配 /(^|/)claude-(?:opus|sonnet)-4/i,就会把 system prompt 用 developer role 发送(OpenAI Reasoning 模型规范)。但 Own LLM 后端是 AWS Bedrock,只接受 user/assistant。
    修复:在 ~/.config/open-codesign/config.toml 的 provider 配置里加:
    capabilities = {supportsReasoning = false}

这会让 packages/providers/src/wire-policy.ts 里的 inferReasoning() 返回 false,从而关闭 developer role,system prompt 改用标准 system 字段发送。

Steps to reproduce

cfg own LLM provider find 401 error

Expected behavior

no issue

Actual behavior

Error invoking remote method 'codesign:v1:generate': CodesignError: 400 service… --

open-codesign version

0.1.4

Platform

Windows

OS version

No response

Model provider (if relevant)

None

Error code

No response

Diagnostics bundle

No response

Logs

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingtriageAwaiting maintainer review

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions