• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lsm / neokai / 26007705881
81%

Build:
DEFAULT BRANCH: dev
Ran 18 May 2026 12:49AM UTC
Jobs 28
Files 525
Run time 2min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

18 May 2026 12:49AM UTC coverage: 83.031% (-0.2%) from 83.215%
26007705881

push

github

web-flow
feat(web): custom endpoints settings panel + presets (#1936)

* feat(providers): add custom OpenAI-compatible endpoint support

Adds backend support for user-defined OpenAI-compatible endpoints (LM Studio,
vLLM, LiteLLM, self-hosted deployments, etc.) without requiring an external
proxy.

Each endpoint is persisted as JSON under `settings.customEndpoints` and
registered in the provider registry as `custom:<endpointId>`. Traffic is
routed through an embedded Anthropic Messages ↔ OpenAI Chat Completions
bridge that handles message translation, streaming tool_calls accumulation,
graceful image dropping when vision isn't supported, and per-model
capability gating.

Backend only — UI for endpoint management ships in a follow-up PR.

Acceptance criteria covered:
- Tool use works end-to-end via tool_calls deltas → Anthropic tool_use blocks
- Streaming works for both Anthropic and OpenAI-compatible providers
- Unsupported features (vision, tool use) are silently dropped per model
- Built-in Anthropic provider behaviour is unchanged
- Existing Ollama provider keeps working; new bridge is for generic OAI-compat

* fix(providers): bind custom-endpoint bridge to loopback + honour live thinkingModes

Addresses review feedback on #1929:

P1 — Security: the OpenAI Chat Completions bridge was binding to 0.0.0.0
because `Bun.serve({ port: 0 })` defaults the hostname. On multi-user hosts
another local user could probe ephemeral ports and reach the bridge with the
configured upstream API key. Now explicitly binds to 127.0.0.1.

P1 — Correctness: `addSessionStateOptions` resolved provider thinking mode
exclusively from the static `PROVIDER_THINKING_MODES` map, which doesn't list
`custom:*` providers and therefore defaulted to `'granular'`. That emitted
`thinking: { type: 'enabled', ... }` for endpoints whose capabilities report
`thinkingModes: 'off'`. The bridge silently dropped the field, but the SDK
could error expecting matching reasoning blocks back. Now prefers the ... (continued)

8326 of 11892 branches covered (70.01%)

Branch coverage included in aggregate %.

93 of 222 new or added lines in 6 files covered. (41.89%)

66597 of 78343 relevant lines covered (85.01%)

300.03 hits per line

Uncovered Changes

Lines Coverage ∆ File
120
39.78
packages/web/src/components/settings/CustomEndpointsSettings.tsx
8
50.59
-5.26% packages/web/src/lib/api-helpers.ts
1
67.21
-1.12% packages/web/src/islands/ContextPanel.tsx
Jobs
ID Job ID Ran Files Coverage
1 daemon-5-space-other - 26007705881.1 18 May 2026 12:50AM UTC 108
40.66
GitHub Action Run
2 daemon-4-space-storage - 26007705881.2 18 May 2026 12:51AM UTC 141
56.84
GitHub Action Run
3 daemon-online-space-1 - 26007705881.3 18 May 2026 12:51AM UTC 293
34.94
GitHub Action Run
4 daemon-2-handlers - 26007705881.4 18 May 2026 12:50AM UTC 142
59.87
GitHub Action Run
5 daemon-online-git - 26007705881.5 18 May 2026 12:50AM UTC 293
19.66
GitHub Action Run
6 daemon-online-coordinator - 26007705881.6 18 May 2026 12:49AM UTC 293
7.56
GitHub Action Run
7 daemon-online-rewind-2 - 26007705881.7 18 May 2026 12:50AM UTC 293
24.1
GitHub Action Run
8 daemon-online-rewind-1 - 26007705881.8 18 May 2026 12:51AM UTC 293
23.56
GitHub Action Run
9 daemon-online-lifecycle - 26007705881.9 18 May 2026 12:50AM UTC 293
23.82
GitHub Action Run
10 daemon-5-space-runtime - 26007705881.10 18 May 2026 12:50AM UTC 153
42.22
GitHub Action Run
11 daemon-online-convo - 26007705881.11 18 May 2026 12:50AM UTC 293
23.24
GitHub Action Run
12 daemon-5-space-agent - 26007705881.12 18 May 2026 12:50AM UTC 149
22.07
GitHub Action Run
13 daemon-online-rpc-3 - 26007705881.13 18 May 2026 12:50AM UTC 293
20.47
GitHub Action Run
14 daemon-online-rpc-1 - 26007705881.14 18 May 2026 12:50AM UTC 293
20.01
GitHub Action Run
15 daemon-online-components - 26007705881.15 18 May 2026 12:50AM UTC 293
18.51
GitHub Action Run
16 daemon-online-websocket - 26007705881.16 18 May 2026 12:50AM UTC 293
18.64
GitHub Action Run
17 daemon-online-features-1 - 26007705881.17 18 May 2026 12:50AM UTC 293
24.14
GitHub Action Run
18 daemon-1-core - 26007705881.18 18 May 2026 12:50AM UTC 299
39.57
GitHub Action Run
19 web - 26007705881.19 18 May 2026 12:50AM UTC 222
74.7
GitHub Action Run
20 daemon-5-space-workflow - 26007705881.20 18 May 2026 12:49AM UTC 106
31.14
GitHub Action Run
21 daemon-online-rpc-4 - 26007705881.21 18 May 2026 12:51AM UTC 293
24.41
GitHub Action Run
22 daemon-online-features-2 - 26007705881.22 18 May 2026 12:51AM UTC 293
23.78
GitHub Action Run
23 daemon-online-sdk - 26007705881.23 18 May 2026 12:50AM UTC 293
23.26
GitHub Action Run
24 daemon-online-space-2 - 26007705881.24 18 May 2026 12:51AM UTC 293
34.23
GitHub Action Run
25 daemon-0-shared - 26007705881.25 18 May 2026 12:49AM UTC 31
80.41
GitHub Action Run
26 daemon-online-mcp - 26007705881.26 18 May 2026 12:50AM UTC 293
18.96
GitHub Action Run
27 daemon-online-rpc-2 - 26007705881.27 18 May 2026 12:50AM UTC 293
24.72
GitHub Action Run
28 daemon-online-agent-sdk - 26007705881.28 18 May 2026 12:51AM UTC 293
23.37
GitHub Action Run
Source Files on build 26007705881
  • Tree
  • List 525
  • Changed 7
  • Source Changed 6
  • Coverage Changed 7
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #26007705881
  • f5348543 on github
  • Prev Build on dev (#26006495016)
  • Next Build on dev (#26009933549)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc