Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
711 commits
Select commit Hold shift + click to select a range
db27ae5
Merge release/v3.8.8 into refactor/pages-v3-15 (Skills pages redesign)
diegosouzapw May 30, 2026
1ee177d
Merge pull request #2827 from diegosouzapw/refactor/pages-v3-15-skill…
diegosouzapw May 30, 2026
f460582
Merge release/v3.8.8 into refactor/pages-v3-20 (Batch files functiona…
diegosouzapw May 30, 2026
6253f31
Merge pull request #2849 from diegosouzapw/refactor/pages-v3-20-batch…
diegosouzapw May 30, 2026
dd8f7aa
Merge release/v3.8.8 into refactor/pages-v3-21 (Memory engine redesig…
diegosouzapw May 30, 2026
b724257
Merge pull request #2873 from diegosouzapw/refactor/pages-v3-21-memor…
diegosouzapw May 30, 2026
ac0e9d5
Merge release/v3.8.8 into refactor/pages-v3-C (Playground + Search To…
diegosouzapw May 30, 2026
18641c9
fix(docs): document 2 PLAYGROUND_* env vars in ENVIRONMENT.md (env-do…
diegosouzapw May 30, 2026
9515375
Merge pull request #2869 from diegosouzapw/refactor/pages-v3-C-playgr…
diegosouzapw May 30, 2026
54cec88
Improve self-service provider quota visibility
May 30, 2026
bd1098d
fix(claude): strip empty Read pages tool input
makcimbx May 30, 2026
5600dcd
fix(claude): map WebSearch to Responses web_search
makcimbx May 30, 2026
3767e13
fix: preserve falsy tool argument values
makcimbx May 30, 2026
a7330b4
fix: harden Claude WebSearch tool parsing
makcimbx May 30, 2026
2b99d7b
fix: gate Claude WebSearch native mapping by target format
makcimbx May 30, 2026
d25e323
fix: scope JSON-string cleanup to Read tool
makcimbx May 30, 2026
7ffc56b
fix combo vision and codex tool history
edutvlanka May 30, 2026
37890ba
chore: remove audit logs tab from logs page
diegosouzapw May 30, 2026
c6f17d8
fix: resolve CPU leak from Bottleneck limiter accumulation and unboun…
May 30, 2026
7e7faad
fix(claude): sanitize tool schemas + cloak third-party tool names on …
May 30, 2026
31e11aa
perf: extract optimizations from perf/cpu-optimization-chat-completions
May 30, 2026
468354f
clean
diegosouzapw May 30, 2026
3b2d075
fix(claude): address tool-cloak PR review — preserve boolean schemas,…
May 30, 2026
57aff12
fix(stream): default Nextcloud integration to JSON
JxnLexn May 30, 2026
23dad7d
fix(claude): apply tool cloak + schema sanitize on the CLIProxyAPI ex…
May 30, 2026
cad06d8
fix(agent-bridge): strip non-serializable handler before Server→Clien…
diegosouzapw May 30, 2026
27e56f6
test(chatcore): wait longer for upstream timeout metadata
JxnLexn May 30, 2026
ce03977
test(chatcore): avoid pending metadata race in upstream timeout test
JxnLexn May 30, 2026
31a7349
test(reasoning-cache): authenticate reasoning cache API route requests
JxnLexn May 30, 2026
a1e0bc7
fix(claude): harden tool cloak + schema sanitizer (adversarial review…
May 30, 2026
dd6104e
test(cliproxyapi): update executor test for the broadened tool-name c…
May 30, 2026
d698e95
fix: combo credential resolution ignores target.providerId — prefer c…
oyi77 May 30, 2026
a59a90e
fix(dashboard): v3.8.8 screen quick wins (Phase 1)
diegosouzapw May 30, 2026
a03d7b4
fix(audit): translate event types and A2A task states (Phase 2)
diegosouzapw May 30, 2026
8eacd78
feat(memory): health auto-check, enable toggle, sqlite-vec hint (Phas…
diegosouzapw May 30, 2026
36c276a
feat(playground): Compare freeze fix, Chat provider/model selects, Bu…
diegosouzapw May 30, 2026
99d673f
feat(stream): add per-key JSON stream default mode
JxnLexn May 30, 2026
664a606
fix(dashboard/api-manager): scroll to key name error in create modal
JxnLexn May 30, 2026
f1d0416
feat(search-tools): Compare shows full results in side-by-side column…
diegosouzapw May 30, 2026
b4c0ce6
fix: address Gemini Code Review feedback on PR #2951
May 30, 2026
6cdf69e
fix: address Kilo Code review feedback on PR #2951
May 30, 2026
a91f352
test: add unit tests for CPU leak fixes and registry changes
May 30, 2026
6095842
fix(quota-share): guard usage.dimensions to stop "reading 'length'" ISE
diegosouzapw May 30, 2026
5a61ae9
feat(authz): allow LOCAL_ONLY paths from private-LAN peer IPs (owner-…
diegosouzapw May 30, 2026
270c2eb
fix(i18n): add missing settings proxy tab labels (proxyGlobalConfigTa…
diegosouzapw May 30, 2026
6b0e89f
fix(authz): derive LOCAL_ONLY locality from Host header (middleware h…
diegosouzapw May 30, 2026
51b586c
feat(quota): add allowed_quotas allow-list field to api_keys (Phase A1)
diegosouzapw May 30, 2026
ff7a906
fix(routing): add agy to executor map so it uses AntigravityExecutor
ReqX May 30, 2026
0c9345f
fix: move enforceScopes guard before MCP_TOOL_MAP lookup, add scopes …
May 30, 2026
8cd77b0
feat(notion): add Notion MCP context source with 6 tools, dashboard t…
May 30, 2026
58eb093
docs: update CHANGELOG and MCP-SERVER.md for scope fix and Notion con…
May 30, 2026
8dff29c
docs: update CHANGELOG and MCP-SERVER.md for scope fix and Notion con…
May 30, 2026
c29d6ed
feat(quota): add resolveQuotaKeyScope helper (Phase A2)
diegosouzapw May 30, 2026
8316c61
feat(quota): enforce quota-exclusive keys by pool provider (Phase A3)
diegosouzapw May 30, 2026
a921300
feat(quota): force quota-exclusive keys onto pool connection in accou…
diegosouzapw May 31, 2026
6214ea6
feat(quota): add quotaShared-* virtual model naming helpers (Phase B1)
diegosouzapw May 31, 2026
187bc50
fix(sse): bypass web-search fallback on Claude -> Claude passthrough …
terence71-glitch May 31, 2026
5250306
fix(skills): avoid Claude assistant tool_result blocks (#2956)
terence71-glitch May 31, 2026
7a0e803
feat: add Qwen Web (chat.qwen.ai) cookie provider (#2947)
oyi77 May 31, 2026
2fb5979
fix(dashboard): v3.8.8 screen fixes — agent-bridge SSR + audit/logs/m…
diegosouzapw May 31, 2026
6979463
fix(auth): prevent Codex multi-account refresh_token family revocatio…
diegosouzapw May 31, 2026
e787013
Merge release/v3.8.8
diegosouzapw May 31, 2026
ba340f1
Merge branch 'fix/nextcloud-json-stream-default' into release/v3.8.8
diegosouzapw May 31, 2026
49f6092
feat(quota): auto-sync quotaShared-* combos on pool allocation change…
diegosouzapw May 31, 2026
78c5a30
feat(quota): restrict quota-exclusive keys to their quotaShared-* mod…
diegosouzapw May 31, 2026
3742afc
feat(quota): /v1/models lists only quotaShared-* models for quota-exc…
diegosouzapw May 31, 2026
6a14c31
feat(quota): reconcile key allowedQuotas when pool allocations saved …
diegosouzapw May 31, 2026
3dd4a3b
fix(antigravity): avoid visible signatureless tool history (#2927)
dhaern May 31, 2026
856603e
Merge PR 2927 into release/v3.8.8
diegosouzapw May 31, 2026
cf3600d
Merge PR 2931 into release/v3.8.8
diegosouzapw May 31, 2026
606b709
Merge PR 2937 into release/v3.8.8
diegosouzapw May 31, 2026
8dafe78
Merge PR 2938 into release/v3.8.8
diegosouzapw May 31, 2026
266c145
Merge PR 2940 into release/v3.8.8
diegosouzapw May 31, 2026
1a9b2bf
Merge PR 2943 into release/v3.8.8
diegosouzapw May 31, 2026
4e51bc6
Merge PR 2946 into release/v3.8.8
diegosouzapw May 31, 2026
fa4bd6c
Merge PR 2951 into release/v3.8.8
diegosouzapw May 31, 2026
c90bed0
Merge PR 2957 into release/v3.8.8
diegosouzapw May 31, 2026
ff255c4
Merge PR 2958 into release/v3.8.8
diegosouzapw May 31, 2026
4536aab
Merge PR 2959 into release/v3.8.8
diegosouzapw May 31, 2026
62de5a8
feat(quota): 3-step pool wizard unifying connection, plan and key all…
diegosouzapw May 31, 2026
e2ad12d
fix(proxy): show registry provider proxies in dashboard (#2963)
terence71-glitch May 31, 2026
2300db6
feat(quota): retire standalone Plans screen, unified into pool wizard…
diegosouzapw May 31, 2026
69acd66
feat(quota): pool can span N connections — quota_pool_connections joi…
diegosouzapw May 31, 2026
4289472
test(quota): align sidebar-costs-section to 4 items after C2 Plans re…
diegosouzapw May 31, 2026
e5a624d
feat(quota): propagate N pool connections through scope, combos, enfo…
diegosouzapw May 31, 2026
acd517e
feat(quota): multi-connection pool wizard — select N providers, all m…
diegosouzapw May 31, 2026
b93cde7
fix(quota): wire multi-provider icons into pool card (D3 dead-code gap)
diegosouzapw May 31, 2026
d5b1635
fix(db): resolve 077 migration version collision blocking getDbInstance
diegosouzapw May 31, 2026
5c340ea
Merge PR 2966 into release/v3.8.8
diegosouzapw May 31, 2026
672398e
fix(routing): replay reasoning_content for OpenCode big-pickle (#2900)
diegosouzapw May 31, 2026
0a09fa5
fix(authz): trust real TCP peer IP stamp over spoofable Host header f…
diegosouzapw May 31, 2026
f6d68a7
Merge PR 2967 into release/v3.8.8
diegosouzapw May 31, 2026
f147223
fix(providers): route Copilot Claude/Gemini via chat/completions (#2911)
diegosouzapw May 31, 2026
bc63323
Merge PR 2969 into release/v3.8.8
diegosouzapw May 31, 2026
b5d03ed
fix(translator): drop Codex image_generation tool in Responses→Chat (…
diegosouzapw May 31, 2026
bafcf72
Merge PR 2970 into release/v3.8.8
diegosouzapw May 31, 2026
7292520
fix(authz): close 2nd Host-spoof path (cliTokenAuth) + IPv6 loopback …
diegosouzapw May 31, 2026
e63fbed
fix(combo): no-auth OpenCode combos use oc/ prefix, not opencode/ (#2…
diegosouzapw May 31, 2026
0fe97ab
Merge PR 2971 into release/v3.8.8
diegosouzapw May 31, 2026
009c928
fix(build): copy server-ws.mjs + peer-stamp + responses-ws-proxy into…
diegosouzapw May 31, 2026
d07d3dc
fix(quota): orphan pool (no valid connection) must not contribute its…
diegosouzapw May 31, 2026
816ba12
docs(authz): document OMNIROUTE_PEER_STAMP_TOKEN in .env.example + EN…
diegosouzapw May 31, 2026
eb7348a
fix(resilience): route-restriction 403 must not mark a connection una…
diegosouzapw May 31, 2026
20a91c0
Merge PR 2972 into release/v3.8.8
diegosouzapw May 31, 2026
380d558
fix(auth): opencode-zen falls back to anonymous no-auth when no key (…
diegosouzapw May 31, 2026
b647cf3
Merge PR 2974 into release/v3.8.8
diegosouzapw May 31, 2026
a06054a
fix(translator): drop orphan tool results from empty call_id (#2893)
diegosouzapw May 31, 2026
a17f5df
Merge PR 2976 into release/v3.8.8
diegosouzapw May 31, 2026
a9f1e7f
fix(build): ship app/peer-stamp.mjs in npm pack (server-ws.mjs hard-dep)
diegosouzapw May 31, 2026
209d0b5
test(build): expect app/peer-stamp.mjs in pack-artifact required paths
diegosouzapw May 31, 2026
71bfe08
refactor: make SessionPool modular & provider-agnostic
oyi77 May 30, 2026
a365706
feat: add pool support to DuckDuckGo Web and LLM7 providers
oyi77 May 30, 2026
d22564d
fix(session-pool): round-robin fingerprints in SessionFactory
diegosouzapw May 31, 2026
559252a
docs(changelog): credit #2954 SessionPool modular (thanks @oyi77)
diegosouzapw May 31, 2026
0e35292
perf(proxy): parallelize provider proxy overlay lookups
terence71-glitch May 31, 2026
ca7756e
Merge pull request #2984 from terence71-glitch/perf/provider-proxy-ov…
diegosouzapw May 31, 2026
cf9a78a
fix(quota): unwrap pool usage response so quota-share page renders po…
diegosouzapw May 31, 2026
1a70129
fix(sse): remove duplicate const settings in handleChatCore
diegosouzapw May 31, 2026
923b8fe
Merge PR 2989 into release/v3.8.8
diegosouzapw May 31, 2026
f5d74cd
fix(routing): honor client reasoning.effort for gpt-5.5 + route suffi…
diegosouzapw May 31, 2026
2d627a3
Merge PR 2990 into release/v3.8.8
diegosouzapw May 31, 2026
bc7ab44
fix(docker): add 'web' compose profile for web-cookie providers (#2832)
diegosouzapw May 31, 2026
d0e5b97
Merge PR 2991 into release/v3.8.8
diegosouzapw May 31, 2026
4b6d6c7
fix(docker): honor OMNIROUTE_MEMORY_MB heap limit in standalone launc…
diegosouzapw May 31, 2026
933121b
Merge PR 2993 into release/v3.8.8
diegosouzapw May 31, 2026
8151c46
fix(dashboard): resolve custom provider display name across surfaces …
diegosouzapw May 31, 2026
81bf13e
Merge PR 2994 into release/v3.8.8
diegosouzapw May 31, 2026
8e9b3e2
fix(deps): remove proxifly package dependency
terence71-glitch May 31, 2026
d0a8797
fix(codex): drop image_generation for free-plan accounts (#2980 spin-…
diegosouzapw May 31, 2026
b2e1e6c
Merge PR 2999 into release/v3.8.8
diegosouzapw May 31, 2026
c455a36
fix(proxy): ignore null Proxifly API entries
terence71-glitch May 31, 2026
767fad3
feat(quota): 2-column responsive grid for pool cards
diegosouzapw May 31, 2026
bbc4c57
feat(quota): explain key-enable + exclusive behavior in concept card
diegosouzapw May 31, 2026
2521c09
feat(quota): one provider per pool (block mixed-type) — server guard …
diegosouzapw May 31, 2026
17b58f8
fix(providers): route Pollinations to gen.pollinations.ai/v1 (#2987)
diegosouzapw May 31, 2026
687c284
Merge PR 3002 into release/v3.8.8
diegosouzapw May 31, 2026
4157fbe
feat(quota): balance + failover across same-provider accounts (N-step…
diegosouzapw May 31, 2026
d490a30
feat(quota): pool budget = per-account limit × account count (summed …
diegosouzapw May 31, 2026
d4045e7
fix(models): honor per-model targetFormat for custom models (#2905)
diegosouzapw May 31, 2026
18b615f
feat(quota): show per-account upstream quota in the pool card
diegosouzapw May 31, 2026
b1e1f5e
Merge PR 3004 into release/v3.8.8
diegosouzapw May 31, 2026
8c11aca
feat(quota): per-pool usage-log endpoint + card
diegosouzapw May 31, 2026
c2d7ac9
fix(payload-rules): read DB-persisted rules when no in-memory overrid…
diegosouzapw May 31, 2026
51d66ea
Merge PR 3005 into release/v3.8.8
diegosouzapw May 31, 2026
99f615c
fix(quota): generate quotaShared-* combos for CLI/OAuth providers (us…
diegosouzapw May 31, 2026
5208cd5
feat(quota): mask emails across the quota-share screen (EmailPrivacyT…
diegosouzapw May 31, 2026
aa6091a
fix(proxy): use connection proxy for OAuth refresh
terence71-glitch May 31, 2026
5acf6bd
feat(quota): default to equal split when allocation weights are unset…
diegosouzapw May 31, 2026
cb45d9d
fix(quota): prune deleted pool id from api_keys.allowed_quotas
diegosouzapw May 31, 2026
10fa5e8
feat(quota): protect quotaShared-* combos from manual edit/delete (sy…
diegosouzapw May 31, 2026
c6cc8bb
fix(usage): export pure helper functions for unit testing
oyi77 May 31, 2026
be77a03
fix(quota): await getQuotaStore() in enforce — quota never enforced/r…
diegosouzapw May 31, 2026
54ca6ba
test: add 5 new test files for DB modules and usage utils
oyi77 May 31, 2026
73075f9
test: add executor base utils and usage provider tests
oyi77 May 31, 2026
1543a4b
test: add core, models, settings extended tests
oyi77 May 31, 2026
57930ba
test: add model resolver, stream collector, gemini helper tests
oyi77 May 31, 2026
abb7787
feat(quota): QuotaStore.poolConsumedTotal — pool aggregate per dimension
diegosouzapw May 31, 2026
3c21a1a
Merge pull request #2981 from Lion-killer/i18n/uk-ua-ui-menu
diegosouzapw May 31, 2026
bc46eba
Merge pull request #2975 from xz-dev/feat/siliconflow-cn-endpoint-sel…
diegosouzapw May 31, 2026
fa038e0
Merge pull request #2964 from S0yora/feat/trae-solo-provider
diegosouzapw May 31, 2026
a6de2a5
Merge pull request #2965 from soyelmismo/fix/oom-memory-leak-caches
diegosouzapw May 31, 2026
a9332f8
chore(changelog): add missing credits for merged PRs
diegosouzapw May 31, 2026
98cc1df
Merge PR 3000 into release/v3.8.8
diegosouzapw May 31, 2026
254c8bf
Merge PR 3012 into release/v3.8.8
diegosouzapw May 31, 2026
7ec85ce
Merge PR 3015 into release/v3.8.8
diegosouzapw May 31, 2026
ddd129f
fix(quota): block per-key overage for countable units (real pool-tota…
diegosouzapw May 31, 2026
029e4f6
docs(docker): align memory default docs
terence71-glitch May 31, 2026
2ec803b
Treat DuckDuckGo web as no-auth provider
NekoMonci12 May 31, 2026
9f254a6
Update OpenCode Free Providers
NekoMonci12 May 31, 2026
7b6007b
chore: bump Claude Code identity to 2.1.158 + sync beta flags from HA…
Tentoxa May 31, 2026
1ba24c6
fix: address review feedback — remove Opus-only flag from static base…
Tentoxa May 31, 2026
7cb77a9
Merge PR 3018 into release/v3.8.8
diegosouzapw May 31, 2026
727616b
feat(quota): quota_groups table + pools.group_id (migration 087)
diegosouzapw May 31, 2026
1eff658
feat(quota): quotaGroups DB module (CRUD)
diegosouzapw May 31, 2026
cb1a18f
feat(quota): qtSd/<group>/<provider>/<model> model naming
diegosouzapw May 31, 2026
fc66929
feat(quota): group-aware quotaShared combos (qtSd/<group>/...) with p…
diegosouzapw May 31, 2026
6d2e695
fix(sse): stop Codex multi-account family-revocation cascade on quota…
diegosouzapw May 31, 2026
e9cc53b
feat(quota): key scope + /v1/models expand to the whole group (real g…
diegosouzapw May 31, 2026
9863000
Merge PR 3019 into release/v3.8.8
diegosouzapw May 31, 2026
eac24ca
feat(quota): group-level allocations + group access enforcement
diegosouzapw May 31, 2026
efa8f0a
feat(quota): /api/quota/groups CRUD (rename re-syncs combos)
diegosouzapw May 31, 2026
5d84a8f
test(quota): combo protection guard matches qtSd/ prefix
diegosouzapw May 31, 2026
137d77c
feat(quota): group selector + grouped pool cards + wizard group pick …
diegosouzapw May 31, 2026
58a7d97
Merge branch 'release/v3.8.8' into feat/quota-share-redesign
diegosouzapw Jun 1, 2026
7f6e7a8
fix(docs): point MCP-SERVER diagram to existing mcp-tools-37.svg (mer…
diegosouzapw Jun 1, 2026
4b3987e
Merge pull request #3022 from diegosouzapw/feat/quota-share-redesign
diegosouzapw Jun 1, 2026
a0b435b
chore: credit PRs 3000, 3006, 3008, 3010, 3012, 3015, 3018 in changelog
diegosouzapw Jun 1, 2026
74e290b
docs(mcp): regenerate mcp-tools diagram for 43 tools (+ notion); fix …
diegosouzapw Jun 1, 2026
bf96769
Merge pull request #3028 from diegosouzapw/docs/mcp-tools-43
diegosouzapw Jun 1, 2026
e694674
feat(quota): pool PATCH accepts groupId + connectionIds, re-syncs com…
diegosouzapw Jun 1, 2026
e5392a7
fix(quota): pool PATCH prunes OLD group/provider combos before re-syn…
diegosouzapw Jun 1, 2026
342f12b
feat(quota): GET /api/quota/keys/[id]/models — preview the qtSd/ mode…
diegosouzapw Jun 1, 2026
881a8e9
feat(quota): move Quota Share nav item under Provider Quota
diegosouzapw Jun 1, 2026
b64489b
feat(quota): PoolWizard editPool mode (full pool edit via PATCH)
diegosouzapw Jun 1, 2026
ac5ac0c
fix(api): guard rotating providers in manual token-refresh route (Cod…
diegosouzapw Jun 1, 2026
46c482c
Merge PR 3030 into release/v3.8.8
diegosouzapw Jun 1, 2026
3c8e84d
feat(quota): all-groups default + stacked group sections + 3-col cards
diegosouzapw Jun 1, 2026
6848636
feat(quota): edit button opens full PoolWizard (exclusive-preserving)…
diegosouzapw Jun 1, 2026
df7b1e8
feat(quota): available-endpoints card + per-key model preview
diegosouzapw Jun 1, 2026
6fd7098
chore(quota): remove orphaned groupAllocationNote i18n key (EditAlloc…
diegosouzapw Jun 1, 2026
a332b65
Revert "chore(quota): remove orphaned groupAllocationNote i18n key (E…
diegosouzapw Jun 1, 2026
099cb67
Merge pull request #3032 from diegosouzapw/feat/quota-share-v2
diegosouzapw Jun 1, 2026
4de674e
test: increase coverage to >60% — 353 new test cases (#3018)
oyi77 Jun 1, 2026
e4eeb6d
refactor: Make SessionPool modular & provider-agnostic (#2978)
oyi77 Jun 1, 2026
dd42b15
Fix missing API key scope translations (#3031)
guanbear Jun 1, 2026
8ef8a9b
fix(i18n): complete Ukrainian (uk-UA) UI translation coverage (#2988)
Lion-killer Jun 1, 2026
c34285f
fix(stream): drop leaked chat bootstrap chunk for responses clients (…
CitrusIce Jun 1, 2026
aa8033d
chore: bump Claude Code identity to 2.1.158 + sync `anthropic-beta` f…
Tentoxa Jun 1, 2026
57dfa25
fix(oom): prevent per-request memory accumulation (256MB heap) (#2973)
soyelmismo Jun 1, 2026
baa4e56
fix: improve macOS Electron window chrome (#3029)
bobbyunknown Jun 1, 2026
b20748a
Fix DuckDuckGo Missing Api Key & Update OpenCode Free Model List (#3008)
NekoMonci12 Jun 1, 2026
6561548
fix(docker): warn-only on /app/data permission check, remove exit 1 (…
wussh Jun 1, 2026
e11366b
fix(privacy): resolve PII feature flag correctly and fix PII response…
dangeReis Jun 1, 2026
6b7ae9a
fix(mcp): resolve streamable http transport readiness offline status …
Chewji9875 Jun 1, 2026
4e4e897
chore: ignore local cache and workspace helper directories
diegosouzapw Jun 1, 2026
482e469
fix(dashboard): use lightweight ping endpoint for MaintenanceBanner (…
herjarsa Jun 1, 2026
89c52d4
fix: resolve pre-existing test failures (env sync, PII, quota, sideba…
oyi77 Jun 1, 2026
20c3149
feat(plugins): plugins framework + per-API-key disable-non-public-mod…
diegosouzapw Jun 1, 2026
9e7f3ca
feat(plugins): plugin hook wiring + comprehensive test suite + welcom…
oyi77 Jun 1, 2026
a1c743d
chore(release): v3.8.8 — changelog from v3.8.7, version sync, i18n + …
diegosouzapw Jun 1, 2026
2a89546
fix(claude-web): inject cf_clearance into cookie for 403 prevention (…
oyi77 Jun 1, 2026
8f0615f
fix(security): resolve 5 CodeQL alerts, document FPs, harden deploy s…
diegosouzapw Jun 1, 2026
39a673b
fix(pollinations/duckduckgo): wire session pool for fingerprint rotat…
oyi77 Jun 1, 2026
5350b5e
fix(proxy): fail closed for OAuth usage account proxies (#3051)
terence71-glitch Jun 1, 2026
08c7057
fix(proxy): resolve registry assignments for combo and key levels (#3…
terence71-glitch Jun 1, 2026
a5f3c99
fix(sse): auto-calibrate heap-pressure threshold to the V8 heap ceili…
diegosouzapw Jun 2, 2026
65195dc
docs(changelog): audit v3.8.8 — fill gaps, credit @branben/@JxnLexn, …
diegosouzapw Jun 2, 2026
76d697b
chore: remove 9 dead/unreachable free providers (#3054)
oyi77 Jun 2, 2026
c711ac6
fix(pii): preserve custom event names and apply stream PII sanitizati…
dangeReis Jun 2, 2026
8386ab3
fix: complete #3054 dead-provider removal (petals executor + stale te…
diegosouzapw Jun 2, 2026
3dca2bb
fix(quota-share): hidden pools, delete-group UI, endpoints card (Anth…
diegosouzapw Jun 2, 2026
66ddbb0
chore: remove Petals executor and tighten route typing
diegosouzapw Jun 2, 2026
dee20ac
fix(pii): preserve custom event names and apply stream PII sanitizati…
dangeReis Jun 2, 2026
fdbaae4
fix(sse): stop infinite account-fallback loop on no-auth providers (#…
diegosouzapw Jun 2, 2026
11eb74c
fix(quota-share): endpoints card default view shows real qtSd combos,…
diegosouzapw Jun 2, 2026
831f828
feat(quota-share): beta banner, Responses + codex-WS endpoints in car…
diegosouzapw Jun 2, 2026
f8c1213
feat(quota): seed claude plan preset (percent 5h+weekly) in planRegistry
diegosouzapw Jun 2, 2026
512e980
feat(quota): xiaomi monthly cap + deepseek USD preset; researched pla…
diegosouzapw Jun 2, 2026
8086d28
fix(ws): codex Responses-over-WebSocket upgrade — clean handshake + b…
diegosouzapw Jun 2, 2026
8277b98
feat(api-manager): split keys into Normal vs Quota sections (compact …
diegosouzapw Jun 2, 2026
ccaa0b5
fix(quota): block qtSd models for keys with no quota-pool allocation …
diegosouzapw Jun 2, 2026
c4a9931
fix(quota): never flag rotating-refresh providers expired from the qu…
diegosouzapw Jun 2, 2026
e438139
feat(quota): live real-time codex quota on the page (cascade-safe ser…
diegosouzapw Jun 2, 2026
146244b
fix(build): Turbopack/Docker build — externalize sqlite-vec .so + syn…
diegosouzapw Jun 2, 2026
7c2dc1c
refactor(build): graceful agent-status stub + robust stub-drift guard…
diegosouzapw Jun 2, 2026
f5acb60
chore(mitm): fix stub comment accuracy + broaden stub-drift guard (PR…
diegosouzapw Jun 2, 2026
e176d0a
fix(build): bundle sqlite-vec native binary into standalone (vector m…
diegosouzapw Jun 2, 2026
34e0eab
docs(changelog): note sqlite-vec standalone bundling in #3066 entry
diegosouzapw Jun 2, 2026
82af14a
Merge release/v3.8.8 into main
diegosouzapw Jun 2, 2026
2b0bd9d
fix: post-merge reconciliation (release/v3.8.8 -> main)
diegosouzapw Jun 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/deploy-vps-akamai-cc/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ scp omniroute-*.tgz root@69.164.221.35:/tmp/
```

```bash
ssh root@69.164.221.35 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Akamai done'"
ssh root@69.164.221.35 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Akamai done'"
```

### 3. Verify the deployment
Expand Down
4 changes: 2 additions & 2 deletions .agents/skills/deploy-vps-both-cc/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ scp omniroute-*.tgz root@69.164.221.35:/tmp/ && scp omniroute-*.tgz root@192.168
```

```bash
ssh root@69.164.221.35 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Akamai done'"
ssh root@69.164.221.35 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Akamai done'"
```

```bash
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
```

### 3. Verify the deployment
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/deploy-vps-local-ag/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ scp omniroute-*.tgz root@192.168.0.15:/tmp/
```

```bash
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
```

### 3. Verify the deployment
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/deploy-vps-local-cc/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ scp omniroute-*.tgz root@192.168.0.15:/tmp/
```

```bash
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
```

### 3. Verify the deployment
Expand Down
2 changes: 1 addition & 1 deletion .agents/skills/deploy-vps-local-cx/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ scp omniroute-*.tgz root@192.168.0.15:/tmp/
```

```bash
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && pm2 delete omniroute 2>/dev/null; pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
ssh root@192.168.0.15 "npm install -g /tmp/omniroute-*.tgz --ignore-scripts --legacy-peer-deps && cd /usr/lib/node_modules/omniroute/app && npm rebuild better-sqlite3 && (pm2 delete omniroute 2>/dev/null || true) && pm2 start /root/.omniroute/ecosystem.config.cjs --update-env && pm2 save && echo '✅ Local done'"
```

### 3. Verify the deployment
Expand Down
50 changes: 48 additions & 2 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,14 @@ ALLOW_API_KEY_REVEAL=false
# Used by: src/middleware/promptInjectionGuard.ts — extends injection guard.
# PII_REDACTION_ENABLED=false

# Minimum streaming window size for PII detection (bytes). Default: 200.
# Used by: src/lib/streamingPiiTransform.ts.
# PII_WINDOW_SIZE=200

# Test bypass: allow setting PII_WINDOW_SIZE below minimum. Default: false.
# Used by: src/lib/streamingPiiTransform.ts.
# PII_TEST_BYPASS_MIN_WINDOW=false

# ── Response-Side: PII Sanitizer ──
# Scans LLM responses for leaked PII before returning to the client.
# Used by: src/lib/piiSanitizer.ts
Expand Down Expand Up @@ -563,6 +571,18 @@ CLAUDE_OAUTH_CLIENT_ID=9d1c250a-e61b-44d9-88ed-5944d1962f5e
# ── Codex / OpenAI ──
CODEX_OAUTH_CLIENT_ID=app_EMoamEEZ73f0CkXaXp7hrann

# Milliseconds to wait between consecutive Codex token refreshes.
# Used by: open-sse/services/refreshSerializer.ts. Default: 0 (no spacing).
# CODEX_REFRESH_SPACING_MS=0

# ── Trae (ByteDance) ──
# Trae stream idle timeout (ms). Default: 300000 (5 min).
# Used by: open-sse/executors/trae.ts.
# TRAE_STREAM_TIMEOUT_MS=300000

# Trae OAuth token override. Used by: open-sse/executors/trae.ts.
# TRAE_TOKEN=

# ── Gemini / Gemini CLI / Antigravity / Windsurf (all Google-based) ──
# These providers ship public OAuth client_id/secret values (or Firebase Web
# keys) embedded in their public CLIs/binaries. Defaults are baked into the
Expand Down Expand Up @@ -929,10 +949,25 @@ APP_LOG_TO_FILE=true

# Node.js V8 heap limit in MB, passed to the server via --max-old-space-size.
# Used by the standalone launcher (Docker CMD) and `omniroute serve`.
# Default: 512. Clamped to [64, 16384]. Raise it (e.g. 1024) if you see random
# OOM crashes under load or with a large SQLite DB (#2939).
# Clamped to [64, 16384]. Default: 512 (safe for a 1 GB / 1 core VPS). Size it to
# roughly half the box's RAM, leaving the rest for native memory (better-sqlite3,
# buffers — ~300 MB) and the OS:
# 1 GB RAM → 512 (default)
# 2 GB RAM → 1024
# 4 GB RAM → 2048
# In a memory-capped container, set this EXPLICITLY: Node reads the HOST's RAM,
# not the cgroup limit, so leaving it to a RAM heuristic can oversize the heap and
# get the container OOM-killed. (#2939)
# OMNIROUTE_MEMORY_MB=512

# Heap-pressure shed threshold (MB) — chatCore returns 503 when V8 heapUsed exceeds
# it, to avoid hard OOM under concurrent large-context load.
# LEAVE UNSET: it now AUTO-CALIBRATES to 85% of the actual V8 heap ceiling, so it
# tracks OMNIROUTE_MEMORY_MB above and never sits below the ~260 MB runtime baseline
# (a fixed 200 here used to reject every request). Used by: open-sse/utils/heapPressure.ts.
# Override only to hand-tune for a known workload.
# HEAP_PRESSURE_THRESHOLD_MB=

# ── CLI helpers (bin/cli/) ──
# Override UI language for CLI output. Accepts BCP-47 locale (e.g. en, pt-BR).
# Falls back to LC_ALL / LC_MESSAGES / LANG / en if unset.
Expand All @@ -957,6 +992,10 @@ APP_LOG_TO_FILE=true
# Default: ~/.omniroute/plugins/ Override in dev/CI to point at a local plugin tree.
# OMNIROUTE_PLUGIN_PATH=

# Allow plugins to request the 'exec' permission (spawn child processes from the
# plugin worker sandbox). Disabled by default; set to 1 to enable (local operator only).
# OMNIROUTE_PLUGINS_ALLOW_EXEC=0

# ── Prompt cache (system prompt deduplication) ──
# Used by: open-sse/services — caches identical system prompts across requests.
# PROMPT_CACHE_MAX_SIZE=50 # Max cached entries (default: 50)
Expand Down Expand Up @@ -1125,6 +1164,13 @@ APP_LOG_TO_FILE=true
# CURSOR_STREAM_DEBUG is kept as a backward-compatible alias.
# Used by: open-sse/executors/cursor.ts
# CURSOR_DEBUG=1

# Enable verbose trace logging for OmniRoute internals.
# Used by: open-sse/handlers/chatCore.ts.
# OMNIRROUTE_TRACE=true

# Standard DEBUG flag (same effect as OMNIRROUTE_TRACE).
# DEBUG=true
# CURSOR_STREAM_DEBUG=1

# When CURSOR_DEBUG=1, also append raw decoded chunks to this file path.
Expand Down
12 changes: 0 additions & 12 deletions .source/browser.ts

This file was deleted.

Loading
Loading