Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions devlog/_plan/260912_combo_carry/030_verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,7 @@ Security review checks binding creation, private WeakMap retention, report seria
## Audit repair amendment

MODIFY lower-layer `tests/providers/provider-quota.test.ts`: explicit-projection test `exhausted` and `projected` objects each gain `updatedAt: Date.now()`. MODIFY lower-layer `tests/codex-integration/catalog-zero-credit-picker.test.ts`: display and bound report fixtures each gain `label: "Alpha"`. Keep runtime and assertions unchanged. Commit on own lower branch, rebase own editor branch onto the new lower tip, push lower normally and upper with explicit lease plus --no-verify. This preserves editor-only upper delta. Independent runtime security audit PASS; these low fixture contract findings are accepted. Recheck original current heads and final carry bases/head/CI; no merge.

## Check-phase repair from independent editor audit

Accepted Bacon P2: mixed retained/fresh report timestamps can leave fresh exhaustion unknown until an older deadline. MODIFY Combos quota loader to update its observation clock on each successful non-aborted snapshot before publication; preserve expiry/visibility effects. Add deterministic mixed-snapshot refresh regression in existing page-loading-contract test with a retained older row and fresh exhausted target, preserving a dirty alias. Update canonical GUI contract. This is C's observe-fix-recheck loop within the verification cycle, not an unrecorded new phase. No local suite. Re-push and replace final-tip CI evidence.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions devlog/_plan/260912_combo_carry/034_render_evidence.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Combo editor render evidence

Rendered source b3175ae940cdb7855aa4959982b3a357c8a6fd89; GUI tree 39d746c992b2e10fc4c281169db3b83e89d40637.
Vite development server served this worktree using existing installed dependencies, with its cache
inside ignored scratch space. No install, build, typecheck or test suite was run. A loopback-only
synthetic API supplied a single-key OpenRouter target; no real account or user service was used.

Browser viewport 1440x862, DPR2. Opened Models -> Combos -> review-combo and edited the public model
name to quota-review. DOM inspection read #cwi-edit-save.disabled; screenshots were opened and
visually inspected. No save request was submitted.

| Input | Observed Save disabled | Image |
| --- | --- | --- |
| Fresh server-confirmed exhausted routingQuota | true | [Exhausted](031_exhausted.png) |
| routingQuota state unknown with exhausted display quota | false | [Unknown](032_unknown.png) |
| Exhausted routingQuota with past validUntil | false | [Expired](033_expired.png) |

The initial fixture omitted the unrelated aliases defaults and caused a fixture rendering error;
the fixture was corrected to the API shape before these captures. These are rendered client
observations with synthetic API responses, not server integration or hosted CI proof.
4 changes: 1 addition & 3 deletions docs-site/src/content/docs/fr/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -281,9 +281,7 @@ Ouvrez le tableau de bord local et choisissez **Modèles → Combos**. L'espace
combos, et son sélecteur de cible exclut les modèles désactivés et les combos imbriqués.

Chaque cible affiche aussi un badge de quota en direct : **Disponible**, **Quota épuisé** ou **Quota inconnu**.
Enregistrer et Créer ne sont désactivés que lorsque chaque cible activée dispose de preuves fraîches et complètes
que son quota est épuisé. Les données manquantes, obsolètes, mal formées ou agrégées de façon incomplète restent
inconnues et ne verrouillent jamais un contrôle. La récupération du quota réactive automatiquement l’action.
L’éditeur bloque Enregistrer et Créer pour une raison de quota uniquement lorsque chaque cible utilisable dispose d’une confirmation serveur encore valide indiquant que la limite d’inférence liée à ses identifiants configurés est épuisée. Les quotas de compte, de modèle, de recherche et de MCP fournis uniquement à titre d’affichage, ainsi que les informations de routage absentes ou expirées, ne déclenchent pas ce blocage. Le blocage expire à la réinitialisation applicable ou à l’expiration de la validité des données et fait l’objet d’une nouvelle vérification lorsque la page devient active ou visible ; Actualiser recharge à la fois les données des combos et les quotas.

### CLI

Expand Down
5 changes: 1 addition & 4 deletions docs-site/src/content/docs/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,10 +349,7 @@ task workflow.
Open the local dashboard and choose **Models → Combos**. The workspace creates, edits, renames, and removes
combos, and its target picker excludes disabled models and nested combos.

Each target also shows a live quota badge: **Available**, **Out of quota**, or **Quota unknown**. Save and
Create are disabled only when every enabled target has fresh, complete evidence that its quota is exhausted.
Missing, stale, malformed, or incomplete aggregate evidence stays unknown and never locks a control. Polling
continues while the workspace is visible, so recovery automatically restores the action. The dashboard
Each target also shows a live quota badge: **Available**, **Out of quota**, or **Quota unknown**. The editor blocks Save and Create for quota only when every usable target has a current server-confirmed exhausted inference limit for its configured credential. Display-only account, model, search and MCP quota, or missing or expired routing evidence, does not cause this block. The block expires at the applicable reset or freshness boundary and is rechecked when the page becomes active or visible; Refresh reloads both Combo data and quota. The dashboard
editor does not yet expose `cooldownMs` or `waitForCooldownMs`; use the configuration file or management
API until the follow-up UI work lands.

Expand Down
3 changes: 1 addition & 2 deletions docs-site/src/content/docs/ja/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,8 +182,7 @@ v1/base/v2 モードと完全な暗号化タスクのワークフローについ
ローカル ダッシュボードを開き、**Models → コンボ**を選択します。ワークスペースはコンボを作成、編集、名前変更、削除し、そのターゲット ピッカーは無効なモデルとネストされたコンボを除外します。

各ターゲットには **利用可能**、**クォータを使い切りました**、**クォータ不明** のライブバッジも表示されます。
保存と作成が無効になるのは、有効な全ターゲットについて、クォータ枯渇を示す新鮮で完全な証拠がある場合だけです。
欠落、古い、不正、または不完全な集約データは不明のままで、操作をロックしません。クォータが回復すると操作は自動で再び有効になります。ダッシュボードのエディターではまだ `cooldownMs` と `waitForCooldownMs` を設定できません。後続の UI 作業が完了するまでは、構成ファイルまたは管理 API を使用してください。
エディターがクォータを理由に保存と作成をブロックするのは、使用可能なすべてのターゲットについて、設定された認証情報の推論上限に達したことを示す、サーバーによる確認が現在も有効な場合だけです。表示専用のアカウント・モデル・検索・MCP クォータや、ルーティングの根拠情報の欠落・期限切れによって、このブロックが発生することはありません。ブロックは該当するリセット時刻またはデータの有効期限に解除され、ページがアクティブになるか表示状態になると再確認されます。「更新」はコンボデータとクォータの両方を再読み込みします。ダッシュボードのエディターではまだ `cooldownMs` と `waitForCooldownMs` を設定できません。後続の UI 作業が完了するまでは、構成ファイルまたは管理 API を使用してください。

### CLI

Expand Down
4 changes: 1 addition & 3 deletions docs-site/src/content/docs/ko/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,9 +187,7 @@ v1/base/v2 모드와 암호화된 작업의 전체 흐름은 [Sub-agent Surface]

로컬 대시보드를 열고 **Models → Combos**를 선택합니다. 워크스페이스는 콤보를 만들고, 편집하고, 이름을 바꾸고, 제거할 수 있으며, 대상 선택기에서는 비활성 모델과 중첩 콤보를 제외합니다.

각 대상에는 **사용 가능**, **할당량 소진**, **할당량 알 수 없음** 실시간 배지도 표시됩니다. 저장과 만들기 버튼은
활성화된 모든 대상에 할당량 소진을 입증하는 최신의 완전한 증거가 있을 때만 비활성화됩니다. 누락되거나 오래되거나
형식이 잘못되었거나 집계가 불완전한 데이터는 알 수 없음으로 남으며 버튼을 잠그지 않습니다. 할당량이 복구되면 버튼도 자동으로 다시 활성화됩니다. 대시보드 편집기에서는 아직 `cooldownMs`나 `waitForCooldownMs`를 설정할 수 없습니다. 후속 UI 작업이 완료될 때까지 구성 파일이나 관리 API를 사용하세요.
각 대상에는 **사용 가능**, **할당량 소진**, **할당량 알 수 없음** 실시간 배지도 표시됩니다. 편집기는 사용 가능한 모든 대상에 대해 설정된 인증 정보의 추론 한도가 소진되었다는 서버 확인이 현재 유효할 때만 할당량을 이유로 저장과 만들기를 차단합니다. 표시 전용 계정·모델·검색·MCP 할당량이나 누락되거나 만료된 라우팅 근거 정보는 이 차단을 일으키지 않습니다. 차단은 해당 한도의 초기화 시점이나 데이터 유효기간이 끝나면 해제되며 페이지가 활성화되거나 표시될 때 다시 확인됩니다. 새로 고침은 콤보 데이터와 할당량을 모두 다시 불러옵니다. 대시보드 편집기에서는 아직 `cooldownMs`나 `waitForCooldownMs`를 설정할 수 없습니다. 후속 UI 작업이 완료될 때까지 구성 파일이나 관리 API를 사용하세요.

### CLI

Expand Down
4 changes: 1 addition & 3 deletions docs-site/src/content/docs/ru/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -234,9 +234,7 @@ effort вызывающей стороне и цели.
переименовывать и удалять combo, а селектор целей исключает отключённые модели и вложенные combo.

У каждой цели также отображается актуальный значок квоты: **Доступно**, **Квота исчерпана** или **Квота неизвестна**.
Кнопки сохранения и создания отключаются только тогда, когда для всех включённых целей есть свежие и полные
данные об исчерпании квоты. Отсутствующие, устаревшие, некорректные или неполные агрегированные данные остаются
неизвестными и никогда не блокируют управление. Восстановление квоты автоматически снова включает действие. Редактор дашборда пока не предоставляет `cooldownMs` и `waitForCooldownMs`; до появления соответствующего UI используйте файл конфигурации или Management API.
Редактор блокирует сохранение и создание из-за квоты только тогда, когда для каждой пригодной к использованию цели есть действующее подтверждение сервера об исчерпании лимита инференса для настроенных учётных данных. Квоты аккаунта, модели, поиска и MCP, предназначенные только для отображения, а также отсутствующие или просроченные данные для принятия решения о маршрутизации не вызывают эту блокировку. Блокировка истекает при соответствующем сбросе квоты или окончании срока актуальности данных и проверяется повторно, когда страница становится активной или видимой; «Обновить» повторно загружает и данные combo, и квоты. Редактор дашборда пока не предоставляет `cooldownMs` и `waitForCooldownMs`; до появления соответствующего UI используйте файл конфигурации или Management API.

### CLI

Expand Down
5 changes: 1 addition & 4 deletions docs-site/src/content/docs/tr/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -312,9 +312,7 @@ hedef seçicisi ise devre dışı bırakılmış modelleri ve iç içe geçmiş
hariç tutar.

Her hedef ayrıca canlı bir kota rozeti gösterir: **Kullanılabilir**, **Kota tükendi** veya **Kota bilinmiyor**.
Kaydet ve Oluştur yalnızca etkin hedeflerin tamamı için kotanın tükendiğini gösteren güncel ve eksiksiz kanıt varsa
devre dışı bırakılır. Eksik, eski, bozuk veya tamamlanmamış toplu kanıt bilinmiyor olarak kalır ve denetimleri asla
kilitlemez. Kota yenilendiğinde işlem otomatik olarak yeniden etkinleşir.
Düzenleyici, kota nedeniyle Kaydet ve Oluştur işlemlerini yalnızca kullanılabilir hedeflerin tümü için yapılandırılmış kimlik bilgisine ait çıkarım sınırının tükendiğini doğrulayan geçerli sunucu bilgisi varsa engeller. Yalnızca görüntüleme amaçlı hesap, model, arama ve MCP kotaları ya da eksik veya süresi dolmuş yönlendirme kanıtları bu engellemeye neden olmaz. Engelleme, ilgili sıfırlama zamanında veya verinin güncellik süresi dolduğunda sona erer ve sayfa etkin ya da görünür olduğunda yeniden kontrol edilir; Yenile, hem kombo verilerini hem de kotaları yeniden yükler.

### CLI

Expand Down Expand Up @@ -411,4 +409,3 @@ Hata hedefe özgü olmaktan ziyade uç (terminal) bir hataydı. Geçersiz girdiy
düzeltin, aşırı büyük bir bağlamı azaltın, bir politika reddini işleyin veya
reddedilen istek kaynağını düzeltin. Kombolar bu durumlar için atlama yapmaz.


4 changes: 1 addition & 3 deletions docs-site/src/content/docs/zh-cn/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,7 @@ combo 失败分为 **跳转** 失败和 **终止** 失败。

打开本地 dashboard 并选择 **Models → Combos**。该工作区可以创建、编辑、重命名和删除 combo,其目标选择器会排除已禁用的模型和嵌套 combo。

每个目标还会显示实时额度徽章:**可用**、**额度已用尽**或**额度未知**。只有当所有已启用目标都有最新、
完整的额度耗尽证据时,保存和创建操作才会被禁用。缺失、过期、格式错误或聚合不完整的证据会保持为未知,
绝不会锁定控件。额度恢复后,操作会自动重新启用。dashboard 编辑器目前还不能设置 `cooldownMs` 或 `waitForCooldownMs`;在后续 UI 完成前,请使用配置文件或管理 API。
每个目标还会显示实时额度徽章:**可用**、**额度已用尽**或**额度未知**。只有当每个可用目标均有当前有效的服务器确认,表明其所配置凭据的推理限额已耗尽时,编辑器才会因额度而禁止保存和创建。仅供显示的账户、模型、搜索和 MCP 额度,以及缺失或已过期的路由依据,都不会触发此限制。此限制会在适用的重置时间或数据有效期结束时解除,并在页面变为活动或可见状态时重新检查;刷新会同时重新加载 Combo 数据和额度。dashboard 编辑器目前还不能设置 `cooldownMs` 或 `waitForCooldownMs`;在后续 UI 完成前,请使用配置文件或管理 API。

### CLI

Expand Down
4 changes: 1 addition & 3 deletions docs-site/src/content/docs/zh-tw/guides/combos.md
Original file line number Diff line number Diff line change
Expand Up @@ -219,9 +219,7 @@ Codex v2 子代理有一個重要限制([issue #92](https://github.com/lidge-j

開啟本機儀表板並選擇 **Combos**。該工作區可建立、編輯、重新命名與移除 combo,且其目標 picker 會排除已停用的模型與巢狀 combo。

每個目標也會顯示即時額度徽章:**可用**、**額度已用盡**或**額度未知**。只有當所有已啟用目標都有最新、
完整的額度耗盡證據時,儲存與建立操作才會停用。缺失、過期、格式錯誤或聚合不完整的證據會維持未知,
絕不會鎖住控制項。額度恢復後,操作會自動重新啟用。
每個目標也會顯示即時額度徽章:**可用**、**額度已用盡**或**額度未知**。只有當每個可用目標均有目前有效的伺服器確認,顯示其所設定憑證的推論限額已耗盡時,編輯器才會因配額而停用儲存與建立。僅供顯示的帳戶、模型、搜尋與 MCP 配額,以及缺失或已過期的路由依據,都不會觸發此限制。此限制會在適用的重設時間或資料有效期限結束時解除,並在頁面變為作用中或可見狀態時重新檢查;重新整理會同時重新載入 Combo 資料與配額。

### CLI

Expand Down
Loading
Loading