Commit Graph

4934 Commits

Author SHA1 Message Date
Antigravity Assistant
fb95689601 chore(release): v3.7.8 — rate limit watchdog, 1proxy marketplace, grok 4.3 2026-05-01 08:49:08 -03:00
backryun
d8e977cb42 Add Grok 4.3 + Add Xiaomi Mimo TTS provider (#1837)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
Randi
89886e69a9 fix(workflow): build docker images on version tags (#1838)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
Randi
8ad5f0dbcc Hide combo compression controls when disabled (#1840)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
janeza2
e9bb874ddc feat(providerRegistry): add muse-spark-web provider with multiple models and reasoning support (#1843)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
Paijo
9042d5049d feat: integrate 1proxy free proxy marketplace (closes #1788) (#1847)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
bambuvnn
3a8defed09 fix: tolerate missing request detail logs table (#1848)
Integrated into release/v3.7.8
2026-05-01 08:41:19 -03:00
Antigravity Assistant
0428943d84 feat: merge PR 1839 manually (rate limit watchdog and env) 2026-05-01 08:38:42 -03:00
Antigravity Assistant
373181dade chore: resolve conflicts 2026-05-01 08:38:05 -03:00
Antigravity Assistant
f44fb3d9b7 chore: bump version to 3.7.9-pre 2026-05-01 08:36:51 -03:00
backryun
32e0a7cb16 Add Grok 4.3 + Add Xiaomi Mimo TTS provider (#1837)
Integrated into release/v3.7.8
2026-05-01 08:36:24 -03:00
Randi
4ac29c4d9b fix(workflow): build docker images on version tags (#1838)
Integrated into release/v3.7.8
2026-05-01 08:36:20 -03:00
Randi
3d70ad414e Hide combo compression controls when disabled (#1840)
Integrated into release/v3.7.8
2026-05-01 08:36:15 -03:00
janeza2
21f4f8ddce feat(providerRegistry): add muse-spark-web provider with multiple models and reasoning support (#1843)
Integrated into release/v3.7.8
2026-05-01 08:36:12 -03:00
Paijo
f3226b7f8d feat: integrate 1proxy free proxy marketplace (closes #1788) (#1847)
Integrated into release/v3.7.8
2026-05-01 08:36:07 -03:00
bambuvnn
ea9d9e09ba fix: tolerate missing request detail logs table (#1848)
Integrated into release/v3.7.8
2026-05-01 08:35:52 -03:00
Antigravity Assistant
ea6f556ed2 chore(workflow): fix generate-release github action collision for releases and remove any types 2026-05-01 01:15:28 -03:00
Antigravity Assistant
10b125115e test: fix flaky domain-cost-rules.test.ts date sensitivity v3.7.7 2026-05-01 00:12:33 -03:00
Diego Rodrigues de Sa e Souza
ce6706f3e9 Merge pull request #1831 from diegosouzapw/release/v3.7.7
Release v3.7.7
2026-04-30 23:59:12 -03:00
Antigravity Assistant
ec863041f9 fix: disableStreamOptions toggle for OpenAI compatible providers (#1836) 2026-04-30 23:02:03 -03:00
Antigravity Assistant
3ff2f6a7c9 fix(types): resolve WildcardAliasEntry and test result typings 2026-04-30 20:42:43 -03:00
Antigravity Assistant
983263e45e fix(routing): preserve Gemini preview model names when resolving canonical combo paths (#1834) 2026-04-30 20:36:25 -03:00
Antigravity Assistant
f8c7e7904e fix(codex): translate messages to input for Cursor 5.5 compact endpoint passthrough (#1832) 2026-04-30 20:36:11 -03:00
Antigravity Assistant
934c133103 fix(analytics): avoid persisting inferred API key ownership
Stop usage analytics reads from backfilling missing API key attribution
into historical rows so legacy records remain unchanged and surface as
unknown instead of guessed ownership.

Also require management authentication on admin concurrency and
compression analytics endpoints, and preserve image payloads during lite
compression unless a model is explicitly marked as non-vision.
2026-04-30 20:31:00 -03:00
Antigravity Assistant
8ebddc2ca3 docs: sync changelog with prompt compression epic 2026-04-30 19:15:02 -03:00
Antigravity Assistant
9aa89b17a5 test: harden resilience integration server startup 2026-04-30 18:46:34 -03:00
Diego Rodrigues de Sa e Souza
94ba3b3a23 Merge pull request #1758 from oyi77/feat/compression-phase6
feat(mcp): Phase 6 MCP Compression Tools + Provider-Aware Caching
2026-04-30 18:11:56 -03:00
Antigravity Assistant
8ca5902a98 Merge release/v3.7.7 into compression phase 6 2026-04-30 18:07:26 -03:00
Diego Rodrigues de Sa e Souza
de4cbe2e3f Merge pull request #1756 from oyi77/feat/compression-phase5
feat(compression): Phase 5 — Dashboard UI & Analytics (#1590)
2026-04-30 17:56:51 -03:00
Antigravity Assistant
fa0f3cc8be Merge release/v3.7.7 into compression phase 5 2026-04-30 17:52:23 -03:00
Diego Rodrigues de Sa e Souza
eaeab62373 Merge pull request #1741 from oyi77/feat/compression-phase4
feat(compression): Phase 4 — ultra mode with heuristic token pruning and SLM stub
2026-04-30 17:43:28 -03:00
Antigravity Assistant
7b21e04604 Merge release/v3.7.7 into compression phase 4 2026-04-30 17:37:57 -03:00
Diego Rodrigues de Sa e Souza
dc23c2c0d1 Merge pull request #1739 from oyi77/feat/compression-phase3
feat(compression): Phase 3 — aggressive mode with summarization, tool compression, and progressive aging
2026-04-30 17:26:54 -03:00
Antigravity Assistant
5e0d6263ed Merge release/v3.7.7 into compression phase 3 2026-04-30 17:22:03 -03:00
Diego Rodrigues de Sa e Souza
89ef91ca1b Merge pull request #1738 from oyi77/feat/compression-phase2
feat(compression): Phase 2 — Caveman Compression Engine (30 rules, 72 tests, UI, API)
2026-04-30 17:14:49 -03:00
Antigravity Assistant
4597cfd54e Fix OpenCode baseUrl locale placeholders 2026-04-30 17:12:22 -03:00
Antigravity Assistant
595b5dc642 Merge release/v3.7.7 into compression phase 2 2026-04-30 17:07:39 -03:00
Diego Rodrigues de Sa e Souza
e0a4f703cb Merge pull request #1633 from oyi77/feat/prompt-compression-phase1
feat(compression): Phase 1 — Modular Prompt Compression Pipeline (Lite mode, 61 tests)
2026-04-30 16:56:45 -03:00
Antigravity Assistant
16f14b76a9 Merge release/v3.7.7 into prompt compression phase 1 2026-04-30 16:51:44 -03:00
Antigravity Assistant
e9d2ebb4f9 chore(release): v3.7.7 — changelog, docs, version sync 2026-04-30 16:05:35 -03:00
Gi99lin
e929559e9a feat(analytics): Custom date range, API key filter & NULL key enrichment (#1830)
Integrated into release/v3.7.7
2026-04-30 15:58:00 -03:00
payne
6c172df547 fix(rate-limit): watchdog, env override, and stage tracing to prevent silent wedges (#1828)
Integrated into release/v3.7.7
2026-04-30 15:48:50 -03:00
Antigravity Assistant
902d0b9f41 Merge release/v3.7.7 into PR branch 2026-04-30 15:47:11 -03:00
Antigravity Assistant
cd27c5cf33 chore(workflow): fix changelog extraction logic for github releases 2026-04-30 15:39:51 -03:00
payne0420
1b26018534 fix(rate-limit): wire auto-enabled limiters through getLimiter so heartbeat is registered
Addresses chatgpt-codex-connector review on #1828: reconcileEnabledConnections
created auto-enabled limiters via direct \`new Bottleneck(...)\`, bypassing
the \`executing\` event listener that updates lastDispatchAt. The watchdog
then read \`lastDispatchAt.get(key) ?? 0\` and computed \`stalledMs = now - 0\`
≈ Unix time, force-resetting healthy idle limiters during normal reservoir-
refresh waits.

- Reconcile path now calls getLimiter(provider, connectionId), which registers
  both queued/executing listeners and seeds lastDispatchAt to now.
- Watchdog also hardened: if lastDispatch is undefined for any reason, seed
  it on the current tick and skip — never compute stall against epoch.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 17:49:29 +00:00
Antigravity Assistant
cc460b36b9 fix(ci): fix typecheck implicit any errors and CodeQL regex alert v3.7.6 2026-04-30 14:44:58 -03:00
Diego Rodrigues de Sa e Souza
d26b92b551 Release/v3.7.6 (#1829)
* 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>
2026-04-30 14:36:26 -03:00
payne0420
3963575529 fix(rate-limit): raise wedge threshold from 5s to 120s
Addresses gemini-code-assist review on #1828: at 5s, the watchdog can
false-trigger on a healthy limiter that's correctly waiting on its
reservoir refresh (60s default) or adaptive minTime (up to ~60s for
1-RPM providers). 120s gives a 2× margin against both while still
catching the actual wedge case (observed at 3+ minutes stalled).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 17:30:05 +00:00
payne0420
294751d8a3 fix(rate-limit): watchdog, env override, and stage tracing to prevent silent wedges
The auto-enabled Bottleneck safety net for API-key providers can desync
its internal state and silently stop dispatching jobs (queued > 0,
running == 0, executing == 0). Once that happens nothing recovers without
a process restart. This change adds a self-heal layer plus operator
visibility, and keeps existing behavior intact by default.

- Watchdog (30s tick) detects wedged limiters and force-resets them with
  stop({dropWaitingJobs:true}) so queued callers actually fail rather than
  stall forever.
- RATE_LIMIT_AUTO_ENABLE env var overrides the dashboard auto-enable
  toggle (highest precedence). Lets operators flip the safety net off
  during an incident without needing dashboard access.
- disableRateLimitProtection now uses stop({dropWaitingJobs:true})
  instead of disconnect(); disconnect leaks queued promises (observed
  while debugging this).
- STAGE_TRACE checkpoints in chatCore (post_injection, post_translation,
  pre/post_semaphore, pre/inside/post_rate_limit, pre/post_executor)
  pinpoint which await a hung request was stuck on.
- New /api/admin/concurrency endpoint exposes per-limiter counts and
  semaphore stats so operators can see liveness in real time.
- Test coverage for the env-var override.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 17:18:25 +00:00
Diego Rodrigues de Sa e Souza
3ec9ca11b1 Release v3.7.6 (#1803)
* 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>
2026-04-30 14:08:50 -03:00