R.D.
50f12869bf
fix: make streaming timeouts env-configurable
2026-04-02 02:59:12 -04:00
xiaoge1688
c81c79ad52
chore(deploy): update Fly.io app name
2026-04-02 14:42:49 +08:00
tombii
f2f6f2f5a8
fix(oauth): persist providerSpecificData from token refresh in health check
...
The health check refresh path was silently dropping result.providerSpecificData,
so resourceUrl (returned by Qwen on token refresh) was never persisted to the DB.
Now deep-merges refresh result providerSpecificData into the existing connection data.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-02 08:39:52 +02:00
oyi77
2e2afa616d
feat(cliproxyapi): add version manager service, API routes, CLI Tools UI & Docker
...
Part 3 of CLIProxyAPI integration (#902 ). Depends on PR1 + PR2.
- releaseChecker.ts: GitHub releases API with 5min cache
- binaryManager.ts: download, SHA256 verify, install, symlink, rollback
- processManager.ts: spawn, graceful stop (SIGTERM→SIGKILL with interval cleanup), restart
- healthMonitor.ts: periodic /v1/models health checks
- index.ts: orchestrator (install/start/stop/restart/checkUpdates/pin/rollback)
- 6 API routes under /api/version-manager/ with Zod validation
- CliproxyapiToolCard: CLI Tools page card
- Docker: cliproxyapi profile with sidecar service + healthcheck
- 78 unit tests across 5 test files
2026-04-02 13:37:43 +07:00
oyi77
d82a7040f1
feat(cliproxyapi): add executor, proxy routing with SSRF guard & module-level cache
...
Part 2 of CLIProxyAPI integration (#902 ). Depends on PR1.
- CliproxyapiExecutor: HTTP bridge to localhost:8317, reuses BaseExecutor.mergeAbortSignals
- Executor registration with cliproxyapi + cpa aliases
- chatCore.ts: resolveExecutorWithProxy() with Object.create (preserves prototype methods)
- Module-level proxy config cache (10s TTL, shared across requests)
- Three routing modes: native (default), cliproxyapi (passthrough), fallback (auto-retry on 5xx/429)
- 21 unit tests for executor
2026-04-02 13:28:46 +07:00
oyi77
8fc97a7f91
feat(cliproxyapi): add DB schema, upstream proxy config & settings UI
...
Part 1 of CLIProxyAPI integration (#902 ).
- DB migration for version_manager + upstream_proxy_config tables
- DB modules: versionManager.ts (tool lifecycle CRUD), upstreamProxy.ts (proxy config CRUD + SSRF guard)
- localDb.ts re-exports for new modules
- Provider registration: UPSTREAM_PROXY_PROVIDERS in providers.ts
- Zod validation schemas for version-manager API routes
- Settings UI: CliproxyapiSettingsTab (Advanced tab)
- 47 unit tests for DB modules
2026-04-02 13:27:51 +07:00
carmim777
5789c1ae7d
feat(qoder): support PAT via qodercli
2026-04-02 01:35:23 -03:00
xiaoge1688
520a89f5f6
chore(deploy): keep fork fly.toml
2026-04-02 12:14:19 +08:00
xiaoge1688
15379384dd
Merge remote-tracking branch 'upstream/main'
2026-04-02 12:14:18 +08:00
diegosouzapw
4cc44b37bb
chore(release): v3.4.4 — Responses API token fix, SQLite WAL checkpoint, issue triage
2026-04-02 01:05:09 -03:00
Diego Rodrigues de Sa e Souza
e121fec599
Merge pull request #905 from rdself/coder/sqlite-wal-checkpoint-shutdown
...
Flush SQLite WAL on graceful shutdown
2026-04-02 01:00:50 -03:00
Diego Rodrigues de Sa e Souza
6c669abb23
Merge pull request #909 from christopher-s/fix/responses-api-flush-total-tokens
...
fix(translator): emit response.completed with total_tokens for Responses API clients
2026-04-02 01:00:34 -03:00
fly-io[bot]
622c4f9f6f
Merge pull request #3 from xiaoge1688/flyio-new-files
...
Fly.io Launch config files
2026-04-02 03:57:07 +00:00
Fly.io
b7316353f4
New files from Fly.io Launch
2026-04-02 03:51:09 +00:00
xiaoge1688
902a2723ae
chore(deploy): revise Fly.io runtime config
2026-04-02 11:36:42 +08:00
fly-io[bot]
57f3c67e28
Merge pull request #2 from xiaoge1688/flyio-new-files
...
Fly.io Launch config files
2026-04-02 03:32:08 +00:00
Fly.io
6a2bc1ef2b
New files from Fly.io Launch
2026-04-02 03:24:47 +00:00
Diego Rodrigues de Sa e Souza
0b677677d1
Merge pull request #910 from diegosouzapw/release/v3.4.3
...
chore(release): v3.4.3 — Antigravity memory/skills, Claude Code bridge, Qwen OAuth, model sync stability
v3.4.3
2026-04-02 00:15:39 -03:00
xiaoge1688
41f9f96819
chore(deploy): update Fly.io app config
2026-04-02 11:15:26 +08:00
diegosouzapw
49f9fee446
chore(release): v3.4.3 — Antigravity memory/skills, Claude Code bridge, Qwen OAuth fix, model sync stability
2026-04-02 00:12:16 -03:00
Chris Staley
9588c1ea3e
refactor(translator): extract usage token constants for readability
...
Extract input_tokens/output_tokens into local constants to avoid
repeating nullish coalescing chains in the total_tokens calculation.
2026-04-01 20:03:31 -06:00
diegosouzapw
c665b01e89
test: add usage service and response translator test scripts
2026-04-01 22:48:34 -03:00
diegosouzapw
5c2db0134f
chore(release): update changelog for v3.4.4
2026-04-01 22:48:34 -03:00
R.D.
de162eb719
fix: drop assistant prefill for cc bridge
2026-04-01 22:48:34 -03:00
R.D.
33297e0226
fix: repair cc compatible v1 route handling
2026-04-01 22:48:34 -03:00
R.D.
a07e643020
fix(model-sync): store real provider in log summary
2026-04-01 22:48:34 -03:00
Chris Staley
304664b318
test: update usage field assertions to Responses API format
...
The normalization to input_tokens/output_tokens/total_tokens changed
the usage field names. Update test to assert on the correct fields.
2026-04-01 19:46:18 -06:00
Chris Staley
8372a3c7ca
fix(translator): emit response.completed with total_tokens for Responses API clients
...
Hub-and-spoke flush path was broken for non-OpenAI providers when the
client speaks OpenAI Responses API (e.g. Codex CLI). When
claudeToOpenAIResponse(null) returned null, openaiToOpenAIResponsesResponse
was never called, so response.completed (carrying total_tokens) was never
emitted — causing "missing field total_tokens" errors in Codex.
Two fixes:
- Pass null through to Step 2 translator even when Step 1 produced no
output during flush, so terminal events get emitted
- Capture usage from any chunk carrying it (not just usage-only chunks)
and normalize Chat Completions format to Responses API format
2026-04-01 19:26:34 -06:00
R.D.
69bbc0a2a1
flush sqlite wal on graceful shutdown
2026-04-01 20:14:31 -04:00
diegosouzapw
5bfe881fc8
chore(release): bump version to 3.4.4 and apply PR 900 (Qwen OAuth resource URL)
2026-04-01 21:07:37 -03:00
diegosouzapw
44f691bea4
chore(changelog): include PRs #873 , #869 , #899 in v3.4.2
2026-04-01 20:47:30 -03:00
tombii
e59db45f5b
refactor(model-sync): move empty-list guard to early return
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 20:47:30 -03:00
tombii
f4087694b1
fix(model-sync): skip replace when auto-sync returns empty model list
...
Prevent auto-sync from wiping manually-imported models when the upstream
/models endpoint fails, times out, or returns an empty list. Added
`allowEmpty` option (default false) to replaceCustomModels — callers that
intentionally clear all models (DELETE ?all=true) pass `allowEmpty: true`.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 20:47:30 -03:00
zenobit
2c63e0fdd6
chore(ci): improve and show CI summary
2026-04-01 20:47:30 -03:00
zenobit
29bb71373e
fix(ci): add missing dependencies for build
...
- prop-types: required by 12 component files using PropTypes
- js-yaml: required by openapi spec route
These dependencies were missing from package.json causing build failures.
2026-04-01 20:47:30 -03:00
zenobit
ed48858635
Apply suggestions from code review
...
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
2026-04-01 20:47:30 -03:00
zenobit
6f5c8389eb
feat(i18n): add windsurf guide steps to all 33 languages
...
Added missing cliTools.guides.windsurf.steps[1-5] with title and desc:
- step 1: Open AI Settings
- step 2: Add Custom Provider
- step 3: Base URL (http://127.0.0.1:20128/v1 )
- step 4: API Key
- step 5: Select Model
Total: 165 keys across all language files (5 steps × 2 keys × 33 languages)
2026-04-01 20:46:44 -03:00
diegosouzapw
52bd72f449
chore: align version strings to v3.4.3
2026-04-01 20:43:33 -03:00
diegosouzapw
b82f26366c
fix(docker): regenerate package-lock.json from clean install for npm ci
v3.4.2
2026-04-01 20:07:37 -03:00
diegosouzapw
758057131b
fix: regenerate package-lock.json for npm ci compatibility
2026-04-01 20:03:17 -03:00
Diego Rodrigues de Sa e Souza
e37adcd67e
Merge pull request #901 from diegosouzapw/release/v3.4.2
...
chore(release): v3.4.2 — memory/skills, claude code bridge, i18n CI, model-sync
2026-04-01 19:47:43 -03:00
diegosouzapw
4e08656422
chore(release): v3.4.2 — memory/skills injection, claude code bridge, i18n CI, model-sync fix
2026-04-01 19:31:42 -03:00
diegosouzapw
d10e70a77b
Merge PR #899 : fix(model-sync) into release/v3.4.2
2026-04-01 19:28:59 -03:00
diegosouzapw
0aa80f1459
Merge PR #873 : i18n + CI fixes into release/v3.4.2
2026-04-01 19:28:52 -03:00
diegosouzapw
26732265f0
chore: update memory schema metadata, improve session handling, and add version-bump workflow
2026-04-01 18:54:51 -03:00
tombii
c214c6c120
refactor(model-sync): move empty-list guard to early return
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-04-01 23:18:30 +02:00
diegosouzapw
485eb60dde
Merge Pull Request #888
2026-04-01 18:05:45 -03:00
diegosouzapw
7e5e029559
Merge Pull Request #891
...
# Conflicts:
# open-sse/handlers/chatCore.ts
2026-04-01 18:05:44 -03:00
diegosouzapw
116fd7b829
Merge Pull Request #898
2026-04-01 18:04:59 -03:00
diegosouzapw
1a2b46f00c
Merge Pull Request #882
...
# Conflicts:
# tests/unit/copilot-usage.test.mjs
2026-04-01 18:04:52 -03:00