Repository navigation
feat(accounts): pick upstream models before they enter the whitelist - #223
Merged
Merged
Conversation
Syncing upstream models now opens a picker over the account dialog instead of appending every model. It lists upstream models and whitelist entries sorted by ID, tags 新增 / 上游未返回, starts with upstream models checked, and offers search, 全选 / 反选, a status filter and capability details. Only Confirm changes the whitelist (kept entries first, then new models) and forwards the sync result; Cancel leaves both untouched. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ocus stable - P1: past 100 visible rows the picker list renders only the rows near view (@tanstack/vue-virtual, DataTable precedent: measured row heights keyed by model ID, spacer items, caches reset for a new list); rows are v-memo'd on their row, index and checked state, so a toggle patches one row; capability lines are built when a row first renders. 全选 / 反选 / counter / summary still cover the whole list. - P2: the list area keeps the height it opened with (the whole list's, at most 50vh); the empty message sits inside it, so filtering and searching no longer resize the dialog. - A1: toggling a focused row out of the 已勾选 / 未勾选 view moves the focus to the row taking its place (the previous one when it was last, the search when none is left). - A2: each checkbox is described by its row's tag and capability line. - Tests: empty upstream list branch, checked state read from the checkbox, case-insensitive ID search, a 300-row windowed list with whole-list bulk actions, focus hand-off, row descriptions. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ggling Turn off scroll anchoring on the list so a focused row checkbox cannot push a long jump scroll past its target, and keep a windowed list windowed when a toggle under the checked/unchecked filter takes it down to the threshold. 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.
Summary
When an admin clicks 「同步上游支持的模型」 in the account create/edit model whitelist, the synced models no longer go straight into the whitelist. A picker dialog opens on top of the account modal, and only the checked models go into the whitelist. Frontend only, no backend or migration change. Owner approved the behaviour on 2026-10-02 from a local preview.
Out of scope and unchanged: the Antigravity mapping sync, 「同步最新支持模型」, bulk edit, channel model sync, and all backend code.
Test plan
vitest run src/components/account/__tests__/ModelWhitelistSelector.spec.ts src/i18n/__tests__/localeKeyCompleteness.spec.ts: 41 passedvue-tsc --noEmiteslinton the changed .vue/.ts files🤖 Generated with Claude Code