Skip to content

feat(docs): migrate /docs to Fumadocs MDX with nested routes - #2614

Merged
diegosouzapw merged 7 commits into
cheaper-inference:release/v3.8.3from
ovehbe:feat/docs-fumadocs-migration
May 23, 2026
Merged

diegosouzapw merged 7 commits into
cheaper-inference:release/v3.8.3from
ovehbe:feat/docs-fumadocs-migration

Conversation

@ovehbe

@ovehbe ovehbe commented May 23, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Replaces the custom /docs stack (hand-rolled Markdown pipeline, marked, DOMPurify, regex HTML post-processing, and generated docs-auto-generated.ts) with Fumadocs (fumadocs-core, fumadocs-ui, fumadocs-mdx).
  • Docs are loaded from docs/{architecture,guides,reference,frameworks,routing,security,compression,ops}/ via source.config.ts and src/lib/source.ts, with section ordering from per-folder meta.json files.
  • Routes move from flat /docs/[slug] to nested /docs/[section]/[slug] (e.g. /docs/guides/setup-guide), with permanent redirects in next.config.mjs for legacy flat URLs and bookmarks.
  • Adds Fumadocs layout (DocsLayout, dark default theme), GitHub nav link, and search at /docs/api/search (kept under /docs/ so management auth on /api/* does not block search).
  • Removes obsolete docs UI modules (DocCodeBlocks, DocsSearchClient, DocsSidebarClient, Mermaid client, content.ts, generate-docs-index.mjs) and wires Fumadocs CSS in globals.css.
  • Fixes the prior prose-class regex bug indirectly by dropping the custom HTML injector; MDX is rendered by Fumadocs instead.

Validation

  • npm run lint
  • npm run test:unit
  • npm run test:coverage
  • Coverage is still >= 60% for statements, lines, functions, and branches
  • SonarQube PR analysis is green or any remaining issues are explicitly documented below

Tests Added Or Updated

  • Removed: tests/unit/docs-site-overhaul.test.ts (covered the old generated index, sidebar grouping, and custom search pipeline — no longer applicable).
  • No new automated tests in this PR; docs routing/search should be validated manually (see Reviewer Notes).

Coverage Notes

  • Production code under src/app/docs/ and src/lib/source.ts changed, but behavior is largely delegated to Fumadocs. Coverage may shift because the large removed test file no longer exercises those paths.
  • Repo gate for merged work remains 75/75/75/70 per CONTRIBUTING.md; confirm npm run test:coverage on CI before merge.
  • If coverage drops only because obsolete docs tests were deleted, follow-up can add focused tests for redirects and /docs/api/search if we want regression guards.

Reviewer Notes

  • Manual smoke test (recommended):
    • npm run dev → open /docs, browse each sidebar section, open a few deep pages (tables, code blocks, internal links).
    • Confirm search returns results (queries hit /docs/api/search, not /api/search).
    • Hit a few legacy URLs (e.g. /docs/setup-guide, /docs/mcp-server) and confirm 308/301 to nested paths.
    • npm run build — Fumadocs MDX generation must succeed.
  • URL change: External links to flat /docs/<slug> should still work via redirects; update bookmarks to nested URLs when convenient.
  • Out of scope for this PR: full doc content polish, i18n doc trees under docs/i18n/, and restoring removed custom widgets (Mermaid client, “What’s New” block) — can be follow-ups on Fumadocs if needed.
  • Dependencies: adds fumadocs-core, fumadocs-ui, fumadocs-mdx; next.config.mjs chains createMDX() with existing withNextIntl().

ovehbe and others added 6 commits May 21, 2026 18:14
Rewrite deepseek-web executor from broken cookie auth to userToken
Bearer flow (like Chat2API). Replace pure JS Keccak PoW with WASM
solver (5.8s → 86ms). Add 14 models, validation, and dashboard UX.
- Handle all 3 DeepSeek SSE stream formats: initial fragments,
  APPEND operations, and bare string tokens (fixes truncated responses)
- Simplify prompt builder to send system + last user message only
  (DeepSeek web API is single-turn, full history caused marker leakage)
- Check json.code before token extraction (fixes "did not return
  access token: Authorization" on code 40003 with HTTP 200)
- Clear session cache alongside token cache on auth errors
- Add dev origin for remote testing

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Added Fumadocs MDX support in the Next.js configuration.
- Updated transpile packages to include fumadocs-ui and fumadocs-core.
- Implemented a comprehensive set of redirects for documentation paths to improve navigation.
- Removed the generate-docs-index script as it is no longer needed.
- Updated various documentation titles for consistency and clarity.
- Enhanced global styles to incorporate Fumadocs UI themes and styles.
@ovehbe
ovehbe requested a review from diegosouzapw as a code owner May 23, 2026 05:52
@kilo-code-bot

kilo-code-bot Bot commented May 23, 2026

Copy link
Copy Markdown

Kilo Code Review could not run — your account is out of credits.

Add credits or switch to a free model to enable reviews on this change.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the documentation infrastructure to Fumadocs, removing legacy components and updating the Next.js configuration. It also introduces updates to the DeepSeek Web executor, specifically regarding SSE transformation and prompt construction. Feedback highlights a critical regression in conversation history handling that breaks multi-turn chat, as well as cache key inconsistencies and hardcoded environment-specific IPs. Furthermore, the reviewer noted a violation of repository rules due to the absence of new unit tests for the production logic changes in the streaming engine.

Comment on lines +343 to +377
function messagesToPrompt(messages: Array<{ role: string; content: string }>): string {
const extractText = (content: unknown): string => {
if (Array.isArray(content)) {
return (content as any[])
.filter((item: any) => item.type === "text")
.map((item: any) => item.text)
.join("\n");
}
return String(content || "");
};

if (messages.length === 0) return "";

// Collect system prompt(s) and find the last user message
const systemParts: string[] = [];
let lastUserContent = "";
for (const m of messages) {
if (m.role === "system") {
const text = extractText(m.content).trim();
if (text) systemParts.push(text);
} else if (m.role === "user") {
lastUserContent = extractText(m.content).trim();
}
}

const parts: string[] = [];
if (systemParts.length > 0) {
parts.push(systemParts.join("\n\n"));
}
if (lastUserContent) {
parts.push(lastUserContent);
}

return parts.join("\n\n").replace(/!\[.+\]\(.+\)/g, "");
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The new messagesToPrompt implementation introduces a regression in conversation history handling. It currently only includes system messages and the last user message, discarding all intermediate user and assistant turns. This will break multi-turn chat context for the DeepSeek Web executor. Additionally, the broad regex for stripping images might remove useful context if the model is expected to handle markdown image markers.

function messagesToPrompt(messages: Array<{ role: string; content: string }>): string {
  const extractText = (content: unknown): string => {
    if (Array.isArray(content)) {
      return (content as any[])
        .filter((item: any) => item.type === "text")
        .map((item: any) => item.text)
        .join("\n");
    }
    return String(content || "");
  };

  if (messages.length === 0) return "";

  const parts: string[] = [];
  for (const m of messages) {
    const text = extractText(m.content).trim();
    if (!text) continue;

    if (m.role === "system") {
      parts.push(`[System]: ${text}`);
    } else if (m.role === "assistant") {
      parts.push(`[Assistant]: ${text}`);
    } else {
      parts.push(text);
    }
  }

  return parts.join("\n\n").replace(/!\[.+\]\(.+\)/g, "");
}

Comment thread open-sse/executors/deepseek-web.ts Outdated
let errMsg = `DeepSeek API error (${status})`;
if (status === 401 || status === 403) {
tokenCache.delete(userToken);
sessionCache.delete((rawCreds.connectionId as string) || "");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

There is a cache key mismatch when clearing the session cache. In createSession (line 435), the key is constructed as connectionId || accessToken. However, here it defaults to an empty string if connectionId is missing, which will fail to clear the cache entry associated with the accessToken fallback.

Suggested change
sessionCache.delete((rawCreds.connectionId as string) || "");
sessionCache.delete((rawCreds.connectionId as string) || accessToken);

Comment thread open-sse/executors/deepseek-web.ts Outdated
if (json.code === 40003) tokenCache.delete(userToken);
if (json.code === 40003) {
tokenCache.delete(userToken);
sessionCache.delete((rawCreds.connectionId as string) || "");

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Similar to the issue at line 605, the session cache deletion key should match the logic used in createSession to ensure the correct entry is cleared when connectionId is absent.

Suggested change
sessionCache.delete((rawCreds.connectionId as string) || "");
sessionCache.delete((rawCreds.connectionId as string) || accessToken);

Comment thread next.config.mjs Outdated
transpilePackages: ["@omniroute/open-sse", "@lobehub/icons"],
allowedDevOrigins: ["localhost", "127.0.0.1", "192.168.0.250"],
transpilePackages: ["@omniroute/open-sse", "@lobehub/icons", "fumadocs-ui", "fumadocs-core"],
allowedDevOrigins: ["localhost", "127.0.0.1", "192.168.0.250", "192.168.0.111"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Hardcoding specific local network IPs like 192.168.0.111 in allowedDevOrigins is environment-specific and should generally be avoided in shared configuration files. Consider using environment variables if this is required for specific development setups.

Suggested change
allowedDevOrigins: ["localhost", "127.0.0.1", "192.168.0.250", "192.168.0.111"],
allowedDevOrigins: ["localhost", "127.0.0.1", "192.168.0.250"],

Comment thread package.json
Comment on lines +150 to +152
"fumadocs-core": "^16.9.0",
"fumadocs-mdx": "^15.0.7",
"fumadocs-ui": "^16.9.0",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Significant logic changes have been made to open-sse/executors/deepseek-web.ts (handling APPEND operations, bare tokens, and a new prompt builder), but no new automated tests were added to cover these paths. Per Repository Rule 9, changes to production code in open-sse/ must include tests. Please add unit tests to verify the new SSE transformation logic and the prompt builder.

References
  1. Always include tests when changing production code (src/, open-sse/, electron/, bin/). (link)

@diegosouzapw
diegosouzapw changed the base branch from main to release/v3.8.3 May 23, 2026 06:37
@diegosouzapw

Copy link
Copy Markdown
Collaborator

✅ Merged manually into release/v3.8.3 via local fast-forward merge (commit cbec5e0).

All changes from this PR are now integrated:

  • Fumadocs MDX migration with nested routes
  • 50+ URL redirects for backward compatibility
  • Search API at /docs/api/search
  • DeepSeek Web executor improvements (APPEND fragments, bare tokens, prompt builder)

GitHub's squash algorithm couldn't compute a clean squash due to the deep commit history, so the merge was done locally and pushed to the release branch.

@diegosouzapw

Copy link
Copy Markdown
Collaborator

Closing — content already integrated into release/v3.8.3 via local merge.

@diegosouzapw diegosouzapw reopened this May 23, 2026
@diegosouzapw diegosouzapw mentioned this pull request May 23, 2026
@diegosouzapw
diegosouzapw merged commit ceab238 into cheaper-inference:release/v3.8.3 May 23, 2026
1 of 2 checks passed
@diegosouzapw

Copy link
Copy Markdown
Collaborator

🎉 Thank you @ovehbe!

Your Fumadocs MDX migration has been squash-merged into release/v3.8.3 and will ship in the upcoming v3.8.3 release.

What was included:

  • Full migration from custom docs engine to Fumadocs with nested routes ([...slug])
  • Server-side search API at /docs/api/search
  • source.config.ts with 8 doc section patterns
  • meta.json navigation files for structured sidebar
  • 50+ permanent redirects for backward URL compatibility
  • Removal of 7 legacy custom components (~1,500 lines)

Minor adjustments applied during merge:

Great work on this infrastructure modernization — it significantly simplifies the docs codebase! 🚀

@herjarsa

Copy link
Copy Markdown
Contributor

I resolved the merge conflicts between this PR and origin/main. The resolution is pushed to herjarsa/fix/pr-2614-conflicts for easy cherry-picking.

Conflicts resolved:

File Resolution
next.config.mjs Combined both sides — kept mains context + added fumadocs-uiandfumadocs-coretotranspilePackages`
docs/compression/COMPRESSION_GUIDE.md Took main (emoji + v3.8.2 metadata)
docs/guides/DOCKER_GUIDE.md Took main (emoji + v3.8.2 metadata)
docs/guides/SETUP_GUIDE.md Took main (emoji + v3.8.2 metadata)
docs/ops/FLY_IO_DEPLOYMENT_GUIDE.md Took main (emoji + v3.8.2 metadata)
docs/ops/PROXY_GUIDE.md Took main (emoji + v3.8.2 metadata)
src/app/docs/lib/docs-auto-generated.ts Accepted deletion (PR replaces old docs)
tests/unit/docs-site-overhaul.test.ts Accepted deletion (replaced by Fumadocs)

To update your PR:

git fetch origin
git cherry-pick <hash-from-herjarsa/fix/pr-2614-conflicts>
git push origin feat/docs-fumadocs-migration --force-with-lease

Or rebase directly:

git fetch origin
git rebase origin/main
# next.config.mjs and 5 docs with metadata conflicts need resolution

The commit hash is available from herjarsa/fix/pr-2614-conflicts if you want to cherry-pick the resolution commit.

diegosouzapw added a commit that referenced this pull request May 24, 2026
* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(deepseek-web): fix auth to use userToken + WASM PoW solver

Rewrite deepseek-web executor from broken cookie auth to userToken
Bearer flow (like Chat2API). Replace pure JS Keccak PoW with WASM
solver (5.8s → 86ms). Add 14 models, validation, and dashboard UX.

* fix(deepseek-web): update target_path to use challenge property

* refactor(deepseek-web): streamline token handling and implement cache eviction

* fix(deepseek-web): fix SSE parser, prompt format, and error handling

- Handle all 3 DeepSeek SSE stream formats: initial fragments,
  APPEND operations, and bare string tokens (fixes truncated responses)
- Simplify prompt builder to send system + last user message only
  (DeepSeek web API is single-turn, full history caused marker leakage)
- Check json.code before token extraction (fixes "did not return
  access token: Authorization" on code 40003 with HTTP 200)
- Clear session cache alongside token cache on auth errors
- Add dev origin for remote testing

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: ignore memory-bank and cursor agent rules from tracking

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: enhance documentation and configuration for Fumadocs integration

- Added Fumadocs MDX support in the Next.js configuration.
- Updated transpile packages to include fumadocs-ui and fumadocs-core.
- Implemented a comprehensive set of redirects for documentation paths to improve navigation.
- Removed the generate-docs-index script as it is no longer needed.
- Updated various documentation titles for consistency and clarity.
- Enhanced global styles to incorporate Fumadocs UI themes and styles.

* refactor(docs): cleanup fumadocs PR — revert deepseek, add i18n fallback, restore LanguageSelector

- Revert unrelated deepseek-web.ts changes (should be separate PR)
- Add .source/ to .gitignore (Fumadocs generated files)
- Remove contributor IP from allowedDevOrigins
- Add i18n runtime fallback: reads NEXT_LOCALE cookie, loads translated
  .md from docs/i18n/<locale>/docs/ (preserves existing translation pipeline)
- Restore LanguageSelector in Fumadocs layout nav
- Restore SEO metadata (title template, description, robots)

* fix(codex): use allowlist to strip non-Responses-API fields in non-passthrough path (#2608) (#2615)

Integrated into release/v3.8.3 — fix(codex): allowlist-based sanitization for gpt-5.5 Responses API

* fix(deepseek-web): fix SSE parser, prompt format, error handling, and cache keys (#2616)

Integrated into release/v3.8.3 — fix(deepseek-web): SSE parser (APPEND + bare tokens), prompt builder, error handling, session cache cleanup

* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(docs): migrate /docs to Fumadocs MDX with nested routes (#2614)

Integrated into release/v3.8.3 — Fumadocs MDX migration with nested routes, search API, and 50+ URL redirects

* fix(catalog): skip static PROVIDER_MODELS when synced models exist (#2625)

Integrated into release/v3.8.3

* fix(qoder): Cosy auth fallback for PAT tokens + vision support for qwen3-vl-plus (#2629)

Integrated into release/v3.8.3

* fix(cli): register tsx loader and add opencode config subcommand (#2631)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (#2628)

Integrated into release/v3.8.3

* fix(claude): improve Pi and OpenCode compatibility (#2621)

Integrated into release/v3.8.3

* fix: restore semantic passthrough system-role-only extraction instead of full normalization (#2620)

Integrated into release/v3.8.3

* fix(kiro): stabilize conversationId across prompt compression (#2630)

Integrated into release/v3.8.3

* fix(deepseek-web): SSE thinking/search routing and session lifecycle (#2624)

Integrated into release/v3.8.3 — DeepSeek Web SSE thinking/search routing overhaul

* feat(dashboard): free-tier grouping with symbolic link in /providers (#2632)

Integrated into release/v3.8.3

* fix: close implementation gaps — t3-chat-web, stream_options, combo_strategy, batch config (#2634)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (#2633)

Integrated into release/v3.8.3

* fix(reasoning): extend reasoning_content injection to Kimi K2 and other replay models (#2639)

Integrated into release/v3.8.3

* fix(cli): Linux autostart via systemd user service (fixes #2627) (#2635)

Integrated into release/v3.8.3

* Refactor/providers free tier (#2640)

Integrated into release/v3.8.3

* fix(tests): remove duplicate assertion in schema coercion & fix(cli): ignore system vars in env check

* fix(combo): preserve omniModel tag in streaming output for round-trip context pinning (#2646)

Integrated into release/v3.8.3

* feat(dashboard): media providers pages + Web Fetch category (#2645)

Integrated into release/v3.8.3

* Feature provider adapta org com tutorial de conexão em modal (#2643)

Integrated into release/v3.8.3

* fix(rtk): skip content-based filter matching for non-shell tool results (#2642)

Integrated into release/v3.8.3

* fix(translator): enable Claude extended thinking for Copilot Responses-API requests (#2647)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (#2641)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (#2638)

Integrated into release/v3.8.3

* feat(dashboard): mini-playground inline (Phase 4) (#2648)

Integrated into release/v3.8.3

* fix(settings): fix Require Login modal Cancel button text and dismissal (#2649)

Integrated into release/v3.8.3

* feat(combos): universal context handoff for cross-model conversation continuity (#2653)

Integrated into release/v3.8.3

* chore(release): bump to v3.8.3 — changelog, docs, version sync

* feat(i18n): complete zh-CN translations for 1220 missing keys (#2655)

Integrated into release/v3.8.3

* chore(release): include electron package changes in v3.8.3

* docs(changelog): integrate PR #2655 into v3.8.3

* feat(i18n): translate 377 additional zh-CN entries (81 new keys + 296 same-as-en) (#2659)

Integrated into release/v3.8.3

* feat(dashboard): add Cmd+K / Ctrl+K command palette for sidebar navigation (#2656)

Integrated into release/v3.8.3

* docs: update changelog for PR integrations under v3.8.3

* feat(cli): integrate native updates, autostart and headless CLI mode (#2662)

Integrated into release/v3.8.3

* fix(proxy): save dashboard custom proxies in registry (#2661)

Integrated into release/v3.8.3

* feat(dashboard): chat-first test slide-over (Option A) (#2660)

Integrated into release/v3.8.3

* docs: update changelog with Batch 2 PR merges for v3.8.3

* fix: add xhigh+max to effortLevel schema; add opencode-plugin publish job (#2666)

Integrated into release/v3.8.3

* docs: update changelog with Batch 3 PR #2666 merge for v3.8.3

* feat(quota+providers): card-grid layout, provider group headers, Codex race fix (#2667)

Integrated into release/v3.8.3

* feat(dashboard): real-time live WebSocket monitoring (#2668)

Integrated into release/v3.8.3

* feat(copilot): AI assistant with CodeGraph + CLI + knowledge base (#2669)

Integrated into release/v3.8.3

* feat(pipeline): pre-request middleware hooks (#2670)

Integrated into release/v3.8.3

* feat(resilience): credential health check + adaptive circuit breaker (#2671)

Integrated into release/v3.8.3

* feat(playground): combo routing visual simulator (#2672)

Integrated into release/v3.8.3

* feat(auth): API key groups with model-level permissions (#2673)

Integrated into release/v3.8.3

* feat(pwa): enhanced manifest + push notification support (#2674)

Integrated into release/v3.8.3

* feat(proxy): serverless relay endpoints with rate limiting (#2675)

Integrated into release/v3.8.3

* docs(changelog): update changelog for PRs 2667-2675 & fix: resolve typescript compile-time errors

* fix(db): remove transactions from migrations

Remove explicit transaction wrappers from recent migrations and correct
the API key groups migration metadata. Also fix codegraph path resolution
for ESM environments and refresh generated fumadocs source output.

---------

Co-authored-by: Ömer Vehbe <ovehbe@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Mr. Meowgi <mr@meowgi.dev>
Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com>
Co-authored-by: amogus22877769 <y.lev357@gmail.com>
Co-authored-by: Halil Tezcan KARABULUT <info@hlltzcnkb.com>
Co-authored-by: Tentoxa <53821604+Tentoxa@users.noreply.github.com>
Co-authored-by: HALDRO <121296348+HALDRO@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: janeza2 <49841619+janeza2@users.noreply.github.com>
Co-authored-by: df4p <38404+df4p@users.noreply.github.com>
Co-authored-by: ivan-mezentsev <ivan@mezentsev.me>
Co-authored-by: Chewji <126886556+Chewji9875@users.noreply.github.com>
Co-authored-by: L-aros <107354918+L-aros@users.noreply.github.com>
Co-authored-by: M.M <mr.maatoug@gmail.com>
Co-authored-by: Benson K B <bensonkbmca@gmail.com>
Co-authored-by: terence71-glitch <mcdowellterence71@gmail.com>
@redge76

redge76 commented May 26, 2026

Copy link
Copy Markdown

The file generate-docs-index.mjs was deleted without updating scripts/build/build-next-isolated.mjs.
Now the docker build faild with

 > omniroute@3.8.3 build
0.347 > node scripts/build/build-next-isolated.mjs --webpack
0.347
0.389 [build-next-isolated] Generating docs index...
0.423 node:internal/modules/cjs/loader:1522
0.423   throw err;
0.423   ^
0.423
0.423 Error: Cannot find module '/app/scripts/docs/generate-docs-index.mjs'
0.423     at Module._resolveFilename (node:internal/modules/cjs/loader:1519:15)
0.423     at wrapResolveFilename (node:internal/modules/cjs/loader:1073:27)
0.423     at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1097:10)
0.423     at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1124:12)
0.423     at Module._load (node:internal/modules/cjs/loader:1296:5)
0.423     at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
0.423     at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5)
0.423     at node:internal/main/run_main_module:33:47 {
0.423   code: 'MODULE_NOT_FOUND',
0.423   requireStack: []
0.423 }
0.423
0.423 Node.js v26.2.0
0.426 [build-next-isolated] Docs index generation failed (non-fatal): Command failed: node scripts/docs/generate-docs-index.mjs
0.849 Attention: Next.js now collects completely anonymous telemetry regarding usage.
0.849 This information is used to shape Next.js' roadmap and prioritize features.
0.849 You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:
0.849 https://nextjs.org/telemetry
0.849

HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(deepseek-web): fix auth to use userToken + WASM PoW solver

Rewrite deepseek-web executor from broken cookie auth to userToken
Bearer flow (like Chat2API). Replace pure JS Keccak PoW with WASM
solver (5.8s → 86ms). Add 14 models, validation, and dashboard UX.

* fix(deepseek-web): update target_path to use challenge property

* refactor(deepseek-web): streamline token handling and implement cache eviction

* fix(deepseek-web): fix SSE parser, prompt format, and error handling

- Handle all 3 DeepSeek SSE stream formats: initial fragments,
  APPEND operations, and bare string tokens (fixes truncated responses)
- Simplify prompt builder to send system + last user message only
  (DeepSeek web API is single-turn, full history caused marker leakage)
- Check json.code before token extraction (fixes "did not return
  access token: Authorization" on code 40003 with HTTP 200)
- Clear session cache alongside token cache on auth errors
- Add dev origin for remote testing

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: ignore memory-bank and cursor agent rules from tracking

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: enhance documentation and configuration for Fumadocs integration

- Added Fumadocs MDX support in the Next.js configuration.
- Updated transpile packages to include fumadocs-ui and fumadocs-core.
- Implemented a comprehensive set of redirects for documentation paths to improve navigation.
- Removed the generate-docs-index script as it is no longer needed.
- Updated various documentation titles for consistency and clarity.
- Enhanced global styles to incorporate Fumadocs UI themes and styles.

* refactor(docs): cleanup fumadocs PR — revert deepseek, add i18n fallback, restore LanguageSelector

- Revert unrelated deepseek-web.ts changes (should be separate PR)
- Add .source/ to .gitignore (Fumadocs generated files)
- Remove contributor IP from allowedDevOrigins
- Add i18n runtime fallback: reads NEXT_LOCALE cookie, loads translated
  .md from docs/i18n/<locale>/docs/ (preserves existing translation pipeline)
- Restore LanguageSelector in Fumadocs layout nav
- Restore SEO metadata (title template, description, robots)

* fix(codex): use allowlist to strip non-Responses-API fields in non-passthrough path (cheaper-inference#2608) (cheaper-inference#2615)

Integrated into release/v3.8.3 — fix(codex): allowlist-based sanitization for gpt-5.5 Responses API

* fix(deepseek-web): fix SSE parser, prompt format, error handling, and cache keys (cheaper-inference#2616)

Integrated into release/v3.8.3 — fix(deepseek-web): SSE parser (APPEND + bare tokens), prompt builder, error handling, session cache cleanup

* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(docs): migrate /docs to Fumadocs MDX with nested routes (cheaper-inference#2614)

Integrated into release/v3.8.3 — Fumadocs MDX migration with nested routes, search API, and 50+ URL redirects

* fix(catalog): skip static PROVIDER_MODELS when synced models exist (cheaper-inference#2625)

Integrated into release/v3.8.3

* fix(qoder): Cosy auth fallback for PAT tokens + vision support for qwen3-vl-plus (cheaper-inference#2629)

Integrated into release/v3.8.3

* fix(cli): register tsx loader and add opencode config subcommand (cheaper-inference#2631)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2628)

Integrated into release/v3.8.3

* fix(claude): improve Pi and OpenCode compatibility (cheaper-inference#2621)

Integrated into release/v3.8.3

* fix: restore semantic passthrough system-role-only extraction instead of full normalization (cheaper-inference#2620)

Integrated into release/v3.8.3

* fix(kiro): stabilize conversationId across prompt compression (cheaper-inference#2630)

Integrated into release/v3.8.3

* fix(deepseek-web): SSE thinking/search routing and session lifecycle (cheaper-inference#2624)

Integrated into release/v3.8.3 — DeepSeek Web SSE thinking/search routing overhaul

* feat(dashboard): free-tier grouping with symbolic link in /providers (cheaper-inference#2632)

Integrated into release/v3.8.3

* fix: close implementation gaps — t3-chat-web, stream_options, combo_strategy, batch config (cheaper-inference#2634)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2633)

Integrated into release/v3.8.3

* fix(reasoning): extend reasoning_content injection to Kimi K2 and other replay models (cheaper-inference#2639)

Integrated into release/v3.8.3

* fix(cli): Linux autostart via systemd user service (fixes cheaper-inference#2627) (cheaper-inference#2635)

Integrated into release/v3.8.3

* Refactor/providers free tier (cheaper-inference#2640)

Integrated into release/v3.8.3

* fix(tests): remove duplicate assertion in schema coercion & fix(cli): ignore system vars in env check

* fix(combo): preserve omniModel tag in streaming output for round-trip context pinning (cheaper-inference#2646)

Integrated into release/v3.8.3

* feat(dashboard): media providers pages + Web Fetch category (cheaper-inference#2645)

Integrated into release/v3.8.3

* Feature provider adapta org com tutorial de conexão em modal (cheaper-inference#2643)

Integrated into release/v3.8.3

* fix(rtk): skip content-based filter matching for non-shell tool results (cheaper-inference#2642)

Integrated into release/v3.8.3

* fix(translator): enable Claude extended thinking for Copilot Responses-API requests (cheaper-inference#2647)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2641)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2638)

Integrated into release/v3.8.3

* feat(dashboard): mini-playground inline (Phase 4) (cheaper-inference#2648)

Integrated into release/v3.8.3

* fix(settings): fix Require Login modal Cancel button text and dismissal (cheaper-inference#2649)

Integrated into release/v3.8.3

* feat(combos): universal context handoff for cross-model conversation continuity (cheaper-inference#2653)

Integrated into release/v3.8.3

* chore(release): bump to v3.8.3 — changelog, docs, version sync

* feat(i18n): complete zh-CN translations for 1220 missing keys (cheaper-inference#2655)

Integrated into release/v3.8.3

* chore(release): include electron package changes in v3.8.3

* docs(changelog): integrate PR cheaper-inference#2655 into v3.8.3

* feat(i18n): translate 377 additional zh-CN entries (81 new keys + 296 same-as-en) (cheaper-inference#2659)

Integrated into release/v3.8.3

* feat(dashboard): add Cmd+K / Ctrl+K command palette for sidebar navigation (cheaper-inference#2656)

Integrated into release/v3.8.3

* docs: update changelog for PR integrations under v3.8.3

* feat(cli): integrate native updates, autostart and headless CLI mode (cheaper-inference#2662)

Integrated into release/v3.8.3

* fix(proxy): save dashboard custom proxies in registry (cheaper-inference#2661)

Integrated into release/v3.8.3

* feat(dashboard): chat-first test slide-over (Option A) (cheaper-inference#2660)

Integrated into release/v3.8.3

* docs: update changelog with Batch 2 PR merges for v3.8.3

* fix: add xhigh+max to effortLevel schema; add opencode-plugin publish job (cheaper-inference#2666)

Integrated into release/v3.8.3

* docs: update changelog with Batch 3 PR cheaper-inference#2666 merge for v3.8.3

* feat(quota+providers): card-grid layout, provider group headers, Codex race fix (cheaper-inference#2667)

Integrated into release/v3.8.3

* feat(dashboard): real-time live WebSocket monitoring (cheaper-inference#2668)

Integrated into release/v3.8.3

* feat(copilot): AI assistant with CodeGraph + CLI + knowledge base (cheaper-inference#2669)

Integrated into release/v3.8.3

* feat(pipeline): pre-request middleware hooks (cheaper-inference#2670)

Integrated into release/v3.8.3

* feat(resilience): credential health check + adaptive circuit breaker (cheaper-inference#2671)

Integrated into release/v3.8.3

* feat(playground): combo routing visual simulator (cheaper-inference#2672)

Integrated into release/v3.8.3

* feat(auth): API key groups with model-level permissions (cheaper-inference#2673)

Integrated into release/v3.8.3

* feat(pwa): enhanced manifest + push notification support (cheaper-inference#2674)

Integrated into release/v3.8.3

* feat(proxy): serverless relay endpoints with rate limiting (cheaper-inference#2675)

Integrated into release/v3.8.3

* docs(changelog): update changelog for PRs 2667-2675 & fix: resolve typescript compile-time errors

* fix(db): remove transactions from migrations

Remove explicit transaction wrappers from recent migrations and correct
the API key groups migration metadata. Also fix codegraph path resolution
for ESM environments and refresh generated fumadocs source output.

---------

Co-authored-by: Ömer Vehbe <ovehbe@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Mr. Meowgi <mr@meowgi.dev>
Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com>
Co-authored-by: amogus22877769 <y.lev357@gmail.com>
Co-authored-by: Halil Tezcan KARABULUT <info@hlltzcnkb.com>
Co-authored-by: Tentoxa <53821604+Tentoxa@users.noreply.github.com>
Co-authored-by: HALDRO <121296348+HALDRO@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: janeza2 <49841619+janeza2@users.noreply.github.com>
Co-authored-by: df4p <38404+df4p@users.noreply.github.com>
Co-authored-by: ivan-mezentsev <ivan@mezentsev.me>
Co-authored-by: Chewji <126886556+Chewji9875@users.noreply.github.com>
Co-authored-by: L-aros <107354918+L-aros@users.noreply.github.com>
Co-authored-by: M.M <mr.maatoug@gmail.com>
Co-authored-by: Benson K B <bensonkbmca@gmail.com>
Co-authored-by: terence71-glitch <mcdowellterence71@gmail.com>
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(deepseek-web): fix auth to use userToken + WASM PoW solver

Rewrite deepseek-web executor from broken cookie auth to userToken
Bearer flow (like Chat2API). Replace pure JS Keccak PoW with WASM
solver (5.8s → 86ms). Add 14 models, validation, and dashboard UX.

* fix(deepseek-web): update target_path to use challenge property

* refactor(deepseek-web): streamline token handling and implement cache eviction

* fix(deepseek-web): fix SSE parser, prompt format, and error handling

- Handle all 3 DeepSeek SSE stream formats: initial fragments,
  APPEND operations, and bare string tokens (fixes truncated responses)
- Simplify prompt builder to send system + last user message only
  (DeepSeek web API is single-turn, full history caused marker leakage)
- Check json.code before token extraction (fixes "did not return
  access token: Authorization" on code 40003 with HTTP 200)
- Clear session cache alongside token cache on auth errors
- Add dev origin for remote testing

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: ignore memory-bank and cursor agent rules from tracking

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: enhance documentation and configuration for Fumadocs integration

- Added Fumadocs MDX support in the Next.js configuration.
- Updated transpile packages to include fumadocs-ui and fumadocs-core.
- Implemented a comprehensive set of redirects for documentation paths to improve navigation.
- Removed the generate-docs-index script as it is no longer needed.
- Updated various documentation titles for consistency and clarity.
- Enhanced global styles to incorporate Fumadocs UI themes and styles.

* refactor(docs): cleanup fumadocs PR — revert deepseek, add i18n fallback, restore LanguageSelector

- Revert unrelated deepseek-web.ts changes (should be separate PR)
- Add .source/ to .gitignore (Fumadocs generated files)
- Remove contributor IP from allowedDevOrigins
- Add i18n runtime fallback: reads NEXT_LOCALE cookie, loads translated
  .md from docs/i18n/<locale>/docs/ (preserves existing translation pipeline)
- Restore LanguageSelector in Fumadocs layout nav
- Restore SEO metadata (title template, description, robots)

* fix(codex): use allowlist to strip non-Responses-API fields in non-passthrough path (cheaper-inference#2608) (cheaper-inference#2615)

Integrated into release/v3.8.3 — fix(codex): allowlist-based sanitization for gpt-5.5 Responses API

* fix(deepseek-web): fix SSE parser, prompt format, error handling, and cache keys (cheaper-inference#2616)

Integrated into release/v3.8.3 — fix(deepseek-web): SSE parser (APPEND + bare tokens), prompt builder, error handling, session cache cleanup

* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(docs): migrate /docs to Fumadocs MDX with nested routes (cheaper-inference#2614)

Integrated into release/v3.8.3 — Fumadocs MDX migration with nested routes, search API, and 50+ URL redirects

* fix(catalog): skip static PROVIDER_MODELS when synced models exist (cheaper-inference#2625)

Integrated into release/v3.8.3

* fix(qoder): Cosy auth fallback for PAT tokens + vision support for qwen3-vl-plus (cheaper-inference#2629)

Integrated into release/v3.8.3

* fix(cli): register tsx loader and add opencode config subcommand (cheaper-inference#2631)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2628)

Integrated into release/v3.8.3

* fix(claude): improve Pi and OpenCode compatibility (cheaper-inference#2621)

Integrated into release/v3.8.3

* fix: restore semantic passthrough system-role-only extraction instead of full normalization (cheaper-inference#2620)

Integrated into release/v3.8.3

* fix(kiro): stabilize conversationId across prompt compression (cheaper-inference#2630)

Integrated into release/v3.8.3

* fix(deepseek-web): SSE thinking/search routing and session lifecycle (cheaper-inference#2624)

Integrated into release/v3.8.3 — DeepSeek Web SSE thinking/search routing overhaul

* feat(dashboard): free-tier grouping with symbolic link in /providers (cheaper-inference#2632)

Integrated into release/v3.8.3

* fix: close implementation gaps — t3-chat-web, stream_options, combo_strategy, batch config (cheaper-inference#2634)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2633)

Integrated into release/v3.8.3

* fix(reasoning): extend reasoning_content injection to Kimi K2 and other replay models (cheaper-inference#2639)

Integrated into release/v3.8.3

* fix(cli): Linux autostart via systemd user service (fixes cheaper-inference#2627) (cheaper-inference#2635)

Integrated into release/v3.8.3

* Refactor/providers free tier (cheaper-inference#2640)

Integrated into release/v3.8.3

* fix(tests): remove duplicate assertion in schema coercion & fix(cli): ignore system vars in env check

* fix(combo): preserve omniModel tag in streaming output for round-trip context pinning (cheaper-inference#2646)

Integrated into release/v3.8.3

* feat(dashboard): media providers pages + Web Fetch category (cheaper-inference#2645)

Integrated into release/v3.8.3

* Feature provider adapta org com tutorial de conexão em modal (cheaper-inference#2643)

Integrated into release/v3.8.3

* fix(rtk): skip content-based filter matching for non-shell tool results (cheaper-inference#2642)

Integrated into release/v3.8.3

* fix(translator): enable Claude extended thinking for Copilot Responses-API requests (cheaper-inference#2647)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2641)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2638)

Integrated into release/v3.8.3

* feat(dashboard): mini-playground inline (Phase 4) (cheaper-inference#2648)

Integrated into release/v3.8.3

* fix(settings): fix Require Login modal Cancel button text and dismissal (cheaper-inference#2649)

Integrated into release/v3.8.3

* feat(combos): universal context handoff for cross-model conversation continuity (cheaper-inference#2653)

Integrated into release/v3.8.3

* chore(release): bump to v3.8.3 — changelog, docs, version sync

* feat(i18n): complete zh-CN translations for 1220 missing keys (cheaper-inference#2655)

Integrated into release/v3.8.3

* chore(release): include electron package changes in v3.8.3

* docs(changelog): integrate PR cheaper-inference#2655 into v3.8.3

* feat(i18n): translate 377 additional zh-CN entries (81 new keys + 296 same-as-en) (cheaper-inference#2659)

Integrated into release/v3.8.3

* feat(dashboard): add Cmd+K / Ctrl+K command palette for sidebar navigation (cheaper-inference#2656)

Integrated into release/v3.8.3

* docs: update changelog for PR integrations under v3.8.3

* feat(cli): integrate native updates, autostart and headless CLI mode (cheaper-inference#2662)

Integrated into release/v3.8.3

* fix(proxy): save dashboard custom proxies in registry (cheaper-inference#2661)

Integrated into release/v3.8.3

* feat(dashboard): chat-first test slide-over (Option A) (cheaper-inference#2660)

Integrated into release/v3.8.3

* docs: update changelog with Batch 2 PR merges for v3.8.3

* fix: add xhigh+max to effortLevel schema; add opencode-plugin publish job (cheaper-inference#2666)

Integrated into release/v3.8.3

* docs: update changelog with Batch 3 PR cheaper-inference#2666 merge for v3.8.3

* feat(quota+providers): card-grid layout, provider group headers, Codex race fix (cheaper-inference#2667)

Integrated into release/v3.8.3

* feat(dashboard): real-time live WebSocket monitoring (cheaper-inference#2668)

Integrated into release/v3.8.3

* feat(copilot): AI assistant with CodeGraph + CLI + knowledge base (cheaper-inference#2669)

Integrated into release/v3.8.3

* feat(pipeline): pre-request middleware hooks (cheaper-inference#2670)

Integrated into release/v3.8.3

* feat(resilience): credential health check + adaptive circuit breaker (cheaper-inference#2671)

Integrated into release/v3.8.3

* feat(playground): combo routing visual simulator (cheaper-inference#2672)

Integrated into release/v3.8.3

* feat(auth): API key groups with model-level permissions (cheaper-inference#2673)

Integrated into release/v3.8.3

* feat(pwa): enhanced manifest + push notification support (cheaper-inference#2674)

Integrated into release/v3.8.3

* feat(proxy): serverless relay endpoints with rate limiting (cheaper-inference#2675)

Integrated into release/v3.8.3

* docs(changelog): update changelog for PRs 2667-2675 & fix: resolve typescript compile-time errors

* fix(db): remove transactions from migrations

Remove explicit transaction wrappers from recent migrations and correct
the API key groups migration metadata. Also fix codegraph path resolution
for ESM environments and refresh generated fumadocs source output.

---------

Co-authored-by: Ömer Vehbe <ovehbe@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Mr. Meowgi <mr@meowgi.dev>
Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com>
Co-authored-by: amogus22877769 <y.lev357@gmail.com>
Co-authored-by: Halil Tezcan KARABULUT <info@hlltzcnkb.com>
Co-authored-by: Tentoxa <53821604+Tentoxa@users.noreply.github.com>
Co-authored-by: HALDRO <121296348+HALDRO@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: janeza2 <49841619+janeza2@users.noreply.github.com>
Co-authored-by: df4p <38404+df4p@users.noreply.github.com>
Co-authored-by: ivan-mezentsev <ivan@mezentsev.me>
Co-authored-by: Chewji <126886556+Chewji9875@users.noreply.github.com>
Co-authored-by: L-aros <107354918+L-aros@users.noreply.github.com>
Co-authored-by: M.M <mr.maatoug@gmail.com>
Co-authored-by: Benson K B <bensonkbmca@gmail.com>
Co-authored-by: terence71-glitch <mcdowellterence71@gmail.com>
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
…-inference#2614)

Integrated into release/v3.8.3 — Fumadocs MDX migration with nested routes, search API, and 50+ URL redirects
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(deepseek-web): fix auth to use userToken + WASM PoW solver

Rewrite deepseek-web executor from broken cookie auth to userToken
Bearer flow (like Chat2API). Replace pure JS Keccak PoW with WASM
solver (5.8s → 86ms). Add 14 models, validation, and dashboard UX.

* fix(deepseek-web): update target_path to use challenge property

* refactor(deepseek-web): streamline token handling and implement cache eviction

* fix(deepseek-web): fix SSE parser, prompt format, and error handling

- Handle all 3 DeepSeek SSE stream formats: initial fragments,
  APPEND operations, and bare string tokens (fixes truncated responses)
- Simplify prompt builder to send system + last user message only
  (DeepSeek web API is single-turn, full history caused marker leakage)
- Check json.code before token extraction (fixes "did not return
  access token: Authorization" on code 40003 with HTTP 200)
- Clear session cache alongside token cache on auth errors
- Add dev origin for remote testing

Co-authored-by: Cursor <cursoragent@cursor.com>

* chore: ignore memory-bank and cursor agent rules from tracking

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat: enhance documentation and configuration for Fumadocs integration

- Added Fumadocs MDX support in the Next.js configuration.
- Updated transpile packages to include fumadocs-ui and fumadocs-core.
- Implemented a comprehensive set of redirects for documentation paths to improve navigation.
- Removed the generate-docs-index script as it is no longer needed.
- Updated various documentation titles for consistency and clarity.
- Enhanced global styles to incorporate Fumadocs UI themes and styles.

* refactor(docs): cleanup fumadocs PR — revert deepseek, add i18n fallback, restore LanguageSelector

- Revert unrelated deepseek-web.ts changes (should be separate PR)
- Add .source/ to .gitignore (Fumadocs generated files)
- Remove contributor IP from allowedDevOrigins
- Add i18n runtime fallback: reads NEXT_LOCALE cookie, loads translated
  .md from docs/i18n/<locale>/docs/ (preserves existing translation pipeline)
- Restore LanguageSelector in Fumadocs layout nav
- Restore SEO metadata (title template, description, robots)

* fix(codex): use allowlist to strip non-Responses-API fields in non-passthrough path (cheaper-inference#2608) (cheaper-inference#2615)

Integrated into release/v3.8.3 — fix(codex): allowlist-based sanitization for gpt-5.5 Responses API

* fix(deepseek-web): fix SSE parser, prompt format, error handling, and cache keys (cheaper-inference#2616)

Integrated into release/v3.8.3 — fix(deepseek-web): SSE parser (APPEND + bare tokens), prompt builder, error handling, session cache cleanup

* chore(config): ignore additional agent workflow command files

Add newly introduced agent workflow and Claude command files to
.gitignore so proprietary automation assets are not committed.

* feat(docs): migrate /docs to Fumadocs MDX with nested routes (cheaper-inference#2614)

Integrated into release/v3.8.3 — Fumadocs MDX migration with nested routes, search API, and 50+ URL redirects

* fix(catalog): skip static PROVIDER_MODELS when synced models exist (cheaper-inference#2625)

Integrated into release/v3.8.3

* fix(qoder): Cosy auth fallback for PAT tokens + vision support for qwen3-vl-plus (cheaper-inference#2629)

Integrated into release/v3.8.3

* fix(cli): register tsx loader and add opencode config subcommand (cheaper-inference#2631)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2628)

Integrated into release/v3.8.3

* fix(claude): improve Pi and OpenCode compatibility (cheaper-inference#2621)

Integrated into release/v3.8.3

* fix: restore semantic passthrough system-role-only extraction instead of full normalization (cheaper-inference#2620)

Integrated into release/v3.8.3

* fix(kiro): stabilize conversationId across prompt compression (cheaper-inference#2630)

Integrated into release/v3.8.3

* fix(deepseek-web): SSE thinking/search routing and session lifecycle (cheaper-inference#2624)

Integrated into release/v3.8.3 — DeepSeek Web SSE thinking/search routing overhaul

* feat(dashboard): free-tier grouping with symbolic link in /providers (cheaper-inference#2632)

Integrated into release/v3.8.3

* fix: close implementation gaps — t3-chat-web, stream_options, combo_strategy, batch config (cheaper-inference#2634)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2633)

Integrated into release/v3.8.3

* fix(reasoning): extend reasoning_content injection to Kimi K2 and other replay models (cheaper-inference#2639)

Integrated into release/v3.8.3

* fix(cli): Linux autostart via systemd user service (fixes cheaper-inference#2627) (cheaper-inference#2635)

Integrated into release/v3.8.3

* Refactor/providers free tier (cheaper-inference#2640)

Integrated into release/v3.8.3

* fix(tests): remove duplicate assertion in schema coercion & fix(cli): ignore system vars in env check

* fix(combo): preserve omniModel tag in streaming output for round-trip context pinning (cheaper-inference#2646)

Integrated into release/v3.8.3

* feat(dashboard): media providers pages + Web Fetch category (cheaper-inference#2645)

Integrated into release/v3.8.3

* Feature provider adapta org com tutorial de conexão em modal (cheaper-inference#2643)

Integrated into release/v3.8.3

* fix(rtk): skip content-based filter matching for non-shell tool results (cheaper-inference#2642)

Integrated into release/v3.8.3

* fix(translator): enable Claude extended thinking for Copilot Responses-API requests (cheaper-inference#2647)

Integrated into release/v3.8.3

* feat(dashboard): add search and filters to /dashboard/api-manager (cheaper-inference#2641)

Integrated into release/v3.8.3

* feat(dashboard): risk notice modal for sensitive providers (cheaper-inference#2638)

Integrated into release/v3.8.3

* feat(dashboard): mini-playground inline (Phase 4) (cheaper-inference#2648)

Integrated into release/v3.8.3

* fix(settings): fix Require Login modal Cancel button text and dismissal (cheaper-inference#2649)

Integrated into release/v3.8.3

* feat(combos): universal context handoff for cross-model conversation continuity (cheaper-inference#2653)

Integrated into release/v3.8.3

* chore(release): bump to v3.8.3 — changelog, docs, version sync

* feat(i18n): complete zh-CN translations for 1220 missing keys (cheaper-inference#2655)

Integrated into release/v3.8.3

* chore(release): include electron package changes in v3.8.3

* docs(changelog): integrate PR cheaper-inference#2655 into v3.8.3

* feat(i18n): translate 377 additional zh-CN entries (81 new keys + 296 same-as-en) (cheaper-inference#2659)

Integrated into release/v3.8.3

* feat(dashboard): add Cmd+K / Ctrl+K command palette for sidebar navigation (cheaper-inference#2656)

Integrated into release/v3.8.3

* docs: update changelog for PR integrations under v3.8.3

* feat(cli): integrate native updates, autostart and headless CLI mode (cheaper-inference#2662)

Integrated into release/v3.8.3

* fix(proxy): save dashboard custom proxies in registry (cheaper-inference#2661)

Integrated into release/v3.8.3

* feat(dashboard): chat-first test slide-over (Option A) (cheaper-inference#2660)

Integrated into release/v3.8.3

* docs: update changelog with Batch 2 PR merges for v3.8.3

* fix: add xhigh+max to effortLevel schema; add opencode-plugin publish job (cheaper-inference#2666)

Integrated into release/v3.8.3

* docs: update changelog with Batch 3 PR cheaper-inference#2666 merge for v3.8.3

* feat(quota+providers): card-grid layout, provider group headers, Codex race fix (cheaper-inference#2667)

Integrated into release/v3.8.3

* feat(dashboard): real-time live WebSocket monitoring (cheaper-inference#2668)

Integrated into release/v3.8.3

* feat(copilot): AI assistant with CodeGraph + CLI + knowledge base (cheaper-inference#2669)

Integrated into release/v3.8.3

* feat(pipeline): pre-request middleware hooks (cheaper-inference#2670)

Integrated into release/v3.8.3

* feat(resilience): credential health check + adaptive circuit breaker (cheaper-inference#2671)

Integrated into release/v3.8.3

* feat(playground): combo routing visual simulator (cheaper-inference#2672)

Integrated into release/v3.8.3

* feat(auth): API key groups with model-level permissions (cheaper-inference#2673)

Integrated into release/v3.8.3

* feat(pwa): enhanced manifest + push notification support (cheaper-inference#2674)

Integrated into release/v3.8.3

* feat(proxy): serverless relay endpoints with rate limiting (cheaper-inference#2675)

Integrated into release/v3.8.3

* docs(changelog): update changelog for PRs 2667-2675 & fix: resolve typescript compile-time errors

* fix(db): remove transactions from migrations

Remove explicit transaction wrappers from recent migrations and correct
the API key groups migration metadata. Also fix codegraph path resolution
for ESM environments and refresh generated fumadocs source output.

---------

Co-authored-by: Ömer Vehbe <ovehbe@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Mr. Meowgi <mr@meowgi.dev>
Co-authored-by: Hernan Javier Ardila Sanchez <hjasgr@gmail.com>
Co-authored-by: amogus22877769 <y.lev357@gmail.com>
Co-authored-by: Halil Tezcan KARABULUT <info@hlltzcnkb.com>
Co-authored-by: Tentoxa <53821604+Tentoxa@users.noreply.github.com>
Co-authored-by: HALDRO <121296348+HALDRO@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: janeza2 <49841619+janeza2@users.noreply.github.com>
Co-authored-by: df4p <38404+df4p@users.noreply.github.com>
Co-authored-by: ivan-mezentsev <ivan@mezentsev.me>
Co-authored-by: Chewji <126886556+Chewji9875@users.noreply.github.com>
Co-authored-by: L-aros <107354918+L-aros@users.noreply.github.com>
Co-authored-by: M.M <mr.maatoug@gmail.com>
Co-authored-by: Benson K B <bensonkbmca@gmail.com>
Co-authored-by: terence71-glitch <mcdowellterence71@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants