Repository navigation
feat(accounts): candy-question quality check in the account test dialog - #231
Merged
Merged
Conversation
OpenAI OAuth accounts get a third test mode, 质量判分(糖果题). It sends the fixed candy question (SHA-256 05cc85bb…f5a7a7) over the ordinary account test path with high reasoning effort by default, shows the question read-only and collapsed, and ends with a verdict card: a first verdict from the final answer number (21 = no anomaly, another number = suspected degradation, otherwise undetermined), reasoning tokens with a hint when they are exactly 516, and the upstream-declared model. Nothing is stored and scheduling is unaffected. The test stream now reports reasoning tokens for OpenAI Responses tests, and a test stream that ends without a terminal event shows an error instead of staying on "connecting". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
HTExplicit
force-pushed
the
feat/account-test-quality-check
branch
from
October 3, 2026 02:20
2e4a807 to
25f5579
Compare
HTExplicit
added a commit
that referenced
this pull request
Oct 3, 2026
Removes the pieces the Codex ticket removal (#229-#231) left behind and restores the upstream or pre-ticket form in each place. Deleted: the response model-declaration guard (upstream behaviour: reply delivered, usage log records upstream_model_mismatch); the codex-quality-runs diagnostics; the Codex outbound fingerprint panel with its per-request wire observation and profile selection; plugin-owner job metadata decoding; the retired-key, retired-extra and retired-job tolerance. Replaced: the native Codex runtime host by one plain settings row {request_zstd} and direct calls into codexruntime/profile and codexruntime/recovery. Restored: x-codex-turn-state handling to the fork's contract from before the routing commits; Responses-Lite default instructions to upstream. Migration 264 carries the compression value over from the recorded config hash, drops sub2api_plugin_state and sub2api_plugin_leases, removes the retired codex-runtime installation's stored configuration and package, and writes the fingerprint mode explicitly for OAuth accounts that had none. A differing upstream model is now shown in the single account test and makes the quality verdict suspect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Problem
With the ticket subsystem gone (#229), admins need a quick, manual way to see whether an OpenAI OAuth account currently answers like a degraded model. Our own records show the candy question separates the two reliably: correct answers are 21, while degraded answers are typically 29.
Change
Account test dialog, OpenAI OAuth accounts only (owner-approved preview, 2026-10-03):
highwhen the model offers it; it can be changed, and leaving the mode restores the previous choice.05cc85bb…f5a7a7, asserted by a unit test).The final-number parser prefers explicit answer markers (
\boxed{}, 答案/至少需要…/at least …). It skips markers inside hypothetical clauses (「若完全随机摸取,则答案会是 29 个」), ignores counts of shapes, flavours and dates, and resolves arithmetic chains. Over the 134 recorded answers in our evidence it never reports 21 for a wrong answer.Backend: the account-test stream now reports
reasoning_tokensontest_completefor OpenAI Responses tests. The field is optional and omitted otherwise, so other platforms are unchanged.Dialog-wide: a test stream that ends without a terminal event now shows 「连接在测试完成前结束」 instead of staying on "connecting" (owner decision).
Verification
accountQualityCheck.spec.ts: 52 cases (hash, Chinese and English answers, verdict states);AccountTestModal.qualityCheck.spec.ts, plus the existing AccountTestModal specs;check:i18n,vue-tsc --noEmit, eslint on the changed files;go build ./..., andTestAccountConnectionStreamReportsOpenAIReasoningTokens/TestAccountConnectionStreamContract(-tags unit);Not run: real model calls.
🤖 Generated with Claude Code