Skip to content

Fix allowed-model persistence and transcription model selection - #662

Merged
witbrock merged 3 commits into
mainfrom
codex/model-enablement-b637ab30
Sep 13, 2026
Merged

witbrock merged 3 commits into
mainfrom
codex/model-enablement-b637ab30

Conversation

@witbrock

Copy link
Copy Markdown
Member

Merge decision: ready — allowing a model now saves and verifies the scoped pool, exposes recoverable failures, and feeds a metadata-filtered recorded-transcription selector.

User outcome

Settings previously staged an additional model indefinitely behind “Pending allowed-model save”. Allow now checks provider discovery and persists immediately, retaining the selected primary and existing alternatives. Failed or unresponsive saves expose a retry or canonical reload action. Task: #V#task_agent_b637ab307fdc076a6db14d2267092cf7.

Material changes

  • Inventory all five integrated providers, including all scanned Ollama hosts and the full OpenAI inventory, with availability, target-pool enablement and assigned roles.
  • Derive recorded-transcription compatibility from registry capabilities.audio_transcription plus the existing adapter compatibility defaults. Keep effective actor eligibility separate from the administrator's save target.
  • Preserve stale browser transcription preferences visibly and recheck metadata, effective pool, provider key and existing execution authority on the server. General chat and realtime/synthesis models do not imply file-transcription compatibility.
  • Document the metadata, roles, failure recovery and provider limitations in the existing speech guide.

Evidence

  • 50 targeted Jest tests: model-pool controls, model inventory, dictation lifecycle and neighbouring browser model preference preservation.
  • 42 targeted pytest checks: audio metadata/inventory, speech transport, settings selectors, OpenAI probes and Ollama cache.
  • Changed frontend static lint and git diff --check pass.
  • Playwright on the actual Settings template/modules with synthetic HTTP discovery and persistence: failed save → retry → canonical read-back/reload → eligible transcription selection. Primary and existing entries preserved; two save attempts; no browser errors or overflow at 1280×1000 and 390×844. Reproducible via tests/browser/modelEnablement.cjs; evidence /tmp/von-model-browser/evidence.json and screenshots.

Ship boundary

Minimum ship evidence is the tested save/reload/recovery and metadata-filtering path. Lost existing settings, an unusable retry, or selecting a non-transcription model would block delivery; none remains in that path.

Provider catalogue availability is not a quota or inference guarantee. Only the existing OpenAI recorded-file adapter is supported; the selector preference is browser-local. Authenticated live-provider and physical-microphone acceptance were not run: retained host bridges belong to other candidates. No provider generation, credentials, live configuration, database migration or deployment is part of this change. Deployment was not requested.

@witbrock
witbrock merged commit 8255979 into main Sep 13, 2026
2 checks passed
@witbrock
witbrock deleted the codex/model-enablement-b637ab30 branch September 13, 2026 01:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant