Skip to content

fix: clear active requests and recover providers - #1824

Merged
diegosouzapw merged 3 commits into
cheaper-inference:release/v3.7.6from
bypanghu:main
Apr 30, 2026
Merged

diegosouzapw merged 3 commits into
cheaper-inference:release/v3.7.6from
bypanghu:main

Conversation

@bypanghu

Copy link
Copy Markdown
Contributor

Summary

  • Describe the user-facing or operational change.

clear active requests and recover providers

Related Issues

  • Closes #
  • Related to #

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

  • List every changed or added automated test file.
  • If no production code changed, state that here.

Coverage Notes

  • If this PR changes src/, open-sse/, electron/, or bin/, explain which tests cover the change.
  • If coverage moved down in any touched file, explain why and what follow-up task will recover it.

Reviewer Notes

  • Call out any risky areas, migrations, feature flags, or manual validation that reviewers should know about.

@bypanghu
bypanghu requested a review from diegosouzapw as a code owner April 30, 2026 14:30

@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 updates the project documentation, adds VS Code debug configurations, and improves the reliability of the request pipeline by ensuring pending request counters are properly cleared on disconnects or errors. It also modifies error handling to treat 403 Forbidden responses from API-key providers as recoverable. Review feedback highlights a hardcoded runtime path in the debug configuration and a potential breaking change due to the removal of several models from the GLM provider registry.

Comment thread .vscode/launch.json
"name": "Debug Dev Server",
"type": "node",
"request": "launch",
"runtimeExecutable": "${env:HOME}/.nvm/versions/node/v22.22.2/bin/node",

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 runtimeExecutable path is hardcoded to a specific user's home directory and a very specific Node.js version (v22.22.2). This will break the debug configuration for other developers and in different environments. It is better to rely on the system's PATH or use a more generic configuration.

Suggested change
"runtimeExecutable": "${env:HOME}/.nvm/versions/node/v22.22.2/bin/node",
"runtimeExecutable": "node",

{ id: "glm-4-flashx", name: "GLM-4 FlashX" },
{ id: "glm-4-flash", name: "GLM-4 Flash" },
],
models: [{ id: "glm-5.1", name: "GLM-5.1" }],

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

The model list for glm-cn has been drastically reduced from seven models to just one (glm-5.1). This is a breaking change for any users relying on the glm-4 family of models. If these models are still supported by the upstream provider, they should be preserved.

@diegosouzapw
diegosouzapw changed the base branch from main to release/v3.7.6 April 30, 2026 15:24
@diegosouzapw
diegosouzapw merged commit 19df647 into cheaper-inference:release/v3.7.6 Apr 30, 2026
1 check was pending
@diegosouzapw

Copy link
Copy Markdown
Collaborator

Thanks @bypanghu for this great contribution! 🎉 We've added a few small adjustments to your branch to align with our latest architecture, resolved merge conflicts, and it's now officially merged into the release/v3.7.6 branch. It will be part of the next release. We appreciate your effort!

@diegosouzapw diegosouzapw mentioned this pull request Apr 30, 2026
diegosouzapw added a commit that referenced this pull request Apr 30, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs #1797 #1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes #1804 #1805

* fix: clear active requests and recover providers (#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (#1775)

* feat: auto-restore probe-failed database to prevent data loss (#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
diegosouzapw added a commit that referenced this pull request Apr 30, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs #1797 #1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes #1804 #1805

* fix: clear active requests and recover providers (#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (#1775)

* feat: auto-restore probe-failed database to prevent data loss (#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

* chore(release): attribute community contributors

Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>
@diegosouzapw diegosouzapw mentioned this pull request May 4, 2026
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

* chore(release): attribute community contributors

Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

* chore(release): attribute community contributors

Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>
tkgo11 pushed a commit to tkgo11/OmniRoute that referenced this pull request Sep 23, 2026
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
* feat(api-keys): add rename support in permissions modal

Add an editable key name field at the top of the permissions modal,
allowing users to rename API keys alongside existing permission settings.

The backend already supported name updates via PATCH /api/keys/:id — this
wires the UI to send the name field and refreshes the key list on success.

Changes:
- Add keyName state and text input to PermissionsModal
- Update handleUpdatePermissions to validate and send name in PATCH body
- Add integration test for rename via PATCH (valid, empty, too-long names)
- Update E2E mock to handle PATCH requests

* chore(release): bump version to 3.7.6

* chore(release): v3.7.6 — merge API key rename feature and sync docs

* chore(release): expand contributor credits to 155 PRs across full project history

- Expanded acknowledgment table from 29 to 53 contributors
- Added 100+ previously uncredited PRs from project inception through v3.7.5
- Moved contributor credits section to v3.7.6 (current release)
- Synced llm.txt version to 3.7.6

* fix: resolve security ReDoS in codex and bugs cheaper-inference#1797 cheaper-inference#1789

* feat(dashboard): implement remaining v3.7.6 dashboard features and fixes

* fix(xiaomi-mimo): update models to V2.5, fix Token Plan validation and default region (cheaper-inference#1823)

Integrated into release/v3.7.6

* fix(dashboard): correct loadPresets ReferenceError in CostOverviewTab

* fix(codex): omit compact client metadata (cheaper-inference#1822)

Integrated into release/v3.7.6

* feat(chatgpt-web): support thinking_effort (Standard/Extended) for thinking-capable models (cheaper-inference#1821)

Integrated into release/v3.7.6

* Fix endpoint visibility, A2A status, and API catalog (cheaper-inference#1806)

Integrated into release/v3.7.6

* fix(analytics): use pure SQL aggregations — no history rows loaded (cheaper-inference#1802)

Integrated into release/v3.7.6

* fix(stability): resolve codex input validation, enable combo circuit breaker, and fix broken unit tests

* docs(changelog): update for stability bug fixes cheaper-inference#1804 cheaper-inference#1805

* fix: clear active requests and recover providers (cheaper-inference#1824)

Integrated into release/v3.7.6

* feat: inject fallback tool names to prevent upstream 400 errors (cheaper-inference#1775)

* feat: auto-restore probe-failed database to prevent data loss (cheaper-inference#1810)

* fix: safely cast inputs to strings before calling trim() to avoid crashes on numeric fields in proxy modal (cheaper-inference#1825)

* chore(release): v3.7.6 — final stability patches for production

* test: update expected db probe-failure error message for auto-restore feature

* chore(workflow): mandate implementation plan generation in resolve-issues

* docs(changelog): rewrite v3.7.6 with complete commit-accurate entries

* feat(analytics): add cost-based usage insights and activity streaks

Expand usage analytics to report total cost, per-series cost totals,
API key counts, and current activity streaks using pricing-aware token
calculations.

Also make probe-failed database recovery choose the newest backup by
its embedded timestamp instead of filesystem mtime so auto-restore
selects the intended snapshot reliably.

* fix(mitm): enforce transparent interception on port 443 only

Reject non-443 MITM port updates in the settings API and normalize
stored configuration back to the required transparent interception
port.

Lock the dashboard port field to 443, update the validation copy, and
add integration coverage to prevent stale custom ports from being
accepted or surfaced.

* docs(changelog): update for analytics and mitm features

* chore(release): attribute community contributors

Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.com>

---------

Co-authored-by: Andrew Munsell <andrew@wizardapps.net>
Co-authored-by: Antigravity Assistant <bot@antigravity.local>
Co-authored-by: Gi99lin <74502520+Gi99lin@users.noreply.github.com>
Co-authored-by: Sergey Morozov <tr0st@bk.ru>
Co-authored-by: payne <baboialex95@gmail.com>
Co-authored-by: Randi <55005611+rdself@users.noreply.github.com>
Co-authored-by: Paijo <14921983+oyi77@users.noreply.github.com>
Co-authored-by: ipanghu <bypanghu@163.com>
Co-authored-by: rdself <rdself@users.noreply.github.com>
Co-authored-by: oyi77 <oyi77@users.noreply.github.com>
Co-authored-by: clousky2020 <clousky2020@users.noreply.github.com>
Co-authored-by: benzntech <benzntech@users.noreply.github.com>
Co-authored-by: kang-heewon <kang-heewon@users.noreply.github.com>
Co-authored-by: herjarsa <herjarsa@users.noreply.github.com>
Co-authored-by: backryun <backryun@users.noreply.github.com>
Co-authored-by: tombii <tombii@users.noreply.github.com>
Co-authored-by: christopher-s <christopher-s@users.noreply.github.com>
Co-authored-by: zen0bit <zen0bit@users.noreply.github.com>
Co-authored-by: k0valik <k0valik@users.noreply.github.com>
Co-authored-by: zhangqiang8vip <zhangqiang8vip@users.noreply.github.com>
Co-authored-by: wlfonseca <wlfonseca@users.noreply.github.com>
Co-authored-by: RaviTharuma <RaviTharuma@users.noreply.github.com>
Co-authored-by: prakersh <prakersh@users.noreply.github.com>
Co-authored-by: payne0420 <payne0420@users.noreply.github.com>
Co-authored-by: only4copilot <only4copilot@users.noreply.github.com>
Co-authored-by: jay77721 <jay77721@users.noreply.github.com>
Co-authored-by: hijak <hijak@users.noreply.github.com>
Co-authored-by: hartmark <hartmark@users.noreply.github.com>
Co-authored-by: defhouse <defhouse@users.noreply.github.com>
Co-authored-by: xiaoge1688 <xiaoge1688@users.noreply.github.com>
Co-authored-by: xandr0s <xandr0s@users.noreply.github.com>
Co-authored-by: willbnu <willbnu@users.noreply.github.com>
Co-authored-by: slewis3600 <slewis3600@users.noreply.github.com>
Co-authored-by: sergey-v9 <sergey-v9@users.noreply.github.com>
Co-authored-by: razllivan <razllivan@users.noreply.github.com>
Co-authored-by: nmime <nmime@users.noreply.github.com>
Co-authored-by: Moutia-Ben-Yahia <Moutia-Ben-Yahia@users.noreply.github.com>
Co-authored-by: Mind-Dragon <Mind-Dragon@users.noreply.github.com>
Co-authored-by: mercs2910 <mercs2910@users.noreply.github.com>
Co-authored-by: MAINER4IK <MAINER4IK@users.noreply.github.com>
Co-authored-by: luandiasrj <luandiasrj@users.noreply.github.com>
Co-authored-by: knopki <knopki@users.noreply.github.com>
Co-authored-by: kfiramar <kfiramar@users.noreply.github.com>
Co-authored-by: ken2190 <ken2190@users.noreply.github.com>
Co-authored-by: keith8496 <keith8496@users.noreply.github.com>
Co-authored-by: jonesfernandess <jonesfernandess@users.noreply.github.com>
Co-authored-by: JasonLandbridge <JasonLandbridge@users.noreply.github.com>
Co-authored-by: i1hwan <i1hwan@users.noreply.github.com>
Co-authored-by: Gorchakov-Pressure <Gorchakov-Pressure@users.noreply.github.com>
Co-authored-by: foxy1402 <foxy1402@users.noreply.github.com>
Co-authored-by: dt418 <dt418@users.noreply.github.com>
Co-authored-by: dhaern <dhaern@users.noreply.github.com>
Co-authored-by: DavyMassoneto <DavyMassoneto@users.noreply.github.com>
Co-authored-by: dail45 <dail45@users.noreply.github.com>
Co-authored-by: congvc-dev <congvc-dev@users.noreply.github.com>
Co-authored-by: be0hhh <be0hhh@users.noreply.github.com>
Co-authored-by: andruwa13 <andruwa13@users.noreply.github.com>
Co-authored-by: AndrewDragonIV <AndrewDragonIV@users.noreply.github.com>
Co-authored-by: AndersonFirmino <AndersonFirmino@users.noreply.github.com>
Co-authored-by: alexsvdk <alexsvdk@users.noreply.github.com>
Co-authored-by: abhinavjnu <abhinavjnu@users.noreply.github.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.

2 participants