feat(models): owner-managed model activation over the auto-detected pool - #114
Merged
Conversation
model-auto-detect discovers what a provider OFFERS and registers all of it — there was no notion of what the owner ALLOWS. Measured 2026-08-09 on a codex session: o3, gpt-5.5, gpt-4.1, o4-mini, gpt-5-mini and gpt-4.1-mini sat beside the gpt-5.6 family, and the AI planner assigned gpt-5-mini to the first dogfood run's economy task. - ModelActivationStore (.deckent/models.db, owner's choice of location): a purpose-built SQLite store keyed by (provider, modelId). A model with NO record is ACTIVE, so installing this narrows nothing — it is an opt-in denial list. - Enforcement at the single registration authority: a deactivated model is UNREGISTERED from the executable registry, not merely filtered out of the discovery list — cloud models are already registered from the bundled catalog, so list-filtering alone would leave them selectable by the planner. - `deckent models activate|deactivate|activation`: management is a first-class surface, never a file edit (dual-lens law — the same store governs both the product user and our own dogfood runs). - Fail-safe: an absent/unreadable store yields an empty denial set, so model discovery can never break because of this feature. Omitting projectRoot keeps pre-store behaviour exactly. Brain-only models are unaffected: brain_provider/brain_model resolve separately and never enter the worker pool. 12 new pins (default-active, per-provider scoping, durability, input refusal, fail-safe lookup, unregister enforcement, both no-op paths) + 30 existing auto-detect tests green; tsc + no-model-literal clean; production inventory baseline +1 for the new module, honestly noted. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
New work row 7075 (ECOSYSTEM-001 / PROVIDER), opened on the owner's 2026-08-09 Q&A: model and provider management must be a first-class surface for the product user, with the same store governing dogfood (dual-lens law), and the store lives in a project-scoped .deckent/models.db by the owner's choice. Settled to VERIFY: the row is G1-only and one receipt covers it, and the slice delivers its acceptance end-to-end — owner activates/deactivates from the CLI without editing files, only active models reach the routing pool, an absent record preserves behaviour, and brain-only models never enter the worker pool. Real-binary run applied the owner's list (7 deactivations). Cross-platform and scale facets remain unproven and are carried as typed residuals, alongside the measured planner-bypass and the dead min_tier field. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AlbSar
added this pull request to the merge queue
Aug 9, 2026
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.
Ne (iş özeti)
model-auto-detectbir provider'ın sunduğu modelleri keşfedip hepsini registry'ye kaydediyor — ama owner'ın izin verdiği kavramı yoktu. Ölçüm (2026-08-09, codex oturumu):o3·gpt-5.5·gpt-4.1·o4-mini·gpt-5-mini·gpt-4.1-minieski nesillerigpt-5.6ailesiyle yan yana duruyordu ve AI-planner ilk dogfood koşusunda economy görevinegpt-5-miniatadı.Kod
ModelActivationStore(.deckent/models.db— owner'ın seçtiği konum): amaca-özel SQLite,(provider, modelId)anahtarlı. Kaydı olmayan model AKTİF → kurulum hiçbir projede sessiz daralma yapmaz (opt-in denial list).unregisteredilir. Yalnızca keşif listesini filtrelemek yetmezdi — cloud modeller bundled katalogdan zaten kayıtlıydı ve planner yine seçebilirdi.deckent models activate | deactivate | activation: yönetim birinci-sınıf yüzey, dosya düzenleme değil (KANUN ci: Bump actions/checkout from 4 to 6 #1 çift-mercek — aynı store hem ürün kullanıcısını hem dogfood'u yönetir).projectRootverilmezse store-öncesi davranış birebir korunur.Brain modelleri etkilenmez:
brain_provider/brain_modelayrı çözülür, worker havuzuna girmez.Gerçek-binary koşumu (owner listesi uygulandı)
Kapatıldı:
o3gpt-5.5gpt-4.1o4-minigpt-5-minigpt-4.1-miniclaude-opus-4-8Aktif havuz:
gpt-5.6-{sol,terra,luna}+claude-{opus-5,sonnet-5,haiku-4-5}·claude-fable-5brain-only.Kanıt
12 yeni pin + 30 mevcut auto-detect testi = 42 yeşil · tsc + full
lint:gatesyeşil · production-inventory baseline +1 (yeni modül, dürüstçe not edildi).Yeni satır 7075 MODEL-ACTIVATION-001 → VERIFY (G1-only, tek receipt kapsıyor, acceptance uçtan uca karşılandı).
Typed residuals
planner atamasının aktif kümeye karşı doğrulanması ·
min_tieralanınınmodel-selector'da ölü olması · cross-platform + ölçek facet'leri🤖 Generated with Claude Code