feat(glm): add coding plan quota support#653
Open
Kayphoon wants to merge 8 commits into
Open
Conversation
951aa1c to
6081280
Compare
6081280 to
41318ef
Compare
The stream execution tests enabled the usage runtime but never supplied the in-memory worker queue or spawned a worker, so lifecycle events (stream-started/first-byte) were dropped by the queue-disabled path. Tests also read the failed candidate's extra_data synchronously right after the terminal event instead of waiting for the background candidate status write. Build the test app state with a memory runtime-state queue, enable queue_lifecycle_events, spawn a usage runtime worker, abort it on drop, and wait for a Failed candidate with extra_data before asserting.
The local stream failover test reads request candidates immediately after receiving the successful response, but candidate trace writes happen on background tasks. CI can observe only the first candidate, or observe the primary before its retryable 429 failure update lands. Wait for the failed primary and successful backup candidate records to converge before asserting the existing candidate fields.
The GLM coding plan endpoint templates can override the provider base URL, so endpoint.rs now normalizes endpoint_template.base_url.unwrap_or(template.base_url). The architecture test should still assert that endpoint.rs owns base URL normalization, but not the old exact expression.
Kayphoon
added a commit
to Kayphoon/Aether
that referenced
this pull request
Jun 26, 2026
Kayphoon
added a commit
to Kayphoon/Aether
that referenced
this pull request
Jun 26, 2026
Resolve conflicts: - template.rs: take main (superset with OVERRIDE_CUSTOM_PATH + tests) - builders.rs: take main (override system replaces validation block) - lib.rs: union both symbol sets (codex reset credits + glm coding plan) - ProviderFormDialog.vue: combine glm conditional with legacyT() wrapper - PoolManagement.vue: take main's PoolKeyStatsPanel component, pass dynamic group labels via new component props - PoolKeyStatsPanel.vue: add fiveHourGroupLabel/weeklyGroupLabel props Verified: cargo check, cargo clippy -D warnings, cargo test glm_coding_plan, cargo fmt --check, vue-tsc --noEmit, vitest (44/44 pass)
PR added queue_lifecycle_events: true with a background worker for the stream execution tests, but left lifecycle_enqueue_delay_ms at the default 1000ms. The coalescing delay caused streaming-status usage events to arrive past the 15s test deadline. Set delay to 0 so events are enqueued immediately for the worker to consume.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds glm_coding_plan as a fixed key-managed provider with Zhipu/Z.AI default Base URLs, Coding Plan quota refresh, and admin pool quota display for 5h/week token windows.
Included:
Verification:
CI status:
Local note: gateway cargo check and some workspace-rest no-run checks could not be rerun locally in this sandbox because the default /root/.cargo registry is read-only while unpacking humantime v2.3.0. No CARGO_HOME or shared CARGO_TARGET_DIR override was used.
No .agents, .omo, Makefile, Docker, or CI workflow changes are included in this PR.