Zyy and Codex
53a09bbfe9
docs(skills): require English pull request titles
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 17:03:08 +08:00
239def9a5b
fix(store): preserve client key ledgers after deletion ( #602 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 17:00:44 +08:00
Zyy and Codex
5eaca14a64
fix(openai): clear client headers when switching accounts
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 15:28:48 +08:00
78e943f406
feat(usage): add snapshot scans and complete grouped statistics ( #599 )
...
Expose bounded usage readers through Admin, Store, Runtime, and SDK. Preserve snapshot consistency, coverage metadata, cancellation, and parent-call cleanup.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 15:22:44 +08:00
Zyy and Codex
0663df14df
fix(responses): reconnect idle WebSockets for replay regardless of client identity
...
Refs #596
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 14:14:29 +08:00
39aa20a13a
fix(plugins): prefer account-scoped profiles for adapted models ( #588 )
...
* fix(plugins): prefer account-scoped model profiles in catalogs
Co-authored-by: Codex <noreply@openai.com >
* fix(models): honor scoped plugin profiles in fallback catalogs
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: Codex <noreply@openai.com >
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
2026-11-04 13:20:08 +08:00
Ke Wang and Codex
621b1faceb
fix(store): keep usage queries compatible with PostgreSQL 16 ( #597 )
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 13:17:09 +08:00
28eb4708b5
fix(update): keep read-only official plugin files during extract ( #595 )
...
* fix(update): keep read-only official plugin files during extract
Docker Desktop returns EPERM when chmod runs again on an official plugin file that tar already unpacked as mode 0444.
Fixes #594
* test(update): cover writable official plugin archives
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: le-czs <243511553+le-czs@users.noreply.github.com >
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 13:09:57 +08:00
Ke Wang
aa003f7d90
fix(build): keep frozen migrations in LF ( #589 )
2026-11-04 13:02:04 +08:00
Zyy and Codex
4c57a0405d
fix(xai): preserve quota snapshots and restore daily usage
...
Preserve account profiles and quota observations during OAuth refresh and retry deferral. Project rolling daily usage independently of upstream snapshots and expose its period through the existing account usage API.
Keep quota capacity forecasts scoped to weekly and monthly windows. Cover refresh persistence, daily statistics, API projection, and PostgreSQL CAS behavior.
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 12:39:10 +08:00
Zyy and Codex
49cee2397f
fix(openai): avoid repeated replay errors after large SSE requests
...
Keep oversized Codex threads on SSE until a full request falls below 13.5 MiB. After delivering a response that requires full replay, close an idle Codex socket so the next step can send its history directly.
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 12:17:26 +08:00
Zyy and Codex
1915806bd1
perf(theme): load preview content after the canvas
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 21:18:02 +08:00
Zyy and Codex
5100f6333e
fix(usage): improve error diagnostics and request inspection
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 21:18:02 +08:00
Zyy and Codex
187af36306
fix(accounts): preserve known peer identity after sync failures
...
Keep undiscovered upstreams displayed as ordinary API keys and retain known peer errors without revoked shared data. Reuse quota refresh for retries and reset recognition when the connection changes.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 19:33:24 +08:00
Zyy and Codex
be35f8a6ee
fix(accounts): refine upstream quota display and layout
...
Show quota availability consistently for unlimited and stale observations, keep pool summaries at the bottom, and compact plan counts with an inline overflow popover.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 17:48:47 +08:00
Zyy and Codex
317c05c74a
fix(accounts): show OAuth results in notifications
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 15:55:56 +08:00
Zyy and Codex
12c32fcdec
chore(release): v3.39.1
...
Co-authored-by: Codex <noreply@openai.com >
v3.39.1
2026-11-03 11:47:32 +08:00
Ke Wang and Codex
26de671226
fix(runtime): reload full snapshot on config revision races ( #584 )
...
* fix(runtime): reload raced snapshot facts before suspending publication
Co-authored-by: Codex <noreply@openai.com >
* fix(runtime): retry extension preparation when its revision becomes stale
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:38:47 +08:00
Ke Wang and Codex
a92b95c48c
fix(proxies): measure latency for the selected successful address family ( #585 )
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:34:40 +08:00
Zyy and Codex
e7c24781fb
fix(openai): preserve deployment account routing policy
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:33:53 +08:00
Zyy and Codex
3b4b547e9c
fix(store): release proxy locks before returning delete conflicts
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:23:28 +08:00
Zyy and Codex
2016bda031
fix(openai): preserve client headers and send account installation id
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:23:16 +08:00
Zyy and Codex
790f3147e0
fix(openai): preserve verified turn state on full requests
...
Track bounded ownership proofs for upstream turn-state tokens, including failed responses, so same-turn full requests can echo them without trusting unrelated account state.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 10:19:53 +08:00
Zyy and Codex
96e8443ede
chore(release): v3.39.0
...
Co-authored-by: Codex <noreply@openai.com >
v3.39.0
2026-11-02 19:40:58 +08:00
Zyy and Codex
42badf64ca
docs(deploy): document low-memory database tuning
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 16:30:04 +08:00
35afe1123f
feat(plugins): edit sensitive configuration per field ( #582 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 15:32:32 +08:00
Zyy and Codex
2ac4265832
feat(windows): add builds and online updates
...
Build x64 and ARM64 release archives with a static MSVC runtime.
Support executable replacement, restart handoff and rollback on Windows.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 14:45:33 +08:00
Zyy and Codex
d22ec29824
fix(usage): show CPR badges for linked accounts
...
Use current peer summaries for request records and account diagnostics without changing historical snapshots or database schema.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 14:39:44 +08:00
Zyy and Codex
7a32c6cec2
chore(release): v3.38.2
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.2
2026-11-02 13:44:36 +08:00
0ff1a72919
fix(retry): limit upstream Retry-After waits ( #578 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 13:07:20 +08:00
79083a5632
fix(openai): reconnect before websocket search activation ( #577 )
...
Track hosted search initialization on pooled Codex sockets and retire incompatible connections before sending. Preserve existing client full replay recovery for connection-local deltas.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:28:14 +08:00
Zyy and Codex
90f7456db8
fix(ui): align CPR badge text with its icon
...
Keep the compact line height and offset the uppercase label by one pixel to align its visible center with the brand glyph across badge sizes.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:27:51 +08:00
Zyy and Codex
6f71b27c3c
fix(peer): include quota-backed plans in pool summaries
...
Reuse account plan resolution when exporting peer pool summaries. Read saved quota observations for missing plans even when quota sharing is disabled, without exposing quota data or mutating account records.
Cover unknown and missing plans, subtype preservation, plan-only limits, and quota refresh from an unknown account plan.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:24:57 +08:00
Zyy and Codex
7b05b14a2b
fix(openai): narrow model rejection cooldown detection
...
Require the official model_not_found code and supported status codes for
account-model cooldowns. Treat unsupported_value as a terminal request
error and preserve account eligibility across HTTP, SSE, and WebSocket.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 11:36:58 +08:00
f9b5b5ff77
chore(deps): bump node from 26.12.1-bookworm-slim to 26.13.0-bookworm-slim in /deploy in the minor-and-patch group across 1 directory ( #573 )
...
* chore(deps): bump node
Bumps the minor-and-patch group with 1 update in the /deploy directory: node.
Updates `node` from 26.12.1-bookworm-slim to 26.13.0-bookworm-slim
---
updated-dependencies:
- dependency-name: node
dependency-version: 26.13.0-bookworm-slim
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* docs(development): align Node.js version with Docker
Co-authored-by: Codex <noreply@openai.com >
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 10:33:44 +08:00
dependabot[bot]
4d5778a84f
chore(deps): bump rust from 48b7f43 to 9181b56 in /deploy ( #575 )
...
Bumps rust from `48b7f43` to `9181b56`.
---
updated-dependencies:
- dependency-name: rust
dependency-version: 1.99.1-bookworm
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:32:20 +08:00
dependabot[bot]
6d22d73506
chore(deps): bump debian from 7ff6ba3 to 99c0b25 in /deploy ( #574 )
...
Bumps debian from `7ff6ba3` to `99c0b25`.
---
updated-dependencies:
- dependency-name: debian
dependency-version: bookworm-slim
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:32:10 +08:00
dependabot[bot]
d8ab207282
chore(deps): bump the minor-and-patch group in /frontend with 7 updates ( #572 )
...
Bumps the minor-and-patch group in /frontend with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [@lucide/vue](https://github.com/lucide-icons/lucide/tree/HEAD/packages/vue ) | `1.61.0` | `1.66.0` |
| [axios](https://github.com/axios/axios ) | `1.20.0` | `1.21.0` |
| [es-toolkit](https://github.com/toss/es-toolkit ) | `1.53.0` | `1.53.1` |
| [@intlify/unplugin-vue-i18n](https://github.com/intlify/bundle-tools/tree/HEAD/packages/unplugin-vue-i18n ) | `11.2.7` | `11.2.8` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `26.6.5` | `26.6.6` |
| [eslint](https://github.com/eslint/eslint ) | `10.13.0` | `10.14.0` |
| [vue-tsc](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc ) | `3.3.13` | `3.3.14` |
Updates `@lucide/vue` from 1.61.0 to 1.66.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.66.0/packages/vue )
Updates `axios` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.20.0...v1.21.0 )
Updates `es-toolkit` from 1.53.0 to 1.53.1
- [Release notes](https://github.com/toss/es-toolkit/releases )
- [Changelog](https://github.com/toss/es-toolkit/blob/main/CHANGELOG.md )
- [Commits](https://github.com/toss/es-toolkit/compare/v1.53.0...v1.53.1 )
Updates `@intlify/unplugin-vue-i18n` from 11.2.7 to 11.2.8
- [Release notes](https://github.com/intlify/bundle-tools/releases )
- [Changelog](https://github.com/intlify/bundle-tools/blob/v11.2.8/CHANGELOG.md )
- [Commits](https://github.com/intlify/bundle-tools/commits/v11.2.8/packages/unplugin-vue-i18n )
Updates `@types/node` from 26.6.5 to 26.6.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.13.0 to 10.14.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.13.0...v10.14.0 )
Updates `vue-tsc` from 3.3.13 to 3.3.14
- [Release notes](https://github.com/vuejs/language-tools/releases )
- [Changelog](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vuejs/language-tools/commits/v3.3.14/packages/tsc )
---
updated-dependencies:
- dependency-name: "@lucide/vue"
dependency-version: 1.66.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: axios
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: es-toolkit
dependency-version: 1.53.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@intlify/unplugin-vue-i18n"
dependency-version: 11.2.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/node"
dependency-version: 26.6.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: eslint
dependency-version: 10.14.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: vue-tsc
dependency-version: 3.3.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:59 +08:00
dependabot[bot]
3816b46ba1
chore(deps): bump the minor-and-patch group in /backend with 8 updates ( #571 )
...
Bumps the minor-and-patch group in /backend with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [uuid](https://github.com/uuid-rs/uuid ) | `1.28.0` | `1.29.0` |
| [zip](https://github.com/zip-rs/zip2 ) | `9.0.5` | `9.1.3` |
| [jsonschema](https://github.com/Stranger6667/jsonschema ) | `0.60.0` | `0.60.2` |
| [roxmltree](https://github.com/RazrFalcon/roxmltree ) | `0.21.1` | `0.21.2` |
| [aws-sdk-s3](https://github.com/awslabs/aws-sdk-rust ) | `1.155.0` | `1.156.0` |
| [aws-smithy-runtime-api](https://github.com/smithy-lang/smithy-rs ) | `1.19.1` | `1.19.2` |
| [aws-smithy-types](https://github.com/smithy-lang/smithy-rs ) | `1.9.0` | `1.9.1` |
| [redis](https://github.com/redis-rs/redis-rs ) | `1.7.1` | `1.8.0` |
Updates `uuid` from 1.28.0 to 1.29.0
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.28.0...v1.29.0 )
Updates `zip` from 9.0.5 to 9.1.3
- [Release notes](https://github.com/zip-rs/zip2/releases )
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zip-rs/zip2/compare/v9.0.5...v9.1.3 )
Updates `jsonschema` from 0.60.0 to 0.60.2
- [Release notes](https://github.com/Stranger6667/jsonschema/releases )
- [Changelog](https://github.com/Stranger6667/jsonschema/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stranger6667/jsonschema/compare/ruby-v0.60.0...ruby-v0.60.2 )
Updates `roxmltree` from 0.21.1 to 0.21.2
- [Changelog](https://github.com/RazrFalcon/roxmltree/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RazrFalcon/roxmltree/compare/v0.21.1...v0.21.2 )
Updates `aws-sdk-s3` from 1.155.0 to 1.156.0
- [Release notes](https://github.com/awslabs/aws-sdk-rust/releases )
- [Commits](https://github.com/awslabs/aws-sdk-rust/commits )
Updates `aws-smithy-runtime-api` from 1.19.1 to 1.19.2
- [Release notes](https://github.com/smithy-lang/smithy-rs/releases )
- [Changelog](https://github.com/smithy-lang/smithy-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/smithy-lang/smithy-rs/commits )
Updates `aws-smithy-types` from 1.9.0 to 1.9.1
- [Release notes](https://github.com/smithy-lang/smithy-rs/releases )
- [Changelog](https://github.com/smithy-lang/smithy-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/smithy-lang/smithy-rs/commits )
Updates `redis` from 1.7.1 to 1.8.0
- [Release notes](https://github.com/redis-rs/redis-rs/releases )
- [Commits](https://github.com/redis-rs/redis-rs/compare/redis-1.7.1...redis-1.8.0 )
---
updated-dependencies:
- dependency-name: uuid
dependency-version: 1.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: zip
dependency-version: 9.1.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: jsonschema
dependency-version: 0.60.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: roxmltree
dependency-version: 0.21.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: aws-sdk-s3
dependency-version: 1.156.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: aws-smithy-runtime-api
dependency-version: 1.19.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: aws-smithy-types
dependency-version: 1.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: redis
dependency-version: 1.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:48 +08:00
dependabot[bot]
4a7c06f895
chore(deps): bump taiki-e/install-action ( #569 )
...
Bumps the minor-and-patch group with 1 update: [taiki-e/install-action](https://github.com/taiki-e/install-action ).
Updates `taiki-e/install-action` from 2.87.31 to 2.88.1
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/install-action/compare/1e29709c0ec63babbe8f266397a465f29a825f91...68a389c788b2cd04016ce8c80ee23b80d2ab3d68 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.88.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:13 +08:00
Zyy and Codex
e0b7a841ca
chore(release): v3.38.1
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.1
2026-11-02 00:08:30 +08:00
Zyy and Codex
96a292dd0f
fix(providers): align catalog-based account eligibility
...
Apply valid catalog membership alongside account model access for native OAuth, API key upstreams, and xAI. Preserve upstream validation for missing catalogs and unknown plans.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 00:02:08 +08:00
Zyy and Codex
6f138c8256
chore(release): v3.38.0
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.0
2026-11-01 23:32:37 +08:00
Zyy and Codex
c8ffb1a8c8
perf(store): batch account lease runtime reads
...
Read up to 128 accounts per Redis script while preserving input order, pool isolation, shared scheduling timestamps, expiry cleanup, and error propagation. Extend real Redis coverage for mixed lease states and invalid batch data.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 23:23:49 +08:00
Zyy and Codex
79df82a4f0
fix(openai): respect model capabilities in account selection
...
Filter known OAuth models by fresh plan catalogs and retain account-scoped model rejections. Preserve credential, transport, adapter, and continuation boundaries, and combine cooldown expiry without dropping protection semantics.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 22:39:21 +08:00
Zyy and Codex
62516d9769
fix(ci): reduce Cargo cache snapshot disk usage
...
Keep Cargo snapshots compressed during transfer, extract directly into BuildKit cache mounts, and release restored runner snapshots. Export archives without an extra copy layer and use a new cache format key.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 22:05:10 +08:00
Zyy and Codex
892cba68ae
test: streamline backend tests and speed up validation
...
Remove obsolete and redundant assertions while preserving current behavior.
Optimize zlib-rs in dev/test builds and use eight concurrent CI test workers.
Use explicit time bases and synchronization for integration fixtures.
Validated 4322 tests, 72 Redis ACL tests, and ten stress iterations of 102
concurrency-related tests. Rustfmt, strict Clippy, and actionlint passed.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 21:31:07 +08:00
Zyy and Codex
fada9bc0bd
refactor: clarify module boundaries and naming
...
Organize backend modules by responsibility, simplify runtime layers, and
keep shared contracts with their owning modules. Split frontend account
APIs and separate shared types from request implementations.
Strengthen architecture checks for module dependencies and test layout.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 20:35:59 +08:00
Zyy and Codex
27b9bbe994
fix: persist peer discovery and quiet expected cookie conflicts
...
Persist unsupported CPR Link detection for each connection and skip periodic
probes across restarts. Retain manual rediscovery, connection invalidation,
retry throttling, and existing quota access protections.
Log stale response-cookie revision conflicts at debug while retaining
warnings for actual storage failures.
Validation: 29 peer-related tests, 14 cookie tests, 16 architecture checks,
strict Clippy, Rustfmt, and diff checks passed.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 20:20:45 +08:00
Zyy and Codex
db849c1251
feat(peer-link)!: simplify the CPR Link protocol
...
Make capability blocks optional and represent key budgets as named windows. Centralize validation and preserve unknown states for missing observations.
BREAKING CHANGE: CPR Link requires schema_version 2; v1 snapshots are no longer accepted.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 19:24:17 +08:00