Commit Graph

3850 Commits

Author SHA1 Message Date
sususu98
c9b3dbef2c Merge pull request #5808 from router-for-me/feat/devin-code-login
feat(devin): support port-free manual code login in no-browser mode and align OAuth URL parameter order
2026-09-14 17:02:45 +08:00
sususu
5f74accd0e fix(devin): share manual paste parsing and surface oauth callback errors
Extract parseDevinManualPaste for headless and loopback login, return
access_denied (and CSRF mismatches) instead of an unrecognized-format
error, collapse authorization URL query construction, and lock the
headless URL shape plus paste edge cases in tests.
2026-09-14 16:54:07 +08:00
sususu98
6c5fef915a Merge pull request #5818 from router-for-me/feat/codex-bootstrap-timeout
feat(codex): add optional time ceiling for stream bootstrap buffering
2026-09-14 15:21:05 +08:00
sususu
6e307553f4 feat(codex): add optional time ceiling for stream bootstrap buffering
- Add `stream-bootstrap-timeout` configuration (defaulting to 0/unlimited, recommended 20s behind reverse proxies) to bound how long early handshake or trickled events may hold response headers.
- Release stream buffering into normal in-stream delivery once the time budget is exhausted on both SSE and WebSocket executors.
- Deliver post-timeout overload and status-bearing errors in-stream rather than triggering credential failover, preventing latency doubling on long reasoning turns.
- Provide thread-safe mock clock test harness and comprehensive unit tests covering timeout release, unlimited default, disabled ceilings, and post-timeout error delivery.
2026-09-14 14:25:45 +08:00
sususu
d48590a47d feat(models): add gemini-3.5-flash-lite model definition 2026-09-14 13:58:10 +08:00
sususu
f341e07b94 fix(cmd/fetch_antigravity_models): support symlinked auth dir and multi-auth fallback 2026-09-14 13:58:06 +08:00
sususu98
bb20fa2d5e Merge pull request #5724 from Viggo95/fix/codex-bootstrap-buffer-noncontent-events
fix(codex): keep bootstrap buffer open for events that carry no output
2026-09-14 12:27:00 +08:00
Luis Pater
2bcebaa89c fix(claude): repair tool call pairing and handle standalone tool outputs
- Convert standalone or orphan tool outputs without matching tool calls into plain user text.
- Synthesize error tool results for dangling tool calls before user turns or assistant prefill checks.
- Enforce tool results to lead user messages and warn on unmapped items or invariant violations.

Closes: #5805
2026-09-14 11:52:05 +08:00
sususu
f465ebddde test(devin): route status calls to mock server in headless auth tests 2026-09-14 11:26:08 +08:00
Luis Pater
fd3cd15161 docs(readme): remove FastAIToken sponsor
- Remove FastAIToken sponsorship section across README files and delete associated asset.
2026-09-14 11:06:04 +08:00
Luis Pater
c1cb0c5de1 fix(translator): preserve html characters in tool arguments and fix devin sequential tool calls
- Introduce `SetStringWithoutHTMLEscape` to prevent escaping of HTML characters (`<`, `>`, `&`) in tool call arguments and argument deltas across translators.
- Handle sequential tool calls in Devin executor that share the same stream index but have distinct tool call IDs.
2026-09-14 11:04:08 +08:00
sususu
c35db127b0 fix(devin): mock AuthService in headless token test and validate prompt before printing URL 2026-09-14 10:24:01 +08:00
sususu
09807c57ea fix(devin): align OAuth authorization URL parameter order with official CLI binary 2026-09-14 09:59:31 +08:00
sususu
fe2fdde8a8 feat(devin): support port-free manual code login in no-browser mode 2026-09-14 09:56:35 +08:00
Luis Pater
7fa443dc8b Merge pull request #5806 from router-for-me/feat/devin-followups
fix(devin): wire protocol submessage decoding, usage fallbacks, model uniqueness, and APICall body token replacement
v7.3.2
2026-09-14 09:39:49 +08:00
Luis Pater
cca35aee93 fix(devin): use loopback callback endpoint for oauth redirect uri
- Enforce `http://127.0.0.1:<port>/callback` redirect URI to satisfy Devin authorization validation requirements.
- Register `/callback` route while preserving `/devin/callback` handler.
2026-09-14 09:37:35 +08:00
sususu
5f56ce928e fix(devin): trigger dimension group fallback if any usage metric is zero 2026-09-14 09:37:29 +08:00
sususu
4c331bb953 fix(devin): unwrap repeated field 28 groups, merge partial field 7 usage, and harden APICall escaping 2026-09-14 09:32:05 +08:00
sususu
0719520f2a feat(api-call): support $TOKEN$ replacement in request body data 2026-09-14 09:20:03 +08:00
sususu
db0b957c48 fix(devin): reject case-insensitive duplicate model IDs 2026-09-14 09:19:58 +08:00
sususu
0148331072 test(devin): add unit test for devin oauth-model-alias channel routing 2026-09-14 09:19:54 +08:00
sususu
b4749cb204 fix(devin): parse field 8 header submessages, accumulate field 4 prompt tokens, and add field 28 usage fallback 2026-09-14 09:19:51 +08:00
Luis Pater
8c5f6e185f fix(openai): convert responses tool choice to chat completions format
- Normalize responses named and custom tool choices to chat completions function format.
- Resolve namespaced and canonical tool names for tool choice.

Closes: #5794
2026-09-14 08:24:06 +08:00
Supra4E8C
44e62bc8ac feat(devin): implement Devin OAuth flow with callback handling and session management v7.3.1 2026-09-14 01:04:20 +08:00
Luis Pater
7e864ace4d Merge pull request #5797 from router-for-me/feat/cpa-web-search-catalog
feat(models): expose CPA web search capability
2026-09-14 00:59:20 +08:00
Supra4E8C
678da56193 chore(models): sync verified native search capability metadata 2026-09-14 00:04:41 +08:00
Supra4E8C
4311ae8747 feat(models): require explicit per-model native search support 2026-09-14 00:04:41 +08:00
sususu
30b2ac8996 refactor(devin): deduplicate auth credentials extraction, filter sparse tool calls, and optimize model lookup v7.3.0 2026-09-13 23:34:43 +08:00
sususu
9d190f309c feat(devin): integrate global signature detector for cross-provider signature detection 2026-09-13 23:34:43 +08:00
sususu
fb2c1c1afa fix(devin): transport reuse, interleaved stream steps, strings.Builder panic, and updater URL 2026-09-13 23:34:43 +08:00
sususu
926450e87b fix(devin): dynamic catalog-driven chat_model_uid resolution and effort clamping 2026-09-13 23:34:43 +08:00
sususu
1604cb0334 fix(devin): normalize upstream internal errors to 502 Bad Gateway 2026-09-13 23:34:43 +08:00
sususu
98b106f0e8 fix(devin): store transient quota metrics strictly in Quota.Signals and keep Metadata static 2026-09-13 23:34:43 +08:00
sususu
6a239f5715 fix(devin): propagate stream chunk errors, fix truncated protobuf infinite loop, respect ctx roundtripper, and limit auth response body reads 2026-09-13 23:34:43 +08:00
sususu
86de823daa perf(devin): cache Devin HTTP transports per proxy URL to reuse connection pools 2026-09-13 23:34:43 +08:00
sususu
6df8f32278 perf(devin): eliminate O(K^2) tool call argument string allocations using strings.Builder 2026-09-13 23:34:43 +08:00
sususu
6c7d2d57f7 perf(devin): cache sensitive word regex matcher, preallocate request bytes and frame decompression buffer 2026-09-13 23:34:43 +08:00
sususu
5d0c77cf3f fix(devin): enforce Connect-RPC EOS trailer invariant, validate frame flag, and bind OAuth callback to ctx 2026-09-13 23:34:43 +08:00
sususu
50dd582641 fix(devin): update streaming tool call step metadata if arriving in subsequent frames 2026-09-13 23:34:43 +08:00
sususu
d754298a8b fix(devin): bound tool call indices against OOM, set Refresh timeout, and check manual callback state 2026-09-13 23:34:43 +08:00
sususu
2f2f9b4381 fix(devin): guard against reopening thought step on late-arriving signatures 2026-09-13 23:34:43 +08:00
sususu
a5ea971f35 fix(devin): sort streaming tool call stop events and normalize prompt CRLF 2026-09-13 23:34:43 +08:00
sususu
f1f5506c0b fix(devin): align wire protocol, harden streaming, and resolve multi-turn tool/signature parity
- Wire parity: align Connect-RPC Sentry-Trace, User-Agent suppression, float32 double pattern, and dynamic 732-char hex device fingerprint
- Session ordinal & cache: implement process-scoped Field 15.2 with bounded LRU (5000 entries) and Field 15.4=14 user boundary; prioritize stable session_id over previous_interaction_id to preserve prompt caching
- Streaming robustness: unblock hung TCP reads on client cancellation via context watcher; accurately propagate stream read errors and trailer errors instead of swallowing truncated frames
- Thought signature & reasoning: emit raw delta signatures directly in active thought steps; eliminate redundant tail base64 re-encoding; ensure 1:1 assistant signature and thinking alignment across multi-turn history
- Tool call de-multiplexing: route parallel tool calls by tc.Index in both streaming step events and non-streaming aggregations
- Security & transport: escape OAuth callback error HTML against reflected XSS, enforce strict state validation, and isolate Devin HTTP transport with tr.Clone()
2026-09-13 23:34:43 +08:00
sususu
ca159b303d fix(util): enforce strict devin/ prefix requirement for devin provider 2026-09-13 23:34:43 +08:00
sususu
a0ccc3a414 Revert "feat(registry): transparently resolve un-prefixed devin models in auth selection"
This reverts commit 6eb8ed7f881af3906135f79881f0b3d146402809.
2026-09-13 23:34:43 +08:00
sususu
fbabc2740f feat(registry): transparently resolve un-prefixed devin models in auth selection 2026-09-13 23:34:43 +08:00
sususu
85ddf3aeb5 fix(devin): calculate total_input_tokens and total_tokens correctly 2026-09-13 23:34:43 +08:00
sususu
0aedd05d31 feat(registry): auto-populate Gemini token limits and generation methods for Devin models 2026-09-13 23:34:43 +08:00
sususu
bf06746d42 feat(devin): map model aliases and swe-1-7/haiku/sonnet/gpt-4-1 UIDs 2026-09-13 23:34:43 +08:00
sususu
ca664c6ede feat(devin): clamp maxTokens to model MaxCompletionTokens 2026-09-13 23:34:43 +08:00